[Nauty] counting orbit size for colored graph/computing transversal

J.K.R. Bausch jkrb2 at cam.ac.uk
Sun Jan 27 08:31:10 AEDT 2019


Dear all,

I have the following question, and I'm curious whether nauty/traces can 
do this.
I'm given a graph G with a large automorphism group Aut(G).

1. Given a coloring c for this graph, compute the _size_ of its orbit 
under Aut(G).
2. Given a number of colors, compute all possible colorings of G, modulo 
Aut(G).

Context:
1. I can obviously compute all elements of the orbit myself, but that 
would be expensive.
What I want is to essentially compute |Aut(G)| / 
|StabilizerGroup(Aut(G), c)|, which should be much faster and consume 
less memory.
I know how to do this in e.g. Gap, or Mathematica, but it would be 
faster for my purposes if I could compute it without leaving C++ - so is 
this possible with nauty/traces?

2. To specify what exactly I mean: I want _one_ representative per 
disjoint orbit of all possible colorings of G.
Again there exists an algorithm for doing this for any permutation 
group, see e.g.
https://arxiv.org/abs/1211.6261
Can nauty/traces generate such a list of colorings directly?

Last but not least, I would be keen to know how performant it is to 
compute the canonical image for a _lot_ of colorings of a particular 
graph G.
Currently I simply iterate over said list and call nauty individually.
Does nauty somehow cache its calculation of the automorphism group? Or 
is there a specific way to call it for this purpose?

Thank you so much for your help!
Best,
Johannes

PS: I asked a variant of this question on stackexchange, where I was 
pointed to this list:
://mathoverflow.net/questions/321739/nauty-traces-orbit-sizes-for-colored-graph


More information about the Nauty mailing list