Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide

Ähnliche Dokumente
Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

ADS: Algorithmen und Datenstrukturen 2

Optimale Lösungen mit Greedy-Strategie erfordern Optimalität der Greedy-Wahl. Beispiele für optimale Greedy-Lösungen

1 Matroide. 1.1 Definitionen und Beispiele. Seminar zur ganzzahligen Optimierung Thema: Durchschnitt von Matroiden - Satz von Edmonds von Dany Sattler

Minimal spannende Bäume

KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN

Durchschnitt von Matroiden

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Funktioniert der Greedy-Algorithmus auch für Briefmarken aus Manchukuo?

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2

Wie wird ein Graph dargestellt?

Datenstrukturen und Algorithmen (SS 2013)

Berechnung minimaler Spannbäume. Beispiel

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 6: Matchings und TSP-Problem

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

Algorithmus zur topologischen Nummerierung: while V = 0 do nummeriere eine Quelle mit der nächsten Nummer streiche diese Quelle aus V od

Algorithmen & Komplexität

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

Kap. 6.5: Minimale Spannbäume ff

Richtig oder falsch? Richtig oder falsch? Richtig oder falsch? Mit dynamischer Programmierung ist das Knapsack- Problem in Polynomialzeit lösbar.

Algorithmen und Datenstrukturen

Algorithmen für Planare Graphen

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

Informatik II, SS 2014

WS 2013/14. Diskrete Strukturen

3.2 Generischer minimaler Spannbaum-Algorithmus

Vorlesung Datenstrukturen

Technische Universität München Fakultät für Mathematik Algorithmische Diskrete Mathematik WS 2012/2013 Prof. Dr. P. Gritzmann 22.

24. Minimale Spannbäume

Kapitel IV Minimale Spannbäume

Algorithmische Graphentheorie

Kapitel IV Minimale Spannbäume

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

25. Minimale Spannbäume

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2008/2009

Folien aus der Vorlesung Optimierung I SS2013

Informatik II, SS 2016

1.Aufgabe: Minimal aufspannender Baum

Wir betrachten einen einfachen Algorithmus, der den Zusammenhang eines Graphen testen soll.

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

Lösungen zu Kapitel 5

Studientag zur Algorithmischen Mathematik

ADS: Algorithmen und Datenstrukturen 2

5. Bäume und Minimalgerüste

Graphdurchmusterung, Breiten- und Tiefensuche

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2009/2010

Graphalgorithmen Netzwerkalgorithmen. Laufzeit

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

Graphentheorie. Zusammenhang. Zusammenhang. Zusammenhang. Rainer Schrader. 13. November 2007

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

Grundlagen: Algorithmen und Datenstrukturen

Diskrete Mathematik Graphentheorie (Übersicht)

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung

Kapitel 4: Minimal spannende Bäume Gliederung der Vorlesung

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

3 Klassifikation wichtiger Optimierungsprobleme

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme

Kapitel 4: Minimale spannende Bäume Gliederung der Vorlesung

Minimal spannende Bäume

Datenstrukturen und Algorithmen SS07

Kap. 6.5: Minimale Spannbäume

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Aufgaben zur Klausurvorbereitung

Kürzeste Wege in einem gewichteten Graphen. Anwendungen

Algorithmen und Datenstrukturen Kapitel 9. und

Auslastungs- und Potenzialspiele

Seien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren.

Datenstrukturen und Algorithmen

f h c 7 a 1 b 1 g 2 2 d

Algorithmen I - Tutorium 28 Nr. 11

Das Heiratsproblem. Definition Matching

9 Minimum Spanning Trees

Bäume und Wälder. Definition 1

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4: Flüsse

Algorithmische Mathematik I

Berechnung von Abständen

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

Minimal spannender Baum

Bäume und Wälder. Definition 1

Naiver Algorithmus für Hamiltonkreis

2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2009/2010

Diskrete Mathematik 1 WS 2008/09

Algorithmen und Datenstrukturen 2-1. Seminar -

Ferienkurs Propädeutikum Diskrete Mathematik

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

Algorithmen und Datenstrukturen Tafelübung 14. Jens Wetzl 8. Februar 2012

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

Algorithmen II Vorlesung am

Rückblick: Starke Zusammenhangskomponenten

Kapitel 8: Bipartite Graphen Gliederung der Vorlesung

EDM, Algorithmen und Graphenspeicherung

3. Musterlösung. Problem 1: Boruvka MST

Quicksort ist ein Divide-and-Conquer-Verfahren.

Algorithmen und Datenstrukturen 2

Transkript:

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide Dipl-Math. Wolfgang Kinzner 3.4.2012

