Conauto-2.0: Fast Isomorphism Testing and Automorphism Group Computation (2011)
Abstract: In this paper we present an algorithm, called conauto-2.0, that can efficiently compute a set of generators of the automorphism group of a graph, and test whether two graphs are isomorphic, finding an isomorphism if they are. This algorithm uses the basic individualization/refinement technique, and is an improved version of the algorithm conauto, which has been shown to be very fast for random graphs and several families of hard graphs. In this paper, it is proved that, under some circumstances, it is not only possible to prune the search space (using already found generators of the automorphism group), but also to infer new generators without the need of explicitly finding an automorphism of the graph. This result is especially suited for graphs with regularly connected components, and can be applied in any isomorphism testing and canonical labeling algorithm (that use the individualization/refinement technique) to significantly improve its performance. Additionally, a dynamic target cell selection function is used to adapt to different graphs. The resulting algorithm preserves all the nice features of conauto, but reduces the time for testing graphs with regularly connected components and other hard graph families. We run extensive experiments, which show that the most popular algorithms (namely, nauty, bliss, Traces, and saucy) are slower than conauto-2.0, among others, for the graph families based on components.
Follow up paper: Novel Techniques for Automorphism Group Computation
Conauto supports directed graphs and vertex colours.
We have carried out extensive experiments to compare the practical performance of conauto-2.0 with nauty-2.4, bliss-0.35, and bliss-0.724 to test for isomorphism with several graph families. (Only a small subset of results has been included here.) Our experiments show that conauto-2.0 is the fastest for most graph families, and when it is not, its performance is similar to that of the others.