枚举具有自循环的图形

时间:2011-05-25 22:35:53

标签: c graph enumeration

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提供的简单图表数据?

1 个答案:

答案 0 :(得分:1)

首先,您应该观察到,如果两个图形不是同构的,那么这些带有一些额外自环的图形不是同构的。

如果你在编程期间需要这个并且图形的大小很小,我会为每个非iso图生成所有可能的自循环图。

最简单的事情是添加额外的节点,每个具有自循环的节点将与给定节点连接。 (而不是有循环)使用nauty,你可以检查是否有两个是同构的。如果您观察到如果两个循环编码版本是iso,那么您可以另外加速,然后它们必须与“特殊”节点具有相同数量的连接。