Frage

Ich habe einige Erforschung des Themas des Graph-Isomorphismus für planare 3-angeschlossene Grafiken, aber es gibt eine Fülle an Algorithmen mit unterschiedlicher Einschränkung, theoretischer Komplexität und Häufigkeit und ich habe Schwierigkeiten, einen zu finden, der stehtaus als:

    .
  • leicht zu verstehen
  • kann mit maximaler Klarheit umgesetzt werden
  • gute praktische Leistung auf kleinen Diagrammen (bis zu Scheitelpunkte in den Dutzenden)

Es ist schwer zu wissen, ohne die verschiedenen Algorithmen selbst zu verstehen, ob ich besser mit einem der älteren, speziellen Algorithmen für dieses Problem oder den neueren, eher allgemeineren Algorithmen bin. unter allen möglichen Kandidaten, welche ist / eins sind die beste Passform?

War es hilfreich?

Lösung

Ich denke, Weinbergs Algorithmus passt zur Rechnung.

  • einfach zu verstehen: Compute Rotationssysteme für g und h als Nebenprodukte von a Planarity-Test-Algorithmus. Da G und H 3-angeschlossen sind, sind diese Rotationssysteme isomorph, um im Uhrzeigersinn inaktivieren und gegen den Uhrzeigersinn, wenn und nur wenn G und H isomorph ist. Wählen Sie einen DART (= Kante mit einer angegebenen Richtung) d in g und versuche es an alle Darts E in H (und wiederholen Sie die andere Orientierung von H). Da G angeschlossen ist, können alle anderen Darts D 'von D erreicht werden, indem die beiden Operationen des Rotationssystems für G komponiert werden. Wenden Sie die entsprechenden Vorgänge auf e an und prüfen Sie, ob esomorphismus gibt.

  • Maximale Klarheit: Abgesehen vom Planarity-Test ist das obige eine Seite des Codes. Vielleicht könnten Sie den Planarity-Test eines anderen wiederverwenden? Zum Beispiel gibt es einen in Boost. Wenn nicht, denke ich immer noch, dass ich selbst implementieren kann, ist einfacher als das Umschreiben von Nauty.

  • Gute praktische Leistung auf kleinen Diagrammen: Nach Planungsuntersuchungen ist Weinbergs Algorithmus grundsätzlich zwei synchronisierte Tiefe-Erster-Traverals für jeden Dart. Die Gesamtlaufzeit ist o (| V | 2 ) ohne große Konstanten lauern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top