a reactive strategy for high level consistency during
play

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


  1. 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 • 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

  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

  3. Lesson and Problem • Maintaining consistency during search 1 – Enforced at each variable instantiation – Prunes subtrees, reduces search space • Stronger consistency – Filters more subtrees – But is costlier to enforce GAC HLC n Cost of Cost of Consistency Search GAC vs HLC July 18, 2018 IJCAI 2018 3

  4. Challenge Decide when, where, and how much HLC to enforce during search How much? When? Always GAC Always HLC Where? Where? Entire CSP One variable How much? When? HLC Until fixpoint Stop early July 18, 2018 IJCAI 2018 4

  5. Our solution How much? 1. When: P RE P EAK Where? – Monitors search performance HLC When? – When search starts thrashing, triggers an HLC – Then, conservatively reverts to GAC 2. How much – Monitor propagation and interrupt before fixpoint P RE P EAK + = P RE P EAK + ‘How Much’ July 18, 2018 IJCAI 2018 5

  6. P RE P EAK examines #BT per depth • Trigger HLC when #BT reaches a threshold θ 35,000 θ • If HLC yields 1. Wipeout (highly effective), reduce θ 30,000 2. Some filtering, increase θ a little 3. No filtering (HLC is wasteful), increase θ a lot 25,000 • In the last 2 cases, reset #BT per depth to 0 # Backtracks HLC Thus, return to GAC 20,000 1 15,000 10,000 5,000 Peak C C A L Depth G H 0 275 1 26 51 76 101 126 151 176 201 226 251 July 18, 2018 IJCAI 2018 6

  7. Empirical Evaluations 2,200 P RE P EAK + APOAC 2,150 GAC 2,100 # Completed Instances 2,050 2,000 1,950 1,900 1,850 Using dom/deg CPU Time [sec] 1,800 0 300 600 900 1,200 1,500 1,800 2,100 2,400 2,700 3,000 3,300 3,600 July 18, 2018 IJCAI 2018 7

  8. Thank You Goal state Posters Demo booths Coffee Exhibition Possible start states Coffee Coffee July 18, 2018 IJCAI 2018 8

  9. Thank You Questions & Comments Please stop by the poster #51 July 18, 2018 IJCAI 2018 9

  10. Visualization of Benefit 35,000 35,000 APOAC GAC CPU Time: 140.81 sec. CPU Time: 23.77 sec. 30,000 30,000 #NV: 3,978,074 #NV: 59,181 # Backtracks #BT: 3,348,330 #BT: 53,212 25,000 25,000 #Calls POAC: 11,142 # Backtracks 20,000 20,000 15,000 15,000 #BTs #BTs 10,000 10,000 5,000 5,000 Depth Depth 0 0 1 26 51 76 101 126 151 176 201 226 251 276 301 326 351 376 1 26 51 76 101 126 151 176 201 226 251 276 301 326 351 376 pseudo-aim-200-1-6-4, dom/wdeg July 18, 2018 IJCAI 2018 10

  11. Visualization of Benefit 35,000 35,000 60 GAC APOAC CPU Time: 140.81 sec. CPU Time: 23.77 sec. 30,000 30,000 #NV: 3,978,074 50 #NV: 59,181 # Backtracks #BT: 3,348,330 #BT: 53,212 25,000 25,000 # Calls to POAC 40 #Calls POAC: 11,142 # Backtracks 20,000 20,000 #BTs 30 15,000 15,000 Filter #BTs No Filter 20 10,000 10,000 Wipeout 10 5,000 5,000 Depth Depth 0 0 0 1 26 51 76 101 126 151 176 201 226 251 276 301 326 351 376 1 26 51 76 101 126 151 176 201 226 251 276 301 326 351 376 pseudo-aim-200-1-6-4, dom/wdeg July 18, 2018 IJCAI 2018 11

  12. Visualization of Benefit 35,000 GAC 35,000 60 35,000 P RE P EAK + 60 APOAC CPU Time: 140.81 sec. CPU Time: 12.06 sec. CPU Time: 23.77 sec. 30,000 30,000 30,000 #NV: 3,978,074 50 #NV: 284,289 50 #NV: 59,181 # Backtracks #BT: 3,348,330 #BT: 238,833 #BT: 53,212 25,000 25,000 25,000 # Calls to POAC # Calls to POAC #Calls POAC: 228 #Calls POAC: 11,142 40 # Backtracks 40 # Backtracks 20,000 20,000 20,000 #BTs 30 #BTs 30 15,000 15,000 15,000 Filter Filter #BTs No Filter No Filter 20 20 10,000 10,000 10,000 Wipeout Wipeout 10 10 5,000 5,000 5,000 Depth Depth Depth 0 0 0 0 0 1 26 51 76 101 126 151 176 201 226 251 276 301 326 351 376 1 26 51 76 101 126 151 176 201 226 251 276 301 326 351 376 1 26 51 76 101 126 151 176 201 226 251 276 301 326 351 376 July 18, 2018 IJCAI 2018 12

  13. P RE P EAK A Reactive Strategy for HLC Keep track of btcount [ ⋅ ] , number of backtrack during search • 1 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 275 – 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 θ bt k +1 ← r w · θ bt k , r w = 1 . 2 − 1 – Wipeout: θ bt k +1 ← r f · θ bt – Filtering: k , r f = 1 . 2 2 – No filtering: θ bt k +1 ← r n · θ bt k , r n = 1 . 2 3 July 18, 2018 IJCAI 2018 13

Recommend


More recommend