Practical Graph Isomorphism, II - Semantic Scholar

Report 14 Downloads 186 Views
Practical Graph Isomorphism, II Brendan McKay Australian National University

Adolfo Piperno University of Rome

practical graph isomorphism ii — 1

Isomorphism and Automorphism We have some finite objects consisting of some finite sets and some relations on them. An isomorphism between two objects is a bijection between their sets so that the relations are preserved. Hopefully, isomorphism is an equivalence relation on the set of all objects.

practical graph isomorphism ii — 2

Isomorphism and Automorphism We have some finite objects consisting of some finite sets and some relations on them. An isomorphism between two objects is a bijection between their sets so that the relations are preserved. Hopefully, isomorphism is an equivalence relation on the set of all objects. Isomorphisms from an object to itself are automorphisms. If we didn’t do anything silly, the set of automorphisms forms a group under composition. Of course we call it the automorphism group. 8

7

6

5

1

2

3

4

practical graph isomorphism ii — 2

Isomorphism and Automorphism We have some finite objects consisting of some finite sets and some relations on them. An isomorphism between two objects is a bijection between their sets so that the relations are preserved. Hopefully, isomorphism is an equivalence relation on the set of all objects. Isomorphisms from an object to itself are automorphisms. If we didn’t do anything silly, the set of automorphisms forms a group under composition. Of course we call it the automorphism group. 8

7

6

5

(1) (1 4)(2 3)(5 8)(6 7) (1 8)(2 7)(3 6)(4 5) (1 5)(2 6)(3 7)(4 8)

1

2

3

4

practical graph isomorphism ii — 2

Ubiquity of graph isomorphism Very many isomorphism problems can be efficiently expressed as graph isomorphism problems. For convenience, we use coloured graphs, in which the vertices (and possibly the edges) are coloured. Isomorphisms must preserve vertex and edge colour.



 1 3 5 4   1 5 4 3  3 4 5 1

Say two matrices are isomorphic if one can be obtained from the other by permuting rows and columns.

practical graph isomorphism ii — 3

Ubiquity of graph isomorphism Very many isomorphism problems can be efficiently expressed as graph isomorphism problems. For convenience, we use coloured graphs, in which the vertices (and possibly the edges) are coloured. Isomorphisms must preserve vertex and edge colour.



 1 3 5 4   1 5 4 3  3 4 5 1

Say two matrices are isomorphic if one can be obtained from the other by permuting rows and columns.

=1 =3 =4 =5

practical graph isomorphism ii — 3

Hadamard equivalence



1 −1   1 −1 −1 −1

 1  1 1

Say isomorphism of two ±1 matrices allows permutation and negation of rows and columns.

practical graph isomorphism ii — 4

Hadamard equivalence



1 −1   1 −1 −1 −1

 1  1 1

Say isomorphism of two ±1 matrices allows permutation and negation of rows and columns.

practical graph isomorphism ii — 4

Isotopy



 1 3 2   2 1 3 3 2 1

Say isomorphism of two matrices allows permutation of rows, columns and symbols.

practical graph isomorphism ii — 5

Isotopy

1

Ro  1 3 2   2 1 3 3 2 1

1

Say isomorphism of two matrices allows permutation of rows, columns and symbols.

mn

2

2



lu Co

w

3

3

3

2

Symbol

practical graph isomorphism ii — 5

1

Isotopy

1

Ro  1 3 2   2 1 3 3 2 1

1

Say isomorphism of two matrices allows permutation of rows, columns and symbols.

mn

2

2



lu Co

w

3

3

3

2

Symbol

practical graph isomorphism ii — 5

1

Group isomorphism



e g1 g2 g3



  g1 e g3 g2    g g e g  1  2 3

g3 g2 g1 e

The group elements are edge colours and vertices. The black vertex is the identity element. Preserve vertex colours but allow permutation of edge colours.

practical graph isomorphism ii — 6

Group isomorphism



e g1 g2 g3



  g1 e g3 g2    g g e g  1  2 3

g3 g2 g1 e

