Global Constraints

39
Global Constraints Toby Walsh National ICT Australia and University of New South Wales www.cse.unsw.edu.au/~tw

description

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 - PowerPoint PPT Presentation

Transcript of Global Constraints

Page 1: Global Constraints

Global Constraints

Toby WalshNational ICT Australia and

University of New South Waleswww.cse.unsw.edu.au/~tw

Page 2: Global Constraints

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

Page 3: Global Constraints

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

Page 4: Global Constraints

Counting and Occurrence Constraints

●Many (resource bounded) optimization & decision problems contain:–occurrence constraints (on values that occur)

Page 5: Global Constraints

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

Page 6: Global Constraints

Counting and Occurrence Constraints

●Many (resource bounded) optimization & decision problems contain:–counting constraints (on number of vals or vars satisfying a condition)

Page 7: Global Constraints

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!

Page 8: Global Constraints

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

Page 9: Global Constraints

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 …

Page 10: Global Constraints

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 …

Page 11: Global Constraints

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

Page 12: Global Constraints

RANGE constraint

●Restricts range of function to a given subset–RANGE([X1,..,Xn],S,T) iff X(S)=T

[1,n]

S T

Page 13: Global Constraints

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})

[1,n]

S T

Page 14: Global Constraints

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●…

Page 15: Global Constraints

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

Page 16: Global Constraints

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

Page 17: Global Constraints

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}

Page 18: Global Constraints

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)|

Page 19: Global Constraints

ROOTS constraint

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

[1,n]

S T

Page 20: Global Constraints

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})

[1,n]

S T

Page 21: Global Constraints

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})

[1,n]

S T

Page 22: Global Constraints

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

Page 23: Global Constraints

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!)

Page 24: Global Constraints

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

Page 25: Global Constraints

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)

Page 26: Global Constraints

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}

Page 27: Global Constraints

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}

Page 28: Global Constraints

Specification language

●Equalities and inequalities–X≤ N, X=N, ...●Set constraints–S subseteq T, |S|=N, ...●Two global constraints–ROOTS and RANGE

Page 29: Global Constraints

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

Page 30: Global Constraints

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

Page 31: Global Constraints

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

Page 32: Global Constraints

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

Page 33: Global Constraints

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

Page 34: Global Constraints

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!

Page 35: Global Constraints

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

Page 36: Global Constraints

Some examples

● NOTALLEQUAL([X1,..Xn])

● Nasty large disjunction

● RANGE([X1,..Xn],{1,..n},T) & |T|>1

Page 37: Global Constraints

Other examples

GCCSYMALLDIFFERENTELEMENTDOMAINCONTIGUITY●...

Whilst we can express many such global constraints, not all give effective propagators (e.g. GCC).

Page 38: Global Constraints

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

Page 39: Global Constraints

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)