Felix Brandt, Jan Johannsen. Vorlesung im Wintersemester 2008/09

Ähnliche Dokumente
Kombinatorische Optimierung

Graphentheorie. Kardinalitätsmatchings. Kardinalitätsmatchings. Kardinalitätsmatchings. Rainer Schrader. 11. Dezember 2007

Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,...

Matching. Organisatorisches. VL-18: Matching. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger. Tanzabend

Das Heiratsproblem. Definition Matching

WS 2008/09. Diskrete Strukturen

Proseminar Graphentheorie Vortrag 3 Matching. Inhalt: 1. Grundlagen 2. Matchings in bipatiten Graphen 3. Matchings in allgemeinen Graphen

KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN

Universität Bremen. Bachelorarbeit

durch Einfügen von Knoten konstruiert werden kann.

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

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Grundlagen: Algorithmen und Datenstrukturen

Kombinatorische Optimierung

Matchings in Graphen. Praktikum Diskrete Optimierung (Teil 5)

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

Bemerkung: Es gibt Algorithmen für minimale Spannbäume der Komplexität O(m + n log n) und, für dünnbesetzte Graphen, der Komplexität O(m log n), wobei

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

Überblick. Kap. 1.4: Minimum Weight Perfect Matching. 1.3 Blüten-Schrumpf Algorithmus für Maximum Matching

Diskrete Mathematik Graphentheorie (Übersicht)

WS 2015/16 Diskrete Strukturen Kapitel 4: Graphen (Matchings)

Algorithmische Graphentheorie

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

4.7 Der Algorithmus von Dinic für maximalen Fluss

Bipartites Matching. Gegeben: Ein bipartiter, ungerichteter Graph (V 1, V 2, E). Gesucht: Ein Matching (Paarung) maximaler Kardinalität.

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

Informatik II, SS 2014

Bäume und Wälder. Definition 1

2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}

Bäume und Wälder. Definition 1

1.Aufgabe: Minimal aufspannender Baum

Graphalgorithmen Minimale Spannbäume. Kruskal: Minimaler Spannbaum

Effiziente Algorithmen I

Algorithmen und Datenstrukturen

Wiederholung zu Flüssen

Wie wird ein Graph dargestellt?

8 Diskrete Optimierung

Algorithmische Mathematik I

lässt sich auch ableiten, dass es einen augmentierenden Pfad der Länge höchstens

Maximale s t-flüsse in Planaren Graphen

Übung zur Vorlesung Diskrete Strukturen I

Kombinatorische Optimierung

Kapitel 8: Bipartite Graphen Gliederung der Vorlesung

Wintersemester 2004/ Januar Aus der Vorlesung sind Datenstrukturen zur Repräsentation von Wäldern disjunkter Mengen bekannt.

Graphalgorithmen Netzwerkalgorithmen. Laufzeit

Bipartite Graphen. Beispiele

Klausurvorbereitung. 1 Zentrale Begriffe. 2 Bipartite Graphen. 2.1 Begriffe. Vorlesung Graphen und Optimierung Sommersemester 2011 Prof. S.

Informatik II, SS 2016

Studientag zur Algorithmischen Mathematik

Informatik II, SS 2018

Naiver Algorithmus für Hamiltonkreis

Nachbarschaft, Grad, regulär, Inzidenz

Very simple methods for all pairs network flow analysis

5. Bäume und Minimalgerüste

Kap. 6.5: Minimale Spannbäume

8. Übung zu Algorithmen I 15. Juni 2016

Flüsse in Netzwerken. Seminar über Algorithmen SoSe Mike Rohland & Julia Schenk

Breitensuche BFS (Breadth First Search)

Laufzeit. Finden eines Matchings maximaler Kardinalität dauert nur O( E min{ V 1, V 2 }) mit der Ford Fulkerson Methode.

Berechnung von Abständen

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

Algorithmen und Datenstrukturen Kapitel 10

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

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14

Flüsse, Schnitte, bipartite Graphen

Theoretische Informatik 1

MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

Ferienkurs zum Propädeutikum Diskrete Mathematik. Technische Universität München

Graphalgorithmen II. Werner Sembach Werner Sembach Graphalgorithmen II / 22

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4: Flüsse

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

