Effiziente Algorithmen

Slides:



Advertisements
Ähnliche Präsentationen
Christian Scheideler SS 2009
Advertisements

Berechne den optimalen (kürzesten, schnellsten) Weg
Single-Source Shortest Paths: SSSP
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Christian Schindelhauer
Minimum Spanning Tree: MST
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Effiziente Algorithmen
Effiziente Algorithmen
Flüsse, Schnitte, bipartite Graphen
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation
Information und Kommunikation
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation
Christian Scheideler Institut für Informatik Universität Paderborn
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Analyse der Laufzeit von Algorithmen
Gliederung der Vorlesung
 Präsentation transkript:

Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS 06 8.6.

Min-Cuts Im s-t Min Cut Problem ist ein Flussnetzwerk die Eingabe Gesucht wird ein s-t Cut, d.h. eine Partition des Knotenmenge V in Mengen L,R mit s2 L und t2 R Der Fluss über den Schnitt ist f(L,R) Die Kapazität des Schnittes ist C(L,R) Gesucht ist ein s-t Schnitt L,R mit minimaler Kapazität

Das Max-Flow Min-Cut Theorem Sei N=(G,C,s,t) ein Flussnetzwerk Sei f ein Fluss mit Wert W(f) Sei L,R ein minimaler s,t Schnitt mit Kapazität C(L,R) Folgendes ist äquivalent: f ist maximal Nf enthält keinen augmentierenden Pfad W(f)=C(L,R)

Beweis Lemma Sei f ein Fluss und L,R ein s-t Schnitt Dann ist f(L,R)=W(f) Beweis: f(L-{s},V)=0 wegen Flusserhaltung f(L,R)=f(L,V)-f(L,L) [nach Beobachtung 14.1] =f(L,V) =f({s},V)+f(L-{s},V) =f({s},V) =W(f)

Beweis Lemma W(f)· C(L,R) für jeden Fluss f und jeden s,t Schnitt L,R W(f)=f(L,R)· C(L,R) Damit ist W(f) für den maximalen Fluss durch C(L,R) für den minimalen s,t-Schnitt beschränkt

Beweis des Theorems 1 nach 2: f sei maximal, aber Nf habe noch einen augmentierenden Pfad p. Da aber f+fp ein grösserer Fluss ist: Widerspruch 2 nach 3: Angenommen, Nf hat keinen augmentierenden Pfad W(f)· C(L,R) nach Lemma Konstruiere einen Schnitt L: Knoten, die in Nf von s erreichbar sind R: restliche Knoten f(L,R)=W(f) Alle Kanten in G von L nach R erfüllen: f(u,v)=C(u,v), sonst wären sie Kanten in Nf Damit gilt W(f)=f(L,R)=C(L,R) 3 nach 1: W(f)· C(L,R). Wenn also W(f)=C(L,R), so ist f maximal

Korrektheit von Ford-Fulkerson Damit ist der Ford-Fulkerson Algorithmus korrekt.

Zurück zur Laufzeit Wir nehmen an, augmentierende Pfade werden per Breitensuche bestimmt Dann gilt Die Anzahl der Iterationen ist durch O(mn) beschränkt Somit kann Ford-Fulkerson maximale Flüsse in Zeit O(m2n) bestimmen.

Anzahl der Iterationen Lemma: Sei N ein Flussnetzwerk Für alle Knoten v ausser s,t gilt: Die Distanz (Anzahl Kanten auf Weg) von s nach v steigt monoton (beim Übergang auf residuale Netzwerke im FF Algo) Beweis: Angenommen die Distanz s nach v; (s,v) sinkt in einer Iteration f sei Fluss vor der Iteration, f‘ danach (s,v) sei Distanz in Nf; (s,v) in Nf ‘; v habe min. (s,v) unter allen v, wo (s,v)<(s,v) (*) p: s nach u nach v sei ein kürzester Pfad in Nf ‘ (s,u)=(s,v)-1 (s,u)·(s,u) wg.(*) Dann ist (u,v) keine Kante in Nf ,denn Angenommen (u,v)2 Nf, dann (s,v)·(s,u)+1 ·(s,u)+1 =(s,v); Widerspruch

