Ist jemandem ein Gegenbeispiel zum Dharwadker-Tevet Graph Isomorphism-Algorithmus bekannt?

10

Unter http://www.dharwadker.org/tevet/isomorphism/ wird ein Algorithmus vorgestellt, mit dem ermittelt werden kann, ob zwei Diagramme isomorph sind. Angesichts einer Reihe von "interessanten" Behauptungen von A Dharwadker bin ich nicht geneigt, es zu glauben.

Bei meiner Untersuchung stelle ich fest, dass der Algorithmus definitiv die richtige Antwort liefert und Ihnen sagt, dass zwei Graphen nicht isomorph sind, obwohl dies tatsächlich korrekt ist. Es ist jedoch nicht klar, dass der Algorithmus Ihnen konsistent sagt, ob zwei Graphen isomorph sind, wenn sie tatsächlich sind. Der "Beweis" ihres Ergebnisses lässt zu wünschen übrig.

Ein Gegenbeispiel ist mir jedoch nicht bekannt. Bevor ich anfing, Software zum Testen des Algorithmus zu schreiben, dachte ich, ich würde sehen, ob jemand bereits ein Gegenbeispiel kennt.

Jemand hat eine Zusammenfassung des Algorithmus angefordert. Ich werde hier tun, was ich kann, aber um es wirklich zu verstehen, sollten Sie http://www.dharwadker.org/tevet/isomorphism/ besuchen .

Der Algorithmus besteht aus zwei Phasen: einer "Signatur" -Phase und einer Sortierphase. Die erste "Signatur" -Phase (dies ist mein Begriff für ihren Prozess; sie nennen es die Erzeugung der "Zeichenmatrix") sortiert Scheitelpunkte effektiv in verschiedene Äquivalenzklassen. In der zweiten Phase werden die Scheitelpunkte zunächst nach ihrer Äquivalenzklasse geordnet und anschließend innerhalb der Äquivalenzklassen eine Sortierprozedur angewendet, um einen Isomorphismus zwischen den beiden Graphen herzustellen. Interessanterweise behaupten sie nicht, eine kanonische Form für die Graphen zu erstellen - stattdessen wird ein Graph als eine Art Vorlage für den zweiten verwendet.

Die Signaturphase ist eigentlich ziemlich interessant, und ich würde es hier nicht gerecht machen, wenn ich versuchen würde, sie zu paraphrasieren. Wenn Sie weitere Details wünschen, empfehle ich, dem Link zu folgen, um seine Signaturphase zu überprüfen. Die erzeugte "Vorzeichenmatrix" behält sicher alle Informationen über das ursprüngliche Diagramm bei und erstellt dann etwas mehr Informationen. Nach dem Sammeln der Signaturen ignorieren sie die ursprüngliche Matrix, da die Signaturen die gesamten Informationen über die ursprüngliche Matrix enthalten. Es genügt zu sagen, dass die Signatur eine Operation ausführt, die für jede Kante gilt, die sich auf den Scheitelpunkt bezieht, und dann die Mehrfachmenge von Elementen für einen Scheitelpunkt sammelt, um eine Äquivalenzklasse für den Scheitelpunkt festzulegen.