The group elements are edge colours and vertices. The black vertex is the identity element. Preserve vertex colours but allow permutation of edge colours.

practical graph isomorphism ii — 6

Permutation equivalence of linear codes



0  0  1   1 0

 1 1 0 1 0 0 0 0  1 1 0 1 1 1 0 0  0 0 1 0 0 1 1 1   0 1 0 1 1 0 1 1 0 1 0 0 0 0 1 0

practical graph isomorphism ii — 7

Permutation equivalence of linear codes



0  0  1   1 0

 1 1 0 1 0 0 0 0  1 1 0 1 1 1 0 0  0 0 1 0 0 1 1 1   0 1 0 1 1 0 1 1 0 1 0 0 0 0 1 0

?

Suppose isomorphism of two 0-1 matrices means that their columns can be permutated so that the rows generate the same vector space over GF (2). Nobody knows how to make an equivalent graph problem of size which is polynomial in the size of the generator matrix.

practical graph isomorphism ii — 7

Theoretical complexity The graph isomorphism problem is:

GI: Given two graphs, determine whether they are isomorphic. O(

• The fastest known algorithm for GI is 2



(n log n))

time; no polynomial time

algorithm is known (despite many claims).

• GI is not known to be NP-complete. • GI is not known to be in co-NP. • There are polynomial time algorithms for many special classes of graphs (bounded degree, bounded genus, classes with excluded minors or topological subgraphs). Few of these are practical, planar graphs being a notable exception. It is possible that group isomorphism is easier than GI and that permutation equivalence of linear codes is harder than GI. But nobody can prove it.

practical graph isomorphism ii — 8

Canonical labelling Given a class of objects, and a definition of “isomorphism”, we can choose one member of each isomorphism class and call it the canonical member of the class. The process of finding the canonical member of the isomorphism class containing a given object is called “canonical labelling”.

practical graph isomorphism ii — 9

Canonical labelling Given a class of objects, and a definition of “isomorphism”, we can choose one member of each isomorphism class and call it the canonical member of the class. The process of finding the canonical member of the isomorphism class containing a given object is called “canonical labelling”. Two labelled objects which are isomorphic become identical when they are canonically labelled. Since identity of objects is usually far easier to check than isomorphism, canonical labelling is the preferred method of sorting a collection of objects into isomorphism classes.

practical graph isomorphism ii — 9

Canonical labelling Given a class of objects, and a definition of “isomorphism”, we can choose one member of each isomorphism class and call it the canonical member of the class. The process of finding the canonical member of the isomorphism class containing a given object is called “canonical labelling”. Two labelled objects which are isomorphic become identical when they are canonically labelled. Since identity of objects is usually far easier to check than isomorphism, canonical labelling is the preferred method of sorting a collection of objects into isomorphism classes. A possible definition of the canonical member of an isomorphism class would be the member which maximises some linear representation (such as a list of edges). In practice, most programs compute a canonical member which is easy for computers to find rather than easy for humans to define.

practical graph isomorphism ii — 9

Software for graph isomorphism This task was already described as a disease in 1970, and programs still appear regularly. The most successful programs still supported are:

• nauty (McKay, 1976–) canonical label and automorphism group • VF2 (Cordella, Foggia, Sansone and Vento, 1999–) comparison of two graphs • saucy (Darga, Sakallah and Markov, 2004–) automorphism group • bliss (Juntilla and Kaski, 2007–) canonical label and automorphism group • Traces (Piperno, 2008–) canonical label and automorphism group • conauto (L´ opez-Presa, Anta and Chiroque, 2009–) automorphism group and comparison of two graphs Many similar principles appear in these programs. saucy and bliss began life as reimplementations of nauty but have since diverged.

practical graph isomorphism ii — 10

Partition refinement A key concept used by nauty is partition refinement. (“partition” = “colouring”) An equitable partition is one where every two vertices of the same colour are adjacent to the same number of vertices of each colour. Two examples of equitable partitions:

practical graph isomorphism ii — 11

