Please copy and paste this embed script to where you want to embed

Logic & AR Summer School, 2002

Constraints and Search

Toby Walsh Cork Constraint Computation Centre (4C) [email protected]

Constraint satisfaction • Constraint satisfaction problem (CSP) is a triple where: – V is set of variables – Each X in V has set of values, D_X • Usually assume finite domain • {true,false}, {red,blue,green}, [0,10], …

– C is set of constraints Goal: find assignment of values to variables to satisfy all the constraints

Constraint solver • Tree search – Assign value to variable – Deduce values that must be removed from future/unassigned variables • Constraint propagation

– If any future variable has no values, backtrack else repeat

• Number of choices – Variable to assign next, value to assign

Some important refinements like nogood learning, non-chronological backtracking, …

Constraint propagation • Enfrocing arc-consistency (AC) – A binary constraint r(X1,X2) is AC iff for every value for X1, there is a consistent value (often called support) for X2 and vice versa

E.g. With 0/1 domains and the constraint X1 =/= X2 Value 0 for X1 is supported by value 1 for X2 Value 1 for X1 is supported by value 0 for X2 …

– A problem is AC iff every constraint is AC

Tree search • • • • •

Backtracking (BT) Forward checking (FC) Maintaining arc-consistency (MAC) Limited discrepany search (LDS) Non-chronological backtracking & learning

Modelling case study: orthogonal Latin squares Or constraint programming isn’t purely declarative!

Modelling decisions • Many different ways to model even simple problems – It’s not pure declarative programming!

• Combining models can be effective – Channel between models

• Need additional constraints – Symmetry breaking – Implied (but logically) redundant

Orthogonal Latin squares • Find a pair of Latin squares – Every cell has a different pair of elements

• Generalized form: – Find a set of m Latin squares – Each possible pair is orthogonal

Orthogonal Latin squares 1234 2143 3412 4321 11 23 34 42

22 14 43 31

1234 3412 4321 2143 33 41 12 24

44 32 21 13

• Two 4 by 4 Latin squares

• No pair is repeated

History of (orthogonal) Latin squares • Introduced by Euler in 1783 – Also called Graeco-Latin or Euler squares

• No orthogonal Latin square of order 2 – There are only 2 (non)-isomorphic Latin squares of order 2 and they are not orthogonal

History of (orthogonal) Latin squares • Euler conjectured in 1783 that there are no orthogonal Latin squares of order 4n+2 – Constructions exist for 4n and for 2n+1 – Took till 1900 to show conjecture for n=1 – Took till 1960 to show false for all n>1

• 6 by 6 problem also known as the 36 officer problem “… Can a delegation of six regiments, each of which sends a colonel, a lieutenant-colonel, a major, a captain, a lieutenant, and a sublieutenant be arranged in a regular 6 by 6 array such that no row or column duplicates a rank or a regiment?”

More background • Lam’s problem – Existence of finite projective plane of order 10 – Equivalent to set of 9 mutually orthogonal Latin squares of order 10 – In 1989, this was shown not to be possible after 2000 hours on a Cray (and some major maths)

• Orthogonal Latin squares are used in experimental design – To ensure no dependency between independent variables

A simple 0/1 model • Suitable for integer programming – Xijkl = 1 if pair (i,j) is in row k column l, 0 otherwise – Avoiding advice never to use more than 3 subscripts!

• Constraints – Each row contains one number in each square Sum_jl Xijkl = 1

Sum_il Xijkl = 1

– Each col contains one number in each square Sum_jk Xijkl = 1

Sum_ik Xijkl = 1

A simple 0/1 model • Additional constraints – Every pair of numbers occurs exactly once Sum_kl Xijkl = 1

– Every cell contains exactly one pair of numbers Sum_ij Xijkl = 1

Is there any symmetry?

Symmetry removal • Important for solving CSPs – Especially for proofs of optimality?

• Orthogonal Latin square has lots of symmetry – Permute the rows – Permute the cols – Permute the numbers 1 to n in each square

• How can we eliminate such symmetry?

Symmetry removal • Fix first row 11 22 33 …

• Fix first column 11 23 32 ..

• Eliminates all this symmetry?

What about a CSP model? • Exploit large finite domains possible in CSPs – Reduce number of variables – O(n^4) -> ?

• Exploit non-binary constraints – Problem states that squares contain pairs that are all different – All-different is a non-binary constraint our solvers can reason with efficiently

CSP model • 2 sets of variables – Skl = i if the 1st element in row k col l is i – Tkl = j if the 2nd element in row k col l is j

• How do we specify all pairs are different? – All distinct (k,l), (k’,l’) if Skl = i and Tkl = j then Sk’l’=/ i or Tk’l’ =/ j O(n^4) loose constraints, little constraint propagation! What can we do?

