Die Verbindung besteht darin, dass Sie, wenn Sie die Struktur, die Ihrem Optimierungsproblem zugrunde liegt, als Matroid darstellen können, den kanonischen Greedy-Algorithmus verwenden können, um die Summe aller positiven Gewichtsfunktionen zu optimieren. Wenn Ihr Optimierungsziel zu diesem Paradigma passt, können Sie Ihr Problem mit dem gierigen Ansatz lösen.
Beispiel
Betrachten Sie das minimale Spanning Tree-Problem bei positiven Kantengewichten¹. Wir werden zeigen, dass es eine Matroid gibt, die diesem Problem entspricht, was bedeutet, dass es gierig gelöst werden kann, dh durch den kanonischen Greedy-Algorithmus auf dieser Matroid.
Sei ein ungerichteter Graph mit der Kantenkostenfunktion. Dann mitG=(V,E,c)c:E→R+(E,I)
I={F⊆E∣(V|F,F) is a forest} ²
ist eine Matroid. Somit können wir das Element von finden, das die Summe der Kantengewichte maximiert . Dies ist zufällig ein minimaler Spannbaum. Beachten Sie, dass der kanonische Greedy -Algorithmus in diesem Zusammenhang aus historischen Gründen als Kruskal-Algorithmus bezeichnet wird.Ic′(e)=(maxe∈Ec(e))−c(e)
Beweise
Zu zeigen: ist eine Matroid. Wir müssen drei Eigenschaften überprüfen :(E,I)
- ∅∈I - Das leere Diagramm ist eine Gesamtstruktur.
- Wenn , ist jede Teilmenge von in - bei einer beliebigen Gesamtstruktur kann das Entfernen von Kanten keine Zyklen einführen. Daher ist jeder Untergraph eines Waldes ein Wald.F∈IFI
- Für jedes ,impliziert, dass es so dass - eine beliebige und eine kleinere . Angenommen, es gibt kein solches . Das bedeutet, dass alle Kanten in in Schnitten liegen, die durch Kanten in ³ induziert werden . Da gibt es nurBei solchen Schnitten teilt sich mindestens ein Kantenpaar in einen Schnitt . dies widerspricht, dass ein Wald ist.F1,F2∈I|F1|>|F2|e∈F1∖F2F2∪{e}∈IF1F2eF1F2|F2|F1 F1
Um zu zeigen: jedes Element mit Maximalgewicht in ein minimalen Spannbaum ist . Zunächst ist klar, dass ein maximales Gewicht gemäß , so dass es per Definition von auch ein minimales Gewicht gemäß . Jetzt müssen wir nur noch zeigen, dass es sich um einen Spanning Tree handelt: Wenn dies nicht der Fall wäre, wäre es nicht maximal in dem Sinne, dass wir noch Kanten (mit positivem Gewicht) hinzufügen könnten, was dem maximalen Gewicht widerspricht.F∗IGF∗c′c′c
- Wir können mit negativen Kantengewichten umgehen, indem wir allen Gewichten das Mindestgewicht plus eins hinzufügen.
- Ein Wald ist eine unzusammenhängende Vereinigung von Bäumen.
- Ein Diagramm enthält genau dann einen Zyklus, wenn ein Schnitt mit mehr als einer Kante vorliegt.