Refinement of a partition means to subdivide its cells. Given a partition (colouring) π , there is a unique equitable partition that is a refinement of π and has the least number of colours.

practical graph isomorphism ii — 12

Refinement of a partition means to subdivide its cells. Given a partition (colouring) π , there is a unique equitable partition that is a refinement of π and has the least number of colours.

Initial

Count green neighbours

Count pink neighbours

Count yellow neighbours

practical graph isomorphism ii — 12

Search tree All competitive isomorphism programs generate a tree based on partition refinement. The nodes of the tree correspond to partitions (colourings). The root of the tree corresponds to the initial colouring, refined. If a node corresponds to a discrete partition (each vertex with a different colour), it has no children and is a leaf. Otherwise we choose a colour used more than once (the target cell), individualize one of those vertices by giving it a new unique colour, and refine to get a child.

practical graph isomorphism ii — 13

Search tree All competitive isomorphism programs generate a tree based on partition refinement. The nodes of the tree correspond to partitions (colourings). The root of the tree corresponds to the initial colouring, refined. If a node corresponds to a discrete partition (each vertex with a different colour), it has no children and is a leaf. Otherwise we choose a colour used more than once (the target cell), individualize one of those vertices by giving it a new unique colour, and refine to get a child. Each leaf lists the vertices in some order (since colours have a predefined order), so it corresponds to a labelling of the graph.

practical graph isomorphism ii — 13

Search tree All competitive isomorphism programs generate a tree based on partition refinement. The nodes of the tree correspond to partitions (colourings). The root of the tree corresponds to the initial colouring, refined. If a node corresponds to a discrete partition (each vertex with a different colour), it has no children and is a leaf. Otherwise we choose a colour used more than once (the target cell), individualize one of those vertices by giving it a new unique colour, and refine to get a child. Each leaf lists the vertices in some order (since colours have a predefined order), so it corresponds to a labelling of the graph. If we have two leaves giving the same labelled graph, we have found an automorphism. If we define an order on labelled graphs, such as lexicographic order, then the greatest labelled graph corresponding to a leaf is a canonical graph.

practical graph isomorphism ii — 13

Search tree All competitive isomorphism programs generate a tree based on partition refinement. The nodes of the tree correspond to partitions (colourings). The root of the tree corresponds to the initial colouring, refined. If a node corresponds to a discrete partition (each vertex with a different colour), it has no children and is a leaf. Otherwise we choose a colour used more than once (the target cell), individualize one of those vertices by giving it a new unique colour, and refine to get a child. Each leaf lists the vertices in some order (since colours have a predefined order), so it corresponds to a labelling of the graph. If we have two leaves giving the same labelled graph, we have found an automorphism. If we define an order on labelled graphs, such as lexicographic order, then the greatest labelled graph corresponding to a leaf is a canonical graph. However the tree can be much too large to generate completely.

practical graph isomorphism ii — 13

1

2

3

4

8

7

6

5

[1458|2367]

[ ... ]

[ ... ]

[ 4 |1 8 | 5 | 2 7 | 6 | 3 ]

[ 1 |4 5 | 8 | 3 6 | 7 | 2 ]

[ ... ] [ ... ]

[1|4|5 |8|6|3|7|2]

[1|5|4 |8|3|6|7|2]

[4|1|8|5|7|2|6|3]

1

8

6

2

1

8

5

3

2

6

8

1

4

7

5

3

4

7

6

2

3

5

7

4

(1)

(3 6)(4 5)

(1 4)(2 3)(5 8)(6 7)

practical graph isomorphism ii — 14

[ ... ] [ ... ]

[ ... ]

Node invariants A node invariant is a value φ(ν ) attached to each node in the tree that depends only on the combinatorial properties of ν and its ancestors in the search tree (not on the labelling of the graph). Moreover, the order of node invariants must be preserved by descendants: Let ν1 , ν2 be nodes at the same level in the search tree. If ν10 is a descendant of ν1 , and ν20 is a descendant of ν2 , then

φ(ν1 ) < φ(ν2 ) =⇒ φ(ν10 ) < φ(ν20 ).

