Kapitel 7: Flüsse in Netzwerken und Anwendungen - fbi.h

Werbung
Kapitel 7: Flüsse in Netzwerken und Anwendungen
Gliederung der Vorlesung
1.
2.
3.
4.
5.
6.
7.
8.
7/2, Folie 1
Fallstudie Bipartite Graphen
Grundbegriffe
Elementare Graphalgorithmen und Anwendungen
Minimal spannende Bäume
Kürzeste Pfade
Traveling Salesman Problem
Flüsse in Netzwerken und Anwendungen
Netzplantechnik
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 7: Flüsse in Netzwerken und Anwendungen
Gliederung des Kapitels
a)
b)
c)
d)
e)
7/2, Folie 2
Einordnung / Motivation
Begriffe / Grundlagen
Anwendungen
Pfadbasierte Algorithmen
Kantenbasierte Algorithmen
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 7: Flüsse in Netzwerken und Anwendungen
Einordnung / Motivation
 Anmerkungen
•
mit Hilfe des Max-Flow-Min-Cut-Theorems kann man eine ganze Reihe
von anderen Sätzen der Graphentheorie „elegant“ und „einfach“
beweisen
... in Büchern zur Graphentheorie kann man nachlesen, wie man
bspw. den Heiratssatz oder den Satz von König auf diese Art
beweisen kann
•
wir schauen uns eine „andere Art“ der Anwendung an
... wir werden diskutieren, wie man Algorithmen zum Bestimmen
von maximalen Flüssen verwenden kann, um maximale Matchings
in bipartiten Graphen zu bestimmen
7/2, Folie 3
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 7: Flüsse in Netzwerken und Anwendungen
Einordnung / Motivation
 Zur Erinnerung
•
ein bipartiter Graph G = (V,E) ist ein ungerichteter Graph, dessen
Knotenmenge sich in zwei disjunkte Mengen X und Y zerlegen läßt, so
dass keine Kante Ecken in beiden Mengen hat
ein Matching im Graphen G ist eine Teilmenge M der Kantenmenge V
für die gilt, dass die Kanten in M paarweise keine gemeinsamen Ecken
haben
•
X
7/2, Folie 4
1
2
3
4
5
6
7
8
© 2011 Prof. Steffen Lange
-
HDa/FbI
Y
-
M = { {1,4}, {5,2}, {7,6} }
Graphen und Optimierung
Kapitel 7: Flüsse in Netzwerken und Anwendungen
Einordnung / Motivation
 Anmerkungen
•
mit dem ungarischen Algorithmus kennen wir einen effizienten
Algorithmus, mit dem man ein maximales Matching in einem gegebenen
bipartiten Graphen bestimmen können
•
wir schauen uns in diesem Abschnitt an, wie man dieses algorithmische
Problem unter Verwendung eines Algorithmus zum Bestimmen
maximaler Flüsse lösen können
... wir werden sehen, dass dieser Ansatz zu einem anderen
effizienten Algorithmus für das Problem, maximale Matchings
in bipartiten Graphen zu bestimmen, führt
7/2, Folie 5
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 7: Flüsse in Netzwerken und Anwendungen
Einordnung / Motivation
 Herangehensweise (/* Problemreduktion */)
•
es seien G = (V,E) der gegebene bipartite Graph und X,Y die zugehörige
Zerlegung der Knotenmenge von G
•
wir werden ein Flussnetzwerk G‘ = (V‘,E‘) mit einer zugehörigen
Kapazitätsfunktion c‘(.) „konstruieren“, so dass gilt:
•
der Wert val(f) eines maximalen Flusses f(.) in G‘ ist gleich der
Größe eines maximalen Matchings M in G
... wenn G‘ nicht viel größer als G ist und man einen effizienten
Algorithmus hat, mit dem man f(.) bestimmen kann, hätte man so
auch einen effizienten Algorithmus um M zu bestimmen
7/2, Folie 6
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 7: Flüsse in Netzwerken und Anwendungen
Einordnung / Motivation
 Problemreduktion am Beispiel
1
2
1
2
3
4
3
4
s
t
5
6
5
6
7
8
7
8
... im zugehörigen Flussnetzwerk G‘ = (V‘,E‘)
•
•
•
•
•
7/2, Folie 7
gibt es zusätzlich eine Quelle s und eine Senke t
wird jede Kante { x,y } mit x ∈ X und y ∈ Y zu einer gerichteten
Kante [x,y]
gibt es von der Quelle s eine Kante [s,x] zu jedem Knoten x ∈ X
gibt es von jedem Knoten y ∈ Y eine Kante [y,t] zur Senke t
haben alle Kanten [u,v] die Kapazität c‘([u,v]) = 1
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 7: Flüsse in Netzwerken und Anwendungen
Einordnung / Motivation
 Beobachtungen
•
•
7/2, Folie 8
G‘ kann man effizient „konstruieren“ (/* man braucht O(n+m) viele
Rechenschritte, falls G wie üblich n Knoten und m Kanten hat */)
wenn |G| angibt, wie viel Platz man benötigt, um den Graphen G zu
„beschreiben“, so genügt O(|G|) viel Platz, um das zugehörige
Flussnetzwerk G‘ zu „beschreiben“
•
jedem Matching M in G kann man eindeutig einen zulässigen Fluss fM(.)
in G‘ zuordnen, wobei val(fM) = |M| gilt
•
jedem zulässigen Fluss f(.) in G‘ kann man eindeutig ein Matching Mf
in G zuordnen, wobei |Mf| = val(f) gilt
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 7: Flüsse in Netzwerken und Anwendungen
Einordnung / Motivation
 Beispiel
1
2
1
2
3
4
3
4
s
t
5
6
5
6
7
8
7
8
... für die in G‘ markierten Kanten [u,v] gilt jeweils f[u,v]) = c‘([u,v]) = 1
7/2, Folie 9
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 7: Flüsse in Netzwerken und Anwendungen
Einordnung / Motivation
 Beispiel
1
2
1
2
3
4
3
4
s
t
5
6
5
6
7
8
7
8
... für die in G‘ markierten Kanten [u,v] gilt jeweils f[u,v]) = c‘([u,v]) = 1
7/2, Folie 10
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 7: Flüsse in Netzwerken und Anwendungen
Einordnung / Motivation
 Algorithmische Lösung
1)
2)
3)
bestimme das zugehörige Flussnetzwerk G‘
bestimme in G‘ einen maximalen Fluss f(.)
setze M = ∅
•
für alle Kanten [x,y] mit x ∈ X und y ∈ Y und f([x,y]) = c‘([x,y]) = 1
setze M = M ∪ { {x,y} }
... falls 2) für ein Flussnetzwerk mit n‘ Knoten und m‘ Kanten mit
g(n‘,m‘) vielen Rechenschritten realisiert werden kann, so kann im
bipartiten Graphen G ein maximales Matching M mit insgesamt
O(n+m) + O(g(n,m)) + O(m) vielen Rechenschritten bestimmt werden
7/2, Folie 11
© 2011 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Herunterladen