I found this post: How to compute the automorphisms of graphs with multiple edges? about how to compute the automorphism group order for a multigraph (labeled and undirected). Even GraphAutomorphismGroup in Mathematica version 11.0.1.0 I have cannot handle this problem:
g = Graph[{1 <-> 2, 2 <-> 3, 3 <-> 2}];
g = SetProperty[IndexGraph[g], VertexLabels -> "Name"]
GraphAutomorphismGroup[%]
but IGraph/M can, see http://szhorvat.net/pelican/files/IGDocumentation.pdf or the link above (the answer by @Szabolcs). I'm using IGraph/M version 0.2.1.
QUESTION: How do I find the group order for multigraphs WITH loops such as
g = Graph[{1 <-> 1, 1 <-> 2, 1 <-> 2, 2 <-> 3, 2 <-> 3, 3 <-> 3}];
? Mathematica can do loops (no parallel lines) but the code based on IGraph/M cannot. It fails after this step:
rules = Normal@Counts[Sort /@ EdgeList[g]]
Take[#, VertexCount[g]] & /@
IGBlissAutomorphismGroup[{subdivision,
"VertexColors" -> Association[colors]}]
If it is not possible with IGraph/M are there other options?
subdivision, then re-add the self-loops tosubdivision. We should avoid subdividing self loops because they produce more multiple edges, which Bliss cannot handle. – Szabolcs Feb 13 '17 at 19:38Graph[{1<->1, 1<->1}]? – Szabolcs Feb 13 '17 at 19:59