practical graph isomorphism ii — 15

Node invariants A node invariant is a value φ(ν ) attached to each node in the tree that depends only on the combinatorial properties of ν and its ancestors in the search tree (not on the labelling of the graph). Moreover, the order of node invariants must be preserved by descendants: Let ν1 , ν2 be nodes at the same level in the search tree. If ν10 is a descendant of ν1 , and ν20 is a descendant of ν2 , then

φ(ν1 ) < φ(ν2 ) =⇒ φ(ν10 ) < φ(ν20 ). For example,

φ(ν ) = c (ν 0 ), c (ν 00 ), . . . , c (ν )



is a node invariant with lexicographic ordering, where ν 0 , ν 00 , . . . , ν is the path from the root of the tree to ν , and c ( ) is the number of colours.

practical graph isomorphism ii — 15

Node invariants A node invariant is a value φ(ν ) attached to each node in the tree that depends only on the combinatorial properties of ν and its ancestors in the search tree (not on the labelling of the graph). Moreover, the order of node invariants must be preserved by descendants: Let ν1 , ν2 be nodes at the same level in the search tree. If ν10 is a descendant of ν1 , and ν20 is a descendant of ν2 , then

φ(ν1 ) < φ(ν2 ) =⇒ φ(ν10 ) < φ(ν20 ). For example,

φ(ν ) = c (ν 0 ), c (ν 00 ), . . . , c (ν )



is a node invariant with lexicographic ordering, where ν 0 , ν 00 , . . . , ν is the path from the root of the tree to ν , and c ( ) is the number of colours. Let φ∗ be the greatest node invariant of a leaf. Then the lexicographically greatest labelled graph corresponding to a leaf ν with φ(ν ) = φ∗ is a canonical graph.

practical graph isomorphism ii — 15

Pruning operations Node invariants, together with automorphisms, allow us to remove parts of the search tree without generating them. 1. If ν1 , ν2 are nodes at the same level in the search tree and φ(ν1 ) < φ(ν2 ), then no canonical labelling is descended from ν1 . 2. If ν1 , ν2 are nodes at the same level in the search tree and φ(ν1 ) 6= φ(ν2 ), then no labelled graph descended from ν1 is the same as one descended from ν2 . g

3. If ν1 , ν2 are nodes with ν2 = ν1 for an automorphism g , then g maps the subtree descended from ν1 onto the subtree descended from ν2 .

practical graph isomorphism ii — 16

Pruning operations Node invariants, together with automorphisms, allow us to remove parts of the search tree without generating them. 1. If ν1 , ν2 are nodes at the same level in the search tree and φ(ν1 ) < φ(ν2 ), then no canonical labelling is descended from ν1 . 2. If ν1 , ν2 are nodes at the same level in the search tree and φ(ν1 ) 6= φ(ν2 ), then no labelled graph descended from ν1 is the same as one descended from ν2 . g

3. If ν1 , ν2 are nodes with ν2 = ν1 for an automorphism g , then g maps the subtree descended from ν1 onto the subtree descended from ν2 .

Each of these observations enables us to prune parts of the search tree. The hope is that the remaining parts will be small enough to compute.

practical graph isomorphism ii — 16

Variations between programs The competing programs vary from each other in ways that include: 1. Data structures 2. Strength of the refinement procedure 3. Order of traversal of the search tree 4. Means of discovering automorphisms 5. Processing of automorphisms

practical graph isomorphism ii — 17

Stronger refinement —

nauty “invariants”

Sometimes refinement to equitable partition is insufficient to separate vertices with clearly different combinatorial properties. Those properties can be used to make the refinement stronger.

practical graph isomorphism ii — 18

Stronger refinement —

nauty “invariants”

Sometimes refinement to equitable partition is insufficient to separate vertices with clearly different combinatorial properties. Those properties can be used to make the refinement stronger. For example, we can count the number of 3-cycles and 4-cycles through each vertex:

practical graph isomorphism ii — 18

Stronger refinement —

nauty “invariants”

