Wann ist der minimale Spannbaum für ein Diagramm nicht eindeutig?

22

Bei einem gewichteten, ungerichteten Graphen G: Welche Bedingungen müssen erfüllt sein, damit es für G mehrere minimale Spannbäume gibt?

Ich weiß, dass der MST eindeutig ist, wenn alle Gewichtungen unterschiedlich sind, aber Sie können diese Aussage nicht umkehren. Wenn das Diagramm mehrere Kanten mit derselben Gewichtung enthält, kann es mehrere MSTs geben , es kann jedoch auch nur eine geben:

Bildbeschreibung hier eingeben

In diesem Beispiel hat das Diagramm links eine eindeutige MST, das rechte jedoch nicht.

Das, was ich am ehesten erreichen konnte, um Bedingungen für die Nicht-Eindeutigkeit des MST zu finden, war Folgendes:

Berücksichtigen Sie alle akkordlosen Zyklen (Zyklen, die keine anderen Zyklen enthalten) im Diagramm G. Wenn in einem dieser Zyklen die maximal gewichtete Kante mehrmals vorhanden ist, hat das Diagramm keinen eindeutigen minimalen Spannbaum.

Meine Idee war das für einen Zyklus wie diesen

Bildbeschreibung hier eingeben

Mit n Scheitelpunkten können Sie genau eine der Kanten weglassen und trotzdem alle Scheitelpunkte verbinden. Daher haben Sie mehrere Möglichkeiten, die Kante mit dem höchsten Gewicht zu entfernen, um eine MST zu erhalten, sodass die MST nicht eindeutig ist.

Ich habe mir dann aber folgendes Beispiel ausgedacht:

Bildbeschreibung hier eingeben

Sie können sehen, dass dieses Diagramm einen Zyklus hat, der zu meiner Bedingung passt: (E, F, G, H), aber soweit ich sehen kann, ist der minimale Spannbaum eindeutig:

Bildbeschreibung hier eingeben

Es scheint also, als ob mein Zustand nicht korrekt ist (oder nur nicht vollständig korrekt ist). Ich würde mich sehr über jede Hilfe freuen, um die notwendigen und ausreichenden Bedingungen für die Nicht-Eindeutigkeit des minimalen Spannbaums zu finden.

Keiwan
quelle
1
Ihre kleinsten Zyklen werden als akkordlose Zyklen bezeichnet (mehr oder weniger).
Yuval Filmus

Antworten:

10

im ersten Bild: Die rechte Grafik hat eine eindeutige MST, indem Kanten und ( F , G ) mit einem Gesamtgewicht von 2 genommen werden.(F,H)(F,G)

Bei einem Graphen und lassen Sie M = ( V , F ) sein ein Minimum Spanning Tree (MST) in G .G=(V,E)M=(V,F)G

Wenn es eine Kante mit dem Gewicht w ( e ) = m gibt, so dass die Addition von e zu unserem MST einen Zyklus C ergibt , und m auch das niedrigste Kantengewicht von F C sein soll , dann können wir eine zweite MST erzeugen, indem wir eine Kante von F C mit Kantengewicht m mit e tauschen . Somit haben wir keine Einzigartigkeit.e={v,w}EFw(e)=meCmFCFCme

dtt
quelle
Sie haben Recht, ich habe dieses Diagramm in der Frage jetzt korrigiert. Wissen Sie, ob dies die allgemeinste Bedingung ist, sodass der MST nicht eindeutig ist? Oder kann es auch irgendwie festgestellt werden, ohne dass erst ein MST gefunden werden muss?
Keiwan
1
@ Keiwan Ich glaube, wenn Sie diese Frage berücksichtigen , dann ist die in dieser Antwort beschriebene Bedingung auch eine notwendige Bedingung für das Vorhandensein mehrerer MSTs. Mit anderen Worten: Ein Graph hat mehrere MSTs, wenn und nur wenn die von HueHang beschriebene Konstruktion ausgeführt werden kann. G
Bakuriu
1
m muss nicht das niedrigste Kantengewicht von F∩C sein. Tatsächlich kann es nur das höchste Kantengewicht sein, sonst wäre M überhaupt nicht minimal gewesen. Angenommen, es gäbe eine Kante e 'mit w (e') = m '> m = w (e) in F∩C. Dann würde ein Tausch von e gegen e 'einen Baum mit einem Gesamtgewicht von weniger als M zurücklassen, was der Minimalität von M.
Chad
2

