A Reactive Strategy for High-Level Consistency During Search R.J. - - PowerPoint PPT Presentation

a reactive strategy for high level consistency during
SMART_READER_LITE
LIVE PREVIEW

A Reactive Strategy for High-Level Consistency During Search R.J. - - PowerPoint PPT Presentation

A Reactive Strategy for High-Level Consistency During Search R.J. Woodward 1,2 B.Y. Choueiry 1 Christian Bessiere 2 1 Constraint Systems Laboratory, University of Nebraska-Lincoln 2 CNRS, University of Montpellier Acknowledgements


slide-1
SLIDE 1

R.J. Woodward1,2 B.Y. Choueiry1 Christian Bessiere2

1Constraint Systems Laboratory, University of Nebraska-Lincoln 2CNRS, University of Montpellier

Acknowledgements

  • Experiments conducted at UNL’s Holland Computing Center
  • NSF Grant RI-111795, RI-1619344
  • NSF GRF and Chateaubriand Fellowship
  • ANR Demograph (ANR-16-CE40-0028) and Contredo (ANR-16-CE33-024)

July 18, 2018 IJCAI 2018 1

A Reactive Strategy for High-Level Consistency During Search

slide-2
SLIDE 2

Context

  • Solving a Constraint Satisfaction Problem (CSP)

– Conditioning: Backtrack search – Inference: Enforcing consistency

  • Consistency properties (e.g., GAC)
  • Constraint propagation algorithms
  • Consistency during search

– Constraint Programming solvers: GAC or weaker – CSP research: GAC or stronger

  • Our focus: Higher-level consistency (HLC)

July 18, 2018 IJCAI 2018 2

slide-3
SLIDE 3

Lesson and Problem

  • Maintaining consistency during search

– Enforced at each variable instantiation – Prunes subtrees, reduces search space

  • Stronger consistency

– Filters more subtrees – But is costlier to enforce

July 18, 2018 IJCAI 2018 3

GAC vs HLC

Cost of Consistency Cost of Search 1 n

GAC HLC

slide-4
SLIDE 4

Challenge

July 18, 2018 IJCAI 2018 4

Decide when, where, and how much HLC to enforce during search

Where? When? How much? HLC Where?

One variable Entire CSP Always GAC Always HLC

When? How much?

Stop early Until fixpoint

slide-5
SLIDE 5

Our solution

  • 1. When: PREPEAK

– Monitors search performance – When search starts thrashing, triggers an HLC – Then, conservatively reverts to GAC

  • 2. How much

– Monitor propagation and interrupt before fixpoint

July 18, 2018 IJCAI 2018 5

Where? When? How much? HLC

PREPEAK+ = PREPEAK + ‘How Much’

slide-6
SLIDE 6

PREPEAK examines #BT per depth

July 18, 2018 IJCAI 2018 6

5,000 10,000 15,000 20,000 25,000 30,000 35,000

1 26 51 76 101 126 151 176 201 226 251

# Backtracks

Depth

HLC

Peak

  • If HLC yields

1. Wipeout (highly effective), reduce θ 2. Some filtering, increase θ a little 3. No filtering (HLC is wasteful), increase θ a lot 1 275

θ

  • Trigger HLC when #BT reaches a threshold θ
  • In the last 2 cases, reset #BT per depth to 0

Thus, return to GAC

G A C H L C

slide-7
SLIDE 7

1,800 1,850 1,900 1,950 2,000 2,050 2,100 2,150 2,200

300 600 900 1,200 1,500 1,800 2,100 2,400 2,700 3,000 3,300 3,600

# Completed Instances CPU Time [sec]

PREPEAK+ APOAC GAC

Empirical Evaluations

July 18, 2018 IJCAI 2018 7

Using dom/deg

slide-8
SLIDE 8

Thank You

July 18, 2018 IJCAI 2018 8

Coffee Coffee Coffee