Sometimes refinement to equitable partition is insufficient to separate vertices with clearly different combinatorial properties. Those properties can be used to make the refinement stronger. For example, we can count the number of 3-cycles and 4-cycles through each vertex:

practical graph isomorphism ii — 18

Stronger refinement —

nauty “invariants”

Sometimes refinement to equitable partition is insufficient to separate vertices with clearly different combinatorial properties. Those properties can be used to make the refinement stronger. For example, we can count the number of 3-cycles and 4-cycles through each vertex:

practical graph isomorphism ii — 18

Example of stronger refinement performance Consider random quartic graphs with 1000 vertices.

• nauty (dense data structures)

5.6 seconds

• nauty (sparse data structures)

0.5 seconds

• nauty (count vertices at distance 2)

0.0014 seconds

practical graph isomorphism ii — 19

Example of stronger refinement performance Consider random quartic graphs with 1000 vertices.

• nauty (dense data structures)

5.6 seconds

• nauty (sparse data structures)

0.5 seconds

• nauty (count vertices at distance 2)

0.0014 seconds

The big problem with these methods is that the best refinement technique varies from one graph class to another. The user has to know which one to choose, which few do.

practical graph isomorphism ii — 19

Tree traversal order — a

Traces innovation

practical graph isomorphism ii — 20

Tree traversal order — a

Traces innovation

practical graph isomorphism ii — 20

Tree traversal order — a

Traces innovation

Classical order: depth-first search

practical graph isomorphism ii — 20

Tree traversal order — a

Traces innovation

Traces order: breadth-first search

practical graph isomorphism ii — 20

Tree traversal order — a

Traces innovation

Traces order: breadth-first search The problem with BFS is that automorphisms are discovered at leaves.

practical graph isomorphism ii — 20

Tree traversal order — a

Traces innovation

practical graph isomorphism ii — 21

Tree traversal order — a

Traces innovation

practical graph isomorphism ii — 21

Tree traversal order — a

Traces innovation

Traces: experimental paths Experimental paths allow automorphism detection during breadth-first search.

practical graph isomorphism ii — 21

Refinement traces – a

Traces innovation

In all programs, for almost all graphs, most of the work involves partition refinement. However, the result of partition refinement is often thrown away because the node invariant of the resulting node is unsuitable.

practical graph isomorphism ii — 22

Refinement traces – a

Traces innovation

In all programs, for almost all graphs, most of the work involves partition refinement. However, the result of partition refinement is often thrown away because the node invariant of the resulting node is unsuitable. To alleviate this problem, Traces defines the node invariant to be a vector whose components are computed incrementally during the refinement. Then the refinement can often be aborted early. (This extends a technique introduced by bliss.)

practical graph isomorphism ii — 22

Refinement traces – a

Traces innovation

In all programs, for almost all graphs, most of the work involves partition refinement. However, the result of partition refinement is often thrown away because the node invariant of the resulting node is unsuitable. To alleviate this problem, Traces defines the node invariant to be a vector whose components are computed incrementally during the refinement. Then the refinement can often be aborted early. (This extends a technique introduced by bliss.) Initial

Count pink neighbours

Count green neighbours

Count yellow neighbours

A possible trace (not Traces’ trace) is the number of colours at each step: (2,3,5,6).

practical graph isomorphism ii — 22

Sparse automorphism detection — a

v

saucy innovation

x

equitable partition (no other blue or green) w

y

practical graph isomorphism ii — 23

Sparse automorphism detection — a

v

saucy innovation

x

equitable partition (no other blue or green) y

w

individualize v

individualize w

v

x

v

x

w

y

w

y

practical graph isomorphism ii — 23

Sparse automorphism detection — a

v

saucy innovation

x

equitable partition (no other blue or green) y

w

individualize v

individualize w

v

x

v

x

w

y

w

y

This discovers the automorphism (v w )(x y ) without comparing leaves.

practical graph isomorphism ii — 23