Kapitel 3: Minimal aufspannende Bäume und Matroide Minimal aufspannende Bäume und MST-Problem Prim-Algorithmus Kruskal-Algorithmus Unabhängigkeitssysteme und Matroide Maximierungsproblem und Greedy-Algorithmus Rangquotient eines Unabhängigkeitssystems

Definition Minimal aufspannender Baum und MST-Problemstellung Sei G = (V, E, l) ein (ungerichteter) zusammenhängender Graph mit l : E R 0. Ein minimal aufspannender Baum (MST) von G ist ein Baum T = (V, F) G mit der Eigenschaft l(t) = min{l(t ) : T = (V, F ) G ist Baum}. MST-Problem: Input: Gewichteter zusammenhängender Graph G = (V, E, l). Output: MST in G.

Algorithmus von Prim Input: Graph G = (V, E), Längenfunktion l : E R 0 Output: Baum T = (V, F) Prim(G, l) (1) Wähle beliebigen Knoten s V (2) W := {s}, F :=, σ[s] := 0 (3) forall v N(s) do vor[v] := s, σ[v] := l(s, v) (4) forall v V \(N(s) {s}) do vor[v] :=NIL, σ[v] := (5) while W V (6) y := Knoten mit minimalem σ[.]-wert in V \ W (7) W := W {y}, F := F {vor[y], y} (8) forall z N(y) (V \ W) mit σ[z] > l(y, z) (9) σ(z) := l(y, z) (10) vor[z] := y

Funktionsweise des Prim-Algorithmus Beginnt mit beliebigem Knoten und baut sukzessive MST durch Hinzunahme der nächst größeren angrenzenden Kante zusammen. Laufzeit: O(n 2 ) (mit Fibonacci-Heaps: O(n log n+m))

Beispiel zum Prim-Algorithmus Folie 6

Algorithmus von Kruskal Input: Graph G = (V, E), Längenfunktion l : E R + Output: Baum T = (V, F) Kruskal(G, l) (1) Sortiere alle Kanten in E so, daß l(e 1 ) l(e m ) (2) F := (3) for i = 1 to m (4) if (V, F {e i }) kreisfrei then F := F {e i }

Funktionsweise des Kruskal-Algorithmus Sortiert zunächst die Kanten der Größe nach. Beginnt danach mit der kleinsten Kante und nimmt dann immer die nächst größere Kante hinzu, die keinen Kreis erzeugt. Laufzeit: O((m+n) log n)

Beispiel zum Kruskal-Algorithmus Folie 7

Übung 10 (MST-Algorithmen) (a) G und l können so gewählt sein, dass G einen Spannbaum T enthält, der vom Kruskal-Algorithmus nicht konstruiert werden kann, egal wie dieser eingestellt wird. (b) G und l können so gewählt sein, dass G einen Spannbaum T enthält, der bei entsprechdem Startknoten vom Prim-Algorithmus nicht konstruiert werden kann, egal wie dieser eingestellt wird. (c) Ist l injektiv, so liefern der Prim-Algorithmus und der Kruskal-Algorithmus dasselbe Ergebnis. (d) Ist l injektiv, dann wird der minimale Spannbaum auch immer vom (modifizierten) Dijkstra-Algorithmus korrekt erzeugt.

Übung 11 (Reverse Kruskal) Betrachten Sie den folgenden Algorithmus: Input: Zusammenhängender Graph G = (V, E, l), Längenfunktion l : E R 0 Output: Baum T = (V, F) ReverseKruskal(G, l) (1) Sortiere alle Kanten in E so, daß l(e 1 )... l(e m ) (2) for i = m to 1 do (3) if G e i zusammenhängend then G := G e i Zeigen Sie: (a) Reverse Kruskal erzeugt einen aufspannenden Baum von G. (b) Ist l injektiv, T R der von Reverse Kruskal erzeugte Baum und T der durch den klassischen Algorithmus von Kruskal erzeugte Baum dann gilt für die Kante e m mit dem größten Gewicht in E: e m ist Kante in T R e m ist Kante in T.

Beispiel zum Reverse-Kruskal-Algorithmus Folie 8

Definition Unabhängigkeitssystem, Matroid Ein Unabhängigkeitssystem ist ein Paar (E, I), wobei E eine endliche Menge ist und I (E) und die Bedingung erfüllt ist. B I, A B A I (1) E heißt Grundmenge, die Mengen A E mit A I heißen unabhängig, und die Mengen B E mit B I heißen abhängig. Wenn außerdem noch gilt, dass A, B I mit A < B : e B \ A mit (A {e}) I, (2) dann nennen wir (E, I) ein Matroid.

