Download presentation

Presentation is loading. Please wait.

Published byHallie Engram Modified over 4 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
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
All Different Example application

5
Golomb rulers ● 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 123123

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

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

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

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

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)

Similar presentations

Presentation is loading. Please wait....

OK

Hash Tables.

Hash Tables.

© 2018 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google