3

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?

drifter
  • 31
  • 1
  • I am sorry, I do not have time to write a full answer now, but one possible solution is to remove the self loops from the graph, construct subdivision, then re-add the self-loops to subdivision. We should avoid subdividing self loops because they produce more multiple edges, which Bliss cannot handle. – Szabolcs Feb 13 '17 at 19:38
  • I'll be happy to wait for whenever you can answer it in detail. I don't understand the what you mean by removing and then adding loops. Adding loops can break the symmetry of the graph ($X$) and decrease the order of $\mathrm{Aut}(X)$. Couldn't a loop be simulated by an attribute given to the vertex (called loop :) )? – drifter Feb 13 '17 at 19:54
  • Do you allow multiple loops like in Graph[{1<->1, 1<->1}]? – Szabolcs Feb 13 '17 at 19:59
  • Yes, both multiple edges and multiple loops. – drifter Feb 13 '17 at 20:27

0 Answers0