Download presentation

Presentation is loading. Please wait.

Published byRiley Everard Modified over 2 years ago

1
Global Constraints Toby Walsh National ICT Australia and University of New South Wales

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
Value precedence ● Global constraint proposed to deal with value symmetry – Hot off the press! – Propagator first described here [ECAI 06] ● Good example of “global” constraint where we can use an efficient encoding – Encoding gives us GAC – Asymptotically optimal, achieve GAC in O(nd) time

4
Value symmetry ● Decision variables: – Col[Italy], Col[France], Col[Austria]... ● Domain of values: – red, yellow, green,... ● Constraints – binary relations like Col[Italy]=/=Col[France] Col[Italy]=/=Col[Austria] …

5
Value symmetry ● Solution: – Col[Italy]=green Col[France]=red Col[Spain]=green … ● Values (colours) are interchangeable: – Swap red with green everywhere will still give us a solution

6
Value symmetry ● Solution: – Col[Italy]=green Col[France]=red Col[Spain]=green … ● Values (colours) are interchangeable: – Col[Italy]=red Col[France]=green Col[Spain]=red …

7
Value precedence ● Old idea – Used in bin-packing and graph colouring algorithms – Only open the next new bin – Only use one new colour ● Applied now to constraint satisfaction

8
Value precedence ● Suppose all values from 1 to m are interchangeable – Might as well let X1=1

9
Value precedence ● Suppose all values from 1 to m are interchangeable – Might as well let X1=1 – For X2, we need only consider two choices ● X2=1 or X2=2

10
Value precedence ● Suppose all values from 1 to m are interchangeable – Might as well let X1=1 – For X2, we need only consider two choices – Suppose we try X2=2

11
Value precedence ● Suppose all values from 1 to m are interchangeable – Might as well let X1=1 – For X2, we need only consider two choices – Suppose we try X2=2 – For X3, we need only consider three choices ● X3=1, X3=2, X3=3

12
Value precedence ● Suppose all values from 1 to m are interchangeable – Might as well let X1=1 – For X2, we need only consider two choices – Suppose we try X2=2 – For X3, we need only consider three choices – Suppose we try X3=2

13
Value precedence ● Suppose all values from 1 to m are interchangeable – Might as well let X1=1 – For X2, we need only consider two choices – Suppose we try X2=2 – For X3, we need only consider three choices – Suppose we try X3=2 – For X4, we need only consider three choices ● X4=1, X4=2, X4=3

14
Value precedence ● Global constraint – Precedence([X1,..Xn]) iff min({i | Xi=j or i=n+1}) < min({i | Xi=k or i=n+2}) for all j

15
Value precedence ● Global constraint – Precedence([X1,..Xn]) iff min({i | Xi=j or i=n+1}) < min({i | Xi=k or i=n+2}) for all j

16
Value precedence ● Global constraint – Precedence([X1,..Xn]) iff min({i | Xi=j or i=n+1}) < min({i | Xi=k or i=n+2}) for all j

17
Value precedence ● Precedence([i,j],[X1,..Xn]) iff min({i | Xi=j or i=n+1}) < min({i | Xi=k or i=n+2}) ● Of course – Precedence([X1,..Xn]) iff Precedence([i,j],[X1,..Xn]) for all i

18
Value precedence ● Precedence([i,j],[X1,..Xn]) iff min({i | Xi=j or i=n+1}) < min({i | Xi=k or i=n+2}) ● Of course – Precedence([X1,..Xn]) iff Precedence([i,j],[X1,..Xn]) for all i

19
Value precedence ● Precedence([i,j],[X1,..Xn]) iff min({i | Xi=j or i=n+1}) < min({i | Xi=k or i=n+2}) ● Of course – Precedence([X1,..Xn]) iff Precedence([i,j],[X1,..Xn]) for all i

20
Puget’s method ● Introduce Zj to record first time we use j ● Add constraints – Xi=j implies Zj <= i – Zj=i implies Xi=j – Zi < Zi+1

21
Puget’s method ● Introduce Zj to record first time we use j ● Add constraints – Xi=j implies Zj < I – Zj=i implies Xi=j – Zi < Zi+1 ● Binary constraints – easy to implement

22
Puget’s method ● Introduce Zj to record first time we use j ● Add constraints – Xi=j implies Zj < I – Zj=i implies Xi=j – Zi < Zi+1 ● Unfortunately hinders propagation – AC on encoding may not give GAC on Precedence([X1,..Xn]) – Consider X1=1, X2 in {1,2}, X3 in {1,3}, X4 in {3,4}, X5=2, X6=3, X7=4

