67
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] Computational Constructions of Combinatorial Structures

Embed Size (px)

Citation preview

Peter Gibbons

Department of Computer Science

University of Auckland

New Zealand

[email protected]

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

Look aheadLook ahead

0

0 b-1

v-1

r

Packing constraint

Isomorph rejectionIsomorph rejection

Qr

0

0 b-1

v-1

r

Pr

0

0 b-1

v-1

r

<

Partial isomorph rejectionPartial isomorph rejection

Pr

0

0 b-1

v-1

r

Gr

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]

OptimisationOptimisation

Pq0

0 b-1

v-1

r

0

0 b-1

v-1

r

r+1

(row[r+1]) <

Pq

q+1 q+1 row[q+1]

LEFT

Canonicity checkCanonicity check

0

0 b-1

v-1

D

Completed structure

?

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

Non-exhaustive searchNon-exhaustive search

S

T(S)

N(S)

Local search

Search space

Hill climbingHill climbing

S

t(S)

N(S)

Select t(S) such that cost(t(S)) ≤ cost(S)

Search space

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

Restricted STSRestricted STS

Other structures

m-cyclic STS

k-rotational STS

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.

Simulated annealingSimulated annealing

Diagonal patterns

Simulated annealingSimulated annealing

More diagonal patterns

Simulated annealingSimulated annealing

Results

Optimal coverings for k ≤ 21.

e.g. k = 20

Covering arraysCovering arrays

1 2 5 6

1 3 4 7

0 2 5 7

0 3 5 6

0 2 4 6

Tests

Components

CA(5;2,4,2)

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

Random test

Random component

Cost

# uncovered t-sets Change value

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

Not coveredNot 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