Brendan McKay 2026-11-05
Brendan McKay is a researcher in computational graph theory and an emeritus professor at the Australian National University. His institutional homepage identifies nauty as software for graph isomorphism and graph automorphisms.[ref]
A graph automorphism is a relabeling that preserves adjacency within a graph. For an original cycle on four vertices, choose the image of one vertex in4 ways and then choose which of its two neighbors receives the next vertex in2 ways. The remaining images are forced, giving
These relabelings form a group. Computing such symmetries can avoid repeating equivalent branches of a structural search.
Graph canonical labeling addresses a complementary problem: assign a representative encoding so that isomorphic graphs receive the same canonical result. This makes it possible to compare structures whose input vertex names differ or to remove duplicate generated graphs. McKay's work on nauty made these tasks practical for many graph classes.
With Adolfo Piperno, he described the mathematical basis of individualization-refinement graph search and the implementations in nauty and Traces graph isomorphism software. Their paper connects the validity of the search framework with performance comparisons, while distinguishing the practical algorithms from a general worst-case efficiency claim.[ref]
Traces is software for computing graph automorphisms and canonical graph labeling, developed by Adolfo Piperno and distributed with nauty. A canonical result permits two graphs to be compared without depending on their input vertex names. Traces uses individualization-refinement graph search, with strategies designed to reduce the explored search space.[ref]
Refinement groups vertices according to structural information, including their numbers of neighbors in existing vertex classes. When this does not distinguish all vertices, individualization temporarily gives a selected vertex its own class and refinement continues. Discovering equivalent choices and distinguishing branches can avoid repeated work; the validity of the framework and implementation strategies are developed with Brendan McKay.[ref]
An original example shows why a coarse invariant is insufficient. A cycle on6vertices and two separate triangles both have6vertices and every vertex has2neighbors. Starting with one vertex class, neighbor-count refinement leaves one class in both cases. Yet the graphs are not isomorphic: one is connected and the other is not. Their correct canonical graph encodings must therefore differ.
Conversely, two differently numbered copies of the same6-cycle should give the same canonical result when processed with the same canonicalization convention. The example illustrates the required behavior, not a benchmark of a particular Traces version.
Performance depends on the graph family and search strategy. The practical success of the program does not by itself establish a polynomial worst-case bound for graph isomorphism. A reproducible comparison should keep the canonicalization settings consistent rather than assume all programs must choose an identical representative.