+ All Categories
Home > Software > McKay's Algorithm for Isomorph-free Exhaustive Generation

McKay's Algorithm for Isomorph-free Exhaustive Generation

Date post: 16-Jul-2015
Category:
Upload: jayant-apte
View: 39 times
Download: 2 times
Share this document with a friend
Popular Tags:
89
Isomorph-free exhaustive generation* Jayant Apte ASPITRG B. D. McKay, Isomorph-free exhaustive generation, Journal of Algorithms, 26 (1998) 306-324.
Transcript
Page 1: McKay's Algorithm for Isomorph-free Exhaustive Generation

Isomorph-free exhaustive generation*

Jayant ApteASPITRG

B. D. McKay, Isomorph-free exhaustive generation, Journal of Algorithms, 26 (1998) 306-324.

Page 2: McKay's Algorithm for Isomorph-free Exhaustive Generation

Some Background

Page 3: McKay's Algorithm for Isomorph-free Exhaustive Generation

Isomorphism

● An isomorphism between two combinatorial objects is a map that preserves sets and relations among elements

● eg. two undirected graphs are isomorphic if there exists a bijection between their vertex sets s.t. edge relations are preserved

● An isomorphism class is a collection of objects all isomorphic to one another

Page 4: McKay's Algorithm for Isomorph-free Exhaustive Generation

Isomorphism

a g

b h

c i

d j 4 3

5 6

8 7

21

Page 5: McKay's Algorithm for Isomorph-free Exhaustive Generation

Labeled vs. Unlabeled

● Labeled object means an object with labels● Unlabeled object means an entire isomorphism

class

Page 6: McKay's Algorithm for Isomorph-free Exhaustive Generation

Problem

● Generate a list of all objects in a class up to a certain size

● Make sure there are no isomorphic objects in the list

Page 7: McKay's Algorithm for Isomorph-free Exhaustive Generation

Read-Faradzev type algorithm

● Define the notion of a canonical labeled object in an isomorphism class

● Make sure that there exists at least one maximal (in some sense) sub object contained in the canonical object which is also canonical

● Developed independently by Read and Faradzev

● No relabeling at intermediate stepsI. A. Faradzev, Generation of nonisomorphic graphs with a given degree sequence(Russian), in “Algorithmic Studies in Combinatorics” (Nauka, Moscow, 1978) 11–19

I. A. Faradzev, Constructive enumeration of combinatorial objects. Problemes Com-binatoires et Theorie des Graphes Colloque Internat. CNRS 260. CNRS Paris (1978)131–135.

R. C. Read, Every one a winner, Annals Discrete Math., 2 (1978) 107–120.

Page 8: McKay's Algorithm for Isomorph-free Exhaustive Generation

Examples of RF-type algorithms

● Cubic graph* generator:

● Regular graph* generator:

● Generator for 1-factorizations* of complete graphs:

G. Brinkmann, Fast generation of cubic graphs, J. Graph Theory, 23 (1996) 139–149.

M. Meringer, Erzeugung regul arer Graphen, Diplomarbeit, Univ. Bayreuth, 1996.

J. H. Dinitz, D. Garnick and B. D. McKay, There are 526,915,620 nonisomorphicone-factorizations of K 12 , J. Combinatorial Designs, 2 (1994) 273–285.

*Cubic graphs are undirected graphs with every vertex of degree 3

*Regular graphs are graphs with all vertices having same degree

*A 1-factor of a graph is collection of edges with every vertex appearing only once. A 1-factorization is partition of edges into 1- factors

Page 9: McKay's Algorithm for Isomorph-free Exhaustive Generation

Examples of RF-type algorithms

● Matroid generator:Yoshitake Matsumoto, Sonoko Moriyama, Hiroshi Imai, and David Bremner. Matroid enumeration for incidence geometry. Discrete Comput. Geom., 47(1):17–43, January 2012.

Page 10: McKay's Algorithm for Isomorph-free Exhaustive Generation

McKay-type algorithms

● Canonical Construction Path

● Only objects generated via a canonical augmentation are output

● Similar to RF-type algorithm in a sense that a tree/forest amongst unlabeled objects is traversed

● However, labels are not important. Objects may be relabeled freely at intermediate steps

● Canonical augmentation might lead to isomorphs, so some way of rejecting them is needed

Page 11: McKay's Algorithm for Isomorph-free Exhaustive Generation

Examples of McKay-type algorithms

● Cubic graph generator:

● Matroid generator:

B. D. McKay and G. F. Royle, Constructing the cubic graphs on up to 20 vertices,Ars Combinatoria, 21A (1986) 129–140.

Mayhew, D., Royle, G.F.: Matroids with nine elements. J. Comb. Theory, Ser. B 98, 415–431 (2008)

Page 12: McKay's Algorithm for Isomorph-free Exhaustive Generation

Other Methods

● Method of Homomorphisms

T. Grüner, R. Laue, M. Meringer: Algorithms for Group Actions: Homomorphism Principleand Orderly Generation Applied to Graphs. DIMACS Series in Discrete Mathematics andTheoretical Computer Science 28, 113-122, 1997.

Page 13: McKay's Algorithm for Isomorph-free Exhaustive Generation

McKay-type algorithms

Page 14: McKay's Algorithm for Isomorph-free Exhaustive Generation

