840 likes | 1.04k Views
Constraint Programming: modelling. Toby Walsh NICTA and UNSW. Golomb rulers. Mark ticks on a ruler Distance between any two ticks (not just neighbouring ticks) is distinct Applications in radio-astronomy, cystallography, … http://www.csplib.org/prob/prob006. Golomb rulers. Simple solution
E N D
Constraint Programming: modelling Toby Walsh NICTA and UNSW
Golomb rulers • Mark ticks on a ruler • Distance between any two ticks (not just neighbouring ticks) is distinct • Applications in radio-astronomy, cystallography, … • http://www.csplib.org/prob/prob006
Golomb rulers • Simple solution • Exponentially long ruler • Ticks at 0,1,3,7,15,31,63,… • Goal is to find minimal length rulers • turn optimization problem into sequence of satisfaction problems Is there a ruler of length m? Is there a ruler of length m-1? ….
Optimal Golomb rulers • Known for up to 23 ticks • Distributed internet project to find large rulers 0,1 0,1,3 0,1,4,6 0,1,4,9,11 0,1,4,10,12,17 0,1,4,10,18,23,25 Solutions grow as approximately O(n^2)
Modelling the Golomb ruler • Variable, Xi for each tick • Value is position on ruler • Naïve model with quaternary constraints • For all i>j,k>l>j |Xi-Xj| \= |Xk-Xl|
Problems with naïve model • Large number of quaternary constraints • O(n^4) constraints • Looseness of quaternary constraints • Many values satisfy |Xi-Xj| \= |Xk-Xl| • Limited pruning
A better non-binary model • Introduce auxiliary variables for inter-tick distances • Dij = |Xi-Xj| • O(n^2) ternary constraints • Post single large non-binary constraint • alldifferent([D11,D12,…]). • Tighter constraints and denser constraint graph
Other modeling issues • Symmetry • A ruler can always be reversed! • Break this symmetry by adding constraint: D12 < Dn-1,n • Also break symmetry on Xi X1 < X2 < … Xn • Such tricks important in many problems
Other modelling issues • Additional (implied) constraints • Don’t change set of solutions • But may reduce search significantly E.g. D12 < D13, D23 < D24, … E.g. D1k at least sum of first k integers • Pure declarative specifications are not enough!
Solving issues • Labeling strategies often very important • Smallest domain often good idea • Focuses on “hardest” part of problem • Best strategy for Golomb ruler is instantiate variables in strict order • Heuristics like fail-first (smallest domain) not effective on this problem!
Something to try at home? • Circular (or modular) Golomb rulers • Inter-tick distance variables more central, removing rotational symmetry? • 2-d Golomb rulers All examples of “graceful” graphs
Summary • Modelling decisions: • Auxiliary variables • Implied constraints • Symmetry breaking constraints • More to constraints than just declarative problem specifications!
All interval series • Prob007 at www.csplib.org • Comes from musical composition • Traced back to Alban Berg • Extensively used by Ernst Krenek Op.170 “Quaestio temporis”
All interval series • Take the 12 standard pitch classes • c, c#, d, .. • Represent them by numbers 0, .., 11 • Find a sequence so each occurs once • Each difference occurs once
All interval series • Can generalize to any n (not just 12) Find Sn, a permutation of [0,n) such that |Sn+1-Sn| are all distinct • Finding one solution is easy
All interval series • Can generalize to any n (not just 12) Find Sn, a permutation of [0,n) such that |Sn+1-Sn| are all distinct • Finding one solution is easy [n,1,n-1,2,n-2,.., floor(n/2)+2,floor(n/2)-1,floor(n/2)+1,floor(n/2)] Giving the differences [n-1,n-2,..,2,1] Challenge is to find all solutions!
Basic methodology • Devise basic CSP model • What are the variables? What are the constraints? • Introduce auxiliary variables if needed • Consider dual or combined models • Break symmetry • Introduce implied constraints
Basic CSP model • What are the variables?
Basic CSP model • What are the variables? Si = j if the ith note is j • What are the constraints?
Basic CSP model • What are the variables? Si = j if the ith note is j • What are the constraints? Si in [0,n) All-different([S1,S2,… Sn]) Forall i<i’ |Si+1 - Si| =/ |Si’+1 - Si’| Will this model be any good? If so, why? If not, why not?
Basic methodology • Devise basic CSP model • What are the variables? What are the constraints? • Introduce auxiliary variables if needed • Consider dual or combined models • Break symmetry • Introduce implied constraints
Improving basic CSP model • Is it worth introducing any auxiliary variables? • Are there any loose or messy constraints we could better (more compactly?) express via some auxiliary variables?
Improving basic CSP model • Is it worth introducing any auxiliary variables? • Yes, variables for the pairwise differences Di = |Si+1 - Si| • Now post single large all-different constraint Di in [1,n-1] All-different([D1,D2,…Dn-1])
Basic methodology • Devise basic CSP model • What are the variables? What are the constraints? • Introduce auxiliary variables if needed • Consider dual or combined models • Break symmetry • Introduce implied constraints
Break symmetry • Does the problem have any symmetry?
Break symmetry • Does the problem have any symmetry? • Yes, we can reverse any sequence S1, S2, … Sn is an all-inverse series Sn, …, S2, S1 is also • How do we eliminate this symmetry?
Break symmetry • Does the problem have any symmetry? • Yes, we can reverse any sequence S1, S2, …, Sn is an all-inverse series Sn, …, S2, S1 is also • How do we eliminate this symmetry? • As with Golomb ruler! D1 < Dn-1
Break symmetry • Does the problem have any other symmetry?
Break symmetry • Does the problem have any other symmetry? • Yes, we can invert the numbers in any sequence 0, n-1, 1, n-2, … map x onto n-1-x n-1, 0, n-2, 1, … • How do we eliminate this symmetry?
Break symmetry • Does the problem have any other symmetry? • Yes, we can invert the numbers in any sequence 0, n-1, 1, n-2, … map x onto n-1-x n-1, 0, n-2, 1, … • How do we eliminate this symmetry? S1 < S2
Basic methodology • Devise basic CSP model • What are the variables? What are the constraints? • Introduce auxiliary variables if needed • Consider dual or combined models • Break symmetry • Introduce implied constraints
Implied constraints • Are there useful implied constraints to add?
Implied constraints • Are there useful implied constraints to add? • Hmm, unlike Golomb ruler, we only have neighbouring differences • So, no need to consider transitive closure
Implied constraints • Are there useful implied constraints to add? • Hmm, unlike Golomb ruler, we are not optimizing • So, no need to improve propagation for optimization variable
Performance • Basic model is poor • Refined model able to compute all solutions up to n=14 or so • GAC on all-different constraints very beneficial • As is enforcing GAC on Di = |Si+1-Si| This becomes too expensive for large n So use just bounds consistency (BC) for larger n
Modelling decisions • Many different ways to model even simple problems • Combining models can be effective • Channel between models • Need additional constraints • Symmetry breaking • Implied (but logically) redundant
Latin square • Each colour appears once on each row • Each colour appears once on each column • Used in experimental design • Six people • Six one-week drug trials
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
1 2 3 4 1 2 3 4 2 1 4 3 3 4 1 2 3 4 1 2 4 3 2 1 4 3 2 1 2 1 4 3 11 22 33 44 23 14 41 32 34 43 12 21 42 31 24 13 Two 4 by 4 Latin squares No pair is repeated Orthogonal Latin squares
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 sub-lieutenant 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 also used in experimental design
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 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