Anzahl der Iterationen Also (u,v) in Nf‘, aber nicht in Nf D.h. Fluss von v nach u wurde erhöht Ein augmentierender Pfad in Nf mit Kante (v,u) D.h. ein kürzester Weg von s nach u mit der Kante (v,u) am Ende existiert Somit: (s,v) =(s,u)-1 ·(s,u)-1 =(s,v)-2 Wir haben aber (s,v)<(s,v) angenommen.

Anzahl der Iterationen Theorem: Es gibt O(mn) Iterationen Beweis: In Nf sei eine Kante kritisch, wenn die Restkapazität des augmentierenden Pfades p die Kapazität von (u,v) in Nf ist Kritische Kanten werden entfernt, d.h. liegen nicht in Nf ' Ein augmentierender Pfad hat mind. eine krit. Kante Behauptung: Jede Kante kann nur n/2-1 mal kritisch sein Daher gibt es insgesamt nur nm mal das Ereignis: eine Kante ist kritisch, und nur so viele Iterationen, denn in allen Nf werden insgesamt nur 2m verschiedene Kanten verwendet

Beweis der Behauptung u,v seien Knoten mit einer Kante in E wenn (u,v) kritisch ist in Nf zum ersten mal: (s,v)=(s,u)+1 Nach der Augmentation verschwindet (u,v) (u,v) kann nur dann wieder auftauchen, wenn später der Fluss von u nach v verringert wird Dann ist (v,u) euf einem augmentierenden Pfad; f‘ sei der Fluss zu diesem Zeitpunkt (s,u)=(s,v)+1 (s,v)·(s,v) Somit: ¸(s,v)+1 =(s,u)+2 Also ist die Distanz s nach um 2 gestiegen, bevor (u,v) wieder kritisch werden kann Die Distanz ist ein Wert zwischen 0 und n-1 Somit kann dies nur n/2-1 mal passieren.

Zusammenfassung Die Edmonds-Karp Version von Ford-Fulkerson berechnet maximale Flüsse in Zeit O(m2n)

Eine Anwendung Gegeben sei ein bipartiter ungerichteter Graph G Ein Matching ist eine Kantenmenge in G, bei der keine zwei Kanten einen Knoten gemeinsam haben Gesucht ist ein maximales Matching

Berechnung von Matchings Wir wollen den Flussalgorithmus auf Matchings anwenden

Berechnung von Matchings Neue Knoten s,t Knotenmengen U,V des bipartiten Graphen Kanten: (s,u) für alle u aus U (v,t) für alle v aus V (u,v) wie in G Kapazitäten seien alle 1

Berechnung von Matchings Problem: Flüsse können nichtintegral sein Wir nennen einen Fluss ganzzahlig, wenn alle f(u,v) ganze Zahlen sind Behauptung: Wenn M ein Matching in G ist, dann gibt es einen ganzzahligen Fluss f im Flussnetzwerk mit W(f)=|M| Umgekehrt, zu einem ganzzahligen Fluss f gibt es ein Matching mit W(f)=|M|

Beweis 1) Matching entspricht Fluss Definiere Fluss wie folgt: f(u,v)=1 wenn (u,v) im Matching, dann auch f(v,u)=-1, f(s,u)=1, f(v,t)=1 etc. alle anderen Kanten f(u,v)=0 etc. Dies ist ein korrekter Fluss Grösse ist |M| offensichtlich

Beweis 2) Fluss entspricht Matching Sei f ein ganzzahliger Fluss Setze M={(u,v) mit f(u,v)> 0} C(s,u)=1, also f(s,u)2{0,1} f(u,v)2{0,1} somit Für u gibt es höchstens ein v mit f(u,v)=1 M ist also ein Matching Offensichtlich ist |M|=W(f)

Integralitätstheorem Theorem Wenn C(u,v) immer ganzzahlig ist, und ein maximaler Fluss mit Ford Fulkerson berechnet wird, so ist W(f) ganzzahlig und f(u,v) ist immer ganzzahlig Korollar: Maximale Bipartite Matchings können in Zeit O(m2n) berechnet werden Tatsächlich läuft der Algorithmus in Zeit O(mn): Ford Fulkerson läuft in Zeit O(W(f) m) für den maximalen Fluss f, und W(f)· n Beweis: Induktion über die Iterationen Erste Iteration: es gibt einen augmentierenden Pfad mit ganzzahliger Kapazität (Cp(f) ganzzahlig) Dann ist Nf wieder ein Netz mit ganzzahligen Kapazitäten.