Title: Peter Gibbons
1Computational ConstructionsofCombinatorial
Structures
- Peter Gibbons
- Department of Computer Science
- University of Auckland
- New Zealand
- p.gibbons_at_auckland.ac.nz
2Introduction
- 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 -
3Introduction
- 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).
4Topics
- Backtracking
- Hill climbing
- Simulated annealing
- Ingredients
- Validity of search results
- Related techniques
5Backtracking
- builds up feasible solutions step-by-step
- reject unpromising partial feasible
solutions - represent process by search tree
6Incidence structures
- TTS(9)
- 1 2
- 012345678901234567890123
- 0 111111110000000000000000
- 1 110000001111110000000000
- 2 110000000000001111110000
- 3 001100001100001100001100
- 4 001100000011000011000011
- 5 000011001100000000110011
- 6 000010100000111010001010
- 7 000000110011000000111100
- 8 000001010000110101000101
72-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
---------------------------------
8Results - distinct designs
9Look ahead
0
b-1
0
r
Packing constraint
v-1
10Isomorph rejection
b-1
0
b-1
0
0
0
?
Qr
Pr
lt
r
r
v-1
v-1
11Partial isomorph rejection
?
Gr
0
b-1
0
?
Pr
r
v-1
12Partial isomorph rejection
0
b-1
0
b-1
0
0
Pr
Pr
??
r
r
lt
?(rowr1)
rowr1
v-1
v-1
13Partial isomorph rejection
0
b-1
0
b-1
??
Pq
0
0
Pq
lt
q1
rowq1
?(rowr1)
q1
r
r
rowr1
v-1
v-1
14Optimisation
0
b-1
0
b-1
??
Pq
0
0
Pq
lt
q1
rowq1
?(rowr1)
q1
r
r
r1
v-1
v-1
LEFT
15Canonicity check
0
b-1
0
??
D
?
v-1
Completed structure
16Canonicity check
0
b-1
0
b-1
0
?(0)
Qk
Pk
?(1)
?(2)
k
?(k)
v-1
v-1
Completed structure D
By-product - automorphism group of D
17Orderly algorithm
Only extend canonical partial configurations Princ
iple Extension of non-canonical partial
configuration is non-canonical cf. Principle of
Optimality for dynamic programming
18Parallelization
Canonical starter configurations
Processor
P1
P2
P3
P1
P2
P3
b-1
b-1
b-1
b-1
b-1
b-1
0
0
0
0
0
0
0
0
0
0
0
0
D4
D3
D6
D1
D5
D2
k
k
k
k
k
k
19Mendelsohn triple systems
Mendelsohn triple system (MTS)
Twofold triple system (TTS)
x y z
x y z
(x y)
x y
(y x)
w y x
w y x
20Mendelsohn triple systems
x y z
??
D2
w y x
?
D1
??
y x z
Converse D2
MTS D1 equivalent to MTS D2 iff D1 isomorphic to
D2 or converse (D2)
y w x
21Mendelsohn triple systems
Step 1 Enumerate underlying orientable TTS
T1
T2
Ti
Tn
22Mendelsohn triple systems
Step 1 Enumerate underlying orientable TTS
T1
T2
Ti
Tn
O1
O2
Oj
Om
Step 2 Generate all orientations of Ti
? in Aut(Ti) ?
23Steiner triple systems of order 19
- 1 2
- 0 12345678 90123456 78901234
- 0 1 11111111 00000000 00000000
- 1 1 00000000 11111111 00000000
- 2 1 00000000 00000000 11111111
- 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
Kaski and Ostergards algorithm
Seeds Sets of 24 blocks that intersect 0 1 2
in 1 point
P A union two 1-factors of K16 7 isomorphism
classes
A
B
P A B cubic graph order 16. 14,648
isomorphism classes
P
24Steiner triple systems of order 19
Search tree
14,648 seeds
Completion to STS(19) using exact cover algorithm
(Knuth)
B?
A?
Isomorph rejection test on completed STS(19)
25Steiner triple systems of order 19
Isomorph rejection
Represent STS(19) by block intersection graph
B?
A?
Use nauty to generate graphs canonical labelling
Isomorph rejection test on completed STS(19)
Note partial configurations not isomorph checked
here
Note In orderly algorithm only canonical partial
configurations extended at each level
26Steiner 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?
27Steiner 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
28Steiner triple systems of order 19
Family isomorphism check
S
For all f in Aut(S) B f(B)
?
B
Seed groups pre-computed and stored if 200 If gt
200, use hash table isomorph rejection strategy
29Steiner 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
30Non-exhaustive search
Local search
T(S)
N(S)
S
Search space ?
31Hill climbing
Search space ?
t(S)
N(S)
S
Select t(S) such that cost(t(S)) cost(S)
32Hill climbing
33Steiner triple systems
y z w
potential conflict
S
x y z
live pairs
cost(S)
live point
34Other 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)
35Restricted STS
Cyclic STS(v)
0 y-x w
Construct (v-1)/6 base blocks containing 0
potential conflict
S
0 x y
Cover differences 1 to v-1
cost(S)
live differences
36Restricted STS
Other structures
m-cyclic STS k-rotational STS
37Orthogonal STS
Base
Mate
Orthogonality constraint
r ? t
x y z x u w
r y z t u w
- Thresholds
- advance tries
- (2) conflict tries
- (3) restart tries
new block
38Simulated annealing
Search space ?
t(S)
N(S)
S
Select t(S) such that cost(t(S)) cost(S) or
cost(t(S)) gt cost(S) subject to controlled
probability
39Simulated annealing
40Simulated annealing
Metropolis condition Accept uphill move with
probability e-?/T
Design decisions (cooling schedule) (1) Value
of T0 (2) Generating Tk from Tk-1 (3) Length
of Markov chain Lk (4) Stopping condition
41Simulated annealing
0
1
2
3
4
5
6
7
8
9
10
11
12
Queens domination ?(Qn)
0
1
2
3
4
5
?(Q4k1) 2k1
6
7
8
9
10
11
12
42Simulated annealing
0
1
2
3
4
5
6
7
8
9
10
11
12
0
1
2
3
4
5
6
7
8
9
10
11
12
43Simulated annealing
0
1
2
3
4
5
6
7
8
9
10
11
12
0
1
2
3
4
5
6
7
8
9
10
11
12
44Simulated annealing
cost 10
cost 2
45Simulated annealing
Cooling schedule
Results Solutions for k 7, 10, 11 and
14.
46Simulated annealing
Diagonal patterns
47Simulated annealing
More diagonal patterns
48Simulated annealing
Results Optimal coverings for k 21.
e.g. k 20
49Covering arrays
Components
CA(52,4,2)
Tests
50Covering arrays
Components
MCA(122,413221)
Component values 1 0,1,2,3 2 4,5,6 3
7,8,9 4 10,11
Tests
51Covering arrays
Components
VCA(122,312231,CA(3,3122))
Component values 1 0,1,2 2 3,4 3 5,6 4
7,8,9
Tests
52Covering arrays
Random component
Cost uncovered t-sets
Change value
Random test
53Covering arrays
Binary search for best solution
Lower bound L
(LU)/2
Upper bound U
54Simulated 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)
55Hybrid 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.
56Hybrid schemes
E.g. CA(3,6,6)
6 components
Construct OD(3,6,6)
OD(3,q1,q1) 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)
57Hybrid 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
OD(3,6,6)
CA(3,6,2)
12
CA(3,6,2)
12
1512180
CA(3,6,2)
12
Total 300
58Hybrid 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)
120
OD(3,6,6)
CA(3,6,2)
12
CA(3,6,2)
12
1511165
CA(3,6,2)
12
Total 285
59Hybrid 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)
120
OD(3,6,6)
CA(3,6,2)
12
CA(3,6,2)
12
1510150
CA(3,6,2)
12
Total 276
Constant rows
6
60Hybrid schemes
k components
(2,1)-covering array TOCA(N3,k,v?) At least ?
disjoint constant rows (a,a,a),(a,a,b), (a,b,a),
(b,a,a) covered
TOCA(N3,k,v?)
N tests
61Hybrid schemes
6 components
Back to CA(3,6,6)
120
OD(3,6,6)
TOCA(1403,6,60) Annealing construction
140
Total 260
62Hybrid schemes
10 components
MCA(3,664222)
Method 1 Straight annealing
MCA(3,664222)
317
63Hybrid schemes
10 components
MCA(3,664222)
Method 2 Seeded with OD(3,6,6)
OD(3,6,6)
120
283
Complete by annealing
64Hybrid schemes
10 components
MCA(3,664222)
Method 3 Seeded with CA(3,6,6)
CA(3,6,6)
260
272
Complete by annealing
65Validity of search results
Path redundancy Internal consistency
checking Independent enumerations Best
practice software engineering techniques Validat
ion of mathematical basis for isomorph
rejection Check on smaller design
families Tailoring vs general
purpose Software reuse
66Search-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
67Not 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