Ich suche nach einem Algorithmus, der eine kanonische Zeichenfolge für ein bestimmtes farbiges Diagramm bereitstellt . Dh. Ein Algorithmus, der eine Zeichenfolge für ein Diagramm zurückgibt, sodass zwei Diagramme genau dann dieselbe Zeichenfolge erhalten, wenn sie isomorph sind.
Insbesondere suche ich nach einem einfachen Algorithmus, der mit einer angemessenen Leistung auf den meisten Graphen einfach zu implementieren ist (natürlich im schlimmsten Fall Superpolynom). Ich erwarte kleine Grafiken, daher muss die Leistung nicht herausragend sein, sondern nur gut genug.
Leider sind die meisten Dinge, die ich gefunden habe, sehr komplex und mehr daran interessiert, tiefe mathematische Zusammenhänge auszudrücken, als nur den Algorithmus zu beschreiben. Ich fürchte, ich habe nicht die Zeit, so tief zu tauchen. Kann mir jemand eine Abkürzung geben?
Ich hoffe auf so etwas wie den Floyd-Warshall-Algorithmus. Nicht optimal, aber gut genug und einfach zu implementieren.
Antworten:
Brendan McKay und Adolfo Piperno haben 2013 ein Umfragepapier zu dieser Frage verfasst. Sie präsentieren mehrere effiziente Computerprogramme, die viele Grafiken schneller kanonisieren können, als Sie sich vorstellen können. Es ist nicht notwendig (und sinnlos), diese Algorithmen selbst zu implementieren - sie sind online verfügbar, sogar als Quellcode.
quelle
Am Ende habe ich den Nauty-Algorithmus implementiert, aber dabei eine Antwort auf meine eigene Frage gefunden. Nauty erweitert diesen grundlegenden Algorithmus um viele komplizierte Heuristiken:
Bei kleinen Graphen G der Länge n:
Nauty erweitert diesen Algorithmus hauptsächlich, indem der Suchraum von zu berücksichtigenden Graphen beschnitten wird, wenn nach dem mit der kleinsten Zeichenfolgendarstellung gesucht wird.
quelle