Algorithmus für die Bestimmung, wenn 2 Graphen sind isomorph,

Disclaimer: ich bin ein total Neuling auf der graph-Theorie und ich bin mir nicht sicher, ob dies gehört ALSO an, Mathematik SE, etc.

Gegeben 2 angrenzens Matrizen A und B, wie kann ich ermitteln, ob A und B sind isomorph.

Beispielsweise, A und B sind nicht isomorph, und C und D sind isomorph.

A = [ 0 1 0 0 1 1     B = [ 0 1 1 0 0 0
      1 0 1 0 0 1           1 0 1 1 0 0
      0 1 0 1 0 0           1 1 0 1 1 0
      0 0 1 0 1 0           0 1 1 0 0 1
      1 0 0 1 0 1           0 0 1 0 0 1
      1 1 0 0 1 0 ]         0 0 0 1 1 0 ]

C = [ 0 1 0 1 0 1     D = [ 0 1 0 1 1 0
      1 0 1 0 0 1           1 0 1 0 1 0
      0 1 0 1 1 0           0 1 0 1 0 1
      1 0 1 0 1 0           1 0 1 0 0 1
      0 0 1 1 0 1           1 1 0 0 0 1
      1 1 0 0 1 0 ]         0 0 1 1 1 0 ]   

(sorry for this ugly notation, I'm not quite sure how to draw matrices on SO)

Hier ist, wie ich angefangen habe, meinen Algorithmus (verzeihen Sie meine fehlende mathematische strenge) helfen Sie mir bitte vervollständigen/korrigieren!

  1. Wenn die Größe (Anzahl der Kanten, in diesem Fall die Menge des 1s) von A != Größe B => Graphen sind nicht isomorph,
  2. Für jeden vertex Eines, zählen Grad und suchen nach einem passenden vertex in B, welche den gleichen Grad und nicht angepasst worden, früher. Wenn keine übereinstimmung vorhanden ist => Graphen sind nicht isomorph.
  3. Jetzt, wir können schnell beweisen, dass A und B sind nicht isomorph, was ist der nächste Schritt?
    Würde es richtig sein versuchen jede permutation von Zeilen, bis Eine entspricht B? Wirklich nicht sicher, über diese ein...
  • Ich bin sicher, es ist schrecklich, aber man konnte immer brute-force es: halten Sie die Knoten in Einer Reihenfolge, gehen Sie dann durch jede permutation der Beschriftung der Knoten in B, bis Sie passen, oder gibt es keine mehr. Natürlich, es ist fast sicher der bessere Weg... so...
  • en.wikipedia.org/wiki/... scheint, dass niemand weiß, Polynom-Zeit-Algorithmus. Also es ist ok nur brute-force. versuchen Sie jede permutation der Knoten von gleichem Grad etc.
  • dieser Algorithmus kann die Antwort sein Ihr suchen. link für einen polynomialzeit-Algorithmus für Graphen isomorph, Prüfung und Zuordnung
Schreibe einen Kommentar