Part 1: Theoretical Background

Page 15: McKay's Algorithm for Isomorph-free Exhaustive Generation

General framework

Page 16: McKay's Algorithm for Isomorph-free Exhaustive Generation

Example: TFGs

Page 17: McKay's Algorithm for Isomorph-free Exhaustive Generation

General framework

Page 18: McKay's Algorithm for Isomorph-free Exhaustive Generation

General framework

Page 19: McKay's Algorithm for Isomorph-free Exhaustive Generation

Example: TFGs

Page 20: McKay's Algorithm for Isomorph-free Exhaustive Generation

Example: TFGs

Page 21: McKay's Algorithm for Isomorph-free Exhaustive Generation

Axioms C1-C7

Page 22: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 23: McKay's Algorithm for Isomorph-free Exhaustive Generation

Since they are differenttypes of objects

Page 24: McKay's Algorithm for Isomorph-free Exhaustive Generation

L and U commute with group action

Page 25: McKay's Algorithm for Isomorph-free Exhaustive Generation

Every lower object has non-empty f

Page 26: McKay's Algorithm for Isomorph-free Exhaustive Generation

f respects orbits under G

f' respects orbits under G

Page 27: McKay's Algorithm for Isomorph-free Exhaustive Generation

f respects orbits under Gg=Identity permutation?

f' respects orbits under Gg=Identity permutation?

Page 28: McKay's Algorithm for Isomorph-free Exhaustive Generation

Order is unchanged by group action

Page 29: McKay's Algorithm for Isomorph-free Exhaustive Generation

A result of complementarity

Page 30: McKay's Algorithm for Isomorph-free Exhaustive Generation

Verify axioms for TFGs

Page 31: McKay's Algorithm for Isomorph-free Exhaustive Generation

Verify axioms for TFGs(By construction)

(By construction)

(Every vertex deletion can be undone withaddition of a vertex, except for K_1)

(By construction)

(By construction)

(By construction)

(By construction)

Page 32: McKay's Algorithm for Isomorph-free Exhaustive Generation

Isomorphism and automorphism

Page 33: McKay's Algorithm for Isomorph-free Exhaustive Generation

Part 1: Theoretical Background

Page 34: McKay's Algorithm for Isomorph-free Exhaustive Generation

Towards a forest

Page 35: McKay's Algorithm for Isomorph-free Exhaustive Generation

Types of unlabeled objects

Page 36: McKay's Algorithm for Isomorph-free Exhaustive Generation

The m function

Page 37: McKay's Algorithm for Isomorph-free Exhaustive Generation

The m functionL(X) is fixed setwise under action of Aut(X)

Page 38: McKay's Algorithm for Isomorph-free Exhaustive Generation

The m function

Page 39: McKay's Algorithm for Isomorph-free Exhaustive Generation

The m function

Page 40: McKay's Algorithm for Isomorph-free Exhaustive Generation

Example: TFGs

Page 41: McKay's Algorithm for Isomorph-free Exhaustive Generation

Example: TFGs

Page 42: McKay's Algorithm for Isomorph-free Exhaustive Generation

L(X)

0

1 2

3

1

2

3

0

2

3

0

1

3 0 2 1

Page 43: McKay's Algorithm for Isomorph-free Exhaustive Generation

Sage to the rescue

Page 44: McKay's Algorithm for Isomorph-free Exhaustive Generation

Orbits in L(G) under Aut(G)

0

1 2

3

1

2

3

0

2

3

0

1

3 0 2 1

Page 45: McKay's Algorithm for Isomorph-free Exhaustive Generation

m function for TFGs

Page 46: McKay's Algorithm for Isomorph-free Exhaustive Generation

Orbits in L(G) under Aut(G)

0

1 2

3

1

2

3

0

2

3

0

1

3 0 2 1

WINNER!

Page 47: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 48: McKay's Algorithm for Isomorph-free Exhaustive Generation

Completely arbitrary choices

Page 49: McKay's Algorithm for Isomorph-free Exhaustive Generation

Existence

Page 50: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 51: McKay's Algorithm for Isomorph-free Exhaustive Generation

Example: TFGs

0

1 2

3

0

1

2

1

0

2

2

0

0

0

2

1

2

0

1

1

2

0

Page 52: McKay's Algorithm for Isomorph-free Exhaustive Generation

Example: TFGs

0

1 2

3

0

1

2

1

0

2

2

0

0

0

2

1

2

0

1

1

2

0

Page 53: McKay's Algorithm for Isomorph-free Exhaustive Generation

Uniqueness

Page 54: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 55: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 56: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 57: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 58: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 59: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 60: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 61: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 62: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 63: McKay's Algorithm for Isomorph-free Exhaustive Generation

Ancestors and Descendants

Page 64: McKay's Algorithm for Isomorph-free Exhaustive Generation

Part II: Traversing the tree

Page 65: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 66: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 67: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 68: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 69: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 70: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 71: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 72: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 73: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 74: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 75: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 76: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 77: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 78: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 79: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 80: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 81: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 82: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 83: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 84: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 85: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 86: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 87: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 88: McKay's Algorithm for Isomorph-free Exhaustive Generation
Page 89: McKay's Algorithm for Isomorph-free Exhaustive Generation

What if we can't compute automorphism groups?


Recommended