04.11.2013 Aufrufe

Graphen-Algorithmen

Graphen-Algorithmen

Graphen-Algorithmen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Einführung<br />

Matroid-Probleme in <strong>Graphen</strong><br />

<strong>Graphen</strong>-<strong>Algorithmen</strong><br />

Matroide und Greedy-<strong>Algorithmen</strong><br />

Dr. Tobias Baumann<br />

14. Juni 2011<br />

Dr. Tobias Baumann<br />

Matroide


Einführung<br />

Matroid-Probleme in <strong>Graphen</strong><br />

MST<br />

Matroide<br />

Einführung<br />

Heute geht es um die Frage, wo genau uns denn<br />

Greedy-<strong>Algorithmen</strong> hilfreich sein können.<br />

Greedy-Algorithmus<br />

Gegeben ist eine Menge S, eine Mengenfamilie F ⊂ P(S) und eine<br />

Bewertungsfunktion f : S → R. Gesucht ist eine Lösungsmenge<br />

L ⊂ S mit L ∈ F , so dass ∑ s∈L f (s) = max H∈F f (h) gilt.<br />

∑<br />

h∈H<br />

Der Greedy-Algorithmus wählt nun eine Startmenge L 0 und fügt zu<br />

dieser Startmenge sukzessive ein Element s ∈ S mit maximalem<br />

Wert unter allen zulässigen Elementen aus S, so dass die<br />

resultierende Menge L i+1 ∈ F ist.<br />

Dr. Tobias Baumann<br />

Matroide


Einführung<br />

Matroid-Probleme in <strong>Graphen</strong><br />

MST<br />

Matroide<br />

Greedy-<strong>Algorithmen</strong><br />

Wir betrachten noch einmal das MST-Problem:<br />

Minimum / Maximum Spanning Tree<br />

Gegeben ist ein zusammenhängender Graph G = (V , E, w) mit<br />

Kantengewichten w : E → N. Gesucht ist ein Baum T , der alle<br />

Knoten von G umfasst, und dessen Gewicht W = ∑ e∈T w(e)<br />

minimal bzw. maximal über alle aufspannenden Bäume ist.<br />

Wir können das Problem bereits in erwarteter linearer Zeit lösen,<br />

aber das ist gerade gar nicht unser Ziel.<br />

Dr. Tobias Baumann<br />

Matroide


Einführung<br />

Matroid-Probleme in <strong>Graphen</strong><br />

MST<br />

Matroide<br />

Algorithmus von Kruskal<br />

1 T := ∅<br />

2 While (T nicht zusammenhängend)<br />

1 Wähle e ∈ E mit w(e) minimal, so dass in T ∪ {e} kein Kreis<br />

entsteht.<br />

2 Setze T := T ∪ {e}.<br />

Der Algorithmus ist offensichtlich ein Greedy-Algorithmus.<br />

Dr. Tobias Baumann<br />

Matroide


Einführung<br />

Matroid-Probleme in <strong>Graphen</strong><br />

MST<br />

Matroide<br />

Korrektheit<br />

Wir wissen bereits aus DSEA, dass der Kruskal-Algorithmus<br />

korrekt arbeitet. Das Schnittlemma bietet uns dort einen<br />

schlüssigen Beweis.<br />

Allerdings ist das Schnittlemma nur für aufspannende Bäume<br />

geeignet. Greedy-<strong>Algorithmen</strong> funktionieren aber auch bei ganz<br />

anderen Problemen!<br />

Deshalb lernen wir heute einen allgemeinen Beweis für die<br />

Korrektheit von Greedy-<strong>Algorithmen</strong> kennen.<br />

Dr. Tobias Baumann<br />

Matroide


Einführung<br />

Matroid-Probleme in <strong>Graphen</strong><br />

MST<br />

Matroide<br />

Matroide<br />

Definition<br />

Sei S eine endliche Menge und F ⊂ P(S) eine Familie von<br />

Untermengen von S. Das Paar M = (S, F ) heißt Matroid, falls<br />

folgendes gilt:<br />

∅ ∈ F<br />

A ∈ F , B ⊆ A ⇒ B ∈ F<br />