KAPITEL 4 FLÜSSE IN NETZWERKEN

Flüsse und Zuordnungen. Kapitel 6. Peter Becker (H-BRS) Graphentheorie Wintersemester 2018/ / 296

24. Minimale Spannbäume

Berechnung minimaler Spannbäume. Beispiel

Lösungen zu Kapitel 5

Vorlesung Datenstrukturen

Lösungen von Übungsblatt 12

Wie man das Poissonsche Problem löst

Folien aus der Vorlesung Optimierung I SS2013

Betriebswirtschaftliche Optimierung

Graphen KAPITEL 3. Dieses Problem wird durch folgenden Graph modelliert:

A Berlin, 10. April 2017

Vorlesung Datenstrukturen

Wiederholung

3 Klassifikation wichtiger Optimierungsprobleme

Betriebliche Optimierung

Very simple methods for all pairs network flow analysis

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

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben

Algorithmische Methoden zur Netzwerkanalyse

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Übungsaufgaben Graphentheorie, Wintersemester 2011/12

3.2 Generischer minimaler Spannbaum-Algorithmus

25. Minimale Spannbäume

Zusammenfassung Graphentheorie

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.

Transkript:

Felix Brandt, Jan Johannsen Vorlesung im Wintersemester 2008/09

Übersicht

Übersicht

Definition Ein Matching in G = (V, E) ist eine Menge M E mit e 1 e 2 = für e 1, e 2 M, e 1 e 2 Ein Matching M ist perfekt, falls M = V /2 ist. v V heißt M-frei, wenn v mit keiner Kante in M inzidiert. Probleme: Entscheide ob G ein perfektes Matching enthält. Finde ein Matching maximaler Größe in G. ν(g) := max{ M, M Matching in G}

Ungerade Komponenten uk(g) bezeichnet die Anzahl der ungeraden Zusammenhangskomponenten von G. Lemma Für alle S V gilt ν(g) 1 2 ( V uk(g S) + S ) Korollar Falls es S V gibt mit uk(g S) > S, dann hat G kein perfektes Matching.

Augmentierende Wege Ein Weg W = (v 1,..., v k ) ist M-alternierend, wenn gilt {v i, v i+1 } M {v i+1, v i+2 } / M für alle i W ist M-augmentierend, wenn v 1 und v k M-frei sind. Dann ist M = M E(W ) ein Matching mit M = M + 1. Satz Ein Matching M ist maximal gdw. es keinen M-augmentierenden Weg gibt.

Generischer Algorithmus Generischer Algorithmus: M := while augmentierender Weg W M := M E(W ) Berechnet ein maximales Matching. Gebraucht wird also nur Algorithmus für: Stelle fest, ob augmentierender Weg existiert, falls ja, finde einen.

Einfacher Algorithmus Konvention: In ist V = A B mit A B und e A = e B = 1 für alle e E. Matching M ist perfekt, falls M = A. Gegeben: bipartiter Graph G = (V, E), Matching M. Konstruiere gerichteten Graphen G mit Kanten: (b, a) (a, b) falls {a, b} M falls {a, b} E \ M für a A und b B. Finde ein M-freies s A. Breitensuche ausgehend von s in G findet kürzesten augmentierenden Weg, falls es einen gibt.

Alternierende Bäume Sei s V M-frei. Ein alternierender Baum ist ein Baum T mit Wurzel s und: jeder Pfad in T ist ein alternierender Weg, kein Knoten v s in T ist M-frei. Seien even(t ) und odd(t ) die Mengen der v T gerader bzw. ungerader Tiefe. Es gilt: even(t ) = odd(t ) + 1

Algorithmus Sei G bipartit, M Matching in G und T ein alternierender Baum. Es gibt zwei Fälle: Fall 1: es gibt u even(t ) und {u, v} E mit v / T. Fall 1a: v ist M-frei. augmentierender Weg. Fall 1b: v ist von M überdeckt. T kann vergrößert werden. Fall 2: für alle u even(t ) und {u, v} E gilt v odd(t ). In diesem Fall heißt T verkümmert. Satz Ist T ein verkümmerter Baum in T, dann gibt es in T kein perfektes Matching.