CSP model • Introduce auxiliary variables – Fewer constraints, O(n^2) – Tightens constraint graph => more propagation – Pkl = i*n + j if row k col l contains the pair i,j

• Constraints – 2n all-different constraints on Skl, and on Tkl – All-different constraint on Pkl – Channelling constraint to link Pkl to Skl and Tkl

CSP model v O/1 model • CSP model – 3n^2 variables – Domains of size n, n and n^2+n – O(n^2) constraints – Large and tight nonbinary constraints

• 0/1 model – – – –

n^4 variables Domains of size 2 O(n^4) constraints Loose but linear constraints • Use IP solver!

Solving choices for CSP model • Variables to assign – Skl and Tkl, or Pkl?

• Variable and value ordering • How to treat all-different constraint – GAC using Regin’s algorithm O(n^4) – AC using the binary decomposition

Good choices for the CSP model • Experience and small instances suggest: – Assign the Skl and Tkl variables – Choose variable to assign with Fail First (smallest domain) heuristic • Break ties by alternating between Skl and Tkl

– Use GAC on all-different constraints for Skl and Tkl – Use AC on binary decomposition of large alldifferent constraint on Pkl

Performance n

4

0-1 model CSP model Fails t/sec AC Fails t/sec 4 0.11 2 0.18

CSP model GAC Fails t/sec 2 0.38

5

1950

4.05 295

6

?

?

7*

20083 59.8 91687 51.1 57495 66.1

1.39 190

1.55

640235 657 442059 773

General methodology? • Choose a basic model • Consider auxiliary variables – To reduce number of constraints, improve propagation

• Consider combined models – Channel between views

• Break symmetries • Add implied constraints – To improve propagation

2ns case study: Langford’s problem

Langford’s problem • Prob024 @ www.csplib.org • Find a sequence of 8 numbers – Each number [1,4] occurs twice – Two occurrences of i are i numbers apart

• Unique solution – 41312432

Langford’s problem • L(k,n) problem – To find a sequence of k*n numbers [1,n] – Each of the k successive occrrences of i are i apart – We just saw L(2,4)

• Due to the mathematician Dudley Langford – Watched his son build a tower which solved L(2,3)

Langford’s problem • L(2,3) and L(2,4) have unique solutions • L(2,4n) and L(2,4n-1) have solutions – L(2,4n-2) and L(2,4n-3) do not – Computing all solutions of L(2,19) took 2.5 years!

• L(3,n) – No solutions: 0

View more...
Constraints and Search

Toby Walsh Cork Constraint Computation Centre (4C) [email protected]

Constraint satisfaction • Constraint satisfaction problem (CSP) is a triple where: – V is set of variables – Each X in V has set of values, D_X • Usually assume finite domain • {true,false}, {red,blue,green}, [0,10], …

– C is set of constraints Goal: find assignment of values to variables to satisfy all the constraints

Constraint solver • Tree search – Assign value to variable – Deduce values that must be removed from future/unassigned variables • Constraint propagation

– If any future variable has no values, backtrack else repeat

• Number of choices – Variable to assign next, value to assign

Some important refinements like nogood learning, non-chronological backtracking, …

Constraint propagation • Enfrocing arc-consistency (AC) – A binary constraint r(X1,X2) is AC iff for every value for X1, there is a consistent value (often called support) for X2 and vice versa

E.g. With 0/1 domains and the constraint X1 =/= X2 Value 0 for X1 is supported by value 1 for X2 Value 1 for X1 is supported by value 0 for X2 …

– A problem is AC iff every constraint is AC

Tree search • • • • •

Backtracking (BT) Forward checking (FC) Maintaining arc-consistency (MAC) Limited discrepany search (LDS) Non-chronological backtracking & learning

Modelling case study: orthogonal Latin squares Or constraint programming isn’t purely declarative!

Modelling decisions • Many different ways to model even simple problems – It’s not pure declarative programming!

• Combining models can be effective – Channel between models

• Need additional constraints – Symmetry breaking – Implied (but logically) redundant

Orthogonal Latin squares • Find a pair of Latin squares – Every cell has a different pair of elements

• Generalized form: – Find a set of m Latin squares – Each possible pair is orthogonal

Orthogonal Latin squares 1234 2143 3412 4321 11 23 34 42

22 14 43 31

1234 3412 4321 2143 33 41 12 24

44 32 21 13

• Two 4 by 4 Latin squares

• No pair is repeated

History of (orthogonal) Latin squares • Introduced by Euler in 1783 – Also called Graeco-Latin or Euler squares

• No orthogonal Latin square of order 2 – There are only 2 (non)-isomorphic Latin squares of order 2 and they are not orthogonal

History of (orthogonal) Latin squares • Euler conjectured in 1783 that there are no orthogonal Latin squares of order 4n+2 – Constructions exist for 4n and for 2n+1 – Took till 1900 to show conjecture for n=1 – Took till 1960 to show false for all n>1