A, B ∈ F , |B| = |A| + 1 ⇒ ∃s ∈ B \ A : A ∪ {s} ∈ F<br />

Eine maximale Menge in F heißt Basis des Matroids. Alle Basen<br />

eines Matroids M enthalten dieselbe Anzahl Elemente r(M), der<br />

Rang von M. Die Familie F wird auch als Familie der<br />

unabhängigen Mengen bezeichnet. (Nicht zu verwechseln mit<br />

unabhängigen Mengen in <strong>Graphen</strong>!) Sind nur die ersten beiden<br />

Forderungen erfüllt, sprechen wir von Unabhängigkeitssystemen.<br />

Dr. Tobias Baumann<br />

Matroide


Einführung<br />

Matroid-Probleme in <strong>Graphen</strong><br />

MST<br />

Matroide<br />

Was heißt das?<br />

∅ ∈ F<br />

A ∈ F , B ⊆ A ⇒ B ∈ F<br />

A, B ∈ F , |B| = |A| + 1 ⇒ ∃s ∈ B \ A : A ∪ {s} ∈ F<br />

Wir können jede Menge aus F durch Hinzunahme weiterer<br />

Elemente zu einer Basis ergänzen.<br />

Der Name Matroid erinnert an Matrizen:<br />

Seien a 1 , ..., a n Vektoren aus einem m-dimensionalen Vektorraum.<br />

Wir können die Vektoren als Spalten in einer m × n-Matrix sehen.<br />

Nun ist S die Menge der Vektoren. Eine Teilmenge A ⊆ S ist<br />

unabhängig, wenn die Vektoren in A linear unabhängig sind. Dann<br />

ist die dritte Forderung gerade der Steinitzsche Austauschsatz der<br />

Linearen Algebra. Der Rang ist dann die Dimension des<br />

Unterraums, der von den Vektoren in S aufgespannt wird.<br />

Dr. Tobias Baumann<br />

Matroide


Einführung<br />

Matroid-Probleme in <strong>Graphen</strong><br />

MST<br />

Matroide<br />

Grundlegende Eigenschaften<br />

Alle Basen eines Matroids haben dieselbe Kardinalität.<br />

⇐⇒<br />

Sind X , Y ∈ F mit |X | > |Y |, so gibt es ein x ∈ X \ Y mit<br />

Y ∪ {x} ∈ F .<br />

Dr. Tobias Baumann<br />

Matroide


Einführung<br />

Matroid-Probleme in <strong>Graphen</strong><br />

MST<br />

Matroide<br />

Was haben <strong>Graphen</strong> mit Matroiden zu tun?<br />

Beim MST-Problem haben wir es mit einem Matroiden zu tun:<br />

MST ↔ Matroid<br />

Sei G = (V , E) ein Graph. Sei F ⊆ P(E) die Menge aller Wälder<br />

in G. Dann ist M = (E, F ) ein Matroid.<br />

Beweis<br />

∅ ist ein Wald.<br />

Ist A ein Wald, dann ist jede Teilmenge von A ein Wald.<br />

Seien A, B zwei Wälder mit |A| + 1 = |B|. Weiter seien<br />

A 1 , ..., A m die Komponenten von A mit den Knotenmengen<br />

V 1 , ..., V m . Es gilt |A i | = |V i | − 1. Da nun |B| > |A| ist, muss<br />

es eine Kante e ∈ B geben, die zwei verschiedene<br />

Komponenten A s , A t miteinander verbindet. Somit ist A ∪ {e}<br />

ein Wald.<br />

Dr. Tobias Baumann<br />

Matroide


Einführung<br />

Matroid-Probleme in <strong>Graphen</strong><br />

MST<br />

Matroide<br />

Die Basis von M ist gerade die Menge der aufspannenden Wälder<br />

von G, und der Rang von M ist |V | − t, wobei t die Anzahl der<br />

Zusammenhangskomponenten von G ist.<br />

Jetzt wissen wir, dass das MST-Problem auf Matroiden basiert.<br />

Dr. Tobias Baumann<br />

Matroide


Einführung<br />

Matroid-Probleme in <strong>Graphen</strong><br />

