View
217
Download
0
Category
Tags:
Preview:
Citation preview
Peter Gibbons
Department of Computer Science
University of Auckland
New Zealand
p.gibbons@auckland.ac.nz
Computational Constructionsof
Combinatorial Structures
Computational Constructionsof
Combinatorial Structures
IntroductionIntroduction
• 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
IntroductionIntroduction
• 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.
TopicsTopics
• Backtracking
• Hill climbing
• Simulated annealing
• Ingredients
• Validity of search results
• Related techniques
BacktrackingBacktracking
• builds up feasible solutions step-by-step
• reject “unpromising” partial feasible solutions
• represent process by search tree
Incidence structuresIncidence structures
TTS(9)
1 2 012345678901234567890123
0: 1111111100000000000000001: 1100000011111100000000002: 1100000000000011111100003: 0011000011000011000011004: 0011000000110000110000115: 0000110011000000001100116: 0000101000001110100010107: 0000001100110000001111008: 000001010000110101000101
2-level backtrack2-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 001: 11 00 0000 11 11 11 00 0000 00 002: 11 00 0000 00 00 00 11 1111 00 003: 00 11 0000 11 00 00 11 0000 11 004: 00 11 0000 00 11 00 00 1100 00 115: ---------------------------------6: ---------------------------------7: ---------------------------------8: ---------------------------------
Results - distinct designsResults - distinct designs
465 TTS(7)
designs Block-by-block Point-by-point
Extend iterations 7,264 607
Backtrack iterations 78,123 3,552
Partial isomorph rejectionPartial isomorph rejection
Pr
0
0 b-1
v-1
r
Pr
0
0 b-1
v-1
r
row[r+1] (row[r+1]) <
Partial isomorph rejectionPartial isomorph rejection
Pq0
0 b-1
v-1
r
0
0 b-1
v-1
r
row[r+1]
(row[r+1]) <
Pq
q+1 q+1 row[q+1]
Canonicity checkCanonicity check
Qk
0
0 b-1
v-1
k
(0)
0 b-1
v-1
Pk(1)
(2)
(k)
Completed structure D
By-product - automorphism group of D
Orderly algorithmOrderly algorithm
Only extend canonical partial configurations
Principle: Extension of non-canonical partial configuration is non-canonical
cf. Principle of Optimality for dynamic programming
ParallelizationParallelization
D1
00 b-1
Canonical starter configurations
k
00 b-1
k
00 b-1
k
00 b-1
k
00 b-1
k
00 b-1
k
Processor: P1 P2 P3 P1 P2 P3
D5D4D3D2 D6
Mendelsohn triple systemsMendelsohn triple systems
x y z
w y x
{x y}
Mendelsohn triple system (MTS)
x y z
w y x
(x y)
(y x)
Twofold triple system (TTS)
Mendelsohn triple systemsMendelsohn triple systems
MTS D1 equivalent to MTS D2 iff D1 isomorphic to D2 or converse (D2)
D1
x y z
w y x
y x z
y w x
D2
Converse D2
Mendelsohn triple systemsMendelsohn triple systems
Step 1: Enumerate underlying orientable TTS
T1 T2 Ti Tn
Mendelsohn triple systemsMendelsohn triple systems
Step 1: Enumerate underlying orientable TTS
T1 T2 Ti Tn
Step 2: Generate all orientations of Ti
O1 O2 Oj Om
in Aut(Ti) ?
Steiner triple systems of order 19Steiner triple systems of order 19
Kaski and Ostergard’s algorithm
Seeds: Sets of 24 blocks that intersect {0 1 2} in 1 point
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 0001000011: 0 0000100012: 0 0000100013: 0 0000010014: 0 0000010015: 0 0000001016: 0 0000001017: 0 0000000118: 0 00000001
A B
P
P + A = union two 1-factors of K16
7 isomorphism classes
P + A + B = cubic graph order 16.
14,648 isomorphism classes
Steiner triple systems of order 19Steiner triple systems of order 19
Search tree
A?
14,648 seeds
B?
Completion to STS(19) using exact cover algorithm (Knuth)
Isomorph rejection test on completed STS(19)
Steiner triple systems of order 19Steiner triple systems of order 19
Isomorph rejection
A?
Represent STS(19) by
block intersection graph
B?
Isomorph rejection test on completed STS(19)
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
Steiner triple systems of order 19Steiner triple systems of order 19
Canonical augmentation
Right parent?
Insist that designated block {0,1,2} lies in first orbit in canonical ordering of orbits
Steiner triple systems of order 19Steiner triple systems of order 19
Pasch configurations
Right parent?
0 2 3
0 4 5
1 2 4
1 3 5
Provides invariant
Designated block must lie in maximum number of Pasch configurations
Steiner triple systems of order 19Steiner triple systems of order 19
“Family” isomorphism check
?
Seed groups pre-computed and stored if ≤ 200
If > 200, use hash table isomorph rejection strategy
S
B
For all f in Aut(S) B ≤ f(B)
Steiner triple systems of order 19Steiner 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
Hill climbingHill climbing
Design decisions Example
Feasible solution set Subset of blocks
Cost function Number of remaining blocks
Transition function Add or change a block
Threshold values# attempts to find neighbour
# attempts to find lower cost neighbour
Steiner triple systemsSteiner triple systems
cost(S)
S
x y z
live pairs
live point
y z w
potentialconflict
Other applicationsOther 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 STSRestricted STS
Cyclic STS(v)
cost(S)
S
0 x y
live differences
0 y-x w
potentialconflict
Construct (v-1)/6 base blocks containing 0
Cover differences 1 to v-1
Orthogonal STSOrthogonal STS
Base Mate Orthogonality constraint
r ≠ t
x y zx u w
r y zt u w
new block
Thresholds
(1) advance tries
(2) conflict tries
(3) restart tries
Simulated annealingSimulated annealing
S
t(S)
N(S)
Select t(S) such that
cost(t(S)) ≤ cost(S) or
cost(t(S)) > cost(S) subject to controlled probability
Search space
Simulated annealingSimulated annealing
Physical annealing Optimization problem
States of solid Feasible solutions
Energy of state Cost of feasible solution
Melting point state Random feasible solution
Slight distortion of state Small change to feasible solution
Temp of heat bath Control parameter T
Simulated annealingSimulated 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
Simulated annealingSimulated annealing
0 1 2 3 4 5 6 7 8 9 10 11 12
0
4
5
6
7
8
9
10
11
12
Q
Q
Q
Q
Q
Q
Q
1
2
3
Queens’ domination # (Qn)
(Q4k+1) ≥ 2k+1
Simulated annealingSimulated annealing
0 1 2 3 4 5 6 7 8 9 10 11 12
0
4
5
6
7
8
9
10
11
12
Q
Q
Q
Q
Q
Q
Q
1
2
3
Simulated annealingSimulated annealing
0 1 2 3 4 5 6 7 8 9 10 11 12
0
4
5
6
7
8
9
10
11
12
Q
Q
Q
Q
Q
Q
Q
1
2
3
0 1 2 3 4 5 6
0
1
2
3
4
5
6
Simulated annealingSimulated annealing
0 1 2 3 4 5 6
0
1
2
3
4
5
6
0 1 2 3 4 5 6
0
1
2
3
4
5
6
Cost = 10 Cost = 2 cost = 10 cost = 2
Simulated annealingSimulated annealing
Initial temperature 1.0 - 5.0
Control decrement .995 - .9995
Markov chain length 1,000 - 5,000
Freezing factor 12
Cooling schedule:
Results:
Solutions for k = 7, 10, 11 and 14.
Covering arraysCovering arrays
0 4 7 10
2 5 9 11
3 6 8 11
2 6 7 10
0 5 8 10
1 4 9 11
1 5 7 10
3 4 9 10
0 6 9 11
2 4 8 11
3 5 7 11
1 6 8 10
Tests
Components
MCA(12;2,413221)
Component values
1: {0,1,2,3}
2: {4,5,6}
3: {7,8,9}
4: {10,11}
Covering arraysCovering arrays
0 4 5 7
1 4 6 8
1 3 5 9
2 3 6 7
0 3 5 8
0 4 6 9
2 4 6 9
2 4 5 8
1 3 6 7
1 4 5 7
0 3 6 9
2 3 5 8
Tests
ComponentsVCA(12;2,312231,CA(3,3122))
Component values
1: {0,1,2}
2: {3,4}
3: {5,6}
4: {7,8,9}
Covering arraysCovering arrays
Lower bound L
Binary search for “best” solution
Upper bound U
(L+U)/2
Simulated annealingSimulated 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 schemesHybrid 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 schemesHybrid schemes
E.g. CA(3,6,6)
Construct OD(3,6,6)
120 tests
6 components
Every 3 columns contains all ordered 3-tuples with distinct entries
OD(3,q+1,q+1) exists for q a prime power
Missing triples of form (a,a,a), (a,a,b), (a,b,a) and (a,b,b)
Hybrid schemesHybrid schemes
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)
12
6 components
OD(3,6,6)
CA(3,6,2)
CA(3,6,2)
CA(3,6,2)
120
12
12
15*12=180
Total: 300
Hybrid schemesHybrid schemes
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)
12
6 components
OD(3,6,6)
CA(3,6,2)
CA(3,6,2)
CA(3,6,2)
120
12
12
15*11=165
Total: 285
Hybrid schemesHybrid schemes
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)
12
6 components
OD(3,6,6)
CA(3,6,2)
CA(3,6,2)
CA(3,6,2)
120
12
12
15*10=150
Constant rows6Total: 276
Hybrid schemesHybrid schemes
(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
k components
N tests TOCA(N;3,k,v;)
Hybrid schemesHybrid schemes
Back to CA(3,6,6)6 components
OD(3,6,6)120
TOCA(140;3,6,6;0)
Annealing construction140Total: 260
Hybrid schemesHybrid schemes
MCA(3,664222)10 components
MCA(3,664222)317
Method 1:
Straight annealing
Hybrid schemesHybrid schemes
MCA(3,664222)10 components
283
Method 2:
Seeded with OD(3,6,6) OD(3,6,6)120
Complete by annealing
Hybrid schemesHybrid schemes
MCA(3,664222)10 components
272
Method 3:
Seeded with CA(3,6,6) CA(3,6,6)260
Complete by annealing
Validity of search resultsValidity 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 techniquesSearch-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
Recommended