23
Propagating Precedence ● Simple ternary encoding ● Introduce sequence of variables, Yi – Record largest value used so far – Y1=0

24
Propagating Precedence ● Simple ternary encoding ● Post sequence of constraints C(Xi,Yi,Yi+1) for each 1<=i<=n These hold iff Xi<=1+Yi and Yi+1=max(Yi,Xi)

25
Propagating Precedence ● Simple ternary encoding ● Post sequence of constraints ● Easily implemented within most solvers ● Implication and other logical primitives ● GAC-Schema (alias “table” constraint) ● …

26
Propagating Precedence ● Simple ternary encoding ● Post sequence of constraints – C(Xi,Yi,Yi+1) for each 1<=i<=n – This decomposition is Berge-acyclic – Constraints overlap on one variable and form a tree

27
Propagating Precedence ● Simple ternary encoding ● Post sequence of constraints – C(Xi,Yi,Yi+1) for each 1<=i<=n – This decomposition is Berge-acyclic – Constraints overlap on one variable and form a tree – Hence enforcing GAC on the decomposition achieves GAC on Precedence([X1,..Xn]) – Takes O(n) time – Also gives excellent incremental behaviour

28
Propagating Precedence ● Simple ternary encoding ● Post sequence of constraints – C(Xi,Yi,Yi+1) for each 1<=i<=n – These hold iff Xi<=1+Yi and Yi+1=max(Yi,Xi) – Consider Y1=0, X1 in {1,2,3}, X2 in {1,2,3} and X3=3

29
Precedence and matrix symmetry ● Alternatively, could map into 2d matrix – Xij=1 iff Xi=j ● Value precedence now becomes column symmetry – Can lex order columns to break all such symmetry – Alternatively view value precedence as ordering the columns of a matrix model

30
Precedence and matrix symmetry ● Alternatively, could map into 2d matrix – Xij=1 iff Xi=j ● Value precedence now becomes column symmetry ● However, we get less pruning this way – Additional constraint that rows have sum of 1 – Consider, X1=1, X2 in {1,2,3} and X3=1

31
Precedence for set variables ● Social golfers problem – Each foursome can be represented by a set of cardinality 4 – Values (golfers) within this set are interchangeable ● Value precedence can be applied to such set variables – But idea is now conceptually more complex!

32
Precedence for set variables ● We might as well start with X1={1,2,3}

33
Precedence for set variables ● We might as well start with X1={1,2,3,4} ● Now 1, 2, 3 and 4 are still symmetric

34
Precedence for set variables ● We might as well start with X1={1,2,3,4} ● Let’s try X2={2,5,6,7}

35
Precedence for set variables ● We might as well start with X1={1,2,3,4} ● Let’s try X2={2,5,6,7} ● But if we permute 1 with 2 we get – X1’={1,2,3,4} and X2’={1,5,6,7} – And X2’ is lower than X2 in the multiset ordering

36
Precedence for set variables ● We might as well start with X1={1,2,3,4} ● Let’s try X2={1,5,6,7}

37
Precedence for set variables ● We might as well start with X1={1,2,3,4} ● Let’s try X2={1,5,6,7} ● Let’s try X3={1,2,4,5}

38
Precedence for set variables ● We might as well start with X1={1,2,3,4} ● Let’s try X2={1,5,6,7} ● Let’s try X3={1,2,4,5} ● But if we permute 3 with 4 we get – X1’={1,2,3,4}, X2’={1,5,6,7} and X3’={1,2,3,5} – This is again lower in the multiset ordering

39
Precedence for set variables ● We might as well start with X1={1,2,3,4} ● Let’s try X2={1,5,6,7} ● Let’s try X3={1,2,3,5} ● …

40
Precedence for set variables ● Precedence([S1,..Sn]) iff min(i, {i | j in Si & not(k in Si) or i=n+1}) < min(i, {i | k in Si & not(j in Si) or i=n+2}) for all j

41
Precedence for set variables ● Precedence([S1,..Sn]) iff min(i, {i | j in Si & not(k in Si) or i=n+1}) < min(i, {i | k in Si & not(j in Si) or i=n+2}) for all j

