1 / 30

Non-binary Constraints

Non-binary Constraints. Toby Walsh tw@cs.york.ac.uk. Outline. Definition of non-binary constraints Modeling with non-binary constraints Constraint propagation with non-binary constraints Practical benefits: case study Golomb rulers. Definitions. Binary constraint

gizela
Télécharger la présentation

Non-binary Constraints

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Non-binary Constraints Toby Walsh tw@cs.york.ac.uk

  2. Outline • Definition of non-binary constraints • Modeling with non-binary constraints • Constraint propagation with non-binary constraints • Practical benefits: case study • Golomb rulers

  3. Definitions • Binary constraint • Relation on 2 variables identifying those pairs of values disallowed (nogoods) • E.g. not-equals constraint: X1 #\= X2. • Non-binary constraint • Relation on 3 or more variables identifying tuples of values disallowed • E.g. alldifferent(X1,X2,X3).

  4. Some non-binary examples • Timetabling • Variables: Lecture1. Lecture2, … • Values: time1, time2, … • Constraint that lectures do not conflict: alldifferent(Lecture1,Lecture2,…).

  5. Some non-binary examples • Scheduling • Variables: Job1. Job2, … • Values: machine1, machine2, … • Constraint on number of jobs on each machine: atmost(2,[Job1,Job2,…],machine1), atmost(1,[Job1,Job2,…],machine2).

  6. Why use non-binary constraints? • Binary constraints are NP-complete • Any non-binary constraint can be represented using binary constraints • E.g. alldifferent(X1,X2,X3) is “equivalent” to X1 #\= X2, X1 #\= X3, X2 #\= X3 • In theory therefore they’re not needed • But in practice, they are!

  7. Modeling with non-binary constraints • Benefits include: • Compact, declarative specifications (discussed next) • Efficient constraint propagation (discussed after next section)

  8. Modeling with non-binary constraints • Consider writing your own alldifferent constraint: alldifferent([]). alldifferent([Head|Tail]):- onedifferent(Head,Tail), alldifferent(Tail). onedifferent(El,[]). onedifferent(El,[Head|Tail]):- El #\= Head, onedifferent(El,Tail).

  9. Modeling with non-binary constraints • It’s possible but it’s not very pleasant! • Nor is it very compact • alldifferent([X1,…Xn]) expands into n(n-1)/2 binary not-equals constraints, Xi #\= Xj • one non-binary constraint or O(n^2) binary constraints?

  10. Theoretical comparison • Constraint algorithms: • Tree search (labeling) • Constraint propagation at each node • Binary constraint propagation • Arc-consistency • Non-binary constraint propagation • Generalized arc-consistency

  11. Binary constraint propagation • Arc-consistency (AC) is very popular • A binary constraint r(X1,X2) is AC iff for every value for X1, there is a consistent value (often called support) for X2 and vice versa • We can prune values that are not supported • A problem is AC iff every constraint is AC • AC offers good tradeoff between amount of pruning and computational effort

  12. Binary constraint propagation • X2 #\= X3 is AC • X1 #\= X2 is not AC • X2=1 has no support so can this value can be pruned • X2 #\= X3 is now not AC • No support for X3=2 • This value can also be pruned • Problem is now AC {1} X1 \= {1,2} {2,3} \= X2 X3

  13. Non-binary constraint propagation • generalized arc-consistency (GAC) for non-binary constraints • A non-binary constraint is GAC iff for every value for a variable there are consistent values for all other variables in the constraint • We can prune values that are not supported • GAC = AC on binary constraints

  14. GAC is stronger than AC • Pigeonhole problem • 3 pigeons in 2 holes • Non-binary model • alldifferent(X1,X2,X3) is not GAC • Binary model • X1 #\= X2, X1 #\= X3, X2 #\= X3 are all AC {2,3} X1 \= \= {2,3} {2,3} \= X2 X3

  15. Using GAC within search • Tree search • Instantiate chosen variable with value (label) • Maintain (incrementally enfoce) some level of consistency • Maintaining GAC can be exponentially better than maintaining AC • Construct generalized pigeonhole example on which we’ll explore exponentially fewer nodes

  16. Achieving GAC • By exploiting “semantics” of constraints, we can often enforce GAC efficiently • Consider alldifferent([X1,…Xn]) with each Xi having domain of size m • Generic GAC algorithm runs in O(m^n) • Specialized GAC algorithm for alldifferent runs in O(m^2 n^2) based on network flow

  17. Practical benefits • How do these (theoretical) differences affect you practically? • Case study • Golomb rulers

  18. Golomb rulers • Mark ticks on a ruler • Distance between any two (not necessarily consecutive) ticks is distinct • Applications in radio-astronomy • http://csplib.cs.strath.ac.uk/prob006

  19. Golomb rulers • Simple solution • Exponentially long ruler • Ticks at 0,1,3,7,15,31,63,… • Goal is to find miminal length rulers • turn optimization problem into sequence of satisfaction problems Is there a ruler of length m? Is there a ruler of length m-1? ….

  20. Optimal Golomb rulers • Known for up to 23 ticks • Distributed internet project to find large rulers 0,1 0,1,3 0,1,4,6 0,1,4,9,11 0,1,4,10,12,17 0,1,4,10,18,23,25

  21. Modeling the Golomb ruler • Variable, Xi for each tick • Value is position on ruler • Naïve model with quaternary constraints • For all i,j,k,l |Xi-Xj| \= |Xk-Xl|

  22. Problems with naïve model • Large number of quaternary constraints • O(n^4) constraints • Looseness of quaternary constraints • Many values satisfy |Xi-Xj| \= |Xk-Xl| • Limited pruning

  23. A better non-binary model • Introduce auxiliary variables for inter-tick distances • Dij = |Xi-Xj| • O(n^2) ternary constraints • Post single large non-binary constraint • alldifferent([D11,D12,…]). • Relatively tight!

  24. Other modeling issues • Symmetry • A ruler can always be reversed! • Break this symmetry by adding constraint: D12 < Dn-1,n • Also break symmetry on Xi X1 < X2 < … Xn • Such tricks important in many problems

  25. Other modeling issues • Additional (implied) constraints • Don’t change set of solutions • But may reduce search significantly E.g. D12 < D13, D23 < D24, … • Pure declarative specifications are not enough!

  26. Solving issues • Labeling strategies often very important • Smallest domain often good idea • Focuses on “hardest” part of problem • Best strategy for Golomb ruler is instantiate variables in strict

  27. Experimental results

  28. Something to try at home? • Circular (or modular) Golomb rulers • 2-d Golomb rulers

  29. Conclusions • Benefits of non-binary constraints • Compact, declarative models • Efficient and effective constraint propagation • Supported by many constraint toolkits • alldifferent, atmost, cardinality, …

  30. Conclusions • Modeling decisions: • Auxiliary variables • Implied constraints • Symmetry breaking constraints • More to constraints than just declarative problem specifications!

More Related