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.