Computational Constructions of Combinatorial Structures Peter Gibbons Department of Computer Science University of Auckland New Zealand [email protected].
Download ReportTranscript Computational Constructions of Combinatorial Structures Peter Gibbons Department of Computer Science University of Auckland New Zealand [email protected].
Computational Constructions of Combinatorial Structures
Peter Gibbons
Department of Computer Science University of Auckland New Zealand [email protected]
Introduction • Important contributions over past 30 years • Settled many existence and enumeration questions • Improved understanding of combinatorial structures • Formed basis for numerous “mathematical” results • More powerful / innovative techniques still being developed
Introduction • Tutorial, not research update • Limited set of examples, to illustrate concepts • Exhaustive and non-exhaustive techniques • Reading material: Gibbons & Ostergard, “Computational methods in design theory”, VII.5, CRC Handbook of Combinatorial Designs (2006).
Kaski & Ostergard, “Classification algorithms for codes and designs”, Springer (2006) Kreher & Stinson, “Combinatorial algorithms: Generation, enumeration, and search”, CRC Press (1999).
Denny, “Search and enumeration techniques for incidence structures”, MSc thesis, U. of Auckland, 1998. Available as Research Report 85 (1998) at http://www.cs.auckland.ac.nz/CDMTCS .
Denny & Gibbons, “Case studies and new results in combinatorial enumeration”, JCD 8 (2000), 239-260.
Cohen, “Designing test suites for software interaction testing”, PhD thesis, U. of Auckland (2004).
Cohen, Colbourn, Gibbons, Mugridge, “Constructing test suites for interaction testing”, Proc. ICSE (May 2003), 38-48.
• Backtracking • Hill climbing • Simulated annealing • Ingredients • Validity of search results • Related techniques Topics
Backtracking • builds up feasible solutions step-by
-
step • reject “unpromising” partial feasible solutions • represent process by
search tree
Incidence structures TTS(9) 1 2 012345678901234567890123 0: 111111110000000000000000 1: 110000001111110000000000 2: 110000000000001111110000 3: 001100001100001100001100 4: 001100000011000011000011 5: 000011001100000000110011 6: 000010100000111010001010 7: 000000110011000000111100 8: 000001010000110101000101
2-level backtrack TTS(9) 1 2 01 23 4567 89 01 23 45 6789 01 23 0: 11 11 1111 00 00 00 00 0000 00 00 1: 11 00 0000 11 11 11 00 0000 00 00 2: 11 00 0000 00 00 00 11 1111 00 00 3: 00 11 0000 11 00 00 11 0000 11 00 4: 00 11 0000 00 11 00 00 1100 00 11 5: -------------------------------- 6: -------------------------------- 7: -------------------------------- 8: ---------------------------------
Results - distinct designs 465 TTS(7) designs Block-by-block Point-by-point Extend iterations
7,264 607
Backtrack iterations
78,123 3,552
r v-1 0 0 Look ahead b-1 Packing constraint
v-1 r 0 0 Q r Isomorph rejection b-1 < 0 0 r P r b-1 v-1
Partial isomorph rejection 0 0 b-1 P r r G r v-1
Partial isomorph rejection v-1 r 0 0 P r (row[r+1]) b-1 r
<
0 0 v-1 P r row[r+1] b-1
Partial isomorph rejection 0 0 q+1 r P q (row[r+1]) b-1
<
q+1 0 0 r P q row[q+1] row[r+1] b-1 v-1 v-1
Optimisation 0 0 q+1 r P q (row[r+1]) b-1
<
q+1 0 0 r P q row[q+1] b-1 r+1 v-1 v-1 LEFT
Canonicity check ?
v-1 0 0 D Completed structure b-1
Q k k 0 0 v-1 Canonicity check b-1 (0) (1) (2) 0 (k) v-1 Completed structure D
By-product - automorphism group of D
b-1 P k
Orderly algorithm
Only extend canonical partial configurations Principle: Extension of non-canonical partial configuration is non-canonical cf. Principle of Optimality for dynamic programming
Parallelization
Canonical starter configurations
Processor:
0 0
P1
D 1 b-1 0 0 k
P2
D 2 b-1 0 0 k
P3
D 3 b-1 0 0 k
P1
D 4 b-1 k 0 0
P2
D 5 b-1 0 0 k
P3
D 6 b-1 k
Mendelsohn triple systems
Twofold triple system (TTS) Mendelsohn triple system (MTS)
x y z w y x {x y} x y z w y x (x y) (y x)
D 1
Mendelsohn triple systems MTS D 1 equivalent to MTS D 2 isomorphic to D 2 or converse (D iff D 2 ) 1
x y z w y x D 2 y x z y w x Converse D 2
Mendelsohn triple systems
Step 1: Enumerate underlying orientable TTS T 1 T 2 T i T n
Mendelsohn triple systems
Step 1: Enumerate underlying orientable TTS T 1 T 2 T i T n Step 2: Generate all orientations of T i O 1 O 2
in Aut(T i ) ?
O j O m
Steiner triple systems of order 19
Kaski and Ostergard’s algorithm
1 2 0 12345678 90123456 78901234
Seeds
: Sets of 24 blocks that intersect {0 1 2} in 1 point 0: 1 11111111 00000000 00000000 1: 1 00000000 11111111 00000000 2: 1 00000000 00000000 11111111 P + A = union two 1-factors of K 16 7 isomorphism classes P + A + B = cubic graph order 16.
14,648 isomorphism classes 3: 0 10000000 4: 0 10000000 5: 0 01000000 6: 0 01000000 7: 0 00100000 8: 0 00100000 9: 0 00010000 10: 0 00010000 11: 0 00001000 12: 0 00001000 13: 0 00000100 14: 0 00000100 15: 0 00000010 16: 0 00000010 17: 0 00000001 18: 0 00000001
A B P
Search tree
14,648 seeds Completion to STS(19) using exact cover algorithm (Knuth) Steiner triple systems of order 19
B?
A?
Isomorph rejection test on completed STS(19)
Steiner triple systems of order 19
Isomorph rejection
Represent STS(19) by block intersection graph Use
nauty
to generate graph’s canonical labelling Note: partial configurations not isomorph checked here Note: In orderly algorithm only canonical partial configurations extended at each level
B?
A?
Isomorph rejection test on completed STS(19)
Steiner triple systems of order 19
Canonical augmentation
Insist that designated block {0,1,2} lies in first orbit in canonical ordering of orbits
Right parent?
Steiner triple systems of order 19
Pasch configurations
0 2 3 0 4 5 1 2 4 1 3 5
Right parent?
Provides invariant Designated block must lie in maximum number of Pasch configurations
Steiner triple systems of order 19
“Family” isomorphism check
For all f in Aut(S) B ≤ f(B)
S ?
B
Seed groups pre-computed and stored if ≤ 200 If > 200, use hash table isomorph rejection strategy
Steiner triple systems of order 19
Results
11,084,874,829 pairwise non-isomorphic STS(19) 1,348,410,350,618,155,344,199,680,000 distinct STS(19) 2 years of CPU time Distributed on ~ 80 workstations
Non-exhaustive search
Local search
Search space N(S) S T(S)
Hill climbing Search space N(S) S t(S)
Select t(S) such that cost(t(S)) ≤ cost(S)
Hill climbing
Design decisions
Feasible solution set Cost function Transition function Threshold values
Example
Subset of blocks Number of remaining blocks Add or change a block # attempts to find neighbour # attempts to find lower cost neighbour
Steiner triple systems y z w
cost(S)
S
x y z
live pairs potential conflict live point
Other applications Latin squares (Dinitz, Stinson) Enclosings of triple systems (Bigelow, Colbourn) Howell designs (Dinitz, Lamken) Leaves of partial triple systems (Colbourn, Mathon) GDDs (Gibbons, Colbourn) 1-factorisations (Seah, Stinson) Orthogonal STSs (Dinitz, Dukes, Ling) Room squares, Room frames (Dinitz, Stinson) Sequencing groups (Anderson) Covering arrays (Cohen) Quadrilateral-free STSs (Griggs, Murphy)
Restricted STS
Cyclic STS(v)
Construct
(v-1)/6
base blocks containing
0
Cover differences
1
to
v-1 cost(S)
0 y-x w
S
0 x y
live differences potential conflict
Restricted STS
Other structures
m-cyclic STS k-rotational STS
Base
x x
y z u w r t Orthogonal STS
Mate
y z u w Orthogonality constraint r ≠ t Thresholds (1) advance tries (2) conflict tries (3) restart tries new block
Simulated annealing Search space N(S) S t(S)
Select t(S) such that cost(t(S)) ≤ cost(S) or cost(t(S)) > cost(S) subject to controlled probability
Simulated annealing
Physical annealing
States of solid Energy of state Melting point state Slight distortion of state Temp of heat bath
Optimization problem
Feasible solutions Cost of feasible solution Random feasible solution Small change to feasible solution Control parameter
T
Simulated annealing
Metropolis condition: Accept uphill move with probability e -
/T Design decisions (cooling schedule): (1) Value of T 0 (2) Generating T k from T k-1 (3) Length of Markov chain L k (4) Stopping condition
Simulated annealing
0 0 1 2 3 4 9 10 11 12 7 8 5 6 Q 1 2 Q 3 4 Q 5 6 Q 7 8 Q 9 10 11 12 Q Q
Queens’ domination #
(Q n )
(Q 4k+1 ) ≥ 2k+1
Simulated annealing
0 0 1 2 3 4 9 10 11 12 7 8 5 6 Q 1 2 Q 3 4 Q 5 6 Q 7 8 Q 9 10 11 12 Q Q
Simulated annealing
0 0 1 2 3 4 9 10 11 12 7 8 5 6 Q 1 2 Q 3 4 Q 5 6 Q 7 8 Q 9 10 11 12 Q Q
0 5 6 1 2 3 4 0 1 2 3 4 5 6
Simulated annealing 4 5 6 0 1 2 3 0 1 2 3 4 5 6 4 5 6 0 1 2 3 0 1 2 3 4 5 6
Simulated annealing
Cooling schedule:
Initial temperature Control decrement 1.0 - 5.0
.995 - .9995
Markov chain length 1,000 - 5,000 Freezing factor 12
Results:
Solutions for
k
=
7, 10
,
11
and
14
.
Diagonal patterns
Simulated annealing
Simulated annealing
More diagonal patterns
Results
Optimal coverings for
k
≤ 21.
e.g. k = 20 Simulated annealing
CA(5;2,4,2)
Covering arrays Tests Components 1 1 0 0 0 2 3 2 3 2 5 4 5 5 4 6 7 7 6 6
MCA(12;2,4 1 3 2 2 1 )
Component values 1: {0,1,2,3} 2: {4,5,6} 3: {7,8,9} 4: {10,11} Covering arrays
Tests
0 2 3 2 0 1 1 3 0 2 3 1
Components
4 5 6 6 5 4 5 4 6 4 5 6 7 9 8 7 8 9 7 9 9 8 7 8 10 11 11 10 10 11 10 10 11 11 11 10
Covering arrays
VCA(12;2,3 1 2 2 3 1 ,CA(3,3 1 2 2 ))
Component values 1: {0,1,2} 2: {3,4} 3: {5,6} 4: {7,8,9}
Tests
0 1 1 2 0 0 2 2 1 1 0 2
Components
4 4 3 3 3 4 4 4 3 4 3 3 5 6 5 6 5 6 6 5 6 5 6 5 7 8 9 7 8 9 9 8 7 7 9 8
Covering arrays
Cost
# uncovered
t
-sets Change value Random test Random component
Covering arrays
Binary search for “best” solution
Lower bound
L (L+U)/2
Upper bound
U
Simulated annealing
Other applications
Subsquare free Latin squares (Webb, Gibbons) Antipodal triple systems (Gibbons, Mendelsohn, Shen) Covering designs (Numrela, Ostergard) Equitable resolvable coverings (van Dam, Haemers, Peek) Lotto designs (Li) Transversal covers (Stevens, Mendelsohn)
Hybrid schemes
Augmented annealing, or seeding • Use “ingredients” to build desired structure. • Ingredients constructed mathematically or by computer search, and combined mathematically, or joined or augmented by computer search.
Hybrid schemes
E.g. CA(3,6,6) Construct OD(3,6,6) OD(3,q+1,q+1) exists for q a prime power Every 3 columns contains all ordered 3 tuples with distinct entries
120 tests
Missing triples of form (a,a,a), (a,a,b), (a,b,a) and (a,b,b)
6 components
Hybrid schemes 6 components
Construct CA(3,6,2) for each of 15 pairs {a,b}, a≠b to cover triples (a,a,a), (a,a,b), (a,b,a) and (a,b,b)
120 Total:
300
15*12=180 OD(3,6,6) 12 12 CA(3,6,2) CA(3,6,2) 12 CA(3,6,2)
Hybrid schemes 6 components
Re-label each CA(3,6,2) to create constant row (a,a,a,a,a,a) such that triples covered elsewhere.
Remove this row from each CA(3,6,2)
15*11=165 120 12 12 Total:
285
12 OD(3,6,6) CA(3,6,2) CA(3,6,2) CA(3,6,2)
Hybrid schemes 6 components
Improvement: Use CA(3,6,2)s with disjoint rows.
Map to (a,a,a,a,a,a) and (b,b,b,b,b,b) and remove.
Add back 6 rows of form (a,a,a,a,a,a)
15*10=150 120 12 12 Total:
276
OD(3,6,6) CA(3,6,2) CA(3,6,2) 12 6 CA(3,6,2) Constant rows
Hybrid schemes k components
(2,1)-covering array TOCA(N;3,k,v;
): At least
disjoint constant rows (a,a,a),(a,a,b), (a,b,a), (b,a,a) covered
N tests
TOCA(N;3,k,v;
)
Back to CA(3,6,6)
Hybrid schemes 6 components 120 OD(3,6,6) Total:
260
140 TOCA(140;3,6,6;0) Annealing construction
MCA(3,6 6 4 2 2 2 )
Hybrid schemes 10 components
Method 1
: Straight annealing 317
MCA(3,6 6 4 2 2 2 )
Hybrid schemes 10 components
MCA(3,6 6 4 2 2 2 ) Method 2
: Seeded with OD(3,6,6) 283 120 OD(3,6,6) Complete by annealing
Hybrid schemes 10 components
MCA(3,6 6 4 2 2 2 ) Method 3
: Seeded with CA(3,6,6) 272 260 CA(3,6,6) Complete by annealing
Validity of search results • Path redundancy • Internal consistency checking • Independent enumerations • Best practice software engineering techniques • Validation of mathematical basis for isomorph rejection • Check on smaller design families • Tailoring vs general purpose • Software reuse
Search-related techniques • Isomorphism (
nauty
) • Invariants • Group maintenance, e.g.
- compute orbit of point - update orbit partition - construct group from generators - check whether permutation belongs to
G
• Distributed search (
autoson
) • Fine tuning • Efficient data structures • Efficient catalogue storage • Software reuse
Not covered • Construction of t-designs with specified group structures (Lauer et al) • Other probabilistic search methods (great deluge, evolutionary algorithms, tabu search, threshold accepting, record-to-record travel, reactive local search) • Counting techniques