Ich arbeite an einem Problem im Zusammenhang mit lateinischen Quadraten und möchte eine Methode für das, was im Wesentlichen auf das Entscheidungsproblem hinausläuft:
Eingabe : Ein endlicher, einfacher Graph G.
Ausgabe : YES
Wenn G NO
ansonsten einen nicht trivialen Automorphismus hat .
Daher...
Frage : Gibt es einen effizienten Algorithmus, um festzustellen, ob ein Graph einen nicht trivialen Automorphismus aufweist oder nicht?
Wir könnten Nauty oder Bliss (und möglicherweise einige andere Pakete) verwenden, um die gesamte Automorphismusgruppe zu berechnen, aber ich brauche sie nicht. Ich muss nur feststellen, ob es trivial ist oder nicht.
Es ist möglich, dass dieses Entscheidungsproblem in seiner Komplexität theoretisch gleichwertig ist, um "die gesamte Automorphismusgruppe zu berechnen". Ich bin mir nicht sicher.
Für meinen Zweck bedeutet "effizient" im Grunde "schneller in der Praxis als die Berechnung der gesamten Automorphismusgruppe", aber ich interessiere mich auch für die Theorie dahinter.
quelle
Antworten:
Da Sie sich auch für die Theorie dahinter interessieren, würde ich Ihnen einen quasi-polynomiellen Zeitalgorithmus für Ihr Problem geben.
Für jedes Paar von Eckpunktenu≠v (gleichen Grades) in G versuchen wir zu sehen, ob es möglich ist, u und v zu tauschen .u v
Machen Sie dazu eine Kopie vonG und nennen Sie es G′ . Löschen Sie nun u aus G , löschen Sie (Kopie von) v aus G′ .
Alle oben genannten sehr langen, aber polynomiell langen Wege sollten gleich lang sein.
Rufen Sie Babais Algorithmus für die Eingabe dieses neu erstellten Diagrammpaars auf.
Die Laufzeitkomplexität ist immer noch quasi-poly.
quelle