Maintaining Generalized Arc Consistency on Ad Hoc r-ary Constraints - PowerPoint PPT Presentation

maintaining generalized arc consistency on ad hoc r ary constraints n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Maintaining Generalized Arc Consistency on Ad Hoc r-ary Constraints PowerPoint Presentation
Download Presentation
Maintaining Generalized Arc Consistency on Ad Hoc r-ary Constraints

play fullscreen
1 / 75
Maintaining Generalized Arc Consistency on Ad Hoc r-ary Constraints
90 Views
Download Presentation
tacey
Download Presentation

Maintaining Generalized Arc Consistency on Ad Hoc r-ary Constraints

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Maintaining Generalized Arc Consistency on Ad Hoc r-ary Constraints Kenil Cheng and Roland Yap School of Computing National University of Singapore

  2. Outline • GAC on an MDD constraint • Implementation of O(1) incrementality • Comparisons & empirical results

  3. Multi-valued decision diagram (MDD) x 2 1 3 y y y 3 2 1 1 2 3 2 z z z 2 1 3

  4. Multi-valued decision diagram (MDD) x 2 1 3 y y y 3 2 1 1 2 3 2 z z z 2 1 3

  5. Outline • GAC on an MDD constraint • Implementation of O(1) incrementality • Comparisons & empirical results

  6. mddc • Fast support checks • Prefix & suffix sharing • Built-in indexing • Depth-first traversal of the MDD • Time complexity is linear to size of MDD

  7. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  8. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y Any support for (z=1)? y MDD z z z

  9. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  10. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y Found a support for (z=1) y MDD z z z

  11. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  12. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  13. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  14. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  15. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  16. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  17. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  18. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  19. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  20. 0 x 2 u 1 x pruned consistent v v x w w w x x x I knew it’s consistent. y y y MDD z z z

  21. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  22. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  23. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  24. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  25. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  26. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  27. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z I knew it. z z

  28. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  29. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  30. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  31. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  32. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  33. 0 x 2 u 1 x pruned consistent v v x w w w x x x y y y MDD z z z

  34. Outline • GAC on an MDD constraint • Implementation of O(1) incrementality • Comparisons & empirical results

  35. Trailing of inconsistent MDD nodes “Is node X pruned?” during search “Prune X.” O(1) “Undo ‘prune X’.” backtracks

  36. Trailing of inconsistent MDD nodes during search stack array T0 “Prune 3.” @ T0 sparse set [BT93]

  37. Trailing of inconsistent MDD nodes during search stack array T0 “Prune 3.” @ T0 sparse set [BT93]

  38. Trailing of inconsistent MDD nodes during search stack array T0 “Is 3 pruned?” “Prune 3.” @ T0 sparse set [BT93]

  39. Trailing of inconsistent MDD nodes during search stack array T0 “Prune 6.” @ T0 sparse set [BT93]

  40. Trailing of inconsistent MDD nodes during search stack array T0 “Prune 6.” @ T0 sparse set [BT93]

  41. Trailing of inconsistent MDD nodes during search stack array T0 T1 “Prune 1.” @ T1 sparse set [BT93]

  42. Trailing of inconsistent MDD nodes during search stack array T0 T1 T2 “Prune 5.” @ T2 sparse set [BT93]

  43. Trailing of inconsistent MDD nodes during search stack array T0 T1 T2 “Backtracks to T0.” sparse set [BT93]

  44. Trailing of inconsistent MDD nodes during search stack array “Is 6 pruned?” T0 “Is 5 pruned?” “Backtracks to T0.” sparse set [BT93]

  45. Outline • GAC on an MDD constraint • Implementation of O(1) incrementality • Comparisons & empirical results

  46. mddc vs state-of-the-art • For structural constraints, up to • r^2timesfaster than binary search [LS06] • dtimesfaster than hologram [LR05] • 2^r times faster than mtrie & nd-list [GJMN07] • N.B. arity (r) and domain size(d) dominate the time complexity O(rd^r) of generic GAC • Empirical comparison is not easy • Ease & quality of implementation • Dependence on other solver components

  47. mddc vs regular (global constraint) sparse set (GeCode) bit vector (GeCode) [CY06] time stamp (GeCode) mimics SICStus Prolog’s case regular (GeCode) [P04] Solving Still-Life Problem using MDD constraints MDD size: Θ(0.9121n x 6.486n)

  48. mddc vs regular (global constraint) • Solving Car Sequencing using MDD constraints (global sequence constraints) • Bottom-up labeling (worst for mddc)  Incrementality is critical

  49. mddc vs regular (global constraint) • Solving Car Sequencing using MDD constraints (global sequence constraints) • Top-down labeling (best for mddc)  Incrementality is implicitly achieved

  50. mddc vs state-of-the-art • For random constraints  worst case for MDDs • Similar to [GJMN07] • Arity: 5, 7, …, 17 • # of variables: (arity+2), (arity+5), …, 30 • Domain size: 2, 3, …, 11 • # of constraints: based on RB model • Looseness: 20%, 50%, 80% • 1000 ≤ # of tuples ≤ 100K  36 ≤ MDD size ≤ 10588 • Time limit: 3 minutes • 5 instances per setting 1747 instances • Implemented in GeCode 2.1.1 Small MDDs Larger, harder benchmarks in paper