Eine vorherige Antwort gibt einen Algorithmus an, um zu bestimmen, ob es mehrere MSTs gibt, die für jede Kante nicht in G enthalten ist, den Zyklus finden, der durch Hinzufügen von e zu einer vorberechneten MST erstellt wurde, und prüfen, ob e nicht die eindeutig schwerste Kante in diesem Zyklus ist. Dieser Algorithmus wird wahrscheinlich in der Zeit O ( | E | | V | ) ausgeführt .eGeeO(|E||V|)

Ein einfacher Algorithmus , um zu bestimmen , ob es mehrere MSTs von G in zeit KomplexitätO(|E|log(|V|)) .

 1. Führen Sie den Kruskal-Algorithmus auf , um einen MST m zu finden .Gm

 2. Versuchen Sie erneut, Kruskals Algorithmus auf auszuführen. Wenn wir in diesem Lauf die Wahl zwischen Kanten mit gleichem Gewicht haben, versuchen wir zuerst die Kanten, die nicht in m sind. Danach versuchen wir die Kanten in m . Immer wenn wir eine Kante gefunden haben, die nicht in m enthalten ist, die zwei verschiedene Bäume verbindet, behaupten wir, dass es mehrere MSTs gibt, die den Algorithmus beenden.Gmmm

 3. Wenn wir hier angekommen sind, behaupten wir, dass eine eindeutige MST hat.G

Ein gewöhnlicher Durchlauf des Kruskal-Algorithmus benötigt Zeit. Die zusätzliche Auswahl von Kanten, die nicht in m angegeben sind, kann in O ( | E | ) erfolgen . Der Algorithmus erreicht also O ( | E | log ( | V | ) ) Zeitkomplexität.O(|E|log(|V|))mO(|E|)O(|E|log(|V|))

Warum kann dieser Algorithmus feststellen, ob mehrere MSTs vorhanden sind?