Automorphism group handling Programs using depth-first search naturally produce automorphisms in the form of a base and strong generating set. Other programs, like Traces, produce less predictable generators. In order to perform automorphism-based pruning of the search tree, we need to efficiently (usually) determine if two sequences of vertices are equivalent under the group generated by the automorphisms found so far.

practical graph isomorphism ii — 24

Automorphism group handling Programs using depth-first search naturally produce automorphisms in the form of a base and strong generating set. Other programs, like Traces, produce less predictable generators. In order to perform automorphism-based pruning of the search tree, we need to efficiently (usually) determine if two sequences of vertices are equivalent under the group generated by the automorphisms found so far.

Traces uses a technique called the random Schreier method to perform this computation probabiliistically.

nauty also uses this in circumstances where the basic group handling is insufficient.

practical graph isomorphism ii — 24

Base and strong generating set

5 6

8

2

1

12

7

11

3

10

15

4

16

14 13

9

Fixing 1,5,9,13 : everything fixed Fixing 1,5,9. Orbit of 13 is {13, 15}. (13 15) Fixing 1,5. Orbit of 9 is {9, 11}. (9 11) Fixing 1. Orbit of 5 is {5, 7, 13, 15}. (5 7) (2 4)(5 13)(6 16)(7 15)(8 14)(10 12) Fixing nothing. Orbit of 1 is {1, 3, 5, 7, 9, 11, 13, 15}. (1 3) (1 5)(2 8)(3 7)(4 6)(9 13)(10 16)(11 15)(12 14) Group size = 2 × 2 × 4 × 8 = 128.

This is a base and strong generating set. There are at most n − 1 generators, even though the group size can be up to n! .

practical graph isomorphism ii — 25

Bliss 7.2

Automorphism group

10−1

Nauty 2.5

Saucy 2.1

Traces 2.0

Traces 2.0

10−2 10−3 10−4 10−5 101

Bliss 7.2

Conauto 2.0

Time (sec) (sec)

Time (sec) (sec)

Nauty 2.5

102 103 Vertices

Canonical label

10−1 10−2 10−3 10−4 10−5 101

Figure 1: Random graphs with p =

practical graph isomorphism ii — 26

102 103 Vertices 1 2

Bliss 7.2 Nauty 2.5

Nauty 2.5

Saucy 2.1

Traces 2.0

Traces 2.0

10−2

10−2 −3

10

10−4

10−3 10−4 10−5

10−5 101

Canonical label

Bliss 7.2

Conauto 2.0

Time (sec)

Time (sec)

10−1

Automorphism group

102 103 Vertices

104

101

102 103 Vertices

Figure 2: Random graphs with average degree

practical graph isomorphism ii — 27



n

104

Bliss 7.2 Nauty 2.5

Automorphism group

Bliss 7.2

Conauto 2.0 Saucy 2.1

102

Traces 2.0

> 600s

102

Traces 2.0

> 600s

101 Time (sec)

101 Time (sec)

Canonical label

Nauty 2.5

100 10−1 10−2

100 10−1 10−2

10−3

10−3

10−4

10−4 102

103 104 Vertices

105

102

Figure 3: Random cubic graphs

practical graph isomorphism ii — 28

103 104 Vertices

105

Bliss 7.2 Nauty 2.5

Automorphism group

Bliss 7.2

Saucy 2.1

Canonical label

Nauty 2.5

Conauto 2.0

Traces 2.0

> 600s

> 600s

Traces 2.0

101 Time (sec)

Time (sec)

101 10−1 10−3 10−5 101

10−1 10−3 10−5

102

103 104 Vertices

105

101

Figure 4: Random trees

practical graph isomorphism ii — 29

102

103 104 Vertices

105

Bliss 7.2

Automorphism group

Nauty 2.5

Bliss 7.2

Conauto 2.0

Nauty 2.5

Saucy 2.1

Traces 2.0

Canonical label

Traces 2.0

101

> 400s

Time (sec)

Time (sec)

101 10−1 10−3 10−5

10−1 10−3 10−5

101

102

103 104 Vertices

105

106

101

Figure 5: Hypercubes

practical graph isomorphism ii — 30

