Gliederung der Vorlesung. Fallstudie Bipartite Graphen. Grundbegriffe 3. Elementare Graphalgorithmen und Anwendungen 4. Minimal spannende Bäume 5. Kürzeste Pfade 6. Traveling Salesman Problem 7. Flüsse in Netzwerken und Anwendungen 8. Netzplantechnik 7/3, Folie 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Gliederung des Kapitels a) Einordnung / Motivation b) Begriffe / Grundlagen c) Anwendungen d) e) Kantenbasierte Algorithmen 7/3, Folie 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Anmerkungen die Grundidee für solche pfadbasierten Algorithmen haben wir bereits kennen gelernt interessanterweise kann man diese Grundidee gut und schlecht realisieren (/* und auf den ersten Blick unterscheiden sich diese Realisierungen kaum */)... gut bedeutet, dass der entsprechende Algorithmus ein effizienter Algorithmus ist... schlecht bedeutet, dass der entsprechende Algorithmus nachweislich kein effizienter Algorithmus ist 7/3, Folie 3 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Algorithmische Fragestellung gegeben: ein Flussnetzwerk, d.h. ein gerichteter Graph mit zwei ausgezeichneten Knoten s und t (/* die Quelle bzw. die Senke */) und einer Funktion c(.), die jeder Kante eine ganze Zahl > 0 als Kapazität zuordnet gesucht: der maximale Wert eines Flusses in G von s nach t 7/3, Folie 4 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
generischer Ansatz ) setze f([u,v]) = 0 für alle Kanten [u,v] in G ) bestimme das zu f(.) gehörende Restflussnetzwerk G f mit der Kapazitätsfunktion c (.) 3) überprüfe, ob es in G f einen Erweiterungspfad P gibt falls nein, stoppe falls ja, wähle das zuerst gefundene P und gehe zu 3) 4) bestimme c P, bestimme den aktualisierten Fluss f (.) und gehe zu )... diesen Ansatz nennt man Ford-Fulkerson-Methode... wir wissen schon, dass diese Methode das leistet, was sie soll 7/3, Folie 5 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Beispiel 3 (0,) (0,3) s 3 t s (0,3) (0,) (0,) t s 3 3 t 7/3, Folie 6 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Beispiel s 3 3 t... Erweiterungspfad: P = (s,,,t) mit c P = (0,) (0,3) s (0,3) (0,) (0,) t (,) (0,3) s (0,3) (,) (,) t 7/3, Folie 7 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Beispiel (,) (0,3) s (0,3) (,) t (,) s 3 t 3 7/3, Folie 8 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Beispiel s 3 3 t s... Erweiterungspfad: P = (s,,,t) mit c P = (,) (0,3) (,) (0,3) (,) t (,) (,3) s (,3) (0,) (,) t 7/3, Folie 9 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Beispiel (,) (,3) s (,3) (0,) t (,) s t... offenbar gibt es keinen Erweiterungspfad mehr... also hat der maximale Fluss den Wert 4 7/3, Folie 0 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Anmerkungen (/* Laufzeit */) es sei G ein Flussnetzwerk mit n Knoten und m Kanten ), ) und 4) kann man offenbar in Zeit O(n+m) realisieren da das jeweils betrachtete Restflussnetzwerk n Knoten und maximal m Kanten besitzt, ist es zulässig, dass die Laufzeit für 3) auch in Abhängigkeit von n und m abgeschätzt wird 3) kann man mit Hilfe der Tiefen- bzw. Breitensuche in der Zeit O(n+m) realisieren... um die Gesamtlaufzeit abzuschätzen, muss man nur noch wissen, wie viele Iterationen benötigt werden 7/3, Folie 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Anmerkungen (/* Laufzeit */) es sei z die Größe des maximalen Flusses f*(.), d.h. z = val(f*) wir wissen, dass z eine ganze Zahl ist wir wissen, dass der aktuelle Fluss in 4) jeweils um eine ganze Zahl erhöht wird... also wird der aktuelle Fluss f(.) höchstens z mal verändert und folglich genügen z Iterationen... demzufolge benötigt die Ford-Fulkerson-Methode insgesamt höchstens die Zeit O(z*(n+m)) 7/3, Folie 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Anmerkungen (/* Laufzeit */) falls z eine Zahl ist, die nicht viel größer als n und m ist, haben wir mit der Ford-Fuklerson-Methode einen effizienten Algorithmus, um einen maximalen Fluss zu bestimmen... falls z viel größer als n und m sind, ist das nicht mehr der Fall... für n = 0, m = 90 und z = 0 50, liefert unsere Abschätzung, dass die Ford-Fulkerson-Methode 0 5 viele Rechenschritte benötigt (/* das ist garantiert nicht effizient */)... das nächste Beispiel zeigt, dass diese Bedenken nicht ganz unbegründet sind 7/3, Folie 3 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Beispiel wir gehen davon aus, dass in der Ford-Fulkerson-Methode 3) mit Hilfe der Tiefensuche realisiert wird wir gehen davon aus, dass die Kanten - wie üblich - in lexikographischer Ordnung besucht werden 6 00 00 5 3 4... offenbar hat der maximale Fluss f*(.) den Wert 00 7/3, Folie 4 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Beispiel 6 6 00 99 00 3 5 4 P = (,,3,4,5,,6) 99 3 5 4 P = (,,5,4,3,,6) 6 6 97 3 98 97 3 5 P = (,,3,4,5,,6) 98 5 3 4 3 4 7/3, Folie 5 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Anmerkungen wenn man die Ford-Fulkerson-Methode so implementiert, dass 3) mit Hilfe der Tiefensuche realisiert wird, kann es passieren, dass die Anzahl der Iterationen gleich der Größe z des maximalen Flusses f*(.) ist... in unserem Beispiel mussten wir die Kapazität von zwei Kanten so wählen, dass sie gleich der z sind... dass ist nicht weiter schlimm, da man nur log(z) Platz benötigt wird, um z zu speichern... ein Algorithmus, der O(z*(n+m)) viele Rechenschritte benötigt, ist immer noch expontentiell in der Größe der Beschreibung des gegebenen Flussnetzwerks G (/* es gilt G n+m+m*log(z) */) 7/3, Folie 6 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Eine einfache Verbesserungsmöglichkeit wenn man die Ford-Fulkerson-Methode so implementiert, dass 3) mit Hilfe der Breitensuche realisiert wird, kann man garantieren, dass deutlich weniger Iterationen benötigt werden man kann zeigen, dass dann O(n*m) viele Iterationen genügen... das entsprechende Verfahren heißt Algorithmus von Edmonds und Karp und hat eine Laufzeit in der Größe O((n*m)(n+m))... offenbar ist der Algorithmus von Edmonds und Karp ein effizientes Verfahren zum Bestimmen von maximalen Flüssen in Flussnetzwerken 7/3, Folie 7 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Algorithmus von Edmonds und Karp ) setze f([u,v]) = 0 für alle Kanten [u,v] in G ) bestimme das zu f(.) gehörende Restflussnetzwerk G f mit der Kapazitätsfunktion c (.) 3) überprüfe mit Hilfe der Breitensuche, ob es in G f einen Erweiterungspfad P gibt falls nein, stoppe falls ja, wähle das zu erst gefundene P und gehe zu 3) 4) bestimme c P, bestimme den aktualisierten Fluss f (.) und gehe zu )... offenbar leistet dieser Algorithmus auch das, was er soll 7/3, Folie 8 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Beispiel 6 6 00 00 5 (00,00) (00,00) (0,) 5 3 4 P = (,,6) (0,) 3 (0,) (0,) 4... für dieses kritische Beispiel benötigt der Algorithmus von Edmonds und Karp genau eine Iteration 7/3, Folie 9 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Eigenschaften des Algorithmus von Edmonds und Karp es sei G f das aktuelle Restflussnetzwerk und P der zu erst gefundene Erweiterungspfad Dann gilt: P ist ein kürzester Erweiterungspfad von der Quelle s zur Senke t P besucht jeden Knoten aus V höchstens einmal für jeden besuchten Knoten v ist der Teilpfad von der Quelle s zum Knoten v ein kürzester Pfad von s nach v... der Begriff kürzester Pfad bezieht sich hier auf die Anzahl der Knoten, auf dem betrachten Pfad!!! 7/3, Folie 0 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Anmerkungen es sei G ein Flussnetzwerk mit n Knoten und m Kanten um zu zeigen, dass die Anzahl der Iteration des Algorithmus von Edmonds und Karp in der Größe O(n*m) liegt benötigen wir folgenden Hilfsbegriff es seien f(.) zulässiger Fluss in G und G f das zugehörige Restflussnetzwerk es sei v ein Knoten aus V \ { s,t } dann bezeichnet d f (v) die Entfernung zwischen der Quelle s und dem Knoten v in G f, d.h. die Anzahl der Kanten auf einem kürzesten Pfad von s nach t in G f (/* falls es keinen Pfad von s nach v gibt, so ist d f (v) = + */) 7/3, Folie 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Beobachtung es sei G ein Flussnetzwerk mit n Knoten und m Kanten es seien G f,..., G fz die Restflussnetzwerke, die der Algorithmus von Edmonds und Karp sukzessive erzeugt es sei v ein Knoten V \ { s,t } Dann gilt: d f (v) d f (v)... d fz (v)... die Entfernungen eines Knotens v von der Quelle s werden nicht kleiner 7/3, Folie 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Begründung es seien G f und G f nacheinander erzeugte Restflussnetzwerke Annahme: es sei v ein Knoten, für den d f (v) > d f (v) gilt wir wählen v so, dass auf dem kürzesten Pfad P* von s nach v in G f für alle Zwischenknoten u gilt: d f (u ) d f (u )... das geht offenbar (/* falls man einen Zwischenknoten u findet, der diese Eigenschaft nicht hat, so setzt man u = v */)... man kann sich leicht überlegen, dass es auf dem kürzesten Pfad P* von s nach v in G f wenigstens einen Zwischenknoten u gibt falls nicht, so muss es in G f die Kante [s,v] geben [s,v] darf dann nicht in G f vorkommen dann müsste aber die Kante [v,s] in einem kürzesten Erweiterungspfad in G f von s nach t benutzt worden sein (/* das geht nicht, da dann s zweimal besucht würde */) 7/3, Folie 3 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Begründung... in G f... in G f s u v s u es gilt d f (u) d f (u) < + und d f (v) = d f (u) + wegen d f (v) < d f (v), darf die Kante [u,v] in G f nicht vorkommen (/* sonst gilt sofort d f (v) = d f (u) + d f (u) + = d f (v) */) also muss die Kante [v,u] in G f auf dem zu erst gefundenen, kürzesten Erweiterungspfad P von s nach t liegen 7/3, Folie 4 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Begründung... in G f... in G f s u v s u v t da [v,u] in G f auf dem zu erst gefundenen kürzesten Erweiterungspfad P von s nach t liegt, wissen wir: der Teilpfad P von s über v nach u in G f kann nicht mehr Kanten enthalten als der Pfad P in G f von s nach u (/* da P ein kürzester Pfad von s nach t ist, muss dessen Teilpfad P auch ein kürzester Pfad von s nach u sein */) also gilt: d f (v) = d f (u) - 7/3, Folie 5 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Begründung... in G f... in G f s u v s u v wir wissen, dass gilt: d f (v) = d f (u) - wir wissen, dass gilt: d f (v) = d f (u) + t wenn d f (v) < d f (v) gilt, müsste auch d f (u) + < d f (u) - gelten also müsste auch d f (u) < d f (u) - gelten... wir haben jedoch vorausgesetzt, dass d f (u) d f (u) gilt, und haben damit einen Widerspruch abgeleitet 7/3, Folie 6 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Beobachtung es sei G ein Flussnetzwerk mit n Knoten und m Kanten Dann gilt: Der Algorithmus von Edmonds und Karp benötigt höchstens O(n*m) viele Iterationen 7/3, Folie 7 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Hilfsbegriff zur Begründung es sei G f ein Restflussnetzwerk mit der Kapazitätsfunktion es sei [u,v] eine Kante in G f die Kante [u,v] heißt kritisch für G f, falls gilt: der zu erst gefundene kürzeste Erweiterungspfad P in G f, der die Kante [u,v] benutzt es gilt c ([u,v]) = c P > 0... c P ist die minimale Kapazität einer Kante auf dem Erweiterungspfad P 7/3, Folie 8 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Einige hilfreiche Beobachtungen es sei G ein Flussnetzwerk mit n Knoten und m Kanten es seien G f,..., G fz die Restflussnetzwerke, die der Algorithmus von Edmonds und Karp sukzessive erzeugt Dann gilt: Wenn die Kante [u,v] in einem Restflusswerk G fi kritisch ist, so kommt die Kante [u,v] oder die Kante [v,u] in G vor. Wenn die Kante [u,v] in einem Restflusswerk G fi kritisch ist, so kommt die Kante [u,v] im Restflusswerk G fi+ nicht vor. In jedem Restflusswerk G fi mit i < z kommt wenigstens eine kritische Kante [u,v] vor. 7/3, Folie 9 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Qualitative Idee es sei G ein Flussnetzwerk mit n Knoten und m Kanten es seien G f,..., G fz die Restflussnetzwerke, die der Algorithmus von Edmonds und Karp sukzessive erzeugt wir werden zeigen:... jede überhaupt als kritische Kante infrage kommende Kante [u,v] kann nur O(n) mal benutzt werden, um ein neues Restflussnetzwerk zu definieren... da höchstens m viele Kanten überhaupt als kritische Kanten infrage kommen, kann es nur O(n*m) viele Restflussnetzwerke geben, die der Algorithmus von Edmonds und Karp sukzessive erzeugt 7/3, Folie 30 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Begründung (/* einfacher Fall */) es sei die betrachtete Kante eine vom Typ [s,u] oder [u,t]... dann kann diese Kante nur einmal kritisch sein falls eine Kante vom Typ [s,u] oder [u,t] in im Restflussnetzwerk G fi kritisch ist, so enthält das Restflussnetzwerk G fi+ die Kante [s,u] oder [u,t] nicht mehr und dafür die Kante [u,s] oder [t,u] diese Kanten können im Restflussnetzwerk G fi+ nicht auf einem kürzesten Erweiterungspfad P von der Quelle s zur Senke t benutzt werden (/* sonst würden s oder t mehr als einmal besucht werden */) 7/3, Folie 3 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Begründung (/* der schwierigere Fall */) es sei die betrachtete Kante eine vom Typ [u,v] mit u s und v t es sei G fi das Restflussnetzwerk, in dem die Kante [u,v] eine kritische Kante ist... in G fi... in G fi+ s u v s s u v s offenbar gilt d fi (v) = d fi (u) + 7/3, Folie 3 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Begründung (/* der schwierigere Fall */) damit die Kante [u,v] in einem Restflussnetzwerk G fj mit j > i+ wieder eine kritische Kante werden kann, muß es ein k mit i+ k < j geben, so dass die umgedrehte Kante [v,u] eine kritische Kante im Restflussnetzwerk G fk ist... in G fk... in G fk+ s u v s s u v s offenbar gilt d fk (u) = d fk (v) + 7/3, Folie 33 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Begründung (/* der schwierigere Fall */) wir wissen, dass d fi (v) = d fi (u) + gilt wir wissen, dass d fk (u) = d fk (v) + gilt wir wissen auch, dass i < k gilt, und damit gilt auch d fi (v) d fk (v)... also gilt d fk (u) = d fk (v) + d fi (u) + + = d fi (v) +... folglich hat sich die Entfernung des Knotens u von der Quelle s im Restflussnetwerk G fk im Vergleich zur Entfernung des Knotens u von der Quelle s im Restflussnetzwerk G fj echt vergrößert 7/3, Folie 34 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Konsequenzen es sei G ein Flussnetzwerk mit n Knoten und m Kanten es seien G f,..., G fz die Restflussnetzwerke, die der Algorithmus von Edmonds und Karp sukzessive erzeugt dann gibt es mit Blick auf eine Kante [u,v] im schlimmsten Fall... spätestens wenn die Kante n-mal kritisch geworden ist, gilt d f (u) n in jedem noch zu untersuchenden Restflussnetzwerke G f... folglich kann die Kante [u,v] in in keinem der zu untersuchenden Restflussnetzwerke G f auf einem kürzesten Erweiterungspfad von der Quelle s zur Senke t benutzt werden (/* auf dem Teilpfad bis zum Knoten u würde schon jeder Knoten einmal vorkommen */) 7/3, Folie 35 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung
Zusammenfassung wenn man die Ford-Fulkerson-Methode zur Bestimmung von maximalen Flüssen verwendet, sollte man stets nach kürzesten Erweiterungspfaden suchen wenn man eine Bereitensuche benutzt (/* siehe Algorithmus von Edmonds und Karp */), erhält man einen effizienten pfadbasierten Algorithmus 7/3, Folie 36 0 Prof. Steffen Lange - HDa/FbI - Graphen und Optimierung