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

## Presentation on theme: "Global Constraints Toby Walsh National ICT Australia and University of New South Wales www.cse.unsw.edu.au/~tw."— Presentation transcript:

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

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

Constraint programming ● “Constraint programming represents one of the closest approaches computer science has yet made to the Holy Grail of programming: the user states the problem, the computer solves it”. – Gene Freuder, Constraints, April 1997

My Da Vinci code Sol= [ S,E,N,D, M,O,R,E, M,O,N.E.Y], Sol :: [0..9], S<>0, M<>0. alldifferent(Sol), 1000*S+100*E+10*N+D+ 1000*M+100*O+10*R+E= 10000*M+1000*O+100*N+10*E+Y, label(Sol).

My Da Vinci code Sol= [ S,E,N,D, M,O,R,E, M,O,N.E.Y], Sol :: [0..9], S<>0, M<>0. alldifferent(Sol), 1000*S+100*E+10*N+D+ 1000*M+100*O+10*R+E= 10000*M+1000*O+100*N+10*E+Y, label(Sol). ? Sol = [9,5,8,7,1,0,8,2]

Suduko Puzzle = [X11,X12,X13, …X19, X21,X22, ………X29,.. X91,X92, ……….X99] Puzzle :: 1..9 alldifferent([X11,..X19]) alldifferent([X21,..X29]).. alldifferent([X11,..X91]).. alldifferent([X11,..X33])..

Application areas ● Scheduling ● Timetabling ● Assignment – personnel – stand allocation ● Network configuration ● Configuration ● Bioinformatics ●...

Constraint satisfaction ● Decision variables: – X1, X2, X3... ● Domain of values: – red, yellow, green,... ● Constraints – binary relations like X1=/= X2 – non-binary relations like NValues([X1,..Xn],3)

Constraint optimization ● Many problems are in fact optimization – Maximize profit – Minimize costs –... ● Optimization = sequence of decision problems – Feasibility constraints – Optimization constraint: Sum(i,ai.Xi) <= Cost ● Branch and bound

Solving constraint satisfaction problems ● Systematic methods – Extend partial solutions – Search (branching) and – Inference (enforcing a local consistency) ● Local search methods – Complete solution – Repair based

Solving constraint satisfaction problems ● Systematic methods – Pick a variable and a value to assign it ● Branching heuristic – Enforce a local consistency property ● This prunes values of future uninstantiated variables – If a domain is wiped out, backtrack – Else repeat

Tree search

Branching heuristics ● Variable ordering – most constrained variable, fail first – e.g. smallest domain, domain/degree ● Value ordering – most promising value – succeed first

Arc consistency ● X=a has support iff it occurs in an assignment that satisfies the constraint ● A constraint is arc consistent iff each value in the domain of each variable has support ● Enforce arc consistency by deleting values without support – Exists maximal arc consistent domains ● For non-binary constraints, arc consistency called generalized arc consistency (GAC) or hyper arc consistency

Enforcing arc consistency ● X1, X2 in {red,blue} ● X3 in {red,blue,green} ● X1=/=X2, X1=/=X3, X2=/=X3 ● All three binary inequalities are arc consistent – e.g X3=red has support X1=blue in X1=/=X3

Enforcing arc consistency ● X1, X2 in {red,blue} ● X3 in {red,blue,green} ● AllDifferent(X1,X2,X3) ● Now enforcing GAC on AllDifferent constraint prunes – X3=red and X3=blue – These values have no support! – X3=green has two supports: – X1=red, X2=blue and X1=blue, X2=red

Bound consistency ● Max and min values have supports which lie between max and min values in each domain ● Also used with set variables – Set variable typically represented by – Upper bound = elements that can be in set – Lower bound = elements that must be in set – Equivalently 0/1 vector representing characteristic function ● Bound consistency on characteristic function rep – Upper bound = Union of possible supported values – Lower bound = Intersection of possible supported values

Global constraints Richer modelling Richer solving....

Comparison with Operations Research ● CP – rich modelling language – many different global constraints – variable indexing – fast local inference on these global constraints – good for finding feasible and tightly constrained solutions ● (I)LP – everything has to be a linear inequality – limited range of solution methods (simplex,...) – good at proving optimality

Variable indexing ● OR people jealously look at our ability to index with a variable – Array like “look up” – E.g. sports scheduling ● forall(i in Teams, k i Weeks) Plays[Plays[i,k]]=i – Not possible in ILP – Simple global “element” constraint ● element(X,[a_1,..,a_m],Y) iff a_X = Y

Global constraints ● Any non-binary constraint – AllDifferent – Nvalues – Element – Lex ordering – Stretch constraint – Sequencing constraint – Cummulative constraint –... – Beldiceanu's large catalog ● Each comes with an efficient propagator...

To be or not to be a global constraint? ● [Bessiere and Van Hentenryck CP 03] ● Semantically global – no constraint decomposition ● Operationally global – no constraint decomposition on which we do the same pruning (e.g. GAC on All Different) ● Algorithmically global – complexity disadvantage to use decomposition (e.g. FC on All Different)

Why global constraints? ● Richer modelling – simple models (e.g. variable indexing) – easy to prototype and maintain ● Richer solving – propagators provide “global” view otherwise missing in CP – can making solving competitive with OR methods

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,...

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

Similar presentations