Gierige Wahl und Matroiden (Greedoiden)

7

Als ich das Material über den gierigen Ansatz durchging, stellte ich fest, dass ein Wissen über Matroiden (Greedoiden) mir helfen wird, das Problem richtig anzugehen. Nachdem ich über Matroiden gelesen habe, habe ich ungefähr verstanden, was Matroiden sind. Aber wie verwenden Sie das Konzept einer Matroid zur Lösung eines bestimmten Optimierungsproblems?

Nehmen Sie zum Beispiel das Problem der Aktivitätsauswahl . Was sind die Schritte, um die Matroidentheorie zur Lösung des Problems zu verwenden?

Betrüger
quelle
1
Schauen Sie sich Cormen et al. Buch . Es gibt ein Kapitel über gierige Algorithmen und Matroiden.
Juho
Ich bin mir nicht sicher, wie ich Ihre Frage in dieser Hinsicht lesen soll, aber beachten Sie, dass Matroiden und Greedoiden nicht gleich sind.
Raphael

Antworten:

6

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:ER+(E,I)

I={FE(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)=(maxeEc(e))c(e)

Beweise

  1. 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.FIFI
    • 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,F2I|F1|>|F2|eF1F2F2{e}IF1F2eF1F2|F2|F1 F1
  2. 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.FIGFccc


  1. Wir können mit negativen Kantengewichten umgehen, indem wir allen Gewichten das Mindestgewicht plus eins hinzufügen.
  2. Ein Wald ist eine unzusammenhängende Vereinigung von Bäumen.
  3. Ein Diagramm enthält genau dann einen Zyklus, wenn ein Schnitt mit mehr als einer Kante vorliegt.
Raphael
quelle