2017-12-30 25 views
1

Ich versuche einen effizienten Algorithmus zu strukturieren, erhält ungerichteten Graphen und Kante e (u, v) und entscheidet, ob die Kante zu irgendeinem Zyklus im Graphen gehört, aber nicht alle Zyklen! Mein Ansatz besteht darin, die Kante (u, v) aus dem Diagramm herauszunehmen und BFS auszuführen, um zu sehen, ob v noch von u erreichbar ist. Wenn ja, dann hat der ursprüngliche Graph einen Zyklus, der e enthält, sonst nicht. Aber ich bin nicht so sicher, wie man den Algorithmus zwickt, der entscheidet, wenn die Kante nicht zu allen Zyklen des Diagramms gehört.Effizienter Algorithmus, der entscheidet, ob eine Kante zu einem Zyklus gehört

+1

Vielleicht etwas kontra intuitiv: Suche nach einem Zyklus, der keine besondere Kante hat: Wenn es mindestens eins gibt, dann haben nicht alle Zyklen es? – Colonder

Antwort

0

Ein ungerichteter Graph kann nur dann eine Kante enthalten, die zu allen Zyklengraphen gehört, wenn dieser Graph einen einzelnen Zyklus hat.

Schauen wir uns ein Beispiel an. Kante (2,3) gehört zu zwei Zyklen, aber Sie können immer einen dritten Zyklus finden, zu dem eine solche Kante nicht gehört.

Graph with cycles 125, 12345

Nachdem Sie überprüft haben, dass der Rand bis zu einem gewissen Zyklus gehört, können Sie überprüfen, ob dies den einzigen Zyklus im Graphen ist durch diese Kante zu entfernen und prüfen, ob die reduzierte Graph überhaupt keine Zyklen hat. Danke an @nomanpouigt für das Aufzeigen.

+0

Oh, wenn der Graph mehr als 1 Zyklus hat, dann kann eine bestimmte Kante nicht zu allen gehören? Also ist der Algorithmus, den ich geschrieben habe, ausreichend zu benutzen? – 123josh123

+0

@ 123josh123 ja – Yola

+0

@Yola bist du sicher, OP-Algorithmus zu arbeiten? Würde man nicht einfach die Kante entfernen und prüfen, ob es im Diagramm keine weiteren Zyklen gibt, die uns sagen, ob eine bestimmte Kante in allen Zyklen vorhanden ist oder nicht? –

Verwandte Themen