1 / 39

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

farica
Download Presentation

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. ROOTS and RANGE • Large catalog of global constraints • but very little taxonomy? • global grammar constraints specify a “family” of useful global constraints • ROOTS and RANGE let us define many counting and occurrence constraints

  4. Counting and Occurrence Constraints • Many (resource bounded) optimization & decision problems contain: • occurrence constraints (on values that occur)

  5. Counting and Occurrence Constraints • Many (resource bounded) optimization & decision problems contain: • occurrence constraints (on values that occur) • E.g. the value “Thur 3-5pm” should occur once in the timetable of any PhD student following the course on global constraints

  6. Counting and Occurrence Constraints • Many (resource bounded) optimization & decision problems contain: • counting constraints (on number of vals or vars satisfying a condition)

  7. Counting and Occurrence Constraints • Many (resource bounded) optimization & decision problems contain: • counting constraints (on number of vals or vars satisfying a condition) • E.g. the value “night shift” can be used by at most 3 variables in any 7!

  8. Using ROOTS and RANGE • Simple, declarative language for specifying many counting & occurrence constraints • two new primitives: • ROOTS and RANGE global constraints • Executable language • propagate primitives • need just to provide propagators within the constraint solver for ROOTS and RANGE

  9. Specification language • Based around properties of functions • consider sequence of vars X1,..,Xn each taking a value in a D • then one view of X1,..,Xn is a function: X:[1,n]->D • For example X1=a, X2=b, X3=a …

  10. Specification language • Based around properties of functions • consider sequence of vars X1,..,Xn each taking a value in a D • then one view of X1,..,Xn is a function: X:[1,n]->D • For example X1=a, X2=b, X3=a … X(1)=a, X(2)=b, X(3)=a …

  11. Specification language • Based around properties of functions • consider sequence of vars X1,..,Xn each taking a value in a D • then one view of X1,..,Xn is a function: X:[1,n]->D • This view is useful for specifying global constraints • NVALUES([X1,..,Xn],N) is equivalent to |RANGE(X)|=N

  12. RANGE constraint • Restricts range of function to a given subset • RANGE([X1,..,Xn],S,T) iff X(S)=T S T [1,n]

  13. RANGE constraint • Restricts range of function to a given subset • RANGE([X1,..,Xn],S,T) iff X(S)=T e.g. RANGE([1,3,1,2,5],{2,4,5},{2,3,5}) S T [1,n]

  14. RANGE constraint • Restricts range of function to a given subset • RANGE([X1,..,Xn],S,T) iff X(S)=T • useful to describe values used (when values are resources) • Some examples • RANGE([X1,..Xn],{1,..n},T) and |T|=N is NValues • RANGE([X1,..Xn],{1,..n},T) and |T|=n is AllDifferent • …

  15. RANGE constraint • RANGE constraint involves both finite-domain variables (X1,..,Xn) and set variables(S,T) • to describe propagation, need to define new type of local consistency • hybrid consistency is a local consistency property for global constraints involving both finite domain and set variables

  16. Hybrid Consistency • Constraint is “hybrid consistent (HC) • for each a in dom(X), there is a support • each a in ub(S) appears in one support • each a in lb(S) appears in all supports • Reduces to GAC on finite domain vars,and BC on set vars

  17. Hybrid Consistency • Constraint is “hybrid consistent (HC) • for each a in dom(X), there is a support • each a in ub(S) appears in one support • each a in lb(S) appears in all supports • Consider RANGE([X1,..X4],S,T) where • X1,X2 in {1,2,5}, X3 in {3,4} and X4 in {1} • {4} subseteq S subseteq {1,2,3,4} • {} subseteq T subseteq {1,2}

  18. RANGE constraint • Restricts range of function to a given subset • RANGE([X1,..,Xn],S,T) iff X(S)=T • Polynomial to make HC • O(nd+nt^3/2) where d=max(dom(Xi)) and t=|lb(T)|

  19. ROOTS constraint • Restricts domain to those mapping to a given subset • ROOTS([X1,..,Xn],S,T) iff S=X-1(T) S T [1,n]

  20. ROOTS constraint • Restricts domain to those mapping to a given subset • ROOTS([X1,..,Xn],S,T) iff S=X-1(T) • E.g. ROOTS([3,1,2,3,0],{1,4,5},{0,3}) S T [1,n]

  21. ROOTS constraint • Restricts domain to those mapping to a given subset • ROOTS([X1,..,Xn],S,T) iff S=X-1(T) • E.g. RANGE([3,1,2,3,0],{1,5},{0,3}) S T [1,n]

  22. ROOTS constraint • Restricts domain to those mapping to a given subset • ROOTS([X1,..,Xn],S,T) iff S=X-1(T) • Useful to describe variables using particular values • An example • ROOTS([X1,..,Xn],S,{d1,..,dm}) & |S|=N is AMONG constraint

  23. ROOTS constraint • Restricts domain to those mapping to a given subset • ROOTS([X1,..,Xn],S,T) iff S=X-1(T) • NP-hard to make HC • but O(nd) when Xi or T are ground (all cases here!)

  24. ROOTS constraint • ROOTS([X1,..,Xn],S,T) iff S=X-1(T) • Reduction from 3SAT in N vars and M clauses • n=N+M • Xi in {i,-i} for 1<=i<=N • Xi = i iff xi is false

  25. ROOTS constraint • ROOTS([X1,..,Xn],S,T) iff S=X-1(T) • Reduction from 3SAT in N vars and M clauses • n=N+M • Xi in {i,-i} for 1<=i<=N • XN+j in {i,-k,l} iff jth clause is (xi or -xk or xl)

  26. ROOTS constraint • ROOTS([X1,..,Xn],S,T) iff S=X-1(T) • Reduction from 3SAT in N vars and M clauses • n=N+M • Xi in {i,-i} for 1<=i<=N • XN+j in {i,-k,l} iff jth clause is (xi or -xk or xl) • {} subseteq T subsetqe Union_i {i, -i}

  27. ROOTS constraint • ROOTS([X1,..,Xn],S,T) iff S=X-1(T) • Reduction from 3SAT in N vars and M clauses • n=N+M • Xi in {i,-i} for 1<=i<=N • XN+j in {i,-k,l} iff jth clause is (xi or -xk or xl) • {} subseteq T subseteq Union_i {i, -i} • S={N+1, … N+M}

  28. Specification language • Equalities and inequalities • X≤ N, X=N, ... • Set constraints • S subseteq T, |S|=N, ... • Two global constraints • ROOTS and RANGE

  29. Some examples • ALLDIFFERENT([X1,..,Xn]) iff RANGE([X1,..,Xn],{1,..,n},T) & |T|=n • unfortunately enforcing HC on decomposition does not make ALLDIFFERENT constraint GAC • E.g. X1, X2 in {1,2}, X3 in {1,2,3,4} • {1,2} subseteq T subseteq {1,2,3,4} • so sometimes worth developing specialized propagators

  30. Some examples • PERMUTATION([X1,..,Xn]) iff RANGE([X1,..,Xn],{1,..,n},{1,..,n}) • special case of ALLDIFFERENT • clearly enforcing HC on “decomposition” makes constraint GAC • so sometimes this specification language is a good way to implement specific global constraints

  31. Some examples • NVALUES([X1,..,Xn,N]) • |{Xi | 1≤i≤n }|=N • RANGE([X1,..,Xn],{1,..,n},T) & |T|=N • enforcing HC on decomposition does not enforce GAC on NVALUES • but this is to be expected as it is NP-hard to do so! • one way (at least) to implement this global constraint

  32. Some examples • AMONG([X1,..,Xn],[d1,..,dm],N) • |{i | Xi=dj }|=N • ROOTS([X1,..,Xn],S,{d1,..,dm}) & |S|=N • enforcing HC on decomposition enforces GAC on AMONG • again example of where specification language is a good way to implement a specific global constraint

  33. Some examples • COMMON(N,M,[X1,..,Xn],[Y1,..,Ym]) • |{i | ∃j . Xi=Yj }|=N and |{j | ∃i . Xi=Yj }|=M RANGE([Y1,..,Ym],{1,..m},T) & ROOTS([X1,..,Xn],S,T) & |S|=N & RANGE([X1,..,Xn],{1,..n},V) & ROOTS([Y1,..,Yn],U,V) & |U|=M

  34. Some examples • COMMON(N,M,[X1,..,Xn],[Y1,..,Ym]) • |{i | ∃j . Xi=Yj }|=N and |{j | ∃i . Xi=Yj }|=M Enforcing HC on decomposition does not enforce GAC on COMMON • but to be expected as NP-hard to do so!

  35. Some examples • LINKSET2BOOLEANS(S,[B1,..Bn]) holds iff Bi=j iff j in S • ROOTS([B1,..Bn],S,{1}) • Decomposition clearly does not hinder propagation • ROOTS is polynomial to enforce HC

  36. Some examples • NOTALLEQUAL([X1,..Xn]) • Nasty large disjunction • RANGE([X1,..Xn],{1,..n},T) & |T|>1

  37. Other examples GCC SYMALLDIFFERENT ELEMENT DOMAIN CONTIGUITY • ... Whilst we can express many such global constraints, not all give effective propagators (e.g. GCC).

  38. Global grammar constraints • Filtering algorithms from finite sized automata/membership of a regular language • How do they compare? • Such approaches are complementary • these automata can specify CONTIGUITY • but not PERMUTATION

  39. Conclusions • Counting and Occurrence constraints can be specified using simple declarative language • needs two new global constraints: ROOTS and RANGE • Efficient and effective means to implement a number of such constraints: • when propagating specification achieves GAC • or constraint is NP-hard to propagate • however, we may still need to design a specialized propagator (e.g. gcc)

More Related