Computational Constructions of Combinatorial Structures Peter Gibbons Department of Computer Science University of Auckland New Zealand [email protected].

Download Report

Transcript 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