Possible start states Goal state Posters Exhibition

Demo booths

slide-9
SLIDE 9

Thank You Questions & Comments

July 18, 2018 IJCAI 2018 9

Please stop by the poster #51

slide-10
SLIDE 10

Visualization of Benefit

July 18, 2018 IJCAI 2018 10

5,000 10,000 15,000 20,000 25,000 30,000 35,000

1 26 51 76 101 126 151 176 201 226 251 276 301 326 351 376

# Backtracks

Depth

GAC

#BTs

CPU Time: 140.81 sec. #NV: 3,978,074 #BT: 3,348,330

pseudo-aim-200-1-6-4, dom/wdeg

5,000 10,000 15,000 20,000 25,000 30,000 35,000

1 26 51 76 101 126 151 176 201 226 251 276 301 326 351 376

# Backtracks

Depth

APOAC

#BTs

CPU Time: 23.77 sec. #NV: 59,181 #BT: 53,212 #Calls POAC: 11,142

slide-11
SLIDE 11

Visualization of Benefit

10 20 30 40 50 60 5,000 10,000 15,000 20,000 25,000 30,000 35,000

1 26 51 76 101 126 151 176 201 226 251 276 301 326 351 376

# Calls to POAC # Backtracks

Depth

APOAC

#BTs Filter No Filter Wipeout

CPU Time: 23.77 sec. #NV: 59,181 #BT: 53,212 #Calls POAC: 11,142 July 18, 2018 IJCAI 2018 11

5,000 10,000 15,000 20,000 25,000 30,000 35,000

1 26 51 76 101 126 151 176 201 226 251 276 301 326 351 376

# Backtracks

Depth

GAC

#BTs

CPU Time: 140.81 sec. #NV: 3,978,074 #BT: 3,348,330

pseudo-aim-200-1-6-4, dom/wdeg

slide-12
SLIDE 12

Visualization of Benefit

10 20 30 40 50 60 5,000 10,000 15,000 20,000 25,000 30,000 35,000

1 26 51 76 101 126 151 176 201 226 251 276 301 326 351 376

# Calls to POAC # Backtracks

Depth

APOAC

#BTs Filter No Filter Wipeout

CPU Time: 23.77 sec. #NV: 59,181 #BT: 53,212 #Calls POAC: 11,142

July 18, 2018 IJCAI 2018 12

5,000 10,000 15,000 20,000 25,000 30,000 35,000

1 26 51 76 101 126 151 176 201 226 251 276 301 326 351 376

# Backtracks

Depth

GAC

#BTs

CPU Time: 140.81 sec. #NV: 3,978,074 #BT: 3,348,330

10 20 30 40 50 60 5,000 10,000 15,000 20,000 25,000 30,000 35,000

1 26 51 76 101 126 151 176 201 226 251 276 301 326 351 376

# Calls to POAC # Backtracks

Depth

PREPEAK+

#BTs Filter No Filter Wipeout

CPU Time: 12.06 sec. #NV: 284,289 #BT: 238,833 #Calls POAC: 228

slide-13
SLIDE 13

PREPEAK A Reactive Strategy for HLC

  • Keep track of btcount[⋅], number of backtrack during search
  • When btcount[⋅] reaches a given threshold θ

– Enforce GAC then HLC as long as HLC yields domain wipeout for all values in domain of current variable – If backtrack, reduce threshold and keep enforcing HLC – If HLC finds a consistent value, reset btcount[⋅], increase threshold a little – If GAC finds a consistent value, reset btcount[⋅], increase threshold a lot

  • Geometric laws to update threshold

– Wipeout: – Filtering: – No filtering:

July 18, 2018 IJCAI 2018 13

1 275

θbt

k+1 ← rf · θbt k , rf = 1.22

θbt

k+1 ← rn · θbt k , rn = 1.23

θbt

k+1 ← rw · θbt k , rw = 1.2−1