Die zweite Phase - die Sortierphase - ist der zweifelhafte Teil. Insbesondere würde ich erwarten, dass, wenn ihr Prozess funktioniert, der von Anna Lubiw entwickelte Algorithmus für die Bereitstellung einer "doppelt lexikalischen Reihenfolge von Matrizen" (siehe: http://dl.acm.org/citation.cfm?id=22189 ) würde auch funktionieren, um eine kanonische Form für einen Graphen zu definieren.

Um fair zu sein, ich verstehe ihren Sortierprozess nicht ganz, obwohl ich denke, dass sie es vernünftig beschreiben. (Ich habe einfach nicht alle Details durchgearbeitet). Mit anderen Worten, mir fehlt möglicherweise etwas. Es ist jedoch unklar, wie dieser Prozess viel mehr bewirken kann, als versehentlich einen Isomorphismus zu finden. Sicher, sie werden es wahrscheinlich mit hoher Wahrscheinlichkeit finden, aber nicht mit einer Garantie. Wenn die beiden Diagramme nicht isomorph sind, wird sie vom Sortierprozess nie gefunden, und der Prozess lehnt die Diagramme korrekt ab.

Bill Provinz
quelle
Können Sie eine Zusammenfassung der Idee des Algorithmus geben?
Mohammad Al-Turkistany
1
Siehe auch math.stackexchange.com/questions/333633/… . Dies zeigt nur, dass es eine gute Chance gibt, ein Gegenbeispiel zu dem bereitgestellten Programm zu finden, aber man muss noch eines finden ...
Thomas Klimpel
Stark reguläre Grafiken sehen nach einer guten Wette aus, aber ich hatte kein Glück mit zufällig ausgewählten Permutationen von Petersens Grafik, Clebschs Grafik oder der 4x4-Turmgrafik.
Peter Taylor
Ebenso habe ich das Shrikhande-Diagramm ausprobiert, aber nicht alle Permutationen. Ich habe Anna Lubiw eine E-Mail geschickt, um sie um Gegenbeispiele zu ihrer "doppelt lexikalischen Reihenfolge der Matrizen" zu bitten, aber sie hat nicht geantwortet (zumindest noch nicht). Ich vermute, dass ich eine systematischere Suche durchführen muss.
Bill Province
1
Sie haben nicht das Gefühl, dass Sie einen Dienst leisten, indem Sie extravagante Behauptungen des Artikels weglassen, obwohl dies sicherlich Flaggen auf dieser Website hissen würde. Was sind ihre extravaganten Behauptungen, die Sie skeptisch machen? Vielleicht behaupten sie, es sei schnelllebig, aber das kann nicht mit einem einzigen Gegenbeispiel widerlegt werden. dh / zB ist es möglich, dass der Algorithmus korrekt ist (nicht ausgesehen hat), aber die Komplexitätsanalyse ist deaktiviert. Laden Sie auf jeden Fall weitere Diskussionen / eingehendere Analysen in den Chat für Theoretische Informatik ein , in dem mehrere Besucher in der Vergangenheit großes Interesse an GI bekundet haben und kürzlich eine ausführliche Diskussion stattgefunden hat.
vzn

Antworten:

18

Für 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

und 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

welches graphA.txtdurch Anwenden der (zufälligen) Permutation erhalten wird

 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

das C ++ - Programm isororphism.cppaus Abbildung 6.3. Ein C ++ - Programm für den Graphisomorphismus-Algorithmus in http://www.dharwadker.org/tevet/isomorphism/ liefert die folgende Ausgabe:

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.

Wir können also annehmen, dass dies ein Gegenbeispiel zum Dharwadker-Tevet-Graph-Isomorphismus-Algorithmus ist.

Wie von Bill Province vorgeschlagen, ist das Problem

GAGB

Der Einwand von Bill Province ist, dass der Beweis von Satz 4.1. verwendet keine spezielle Eigenschaft der Vorzeichenmatrix, die nicht auch für die Adjazenzmatrix gelten würde. Genauer gesagt ist der folgende Schritt im Beweis falsch:

1,...,tAB1,...,tAv1,...,vt1,...,tBφ(v1)=v1,...,φ(vt)=vt beziehungsweise.

denn selbst wenn die Zeilen perfekt übereinstimmen, folgt daraus nicht, dass die Scheitelpunktbeschriftungen mit den Beschriftungen übereinstimmen, die durch einen Isomorphismus .φ

Da ein Loch im Korrektheitsnachweis identifiziert wurde, sollte das obige Gegenbeispiel ausreichen, um die behauptete Korrektheit des vorgeschlagenen Algorithmus zu widerlegen.


Danksagung Das Gegenbeispiel ist das erste der 8. Graphenpaare aus

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

Um Diagramme zu bearbeiten, habe ich den Quellcode von ScrewBoxR1160.tar verwendet und geändert, der unter gefunden wurde

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

Um das Loch im Korrektheitsnachweis zu verstehen, war der Kommentar von András Salamon zu Weisfeiler-Lehman sehr hilfreich, ebenso wie die Erklärungen von

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

Die Motivation, diese Frage als Gelegenheit zu nutzen, sich mit nauty / Traces und den praktischen Aspekten des Graphisomorphismus vertraut zu machen, wurde von vzn bereitgestellt. Der Vorteil des Lernens, wie man hochmoderne Programme für Graphisomorphismen verwendet, hat es sich gelohnt, einige Zeit für die Suche nach einem Gegenbeispiel zu investieren (von dem ich fest überzeugt war, dass es existiert).

Thomas Klimpel
quelle
Vielen Dank für die sehr ausführliche Antwort. Gab es ein Auswahlkriterium, das Sie für das Diagramm verwendet haben, um das Gegenbeispiel zu finden? Sobald das Gegenbeispiel ausgewählt wurde, scheint Ihr Kommentar darauf hinzudeuten, dass die Permutation zufällig ausgewählt wurde. War das wahr? Oder gab es mehr zur Auswahl der Permutation?
Bill Province
@ BillProvince Die Auswahlkriterien basierten auf dem Kommentar von András Salamon, da dies darauf hinwies, dass eine Konstruktion von Cai, Fürer und Immerman erfolgreich sein könnte. Ich habe zuerst ein n = 546-Beispiel von Pascal Schweitzer ausprobiert, aber das ursprüngliche C ++ - Programm isororphism.cpp berechnet jetzt seit> 1566 Minuten. Ich habe bessere Datenstrukturen verwendet und nach> 2h erfahren, dass das große Gegenbeispiel funktioniert. Ich wusste, dass trg787 / funkybee einige Cai-, Fürer- und Immerman-Konstruktionen unter seinen Graphpaaren hatte, also versuchte ich mein Glück. Ich habe mehrere zufällige Permutationen ausprobiert (für das Beispiel n = 25), die zweite hat funktioniert.
Thomas Klimpel
welches zeitsparend ist, 1. ein Gegenbeispiel finden 2. beweisen, dass 4.1 falsch ist.
Jim
Ich habe das ursprüngliche C ++ - Programm isoromorphism.cpp für das Beispiel n = 546 jetzt gestoppt, nachdem es mehr als 6200 Minuten lang ausgeführt wurde, ohne dass ein Ende in Sicht war.
Thomas Klimpel
@ThomasKlimpel Ich habe vor, ein Papier zu schreiben, in dem dieses Ergebnis erwähnt wird. Wenn Sie eine bevorzugte berufliche Zuordnung haben, können Sie mir diese Zuordnung per E-Mail an [email protected] senden. Unabhängig davon beabsichtige ich, die unter blog.stackexchange.com/2009/06/attribution-required veröffentlichten Attributionsanforderungen zu befolgen .
Bill Province