MST<br />

Matroide<br />

Matroid und Greedy-Algorithmus<br />

Satz<br />

Der folgende Greedy-Algorithmus findet eine Basis minimalen<br />

Gewichts in einem gewichteten Matroiden M = (S, F ) mit<br />

Gewichtsfunktion w : S → R:<br />

1 Setze A 0 := ∅.<br />

2 Sei A i ⊆ S mit |A i | = i. Dann ist<br />

X i = {x ∈ S \ A i : A i ∪ {x} ∈ F }. Ist X i = ∅, dann ist A i die<br />

Basis und wir sind fertig.<br />

Andernfalls wählen wir a i+1 ∈ X i mit minimalem Gewicht und<br />

setzen A i+1 := A i ∪ {a i+1 }.<br />

Dr. Tobias Baumann<br />

Matroide


Einführung<br />

Matroid-Probleme in <strong>Graphen</strong><br />

MST<br />

Matroide<br />

Greedy-Algorithmus<br />

Beweis<br />

Sei A = {a 1 , ..., a r } das Ergebnis des Algorithmus. Aus den<br />

Matroideigenschaften folgt, dass A eine Basis ist. Durch die<br />

Konstruktion des Algorithmus ist w(a 1 ) ≤ w(a 2 )... ≤ w(a r ).<br />

Sei nun B = {b 1 , ..., b r } eine Basis mit w(B) < w(A) und<br />

w(b 1 ) ≤ ... ≤ w(b r ). Dann gibt es einen kleinsten Index i mit<br />

w(b i ) < w(a i ). Es ist außerdem i ≥ 2. Wir betrachten die Mengen<br />

A i−1 und B i = {b 1 , ..., b i }. Nach dem Austauschaxiom gibt es ein<br />

b j ∈ B i \ A i−1 mit A i−1 ∪ {b j } ∈ F . Da aber<br />

w(b j ) ≤ w(b i ) < w(a i ) ist, hätte der Greedy-Algorithmus im i-ten<br />

Schritt b j statt a i gewählt. Widerspruch.<br />

Dr. Tobias Baumann<br />

Matroide


Einführung<br />

Matroid-Probleme in <strong>Graphen</strong><br />

Matroide<br />

Matching<br />

Kürzeste Wege<br />

Gibt es noch andere Graph-basierte Matroide?<br />

Beispiel<br />

Sei G = (V , E) ein Graph, I ⊆ V eine unabhängige Menge und<br />

k : I → N 0 .<br />

S = E<br />

F = {X ⊆ S : d X (v) ≤ k(v)∀v ∈ I }.<br />

Die Konstruktion M = (S, F ) ist ein Matroid.<br />

Beweis<br />

Forderungen 1 und 2 sind klar.<br />

Seien X , Y ∈ F mit |X | > |Y |. Sei I ′ = {v ∈ I : d Y (v) = k(v)}.<br />

Jetzt ist aber auch d X (v) ≤ k(v)∀v ∈ I ′ . Somit gibt es ein<br />

e ∈ X \ Y mit e /∈ N(v) für v ∈ I ′ . Somit ist Y ∪ {e} ∈ F .<br />

Dr. Tobias Baumann<br />

Matroide


Einführung<br />

Matroid-Probleme in <strong>Graphen</strong><br />

Matroide<br />

Matching<br />

Kürzeste Wege<br />

Beispiel<br />

Sei G = (V , E) ein gerichteter Graph, T ⊆ V eine Knotenmenge<br />

und k : T → N 0 .<br />

S = E<br />

F = {X ⊆ S : d − X<br />

(v) ≤ k(v)∀v ∈ T }.<br />

Die Konstruktion M = (S, F ) ist ein Matroid.<br />

Dr. Tobias Baumann<br />

Matroide


Einführung<br />

Matroid-Probleme in <strong>Graphen</strong><br />

Matroide<br />

Matching<br />

Kürzeste Wege<br />

Matchings in bipartiten <strong>Graphen</strong><br />

Definition<br />

Sei G = (S ˙∪T , E ⊆ S × T ) ein bipartiter Graph. Wir suchen ein<br />

