有人知道Dharwadker-Tevet图同构算法的反例吗?


10

http://www.dharwadker.org/tevet/isomorphism/上,展示了一种用于确定两个图是否同构的算法。考虑到A Dharwadker提出的“有趣”主张,我不愿意相信。

在我的调查中,我发现该算法肯定会产生正确的答案,并告诉您实际上是正确的两个图不是同构的。但是,尚不清楚算法是否会始终告诉您两个图形实际上是否同构。他们的结果的“证明”有待改进。

但是,我不知道反例。在开始编写软件来测试算法之前,我想我会看是否有人已经知道一个反例。

有人要求对该算法进行提要。我将尽我所能,但要真正理解它,您应该访问http://www.dharwadker.org/tevet/isomorphism/

该算法分为两个阶段:“签名”阶段和排序阶段。第一个“签名”阶段(这是我的过程术语;他们称其为生成“符号矩阵”),将顶点有效地分类为不同的等价类。第二阶段根据其等价类首先对顶点进行排序,然后在等价类中应用排序过程以在两个图之间建立同构。有趣的是,他们并没有要求为图建立规范形式-而是将一个图用作第二个图的模板。

签名阶段实际上是非常有趣的,在这里我不会试图通过解释来做到这一点。如果您需要更多详细信息,我建议您单击链接以检查他的签名阶段。生成的“符号矩阵”当然会保留有关原始图形的所有信息,然后建立更多的信息。收集签名后,它们将忽略原始矩阵,因为签名包含有关原始矩阵的全部信息。可以说签名执行了一些操作,该操作适用于与顶点相关的每个边,然后它们收集顶点的元素多集以建立顶点的等价类。