42
Precedence for set variables ● Precedence([S1,..Sn]) iff min(i, {i | j in Si & not(k in Si) or i=n+1}) < min(i, {i | k in Si & not(j in Si) or i=n+2}) for all j

43
Precedence for set variables ● Set variables may have cardinality information – E.g. every set variable has 4 values – Solvers often include finite domain variable for the cardinality of a set variable ● If we add such cardinality information, enforcing BC on Precedence([S1,..Sn]) is NP-hard! – More about this in the Complexity lecture

44
Partial value precedence ● Values may partition into equivalence classes ● Values within each equivalence class are interchangeable ● E.g. Shift1=nursePaul, Shift2=nursePeter, Shift3=nurseJane, Shift4=nursePaul..

45
Partial value precedence ● Values may partition into equivalence classes ● Values within each equivalence class are interchangeable ● E.g. Shift1=nursePaul, Shift2=nursePeter, Shift3=nurseJane, Shift4=nursePaul.. If Paul and Jane have the same skills, we might be able to swap them (but not with Peter who is less qualified) Shift1=nurseJane, Shift2=nursePeter, Shift3=nursePaul, Shift4=nurseJane …

46
Partial value precedence ● Values may partition into equivalence classe ● Value precedence easily generalized to cover this case – Within each equivalence class, vi occurs before vj for all i

47
Partial value precedence ● Values may partition into equivalence classe ● Value precedence easily generalized to cover this case – Within each equivalence class, vi occurs before vj for all i

48
Partial value precedence ● Values may partition into equivalence classe ● Value precedence easily generalized to cover this case – Within each equivalence class, vi occurs before vj for all i

49
Partial value precedence ● Values may partition into equivalence classe ● Value precedence easily generalized to cover this case – Within each equivalence class, vi occurs before vj for all i

50
Wreath value precedence ● Variables are assigned pair of values in D1 x D2 ● Values in D1 are interchangeable ● Given a fixed value in D1, values in D2 are interchangeable

51
Wreath value precedence ● Variables are assigned pair of values in D1 x D2 – Values in D1 are interchangeable – Given a fixed value in D1, values in D2 are interchangeable ● For example, – Scheduling a conference – Days of week might be interchangeable – Given a day of week, rooms might then be interchangeable

52
Wreath value precedence ● Variables are assigned pair of values in D1 x D2 – Values in D1 are interchangeable – Given a fixed value in D1, values in D2 are interchangeable ● For example, – Scheduling a conference – Session1=, Session2=, Session3= …

53
Wreath value precedence ● Variables are assigned pair of values in D1 x D2 – Values in D1 are interchangeable – Given a fixed value in D1, values in D2 are interchangeable ● For example, – Scheduling a conference – Session1=, Session2=, Session3= …

54
Wreath value precedence ● Variables are assigned pair of values in D1 x D2 – Values in D1 are interchangeable – Given a fixed value in D1, values in D2 are interchangeable ● Value precedence again generalizes to this case min(i, {Xi[1]=uj or i=n+1}) < min(i, {Xi[1]=uj+1 or i=n+2}) and min(i, {Xi=(uj,vk) or i=n+1}) < min(i, {Xi=(uj,vk+1) or i=n+2})

55
Variable and value precedence ● Value precedence compatible with other symmetry breaking methods – Interchangeable values and lex ordering of rows and columns in a matrix model

56
Variable and value precedence ● Value precedence compatible with other symmetry breaking methods – Interchangeable values and lex ordering of rows and columns in a matrix model – Interchangeable values and variables ● But does not break all symmetry ● Consider [1.2,2] and [1,1,2] ● Use instead IncreasingSeq([X1,…Xn]) ● Values and number of occurrences increase

57
Variable and value precedence ● Value precedence compatible with other symmetry breaking methods – Interchangeable values and lex ordering of rows and columns in a matrix model – Interchangeable values and variables ● But does not break all symmetry ● Consider [1.2,2] and [1,1,2] ● Use instead IncreasingSeq([X1,…Xn]) ● Values and number of occurrences increase – Interchangeable values and rotation symmetry on variables ● But does not break all symmetry: [1,1,2,1,2] and [1,2,1,2,2]

58
Conclusions ● Symmetry of interchangeable values can be broken with value precedence constraints ● Value precedence can be decomposed into ternary constraints – Efficient and effective method to propagate ● Closely related to lex ordering columns – But combines row sum=1 ● Can be generalized in many directions – Partial interchangeability – Set variables – …

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google