Download presentation

Presentation is loading. Please wait.

Published byWill Manship Modified over 2 years ago

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

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 – NV ALUES ([X1,..,Xn],N) is equivalent to |R ANGE (X)|=N

12
R ANGE constraint ● Restricts range of function to a given subset – R ANGE ([X1,..,Xn],S,T) iff X(S)=T [1,n] ST

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

14
R ANGE constraint ● Restricts range of function to a given subset – R ANGE ([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
R ANGE 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
R ANGE constraint ● Restricts range of function to a given subset – R ANGE ([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
R OOTS constraint ● Restricts domain to those mapping to a given subset – R OOTS ([X1,..,Xn],S,T) iff S=X -1 (T) [1,n] ST

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

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

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

23
R OOTS constraint ● Restricts domain to those mapping to a given subset – R OOTS ([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
R OOTS constraint ● R OOTS ([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
R OOTS constraint ● R OOTS ([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
R OOTS constraint ● R OOTS ([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
R OOTS constraint ● R OOTS ([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 – R OOTS and R ANGE

29
Some examples ● A LL D IFFERENT ([X1,..,Xn]) iff R ANGE ([X1,..,Xn],{1,..,n},T) & |T|=n – unfortunately enforcing HC on decomposition does not make A LL D IFFERENT 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 ● P ERMUTATION ([X1,..,Xn]) iff R ANGE ([X1,..,Xn],{1,..,n},{1,..,n}) – special case of A LL D IFFERENT – 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 ● NV ALUES ([X1,..,Xn,N]) – |{Xi | 1≤i≤n }|=N – R ANGE ([X1,..,Xn],{1,..,n},T) & |T|=N – enforcing HC on decomposition does not enforce GAC on NV ALUES – 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 ● A MONG ([X1,..,Xn],[d1,..,dm],N) – |{i | Xi=dj }|=N – R OOTS ([X1,..,Xn],S,{d1,..,dm}) & |S|=N – enforcing HC on decomposition enforces GAC on A MONG – again example of where specification language is a good way to implement a specific global constraint

33
Some examples ● C OMMON (N,M,[X1,..,Xn],[Y1,..,Ym]) – |{i | ∃ j. Xi=Yj }|=N and |{j | ∃ i. Xi=Yj }|=M R ANGE ([Y1,..,Ym],{1,..m},T) & R OOTS ([X1,..,Xn],S,T) & |S|=N & R ANGE ([X1,..,Xn],{1,..n},V) & R OOTS ([Y1,..,Yn],U,V) & |U|=M

34
Some examples ● C OMMON (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 C OMMON – 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 G CC S YM A LL D IFFERENT E LEMENT D OMAIN C ONTIGUITY ●... 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 C ONTIGUITY – but not P ERMUTATION

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)

Similar presentations

OK

1 Finite Constraint Domains. 2 u Constraint satisfaction problems (CSP) u A backtracking solver u Node and arc consistency u Bounds consistency u Generalized.

1 Finite Constraint Domains. 2 u Constraint satisfaction problems (CSP) u A backtracking solver u Node and arc consistency u Bounds consistency u Generalized.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on edge detection Module architecture view ppt on iphone Ppt on non verbal communication Ppt on conceptual art books Ppt on role of information technology in agriculture Ppt on fmcg sector in india Ppt on war violence and peace Ppt on pc based industrial automation Ppt on 21st century skills map Ppt on wild animals