第二阶段-排序阶段-是可疑的部分。特别是,我希望如果他们的过程可行,那么安娜·卢比(Anna Lubiw)开发的用于提供“矩阵的双重词法排序”的算法(请参阅:http ://dl.acm.org/citation.cfm?id=22189 )也将为图形定义规范形式。

公平地说,尽管我认为他们在描述它的过程中做得很合理,但我并不完全理解他们的排序过程。(我只是没有完成所有细节)。换句话说,我可能会缺少一些东西。但是,目前尚不清楚该过程除偶然发现同构外还能做什么。当然,他们可能会很有可能找到它,但不能保证。如果两个图是非同构的,则排序过程将永远找不到它,并且该过程将正确拒绝这些图。


您能否概述一下算法的想法?
Mohammad Al-Turkistany 2015年

1
另请参见math.stackexchange.com/questions/333633/…。这只是表明有很好的机会找到所提供程序的反例,但仍然必须找到一个反例...
Thomas Klimpel

强规则图形看起来是个不错的选择,但是我对Petersen图,Clebsch图或4x4 rook图的随机选择排列没有任何运气。
彼得·泰勒

同样,我尝试了Shrikhande图,但并未尝试所有排列。我通过电子邮件给安娜·卢比(Anna Lubiw)询问她“矩阵的双重词法排序”的反例,但她尚未答复(至少尚未答复)。我怀疑我将需要进行更系统的搜索。
比尔省

1
不要以为您忽略了这篇文章的夸大说法,尽管这肯定会在本网站上引起关注,但您在做服务。他们的夸大主张使您对此表示怀疑?也许他们声称这是快速执行的,但是不能用一个反例来证明这一点。即/例如,可能的算法是正确的(经过仔细研究),但是复杂性分析已关闭。无论如何,请在Theoretical Computer Science Chat中进行进一步的讨论/更深入的分析,在过去的几次访问中,一些访问者对GI表现出了浓厚的兴趣,并且最近进行了广泛的讨论。
vzn

Answers:


18

对于graphA.txt

25
 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0
 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0
 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0
 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1
 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 1
 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 1 0 0
 1 0 0 1 0 0 1 1 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1
 1 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 0
 1 0 0 0 1 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 1 1 0 0
 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1
 0 1 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 1
 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0
 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 1
 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1
 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0
 0 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0
 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 1 0
 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1
 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0
 0 0 1 0 1 1 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1
 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 0 1 0 1 1 0 1 0 0 1
 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 0 1 1 0

graphB.txt

25
 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 1 1 0 1 0
 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1
 0 1 0 1 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0
 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0
 1 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 0
 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 1
 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0
 0 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1
 0 0 1 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 1 1
 1 0 0 1 1 1 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1
 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 1 0
 1 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 1
 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 0 1
 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 0
 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0
 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1
 0 0 0 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 0
 1 0 1 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0
 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 0
 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1
 1 1 0 0 1 1 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 1
 1 1 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1
 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1
 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 1 1 0 0
 0 1 0 0 0 1 0 1 1 1 0 1 1 0 0 1 0 0 0 1 1 1 1 0 0

这是从获得graphA.txt通过应用(随机)排列

 22 9 24 11 15 8 5 18 13 14 2 10 23 0 3 17 4 16 6 19 7 21 12 1 20

该C ++程序isororphism.cpp图6.3。 A C ++的图同构算法程序http://www.dharwadker.org/tevet/isomorphism/提供以下输出:

The Graph Isomorphism Algorithm
by Ashay Dharwadker and John-Tagore Tevet
http://www.dharwadker.org/tevet/isomorphism/
Copyright (c) 2009
Computing the Sign Matrix of Graph A...
Computing the Sign Matrix of Graph B...
Graph A and Graph B have the same sign frequency vectors in lexicographic order but cannot be isomorphic.
See result.txt for details.

因此,我们可以假设这是Dharwadker-Tevet图同构算法的反例。

正如比尔省所建议的那样,问题是

4.1。主张。如果图G B是同构的,则该算法找到同构。GAGB

Bill Province的反对意见是命题4.1的证明不使用符号矩阵的任何特殊属性,该属性也不适用于邻接矩阵。更准确地说,证明中的以下步骤是错误的:

1,...,tAB1,...,tAv1,...,vt1,...,tBφ(v1)=v1,...,φ(vt)=vt 分别。

因为即使行已完全匹配,也不能保证顶点标签与任何同构给定的标签匹配。φ

由于在正确性证明中发现了一个漏洞,因此上述反例足以驳斥所提出算法的要求正确性。


致谢 反例是来自的第8个图对中的第一个

http://funkybee.narod.ru/graphs.htm

为了处理图形,我使用并修改了ScrewBoxR1160.tar中的源代码,该文件位于

https://people.mpi-inf.mpg.de/~pascal/software/

为了理解正确性证明中的漏洞,AndrásSalamon关于Weisfeiler-Lehman的评论非常有帮助,

http://users.cecs.anu.edu.au/~pascal/docs/thesis_pascal_schweitzer.pdf

利用这个问题的动机是熟悉海蒂/痕迹和图同构的实际方面的机会,由vzn提供。学习如何将最先进的程序用于图形同构的好处使得值得花费一些时间来查找反例(我坚信该反例已经存在)。


感谢您的详细答复。您是否使用用于图形的选择标准来找到反例?一旦选择了反例,您的评论似乎表明该排列是随机选择的。这是真的吗?还是排列的选择更多?
比尔省

@BillProvince选择标准基于AndrásSalamon的评论,因为它表明Cai,Fürer和Immerman的建筑可能会成功。我首先尝试了Pascal Schweitzer的n = 546示例,但是最初的C ++程序isororphism.cpp从> 1566分钟开始计算。我使用了更好的数据结构,并在> 2小时后获悉,大型的反例工作了。我知道trg787 / funkybee在他的图形对中有一些Cai,Fürer和Immerman结构,所以我尝试了运气。我尝试了多个随机排列(对于n = 25的示例),第二个有效。
Thomas Klimpel

哪个节省时间,1.找到一个反例2.证明4.1错误。
2015年

在运行了超过6200分钟且看不到结束之后,我现在停止了n = 546示例的原始C ++程序isoromorphism.cpp。
Thomas Klimpel

@ThomasKlimpel我打算写一篇提到这一结果的论文。如果您有首选的专业属性,可以通过billprovince@gmail.com向我发送该属性的电子邮件。无论如何,我打算遵循在blog.stackexchange.com/2009/06/attribution-required上发布的出处要求。
比尔省
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.