• 6 by 6 problem also known as the 36 officer problem “… Can a delegation of six regiments, each of which sends a colonel, a lieutenant-colonel, a major, a captain, a lieutenant, and a sublieutenant be arranged in a regular 6 by 6 array such that no row or column duplicates a rank or a regiment?”

More background • Lam’s problem – Existence of finite projective plane of order 10 – Equivalent to set of 9 mutually orthogonal Latin squares of order 10 – In 1989, this was shown not to be possible after 2000 hours on a Cray (and some major maths)

• Orthogonal Latin squares are used in experimental design – To ensure no dependency between independent variables

A simple 0/1 model • Suitable for integer programming – Xijkl = 1 if pair (i,j) is in row k column l, 0 otherwise – Avoiding advice never to use more than 3 subscripts!

• Constraints – Each row contains one number in each square Sum_jl Xijkl = 1

Sum_il Xijkl = 1

– Each col contains one number in each square Sum_jk Xijkl = 1

Sum_ik Xijkl = 1

A simple 0/1 model • Additional constraints – Every pair of numbers occurs exactly once Sum_kl Xijkl = 1

– Every cell contains exactly one pair of numbers Sum_ij Xijkl = 1

Is there any symmetry?

Symmetry removal • Important for solving CSPs – Especially for proofs of optimality?

• Orthogonal Latin square has lots of symmetry – Permute the rows – Permute the cols – Permute the numbers 1 to n in each square

• How can we eliminate such symmetry?

Symmetry removal • Fix first row 11 22 33 …

• Fix first column 11 23 32 ..

• Eliminates all this symmetry?

What about a CSP model? • Exploit large finite domains possible in CSPs – Reduce number of variables – O(n^4) -> ?

• Exploit non-binary constraints – Problem states that squares contain pairs that are all different – All-different is a non-binary constraint our solvers can reason with efficiently

CSP model • 2 sets of variables – Skl = i if the 1st element in row k col l is i – Tkl = j if the 2nd element in row k col l is j

• How do we specify all pairs are different? – All distinct (k,l), (k’,l’) if Skl = i and Tkl = j then Sk’l’=/ i or Tk’l’ =/ j O(n^4) loose constraints, little constraint propagation! What can we do?

CSP model • Introduce auxiliary variables – Fewer constraints, O(n^2) – Tightens constraint graph => more propagation – Pkl = i*n + j if row k col l contains the pair i,j

• Constraints – 2n all-different constraints on Skl, and on Tkl – All-different constraint on Pkl – Channelling constraint to link Pkl to Skl and Tkl

CSP model v O/1 model • CSP model – 3n^2 variables – Domains of size n, n and n^2+n – O(n^2) constraints – Large and tight nonbinary constraints

• 0/1 model – – – –

n^4 variables Domains of size 2 O(n^4) constraints Loose but linear constraints • Use IP solver!

Solving choices for CSP model • Variables to assign – Skl and Tkl, or Pkl?

• Variable and value ordering • How to treat all-different constraint – GAC using Regin’s algorithm O(n^4) – AC using the binary decomposition

Good choices for the CSP model • Experience and small instances suggest: – Assign the Skl and Tkl variables – Choose variable to assign with Fail First (smallest domain) heuristic • Break ties by alternating between Skl and Tkl

– Use GAC on all-different constraints for Skl and Tkl – Use AC on binary decomposition of large alldifferent constraint on Pkl

Performance n

4

0-1 model CSP model Fails t/sec AC Fails t/sec 4 0.11 2 0.18

CSP model GAC Fails t/sec 2 0.38

5

1950

4.05 295

6

?

?

7*

20083 59.8 91687 51.1 57495 66.1

1.39 190

1.55

640235 657 442059 773

General methodology? • Choose a basic model • Consider auxiliary variables – To reduce number of constraints, improve propagation

• Consider combined models – Channel between views

• Break symmetries • Add implied constraints – To improve propagation

2ns case study: Langford’s problem

Langford’s problem • Prob024 @ www.csplib.org • Find a sequence of 8 numbers – Each number [1,4] occurs twice – Two occurrences of i are i numbers apart

• Unique solution – 41312432

Langford’s problem • L(k,n) problem – To find a sequence of k*n numbers [1,n] – Each of the k successive occrrences of i are i apart – We just saw L(2,4)

• Due to the mathematician Dudley Langford – Watched his son build a tower which solved L(2,3)

Langford’s problem • L(2,3) and L(2,4) have unique solutions • L(2,4n) and L(2,4n-1) have solutions – L(2,4n-2) and L(2,4n-3) do not – Computing all solutions of L(2,19) took 2.5 years!

• L(3,n) – No solutions: 0