Brendan McKay已经完成了找到n个变量的所有非同构图的工作,这些图可以在这里找到(在简单图表下):http://cs.anu.edu.au/~bdm/data/graphs.html
我相信这是使用polya枚举完成的,我理解了它的基础知识。我想对此进行扩展,并在这些图中允许自循环。所以,我想找到n个变量的所有非同构图,包括自循环。这将直接用于我的代码的另一部分,并提供大量优化。我只是不太确定如何去做。
要清楚,Brendan Mckay的文件给出了所有非变形图,即边缘符号,
1-2 1-3
是在顶点1和2以及1和3之间具有边缘的图。我希望此列表还包括自循环,即:
1-2 1-3 1-1
或
1-2 1-3 1-1 2-2
我想要最少数量的图形,所以非所有非图形。我怎样才能找到它们,希望使用Brendan McKay提供的简单图表数据?
答案 0 :(得分:1)
首先,您应该观察到,如果两个图形不是同构的,那么这些带有一些额外自环的图形不是同构的。
如果你在编程期间需要这个并且图形的大小很小,我会为每个非iso图生成所有可能的自循环图。
最简单的事情是添加额外的节点,每个具有自循环的节点将与给定节点连接。 (而不是有循环)使用nauty,你可以检查是否有两个是同构的。如果您观察到如果两个循环编码版本是iso,那么您可以另外加速,然后它们必须与“特殊”节点具有相同数量的连接。