Title: Case study 3: orthogonal Latin squares
1Case study 3 orthogonal Latin squares
- Modelled by Barbara Smith
2 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
3Orthogonal 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
4Orthogonal Latin squares
- 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
5History 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
6History of (orthogonal) Latin squares
- Euler conjectured in 1783 that there are no
orthogonal Latin squares of order 4n2 - Constructions exist for 4n and for 2n1
- Took till 1900 to show conjecture for n1
- Took till 1960 to show false for all ngt1
- 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?
7More background
- Lams 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
8A 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
9A 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?
10Symmetry 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?
11Symmetry removal
- Fix first row
- 11 22 33
- Fix first column
- 11
- 23
- 32
- ..
- Eliminates all this symmetry?
12What about a CSP model?
- Exploit large finite domains possible in CSPs
- Reduce number of variables
- O(n4) -gt ?
- 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
13CSP 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 Skl/ i or
Tkl / j - O(n4) loose constraints, little constraint
propagation! - What can we do?
14CSP model
- Introduce auxiliary variables
- Fewer constraints, O(n2)
- Tightens constraint graph gt more propagation
- Pkl in 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
15CSP model v O/1 model
- CSP model
- 3n2 variables
- Domains of size n, n and n2n
- O(n2) constraints
- Large and tight non-binary constraints
- 0/1 model
- n4 variables
- Domains of size 2
- O(n4) constraints
- Loose but linear constraints
- Use IP solver!
16Solving choices for CSP model
- Variables to assign
- Skl and Tkl, or Pkl?
- Variable and value ordering
- How to treat all-different constraint
- GAC using Regins algorithm O(n4)
- AC using the binary decomposition
17Good 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
all-different constraint on Pkl
18Performance
n 0-1 model Fails t/sec CSP model AC Fails t/sec CSP model GAC Fails t/sec
4 4 0.11 2 0.18 2 0.38
5 1950 4.05 295 1.39 190 1.55
6 ? ? 640235 657 442059 773
7 20083 59.8 91687 51.1 57495 66.1
19Dual CSP model
- 4 subscripts in 0/1 model are interchangeable
- Suggests a dual model
- DSij k if the pair (i,j) occurs in row k
- DTij l if the pair (i,j) occurs in the row l
- DPij kn l if the pair (i,j) occurs in row i
col j - Dual constraints to the primal model
20Combined model
- Primal and dual model together
- Channelling constraints to link them
- But new search decisions
- Do we assign both primal and dual variables?
- How do handle dual constraints (AC, GAC )?
-
- Other dualities
- Any choice of 2 subscripts from 4
- Diminishing returns
21Dual performance
N Primal Fails t/sec Dual all vars Fails t/sec Dual primal vars Fails t/sec
4 2 0.38 0 0.29 0 0.046
5 190 1.55 94 0.37 67 0.34
6 442059 773 33868 146 26936 78.5
7 57495 66.1 978 3.8 1529 5.5
22Conclusions
- Many ways to model even simple problems
- Introduce auxiliary variables
- Reduce number of constraints, improve propagation
- Combining models often beneficial
- Channelling constraints link models
- Need to deal with symmetry
- Dont always use GAC on all-different constraints
23General 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
24Case study 4 template design
- Again model due to Barbara Smith
25Introduction
- Prob002 at www.csplib.org
- Problem comes from a printing firm
- Cat food labels that need to be printed using
templates - Several designs (tuna, chicken, ) go on each
template - Different demand for each flavour
- Aside where did cats get the taste for tuna?
26Template design problem
- For Francescas benefit
- How else can I get a cat picture into my talk?
27Basic CSP model
- Assume number of templates is fixed
- Variables
- Pij number of slots on template i for design j
- Ri run length for template i
- Constraints
- Sum_j Pij s, number of slots on each template
- Sum_i Pij Ri gt dj, total production equals
demand
28Basic CSP model
- Optimization problem
- Introduce variable to minimize
- Production Sum_i Ri
- Solved as sequence of decision problems
- Production lt l1, Production lt l2
- l1 set to minimum number of printings with 1
template
29Symmetry
- Does the model have any symmetry?
- If so, how can we eliminate it?
30Symmetry
- The templates are indistinguishable and can be
permuted - Swap all designs on one template with all those
on a second template - Break this symmetry by distinguishing the
templates - R1 lt R2 lt R3
31Symmetry
- Designs j, k with the same demand are
indistinguishable - We can break this symmetry
- P1j,P2j,P3j, ltlex P1k,P2k,P3k,
- Efficient GAC algorithm for lex ordering
constraint
32Sort of symmetry?
- Symmetries can be subtle to spot!
- Consider designs j and j with demand for j less
than for j - Suppose we produce more of j than j
- We could swap j and j and still have solution
- Prevent this with constraint on production
- Sum_i Pij Ri lt Sum_i Pij Ri
33Implied constraints
- We should always look for implied constraints we
can add to model - Encourage constraint propagation
34Implied constraints
- 2 templates
- R1R2 Production
- R1 lt R2
- Hence
- R1 lt Production/2
- R2 gt Production/2
35Implied constraints
- 3 templates
- R1 R2 R3 Production
- R1 lt R2 lt R3
- Hence
- R1 lt Production/3
- R2 lt Production/2
- R3 gt Production/3
36Solving choices
- Variable ordering
- As with Golomb ruler, assign variables to
construct solution systematically - Assign all designs on one template before moving
on to a second template - Encourages constraint propagation on runlength
constraints
37Performance
- Basic model
- Difficult to solve 2 or 3 template problems
- Full model
- Problem solved quickly
- Can solve much larger problems than feasible with
the basic model - Optimality can still be tough!
38Conclusions
- Basic model often obvious
- To refine such a model we need
- Consider dual/combined models
- Symmetries eliminated
- Implied constraints
- Variable ordering heuristics
- Hopefully you can start to see patterns in what
we do!