Basis, Kreis und Rang Sei U = (E, I) ein Unabhängigkeitssystem. Jede inklusionsmaximale unabhängige Menge von I heißt Basis. Jede inklusionsminimale abhängige Menge von I heißt Kreis. Oberen Rang von U := r + (U) := max{ B : B Basis von U}, Unteren Rang von U := r (U) := min{ B : B Basis von U}. Wenn r + (U) = r (U) =: r(u), dann heißt r(u) Rang von U. Es gilt: U ist genau dann ein Matroid, wenn F E und U F := (F, I F ) gilt, dass r + (U F ) = r (U F ).

Beispiele von Matroiden (1) Vektorraummatroid: Sei V ein Vektorraum, E eine Menge von Vektoren in V und I P(V) mit I := {F E : F ist linear unabhängige Familie von Vektoren in V } Dann ist (E, I) ein Matroid. Basen: Basen von I Rang: Dimension von I

Beispiele von Matroiden (2) Graphischer Matroid: Sei G = (V, E) ein Graph und sei I := {F E : (V, F) ist kreisfreier Graph }. Dann ist (E, I) ein Matroid. Unabhängige Mengen: Wälder Basen: Spannbäume Kreise: Kreise r(u) = V 1

Beispiel zum graphischen Matroid Folie 9

Übung 12 (Minimal aufspannende Bäume) Sei G = (V, E, l) ein gewichteter und zusammenhängender Graph. Beweisen Sie: Jeder MST ist ein spannender Baum mit kleinster größter Kante.

Übung 13 (Matroide) Sei G = (V, A, l) ein gerichteter, gewichteter Graph mit Gewichtsfunktion l : A R >0 und sei s V. Wir defnieren und P := {P : P ist gerichteter Weg in G mit Startknoten s} I := {A P : ( P 1, P 2 A mit P 1 P 2 : P 1 und P 2 haben verschiedene Endknoten g)} das Mengensystem, das eine Menge A von Wegen aus P genau dann als Element enthält, wenn alle Wege aus A verschiedene Endknoten haben. Zeigen Sie, dass M = (P, I) ein Matroid ist.

Maximierungsproblem und Greedy-Algorithmus Ein Maximierungsproblem über einem Unabhängigkeitssystem (E, I) ist gegeben durch eine Gewichtsfunktion l : E R 0. Für Mengen A I setze l(a) := e A l(e). Gesucht ist eine Menge A I mit l(a ) = max A I l(a). Greedy-Algorithmus: Input: Unabhängigkeitssystem (E, I), Gewichtsfunktion l : E R + Output: A g I Greedy-Max(E, I, l) (1) Sortiere E = {e 1,..., e m } so, daß l(e 1 ) l(e m ) (2) A g := (3) for i = 1 to m (4) if A g {e i } I then A g := A g {e i }

Rangquotient Sei U = (E, I) ein Unabhängigkeitssystem. Für F E setze wieder U F := (F, I F ) und 1 falls r + (U F ) = 0, κ(f) := r (U F ) r +(U F ) falls r (U F ) > 0. Dann heißt ρ(u) := min{κ(f) : F E} der Rangquotient von U. Es gilt: ρ(u) 1. U Matroid ρ(u) = 1.

Wichtige Resultate Hauptsatz: Sei (E, I, l) eine Maximierungsaufgabe über dem Unabhängigkeitssystem U = (E, I) mit Greedy-Lösung A g E und optimaler Lösung A E. Dann gilt 1 l(ag ) l(a ) ρ(u), und es gibt eine Gewichtsfunktion l : E R 0, für die die zweite Ungleichung mit Gleichheit gilt. Korollar von Edmonds-Rado: Sei U = (E, I) ein Unabhängigkeitssystem. Dann gilt: U ist genau dann Matroid, wenn der Greedy-Algorithmus für jede Funktion l : E R 0 eine optimale Lösung der Maximierungsaufgabe (E, I, l) findet.

Übung 14 (Unabhängigkeitssystem und Rangquotient) Sei G = (V, E) ein Graph mit E. Eine Teilmenge M E heißt Matching, falls für alle e, e M mit e e gilt, dass e e =. Wir definieren I := {M E : M Matching}. (a) Zeigen Sie, dass U := (E, I) ein Unabhängigkeitssystem, aber i.a. kein Matroid ist. (b) Zeigen Sie, dass ein inklusionsmaximales Matching M stets der folgenden Beziehung genügt: (c) Beweisen Sie ρ(u) 1 2. M 1 2 max M I M.