Hall s Theorem Der obige Algorithmus findet ein perfektes Matching oder stellt fest, dass keines existiert, in Zeit O(nm). Er liefert auch einen einfachen Beweis für den Satz von Hall: Satz Sei G bipartit. Es gibt genau dann ein perfektes Matching in G, wenn für alle S A gilt N(S) S.

Ungerade Kreise In nicht- kann ein weiterer Fall eintreten: Fall 2b: es gibt u even(t ) und v even(t ) mit {u, v} E. Dann existiert einen Kreis ungerader Länge! Problem: gefunden. augmentierende Wege werden dann nicht immer

Kontraktion ungerader Kreise Lösung: Ungerade Kreise werden kontrahiert. Definition Sei C ein ungerader Kreis in G G/C ist definiert als G[V \ C] plus neuer Knoten {v C } neue Kanten: {u, v C } für jede Kante {u, v} mit u / C und v C Knoten v C heißt Superknoten in G/C.

Augmentierende Wege in G/C Satz Ist M ein Matching in G/C, dann gibt es ein Matching M in G so daßs Anzahl der M-freien Knoten in G = Anzahl der M -freien Knoten in G/C.

Verkümmerte Bäume G ist abgeleitet von G, wenn es G = G 1,..., G k = G gibt mit G i+1 = G i /C i für alle i wobei C i ungerader Kreis in G i ist. Satz Sei G abgeleitet von G, M Matching in G und T ein alternierender Baum in G, so dass odd(t ) keine Superknoten enthält. Ist T verkümmert, so hat G kein perfektes Matching.

Der Algorithmus Input: Graph G, Matching M in G 1 G := G 2 if M perfekt return M 3 wähle s V M-frei, T := ({s}, ) 4 if {u, v} E mit u even(t ) und v / odd(t ) 5 if v M-frei 6 vergrößere M entlang des Pfades von s zu v 7 erweitere M zu Matching auf G; goto 2 8 if {v, w} M 9 erweitere T um {u, v} und {v, w}; goto 4 10 if v even(t ) 11 C := ungerader Kreis in T + {u, v} 12 G := G/C; M := M \ E(C) 13 T := (T + {u, v})/c ; goto 4 14 return G hat kein perfektes Matching

Komplexität des Algorithmus Satz Der obige Algorithmus entscheidet korrekt,ob G ein perfektes Matching hat. Er führt O(n) Vergröerungen des und O(n 2 ) Kontraktionen und Baumwachstumsschritte durch. Der Algorithmus kann mit Laufzeit O(nmα(n)) implementiert werden. α(n) ist die inverse Ackermannfunktion. Es ist α(n) 4 für n 10 600. Dazu: Union-Find-Datenstruktur

Exkurs: Union-Find-Datenstruktur Es soll eine Familie von disjunkten Mengen verwaltet werden: M 1,..., M k mit M i M j = für i j Dabei sollen folgende Operationen zur Verfügung stehen: Make-Set(x) fügt die Menge {x} zur Familie hinzu. Find-Set(x) liefert ein kanonisches Element der Menge M i mit x M i, also Find-Set(x) = Find-Set(y), falls x und y in der gleichen Menge M i liegen. Union(x, y) ersetzt die Mengen M i und M j mit x M i, y M j durch ihre Vereinigung M i M j.

Exkurs: Union-Find-Datenstruktur Union-Find-Datenstruktur kann so implementiert werden, dass gilt: Satz Jede Folge von m Make-Set-, Union- und Find-Set-Operationen, von denen n Make-Set sind, hat eine Laufzeit von O(mα(n)).

Maximale Input: Graph G 1 G := G; M, M := 2 (M, G, T ) := Algorithmus(G, M ) 3 if M nicht perfekt 4 G := G \ T 5 if V 6 M := M \ E(T ) 7 M := M (M E(T )) 8 goto 2 9 M := M M 10 return M

Maximale Satz Der obige Algorithmus berechnet ein maximales Matching in Laufzeit O(nmα(n)). Korollar Tutte-Berge-Formel: 1( ) ν(g) = min V uk(g S) + S S V 2