Matching M ⊆ E, d.h. eine Kantenmenge, bei der die Kanten<br />

paarweise nicht inzident sind.<br />

Matchings können wir vergrößern, indem wir alternierende Pfade<br />

suchen (s. eine der kommenden Vorlesungen).<br />

Matroid?<br />

Wir betrachten Knotenmengen X ⊆ S, die komplett gematcht<br />

werden können. Eine solche Knotenmenge heißt Transversale.<br />

Wir setzen M = (S, {X ⊆ S : X ist Transversale in G}). M ist ein<br />

Matroid.<br />

Dr. Tobias Baumann<br />

Matroide


Einführung<br />

Matroid-Probleme in <strong>Graphen</strong><br />

Matroide<br />

Matching<br />

Kürzeste Wege<br />

Matching = Matroid<br />

Beweis<br />

Axiome 1 und 2 sind erfüllt.<br />

Seien nun A und B Transversalen mit |B| = |A| + 1 und den<br />

zugehörigen Matchings M A , M B . Das heißt, |M B | = |M A | + 1.<br />

Daraus folgt nun, dass es einen alternierenden Weg gibt, der M A<br />

vergrößert und in einem Knoten u ∈ B \ A beginnt.<br />

Wir können also Matchingprobleme in bipartiten <strong>Graphen</strong> mit Hilfe<br />

eines Greedy-Algorithmus lösen!<br />

Wie man einen alternierenden Weg findet, sehen wir in einer der<br />

folgenden Vorlesungen.<br />

Dr. Tobias Baumann<br />

Matroide


Einführung<br />

Matroid-Probleme in <strong>Graphen</strong><br />

Kürzeste Wege in <strong>Graphen</strong><br />

Matroide<br />

Matching<br />

Kürzeste Wege<br />

Definition<br />

Sei G = (V , E, w) ein Graph mit nichtnegativen Kantengewichten<br />

w : E → R + 0<br />

und v, w ∈ V zwei Knoten. Gesucht ist der kürzeste<br />

Weg von v nach w.<br />

Wir können das Problem mit dem Dijkstra-Algorithmus lösen, der<br />

in bester Greedy-Manier einen Kürzeste-Wege-Baum immer um die<br />

kürzestmögliche Kante erweitert.<br />

Dr. Tobias Baumann<br />

Matroide


Einführung<br />

Matroid-Probleme in <strong>Graphen</strong><br />

Matroide<br />

Matching<br />

Kürzeste Wege<br />

Kürzeste Wege = Matroid?<br />

Matroid?<br />

Wir suchen also wieder einen aufspannenden Baum. Allerdings ist<br />

das Unabhängigkeitssystem M = (S, F ) anders aufgebaut:<br />

S ist wieder die Kantenmenge E.<br />

A ∈ F , wenn A die Teilmenge eines Weges von v nach w ist.<br />

Wir sehen also: die ersten beiden Forderungen eines Matroids sind<br />

erfüllt. Allerdings kann man leicht Beispiele konstruieren, bei denen<br />

die dritte Forderung nicht erfüllt wird.<br />

Wir haben hier also keinen Matroid, sondern “nur” ein<br />

Unabhängigkeitssystem.<br />

Dr. Tobias Baumann<br />

Matroide


Einführung<br />

Matroid-Probleme in <strong>Graphen</strong><br />

Matroide<br />

Matching<br />

Kürzeste Wege<br />

Kürzeste Wege = Matroid? II<br />

Zweiter Versuch, diesmal mit Single Source Shortest Path:<br />

S ist die Kantenmenge E.<br />

A ∈ F , wenn A ein Baum ist, der v enthält.<br />

Jetzt ist zwar die dritte Forderung erfüllt, aber die zweite nicht:<br />

Wir können aus einem Baum A ∈ F Kanten so herausnehmen, dass<br />

v isoliert wird.<br />

Aber wir haben Glück: Ein solches Konstrukt wird auch Greedoid<br />

genannt, das unter bestimmten Umständen ebenfalls einen<br />

erfolgreichen Greedy-Algorithmus liefert.<br />

Dr. Tobias Baumann<br />

Matroide

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!