102

103 104 Vertices

105

106

Bliss 7.2 Nauty 2.5

Automorphism group

Nauty 2.5

Saucy 2.1

Traces 2.0

100

Traces 2.0

10−1

Time (sec)

Time (sec)

100

Canonical label

Bliss 7.2

Conauto 2.0

10−2 10−3 10−4

10−1 10−2 10−3 10−4

10−5

10−5 101

102

103 Vertices

104

101

102

103 Vertices

Figure 6: Miscellaneous vertex-transitive graphs

practical graph isomorphism ii — 31

104

Bliss 7.2

Automorphism group

Nauty 2.5

Nauty 2.5 Traces 2.0

Saucy 2.1 Traces 2.0

10

10−1

Time (sec)

Time (sec)

100

Canonical label

Bliss 7.2

Conauto 2.0

10−2 10−3 10−4

−1

10−2 10−3 10−4 10−5

10−5 101

102 103 Vertices

104

101

102 103 Vertices

Figure 7: 2-dimensional and 3-dimensional grids

practical graph isomorphism ii — 32

104

Bliss 7.2 Nauty 2.5

10

−1

Automorphism group

Bliss 7.2

Conauto 2.0

10

Saucy 2.1

−1

Canonical label

Nauty 2.5 Traces 2.0

Traces 2.0

10−2 Time (sec)

Time (sec)

10−2 10−3 10−4 10−5

10−3 10−4 10−5

0

200

400 600 Vertices

800

0

Figure 8: Latin square graphs

practical graph isomorphism ii — 33

200

400 600 Vertices

800

Bliss 7.2 Nauty 2.5

Automorphism group

Bliss 7.2

Conauto 2.0

101

Saucy 2.1

Traces 2.0

101

Traces 2.0

Time (sec)

100 Time (sec)

Canonical label

Nauty 2.5

−1

10

−2

10

−3

10

100 10−1 10−2 10−3

−4

10

10−4

10−5

10−5 10

1

2

10 Vertices

10

3

101

Figure 9: Strongly regular graphs

practical graph isomorphism ii — 34

102 Vertices

103

Bliss 7.2

Automorphism group

Bliss 7.2

Canonical label

Nauty 2.5

102

Conauto 2.0

Nauty 2.5 Traces 2.0

Traces 2.0

101 Time (sec)

Time (sec)

101 10−1 10−3

100 10−1 10−2 10−3 10−4

10−5

10−5 0

200

400 600 Vertices

800 1,000

101

Figure 10: Hadamard matrix graphs

practical graph isomorphism ii — 35

102 Vertices

103

Bliss 7.2 Bliss 7.2

Nauty 2.5 Conauto 2.0 Traces 2.0

Nauty 2.5

Automorphism group

> 600s

> 600s

102

102 Time (sec)

Time (sec)

Canonical label

Traces 2.0

101 100

101 100

10−1 10−1 104

105 Group Size

104

105 Group Size

Figure 11: Projective planes of order 16

practical graph isomorphism ii — 36

Bliss 7.2

Automorphism group

Bliss 7.2

Canonical label

Nauty 2.5 Nauty 2.5

100

Conauto 2.0 Traces 2.0 Traces 2.0

Time (sec)

Time (sec)

10 10−1

−2

10

10−3

1

100 10−1 10−2 10−3

102.4 102.6 102.8 103 Vertices

103.2

102.4 102.6 102.8 103 Vertices

Figure 12: Cai-F¨ urer-Immermann graphs

practical graph isomorphism ii — 37

103.2

Bliss 7.2 Nauty 2.5

10

2

Automorphism group

Bliss 7.2

Conauto 2.0

10

Saucy 2.1

2

Canonical label

Nauty 2.5 Traces 2.0

Traces 2.0

101

> 100s

Time (sec)

Time (sec)

101 100 10−1 10−2 10−3

> 100s

100 10−1 10−2 10−3

10−4 102

103

102

Vertices

103 Vertices

Figure 13: Miyazaki graphs

practical graph isomorphism ii — 38