Angenommen, wir haben ein MST , das nicht dasselbe wie m ist . Es genügt zu zeigen, dass der auf G ausgeführte Algorithmus Schritt 3 nicht erreichen wird, da die am Ende von Schritt 2 gefundene Kante, die nicht in m ist und zwei verschiedene Bäume verbindet, in der resultierenden MST enthalten gewesen wäre, wenn wir Kruskals ausgeführt hätten Algorithmus zur Vervollständigung. Lassen w das größte Gewicht so beschaffen sein , dass für jede Kante mit einem Gewicht von weniger als w , es ist m , wenn und nur wenn es in den m ' . Da m und m ' die gleiche Anzahl von Gewichtskanten w haben , existieren GewichtskantenmmGmwwmmmmw , die in m ' aber nicht in m sind . Wenn der Algorithmus beendet wurde, bevor Kanten dieser Kanten verarbeitet wurden, sind wir fertig. Ansonsten wird angenommen, dass der Algorithmusjetztdie erste Kante e ' unter diesen Kanten verarbeitet. Sei S die Menge aller Kanten, die bisher erhalten geblieben sind, um in den resultierenden MST einbezogen zu werden. S m . Da der Algorithmus die Verarbeitung der Gewichtskante w nicht in m beendet hat, wie z. B. e ' , darf er nicht mit der Verarbeitung der Gewichtskanten w in m begonnen haben . Also Kanten in SwmmeSSmwmewmSwiegen weniger als . Das heißt S m ' . Denken Sie daran, dass e ' in m ' ist . Da { e ' } S m ' ist , wobei m ' ein Baum ist , muss e ' zwei verschiedene Bäume in S verbinden, und der Algorithmus wird an dieser Stelle beendet.wSm.em{e}SmmeS

Hinweis zur weiteren Entwicklung
Schritt 1 und Schritt 2 können verschachtelt werden, damit wir den Algorithmus so schnell wie möglich beenden können, ohne Kanten größerer Gewichte zu verarbeiten.
Wenn Sie die Anzahl der MSTs berechnen möchten, können Sie eine Antwort darauf überprüfen , wie die Anzahl der MSTs berechnet werden soll .

Apass.Jack
quelle
1

Sei ein (einfacher endlicher) kantengewichteter ungerichteter zusammenhängender Graph mit mindestens zwei Eckpunkten. Es sei ST Mean Spanning Tree und MST Mean Minimum Spanning Tree. Lassen Sie mich zuerst einige weniger gebräuchliche Begriffe definieren.G

  • Eine Kante ist die eindeutig schwerste Kante in einem Zyklus.
  • Eine Kante ist nicht zykluslastig, wenn sie in keinem Zyklus die schwerste Kante ist.
  • Eine Kante ist am leichtesten, wenn sie am leichtesten ist, um einen Schnitt zu kreuzen.
  • Eine Kante ist nicht am hellsten, wenn sie niemals am hellsten ist, um einen Schnitt zu kreuzen.
  • Zwei STs sind benachbart, wenn jedes ST genau eine Kante hat, die sich nicht im anderen ST befindet.
  • Ein MST ist ein isolierter MST, wenn er nicht an einen anderen MST angrenzt (wenn beide MSTs als STs betrachtet werden).

Wann gibt es mehr als einen minimalen Spannbaum?

Um die Frage von OP zu beantworten, sind hier fünf Charakterisierungen von mit mehr als einem MSTG .

  • Es gibt zwei benachbarte MSTs.
  • Es gibt keine isolierte MST.
  • Es gibt einen ST, der so leicht oder leichter ist als alle benachbarten STs und der so leicht ist wie ein benachbarter ST.
  • Es gibt eine Kante, die weder eindeutig zyklenlastig noch nicht zyklenlastig ist.
  • Es gibt eine Kante, die weder am hellsten noch am hellsten ist

Die Neuheit dieser Antwort sind meist die letzten beiden Charakterisierungen. Die vorletzte Charakterisierung kann als nächster Schritt des OP-Ansatzes betrachtet werden . Die ersten drei Charakterisierungen zusammen können als leicht verbesserte Version der Antwort von dtt betrachtet werden .

G

Wann ist das Minimum an Spannbäumen einzigartig?

G

  • Einzigartigkeit von MST : Es gibt eine einzigartige MST.
  • Kein benachbarter MST : Es gibt keine benachbarten MSTs.
  • Eine isolierte MST : Es gibt eine isolierte MST.
  • Eine lokale minimale ST : Es gibt eine ST, die leichter ist als alle benachbarten STs.
  • Extreme Zykluskante : Jede Kante ist entweder eindeutig zyklenlastig oder nicht zyklenlastig.
  • Extreme Schnittkante : Jede Kante ist entweder einzigartig, schneidleicht oder nicht schneidleicht

Hier kommt mein Beweis.

"Eindeutigkeit von MST" => "Kein benachbartes MST": offensichtlich.

"Keine benachbarten MSTs" => "Eine isolierte MST": offensichtlich.

"One isolated MST" => "One local minimum ST": Eine isolierte MST ist leichter als alle benachbarten STs.

m

  • mlmllclmmm1m2m1m2lcm1m2lmm1m2lGmmmmlll
  • mhmhmchchmmhhmmmmhhhch

"Local minimum ST" => "Extreme Schnittkante": Der Nachweis bleibt als Übung erhalten.

meememm

"Extreme Schnittkante" => "Einzigartigkeit von MST": Der Beweis bleibt als Übung.

Die obigen Implikationsketten beweisen den Satz.

Die Neuheit dieser Antworten ist wiederum hauptsächlich die Eigenschaft "extreme Zykluskante" und die Eigenschaft "extreme Schnittkante", bei denen die Konzepte "nicht zyklenschwer" und "nicht schnittleicht" verwendet werden. Ich habe diese Konzepte anderswo nicht gesehen, obwohl sie ganz natürlich sind.


Hier sind zwei interessante Beobachtungen.

  • ee e e
  • ee e e

Zwei ausreichende, aber nicht notwendige Bedingungen für eine eindeutige MST

ab1,bc1,cd1,da2,ac2

1,1,2

Apass.Jack
quelle