2017-05-29 22 views
0

Bei einem zusammenhängenden Graphen G = (V, E) zu erfassen, möchte ich alle die 1-Schnitte zu finden. Ein 1-Schnitt ist nur eine einzelne Kante, deren Entfernung G in 2 verbundene Komponenten teilt.effizienter Algorithmus all 1-Cuts in einem ungerichteten Graphen

Der Algorithmus ich jetzt bin verwendet, ist jede Kante wiederum zu entfernen, und dann auf DFS verwenden, um zu überprüfen, ob die beiden Endpunkte in derselben verbundenen Komponente sind. Das läuft in O (E (V + E)) ab. Dies ist bereits schneller als der beste Algorithmus, den ich in der Min-Cut-Literatur von Nagamochi, Nishimura und Ibaraki (1998) finden kann, der O (VE (V + E)) Zeit benötigt. Ihr Algorithmus gilt für alle Min-Schnitte beliebiger Größe. Ich brauche nur meine, um für 1-Schnitte gültig zu sein.

Kennt jemand einen besseren Algorithmus irgendwo da draußen? Eine weitere nützliche Eigenschaft meines Anwendungsfalls ist, dass die Graphen, mit denen ich arbeite, sehr kleine Feedback-Bogensätze haben. Wenn ich einen Algorithmus hätte, dessen Laufzeit von der Größe eines Feedbackbogens abhängt, wäre das auch nützlich.

Antwort

Verwandte Themen