1 / 32

Global Constraints

Toby Walsh National ICT Australia and University of New South Wales www.cse.unsw.edu.au/~tw. Global Constraints . Course outline. Introduction All Different Lex ordering Value precedence Complexity GAC-Schema Soft Global Constraints Global Grammar Constraints Roots Constraint

lsattler
Télécharger la présentation

Global 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. Toby Walsh National ICT Australia and University of New South Wales www.cse.unsw.edu.au/~tw Global Constraints

  2. Course outline • Introduction • All Different • Lex ordering • Value precedence • Complexity • GAC-Schema • Soft Global Constraints • Global Grammar Constraints • Roots Constraint • Range Constraint • Slide Constraint • Global Constraints on Sets

  3. Conclusions • Constraint programming is a powerful paradigm for solving many combinatorial optimization problems • Global constraints are integral to this success • As we shall see, there are many different types of global constraints • However, a few are central like AllDifferent, Roots, Range, Slide, ...

  4. Example application All Different

  5. Golomb ruler s • Mark ticks on a rule • Distance between any two ticks (not just neighbouring) is distinct • Applications • Radio-astronomy • Crystallorgraphy • ... • Prob006 in CSPLib, www.csplib.org

  6. Golomb rulers • Simple solution • Exponentially long ruler • Ticks at 0, 1, 3, 7, 15, 31, ... • Goal is to find minimal length ruler • Sequence of optimization problems • Is there a ruler of length m? • Is there a ruler of length m-1? • ...

  7. Optimal Golomb rulers • Known for up to 23 ticks • Distributed internet project to find larger • 0,1 • 0,1,3 • 0,1,4,6 • 0,1,4,9,11 • 0,1,4,10,12,17 • Solutions grow as approximately O(n^2)

  8. Golomb rulers as CSP • Variable Xi for each tick • Value is position • Auxiliary variable Dij for each inter-tick distance • Dij=|Xi-Xj| • Two (global) constraints • X1<X2<..Xn • AllDifferent(D11,D12,D13,...)

  9. Golomb ruler as CSP • Not yet achieved “dream” of declarative programming • Need to break symmetry of inverting ruler • D12< Dn-1n • Add implied constraints • D12<D13 ... • Pure declarative specifications not quite enough!

  10. AllDifferent • AllDifferent([X1,..Xn]) iff Xi=/=Xj for i<j • Useful in wide range of applications • Timetabling (exams with common student must occur at different times) • Production (each product must be produced at a different time) • ... • Can propagate just using binary inequalities • But this decomposition hurts propagation

  11. AllDifferent • AllDifferent([X1,..Xn]) iff Xi=/=Xj for i<j • Can propagate just using binary inequalities • But this decomposition hurts propagation • X1 in {1,2}, X2 in {1,2}, X3 in {1,2,3} • X1 and X2 consume between them 2 values • X3 cannot therefore use either of these values • Therefore we can prune X3=1 and X3=2 leaving just X3=3 • How can we automate such reasoning? • How can we do this efficiently (< O(n^2))

  12. AllDifferent • One of the oldest global constraints • In ALICE language [Lauriere 78] • Found in every constraint solver today • GAC algorithm based on matching theory due to Regin [AAAI 94], runs in O(dn^3/2) • BC algorithm using combinatorics due to Puget [AAAI98], runs in O(nlogn)

  13. BC on AllDifferent • Application of Hall's Theorem • Sometimes called the “marriage” theorem • Given k sets • Then there is an unique and distinct element in each set iff any union of j of the sets has at least j elements for 0<j<=k • E.g. S1={1,2}, S2={1,2} but not S1={1,2},S2={1,2} and S3={1,2}

  14. Hall's theorem • You wish to marry n men and women • Each woman declares who they are willing to marry (some set of men) • Each man will be “happy” with whoever is willing to marry them • Clearly any subset of j women, the number of men they are willing to marry must be j or more (thus this condition is necessary) • What is surprising is that it is also sufficient!

  15. BC on AllDifferent • Hall Interval • Interval of values in which as many variables as domain values • E.g. X1 in {1,2,3}, X2 in {1,2}, X3 in {1,2,3} • 3 variables in the interval [1..3] • AllDifferent([X1,..Xn]) is BC iff • Each interval, the number of vars it covers is less than the width of the interval • No variable outside a Hall Interval has a value within it

  16. BC on AllDifferent • Consider X1 in {1,2}, X2 in {1,2}, X3 in {1,2,3}

  17. BC on AllDifferent • Consider X1 in {1,2}, X2 in {1,2}, X3 in {1,2,3} • Then [1..2] is a Hall Interval covered by X1 and X2 • X3 has values inside this Hall Interval • We can prune these and make AllDifferent BC

  18. BC on AllDifferent • Naïve algorithm considers O(n^2) intervals • Puget orders intervals • Ordering has O(nlogn) cost • Then can go through them in order

  19. GAC on AllDifferent • GAC algorithm based on matching theory due to Regin [AAAI 94] • runs in O(dn^3/2) • Matching = set of edges with no two edges having a node in common • Maximal matching = largest possible matching • Value graph = bipartite graph between variables and their possible values

  20. GAC on AllDifferent • Consider X1 in {1,3}, X2 in {1,3} and X3 in {1,2}

  21. GAC on AllDifferent • Consider X1 in {1,3}, X2 in {1,3} and X3 in {1,2} X1 X2 X3 1 2 3

  22. GAC on AllDifferent • Consider X1 in {1,3}, X2 in {1,3} and X3 in {1,2} X1 X2 X3 1 2 3

  23. GAC on AllDifferent • Consider X1 in {1,3}, X2 in {1,3} and X3 in {1,2} X1 X2 X3 1 2 3

  24. GAC on AllDifferent • Consider X1 in {1,3}, X2 in {1,3} and X3 in {1,2} X1 X2 X3 1 2 3

  25. GAC on AllDifferent • Consider X1 in {1,3}, X2 in {1,3} and X3 in {2} X1 X2 X3 1 2 3

  26. GAC on AllDifferent • How do we find edges that don't belong to any maximum matching? • Find one maximum matching • Identify strongly connected components • Prune other edges • Dominate cost is that of finding maximum matching • Augmenting path algorithm of Hopcroft and Karp

  27. Beyond AllDifferent • Symmetric AllDifferent • Xi=j iff Xj=i • Useful in sports scheduling • Team1 plays 2 iff Team2 plays 1 • GAC can be enforced in O(nm) time • Again based on maximum matching but now in non-bipartite graph

  28. Beyond AllDifferent • Soft AllDifferent • Relax constraint that all values are different • Introduce “cost” variable • Number of variables that need to change value to make it all different • Number of binary inequalities not satisfied

  29. Beyond AllDifferent • NValues([X1,...,Xn],M) iff |{j | Xi=j}|=M • AllDifferent is special case when M=n • Useful when values represent a resource • Minimize the number of resources used

  30. Beyond AllDifferent • Global cardinality constraint • GCC([X1,..Xn],[a1,..am],[b1,...bm]) iff aj <= |{i | Xi=j }| <= bj for all j • In other words, j occurs between aj and bj times • Again useful when values represent a resource • You have at least one night shift but no more than four each week

  31. Propagating GCC • Regin gives O(n^2d) flow based algorithm for achieving GAC [AAAI 96] • Improved recently to O(n^3/2 d) using matching theory • We'll come back to a similar flow based propagator for the RANGE constraint

  32. Conclusions • AllDifferent is one of the oldest (and most useful) global constraints • Efficient propagators exist for achieving GAC and BC • When to choose BC over GAC? • Heuristic choice: BC often best when many more values than variables, GAC when we are close to a permutation (number of vars=number of values)

More Related