Kapitel 1: Flussalgorithmen

Größe: px
Ab Seite anzeigen:

Download "Kapitel 1: Flussalgorithmen"

Transkript

1 Netzwerke und Flüsse Kapitel 1: Flussalgorithmen Ein Flussnetzwerk ist ein gerichteter Graph G = (V, E, q, s, c) mit zwei ausgewählten Knoten q, s V und einer Kapazitätsfunktion c : E N. Die Quelle q hat Eingangsgrad 0 und die Senke s hat Ausgangsgrad 0. Wir definieren n = V, m = E und nehmen an, jeder Knoten ist von q erreichbar. Es gilt n 1 m n(n 1). Hilfreiche Literatur: Ahuja, Magnanti, Orlin: Network Flows: Theory, Algorithms, and Applications, Prentice Hall, Cormen, Leiserson, Rivest: Introduction to Algorithms, First Edition. MIT Press, Cormen, Leiserson, Rivest, Stein: Introduction to Algorithms, Second Edition. MIT Press, Ottmann, Widmayer: Algorithmen und Datenstrukturen. BI-Wiss.-Verl Ein Fluss in einem Netzwerk G ist eine realwertige Funktion f : E R + 0 mit den Eigenschaften a) Flusserhaltung: u V \ {q, s} : f(v, u) = v : (v,u) E } {{ } f in (u) v : (u,v) E f(u, v) } {{ } f out (u) b) Kapazitätsbeschränkung: e E : f(e) c(e). Der Wert des Flusses f ist definiert als w(f) = f out (q). Wegen der Flusserhaltung gilt somit auch w(f) = f in (s).. 1 2

2 Problem 1 (Maximaler Fluss) Gegeben sei ein Flussnetzwerk G. Berechne einen maximalen Fluss auf G, d.h. einen Fluss mit größtmöglichem Wert. Beachte, wir haben angenommen, dass die Kantenkapazitäten ganzzahlig sind. Das ist keine besondere Einschränkung, denn bei rationalen Kapazitäten können wir immer alle Zahlen mit dem Hauptnenner multiplizieren und somit ein Flussproblem mit rationalen Kapazitäten in ein Problem mit ganzzahligen Kapazitäten transformieren. Die Ford-Fulkerson-Methode Der folgende algorithmische Rahmen zur Berechnung eines maximalen Flusses f auf einem Flussnetzwerk G = (V, E, q, s, c) geht zurück auf Ford und Fulkerson, Ford-Fulkerson-Methode: 1 e E : f(e) = 0; 2 Solange es einen fv-weg W gibt 3 erhöhe den Fluss f entlang von W maximal; 4 Ausgabe von f. Die Algorithmen zur Berechnung von maximalen Flüssen, die wir im Folgenden vorstellen werden, haben zahlreiche praktische Anwendungen, die auf den ersten Blick nicht immer unbedingt unmittelbar an Flussprobleme erinnern. In den Übungen präsentieren wir dazu einige, teilweise überraschende Beispiele, wie z.b. das Meisterschaftsproblem. fv-weg steht für flussvergrößernder Weg. Dabei handelt es sich um Wege im sogenannten Restnetzwerk. 3 4

3 Das Restnetzwerk G f zu einem Netzwerk G = (V, E, q, s, c) und einem Fluss f ist wie folgt definiert. O.B.d.A. nehmen wir an, dass das Netzwerk G keine entgegengesetzten Kanten hat, d.h. (u, v) E (v, u) E. Für alle Paare (u, v) V 2 setze c(u, v) f(u, v) (u, v) E rest f (u, v) = f(v, u) (v, u) E 0 sonst G f hat die Knotenmenge V und die Kantenmenge E f = {(u, v) V 2 rest f (u, v) > 0}. Ein fv-weg ist ein einfacher Weg von q nach s im Restnetzwerk G f. (einfacher Weg = Weg auf dem jede Kante höchstens einmal vorkommt) 5 Max-Flow = Min-Cut Die Korrektheit der Ford-Fulkerson-Methode beruht auf dem Max-Flow=Min-Cut -Theorem. Ein Cut oder Schnitt (Q, S) in einem Flussnetzwerk G ist eine Partionierung der Knotenmenge V = Q S mit q Q, s S. Die Kapazität des Schnitts (Q, S) ist definiert durch c(q, S) = c(u, v). (u,v) E u Q,v S Der Fluss über den Schnitt (Q, S) ist definiert durch f(q, S) = f(u, v) f(v, u). (u,v) E u Q,v S (v,u) E v S,u Q Lemma 2 [Max-Flow Min-Cut] Für jeden Fluss f und jeden Schnitt (Q, S) gilt w(f) = f(q, S) c(q, S). Dieses Lemma folgt direkt aus der Flusserhaltung. Formal zeigt man w(f) = f(q, S) per Induktion über die Größe der Menge Q (vgl. Übungen). 6

4 Satz 3 (Max-Flow=Min-Cut) Die folgenden Aussagen sind äquivalent. a) f ist ein maximaler Fluss. b) Das Restnetzwerk G f enthält keinen fv-weg. c) Es gibt einen Schnitt (Q, S) mit w(f) = c(q, S). Beweis von Satz 3: aus a) folgt b): Zum Zwecke des Widerspruchs, sei f ein maximaler Fluss und W ein fv-weg in G f. Dann kann f entlang von W vergrößert werden. Dies ist ein Widerspruch zur Maximalität von f. aus c) folgt a): Aus Lemma 2 folgt w(f) = c(q, S) Min-Cut Max-Flow, und somit gilt w(f) = Max-Flow. aus b) folgt c): Aussage b) sagt, dass G f keinen fv-weg hat Definiere Q = {v V Weg von q nach v in G f } und S = V \ Q. Da G f keinen fv-weg hat, folgt s S. Also ist (Q, S) ein wohldefinierter Schnitt mit q Q und s S. Für jede Kante (u, v) E mit u Q und v S gilt f(u, v) = c(u, v), weil sonst rest f (u, v) > 0 und somit v Q wäre. Für jede Kante (v, u) E mit v S und u Q gilt f(v, u) = 0, weil sonst rest f (u, v) > 0 und somit wiederum v Q wäre. Wir erinnern uns an die Definitionen von c(q, S) und f(q, S) und erhalten Aussage c), weil c(q, S) = c(u, v) = (u,v) E u Q,v S (u,v) E u Q,v S f(u, v) (v,u) E v S,u Q = f(q, S) Lemma 2 = w(f). f(v, u) Satz 3 7 8

5 Die Ford-Fulkerson-Methode terminiert, sobald kein fv-weg mehr vorhanden ist. Aus der Äquivalenz der Aussagen in Satz 3a) und b) folgt somit, dass der berechnete Fluss f maximal ist. Satz 4 (Korrektheit) Die Ford-Fulkerson-Methode berechnet einen maximalen Fluss. Wir haben angenommen, dass die Kantenkapazitäten natürliche Zahlen sind. Unter dieser Annahme ist auch der durch die Ford-Fulkerson-Methode berechnete Fluss ganzzahlig, d.h. auf jeder Kante wird der Wert des Flusses durch eine natürliche Zahl beschrieben. Korollar 5 (Ganzzahligkeit) Für jeden maximalen Fluss gibt es einen ganzzahligen Fluss mit gleichem Wert, und die Ford-Fulkerson-Methode berechnet einen derartigen ganzzahligen maximalen Fluss. Laufzeit der Ford-Fulkerson-Methode fv-wege können beispielsweise durch Tiefen- oder Breitensuche im Restnetzwerk gefunden werden. Damit dauert eine Iteration der Ford-Fulkerson-Methode nur Zeit O(m). Sei C = e E c(e). Da der Fluss in jeder Iteration um mindestens eine Einheit erhöht wird und C eine obere Schranke für den Wert des maximalen Flusses ist, können wir die Laufzeit der Ford-Fulkerson-Methode durch O(mC) abschätzen und erhalten damit eine pseudopolynomielle Laufzeitschranke. Im Allgemeinen hat die Ford-Fulkerson-Methode keine polynomielle Laufzeit. Im Folgenden werden wir jedoch sehen, dass die Berechnung der fv-wege mittels einer Breitensuche eine polynomielle Laufzeit garantiert. Eine Breitensuche findet kürzeste fv-wege, d.h. solche Wege zwischen q und s im Restnetzwerk, die eine minimale Anzahl Kanten enthalten. Satz 6 (Edmonds und Karp, 1969) Die Laufzeit der Ford- Fulkerson-Methode mit Breitensuche ist O(m 2 n) = O(n 5 ). Diese bemerkenswerte Eigenschaft ist nützlich für vielerlei Anwendungen (vgl. Übungen). Zum Beweis dieses Satzes müssen wir zeigen, dass der Algorithmus nach O(mn) Iterationen terminiert. 9 10

6 Lemma 7 Von Iteration zu Iteration verringert sich die Distanz von q zu einem Knoten v V im Restnetzwerk nicht. Beweis: Entlang des fv-weges können durch die Erhöhung des Flusses Kanten verschwinden und entstehen. Es gibt zwei Arten von Veränderungen. Für jede Kante (u, v) auf dem fv-weg verringert sich rest f (u, v). Kanten mit minimaler Restkapazität auf dem fv-weg, sogenannte Flaschenhalskanten, verschwinden aus dem Restnetzwerk, denn ihre Restkapazität wird auf 0 gesetzt. Gleichzeitig erhöht sich für jede Kante (u, v) auf dem fv-weg die entgegengesetzte Restkapazität rest f (v, u). Falls rest f (v, u) zuvor den Wert 0 hatte entsteht eine neue Kante im Restnetzwerk. Zum Zwecke des Beweises, verändern wir das Restnetzwerk in zwei Schritten und fügen zunächst nacheinander alle neuen Kanten hinzu und entfernen erst dann die Flaschenhalskanten. Hinzufügen von neuen Kanten: Kann das Hinzufügen der neuen Kanten Distanzen von der Quelle zu anderen Knoten verringern? Nein! Begründung: Eine Kante (v, u) wird nur dann eingefügt, wenn die Kante in umgekehrter Richtung also die Kante (u, v) auf einem flussvergrößerndem Weg liegt. Flussvergrößernde Wege sind aber kürzeste Weg im Restnetzwerk. Wenn u also die Distanz l von der Quelle hat, so hat v die Distanz l + 1 von der Quelle. Die neue Kante verbindet also einen Knoten mit Distanz l + 1 von der Quelle mit einem Knoten mit Distanz l. Um aber die Distanz von der Quelle zu irgendeinem Knoten zu verringern, müsste man eine gerichtetete Kante von einem Knoten mit Distanz k, für irgendein k 0, zu einem Knoten mit Distanz k + i, für irgendein i > 1, einfügen. Entfernen von Flaschenhalskanten: Offensichtlich können Kantenlöschungen keine Distanzen verringern. Lemma

7 Beweis von Satz 6: Wenn eine Kante (u, v) zur Flaschenhalskante wird, verschwindet sie aus dem Restnetzwerk. Sei l die Distanz von q zu u vor der Entfernung von (u, v). Die Distanz von q zu v ist somit l + 1. Die Kante (u, v) kann in einer späteren Iteration wieder in das Restnetzwerk eingefügt werden und zwar wenn der Fluss auf Kante (v, u) erhöht wird. Dazu muss (v, u) auf einem kürzesten Weg liegen. Da die Distanz von q zu v sich aber nicht verringert hat, muss die Distanz von q zu u dann mindestens l + 2 sein. Zwischen jedem Entfernen und Wiedereinfügen einer Kante (u, v) erhöht sich die Distanz von der Quelle q zum Knoten u also um den additiven Wert 2. Da die maximale Distanz n 1 ist, kann eine Kante also nicht öfter als 1 2n mal entfernt werden. In jeder Iteration wird mindestens eine Kante entfernt. Es gibt bis zu 2m Kanten im Restnetzwerk. Also ist die Anzahl der Iterationen höchstens 1 2n 2m = nm. Satz 6 Der Algorithmus von Dinitz, 1970 Idee: In jeder Iteration erhöhe den Fluss entlang von mehreren kürzesten fv-wegen. Zu einem gegebenen Restnetzwerk G f = (V, E f ) ist das Niveaunetzwerk G f = (V, E f ) wie folgt definiert. Für i N 0 sei G f V i = {v V die Distanz von q nach v in G f ist i}. enthält nur die Kanten von Niveau i zu Niveau i + 1, d.h, E f = {(u, v) E f i : u V i, v V i+1 }. Als Kapazitäten für diese Kanten verwenden wir die Restkapazitäten des Restnetzwerkes G f. G f kann aus G f durch Breitensuche in Zeit O(m) berechnet werden

8 Statt eines fv-weges im Restnetzwerk G f berechnet Dinitzs Algorithmus einen sogenannten Sperrfluss im Niveaunetzwerk G f. Dieser Begriff ist folgendermaßen definiert: Sei φ ein Fluss im Niveaunetzwerk G f. Eine Kante e E f rest f (e). heisst saturiert, wenn φ(e) = Dinitzs Maximaler-Fluss-Algorithmus 1 e E : f(e) = 0; 2 Solange es einen q-s Weg im Restnetzwerk gibt 3 berechne das Niveaunetzwerk G f ; 4 berechne einen Sperrfluss φ in G f ; 5 addiere φ zu f; 6 Ausgabe von f. φ heisst Sperrfluss wenn jeder q-s-weg in G f mindestens eine saturierte Kante enthält. Intuitiv ist ein Sperrfluss also ein Fluss im Niveaunetzwerk, der alle Wege verstopft. (In den Übungen zeigen wir, dass der Sperrfluss nicht notwendigerweise ein maximaler Fluss im Niveaunetzwerk ist.) Beim Addieren der Flüsse in Schritt 5 ist zu beachten, dass Flüsse auf entgegengesetzten Kanten subtrahiert werden müssen. Die Korrektheit des Algorithmus folgt mittels des Min- Cut=Max-Flow -Theorems analog zur Ford-Fulkerson- Methode

9 Lemma 8 Dinitzs Algorithmus terminiert nach spätestens n 1 Sperrflussberechnungen. Beweis: Behauptung: Die Länge des kürzesten Weges im Restnetzwerk wächst von Iteration zu Iteration um mindestens eine Kante. Sei l die Entfernung zwischen q und s zu Beginn der Iteration. Alle ursprünglichen Wege der Länge l werden durch den Sperrfluss zerstört. Aber es können neue Wege durch neue erzeugte Kanten entstehen. Neue Kanten laufen jedoch entgegengesetzt zum Sperrfluss, also führen sie von Niveau i zu Niveau i 1 für irgendein i 1. Wege über solche Kanten haben Länge mindestens l + 2. Somit gilt die Behauptung und der Satz folgt, weil die Länge eines q-s-weges mindestens 1 und höchstens n 1 ist. Wir müssen uns nun nur noch überlegen, wie man eine Sperrflussberechnung effizient durchführen kann. Dazu greifen wir auf ein Verfahren zurück, das ein wenig effizienter ist als das ursprünglich von Dinitz vorgeschlagene Verfahren zur Sperrflussberechnung. Wir verwenden zur Sperrflussberechung die sogenannte Forward-Backward-Propagation, die von Malhotra, Kumar und Maheshwari im Jahr 1978 vorgestellt wurde. Dieses Verfahren berechnet einen Sperrfluss in Zeit O(n 2 ), so dass sich insgesamt eine Laufzeit von O(n 3 ) ergibt. Gegeben sei ein Niveaunetzwerk G f mit Restkapazitäten rest f (e). Wir beschreiben nun einen Algorithmus zur Berechnung eines Sperrflusses φ auf G f. Für einen Knoten v V bezeichne A(v) = {(v, u) E f } die von v ausgehenden Kanten, E(v) = {(u, v) E f } die in v eingehenden Kanten. Wir starten mit φ = 0 und erhöhen den Fluss φ nach und nach durch sogenannte Forward-Backward-Propagationen bis wir einen Sperrfluss im Niveaunetzwerk berechnet haben

10 Forward-Propagation: Eine Propagationsphase besteht aus einer Forward- und einer Backward-Propagation. Sei φ der berechnete Fluss zu Beginn einer solchen Propagationsphase. Das Potential einer Kante e ist definiert als pot(e) = rest f (e) φ(e), entspricht also der noch ungenutzten Restkapazität der Kante e im Niveaunetzwerk. Das Potential eines Knotens v ist definiert als pot(v) = min pot(e), pot(e). e E(v) e A(v) Sei v der Knoten mit kleinstem, positivem Potential. Sei i das Niveau von v. Wir erzeugen pot(v ) Einheiten zusätzlichen Flusses am Knoten v. Dadurch erhalten wir einen Überschuss von pot(v ) Flusseinheiten am Knoten v. Diesen Überschuss schieben wir vorwärts entlang der Kanten in A(v ). Jetzt erhalten wir einen Überschuss auf einigen der Knoten auf Niveau i + 1. Diesen Überschuss verschieben wir wiederum zu Knoten auf Niveau i + 2, usw. bis wir die Senke erreichen. Da v der Knoten mit kleinstem Potential war, ist die Entsorgung des Überschussflusses sichergestellt, weil jeder Knoten genügend Potential hat, um den Überschuss weiterzuleiten. Backward Propagation: analog ausgehend vom selben Knoten v wird der Überschuss zur Quelle propagiert

11 Forward-Propagation im Detail: Wir benutzen eine FIFO-Queue Q zur Verwaltung der Knoten mit positivem Überschuss. Die Menge A(v) der von v ausgehenden Kanten im Niveaunetzwerk wird als Liste verwaltet. next(a(v)) bezeichnet jeweils die nächste bisher noch nicht betrachtete Kante. Ziel ist die Berechnung eines Flusses ψ mit Wert pot(v ) vom Knoten v zur Senke s. Algorithmus Forward-Propagation(v ): 01 setze U(v ) = pot(v ); /* initialer Überschuss */ 02 für alle v v setze U(v) = 0; 03 füge v in Q ein; 04 while Q do 05 nimm Element aus Q und nenne es v; 06 while U(v) > 0 do 07 sei e = (v, u) = next(a(v)); 08 setze ψ(e) = min{pot(e), U(v)}; 09 setze U(v) = U(v) ψ(e); 10 setze U(u) = U(u) + ψ(e); 11 falls u s und u Q füge u in Q ein; 12 Ausgabe von ψ. Die Propagationsphasen werden solange wiederholt bis ein Sperrfluss berechnet ist. Die Kanten- und Knotenpotentiale werden dabei nach jeder Propagationsphase angepasst. Knoten und Kanten mit Potential 0 werden als saturiert bezeichnet und werden in den kommenden Propagationsphasen nicht mehr betrachtet, also aus dem Niveaunetzwerk entfernt. Die Sperrflussberechnung terminiert, sobald alle Knoten entfernt sind. Beobachtung 9 Nach spätestens n 1 Propagationsphasen ist ein Sperrfluss berechnet, weil in jeder Phase mindestens ein Knoten saturiert wird. Der Fluss ψ wird dann zum Fluss φ addiert

12 Lemma 10 Eine Forward-Propagation kann in Zeit O(n + l) durchgeführt werden, wobei l die Anzahl der neu saturierten Kanten ist. (Backward-Propagation analog.) Beweis: Die Verwendung der FIFO-Queue Q garantiert die folgenden Eigenschaften. 1) Die Niveaus werden strikt nacheinander abgearbeitet. 2) Dadurch wird jeder Knoten höchstens einmal aus der Queue Q entnommen. 3) Für jeden entnommenen Knoten werden alle bis auf maximal eine der betrachteten Kanten saturiert. Pro Knoten v gibt es somit maximal eine Kante in A(v), die betrachtet aber nicht saturiert wird. Die Laufzeitkosten werden auf die Kanten umgelegt: Für jede betrachtete Kante entstehen Kosten O(1). Die Anzahl betrachteter, saturierter Kanten ist l. Die Anzahl betrachteter, nicht saturierter Kanten ist höchstens n. Satz 11 Durch Forward-Backward-Propagation kann man einen Sperrfluss in Zeit O(m + n 2 ) = O(n 2 ) berechnen. Dadurch erhält man einen Algorithmus zur Berechnung eines maximalen Flusses mit Laufzeit O(n 3 ). Beweis von Satz 11 Beobachtung 9 liefert, dass nur höchstens n 1 Propagationsphasen zur Sperrflussberechnung nötig sind. Sei l i die Anzahl der in der i-ten Propagationsphase gelöschten Kanten, 1 i n 1. Dann ergibt sich aus Lemma 10 die folgende Laufzeitabschätzung für die Sperrflussberechnung: ( ) n 1 n 1 O(n + l i ) = O n 2 + l i = O(n 2 + m). i=1 i=1 Da n 1 Sperrflussberechnungen einen maximalen Fluss liefern, folgt der Satz. Damit sind die Gesamtkosten O(n + l)

13 Das Min-Cost-Flow-Problem Beim Min-Cost-Flow-Problem ist jeder Kante e E im Flussnetzwerk neben der Kapazitätsfunktion c : E N zusätzlich eine Kostenfunktion l : E Z zugeordnet. Das Netzwerk darf keine Kreise mit negativer Gewichtssumme enthalten. Sei f ein Fluss in G. Die Kosten von f sind definiert als l(f) = e E l(e) f(e). Wir greifen unserer Analyse vorweg und merken an, dass wie schon beim Max-Flow-Problem für jede Instanz des Min-Cost-Flow-Problems eine ganzzahlige optimale Lösung existiert und unsere Algorithmen ohne weiteres Zutun eine solche Lösung berechnen werden. Für W = 1 entspricht das Min-Cost-Flow-Problem wegen der Ganzzahligkeit dem Kürzeste-Wege-Problem. Gegeben sei ein Flussnetzwerk G = (V, E, q, s, c, l) und eine Zahl W N, wobei W nicht größer als der maximale Fluss in G ist. Wir suchen einen kostenminimaler Fluss f mit Wert W, d.h. es soll gelten w(f ) = W und Im Falle l(e) = 0, für alle e E, ist ein beliebiger Fluss mit Wert W gesucht. Dieses Problem kann ohne nennenswerten Zeitverlust auf das Max-Flow-Problem reduziert werden. (Wie?) l(f ) = min{l(f) f ist Fluss in G mit w(f) = W }

14 Der Cycle-Canceling-Algorithmus Wir beschreiben einen Algorithmus für das Min-Cost-Flow- Problem. G f = (V, E f ) bezeichne wie schon zuvor das Restnetzwerk bezüglich eines Flusses f. Die Kosten für eine Kante (u, v) E f \ E seien durch l((u, v)) = l((v, u)) definiert. Eine Zirkulation f in G f ist eine Funktion f : E f R + 0, die die Flusserhaltung auf jedem Knoten aus V einhält und die Restkapazitäten nicht übersteigt. Somit entspricht eine Zirkulation einem Fluss, der im Gegensatz zu einem herkömmlichen Fluss auch auf Quelle und Senke die Flusserhaltung einhält. Analog zur Definition bei herkömmlichen Flüssen, sei der Wert der Zirkulation über einen Schnitt (Q, S) definiert als f (Q, S) = f (u, v) f (v, u). (u,v) E u Q,v S (v,u) E v S,u Q Der Wert der Zirkulation ist ebenfalls analog definiert als w(f ) = f(q, V \ {q}). Aufgrund der Flusserhaltung an der Quelle gilt w(f ) = 0. Per Induktion folgt: Für jeden Schnitt (Q, S) gilt f (Q, S) = w(f ) = 0. Eine Zirkulation, die nur entlang eines einfachen Kreises im Restnetzwerk fließt, wird als Kreisfluss bezeichnet. Für einen Kreis K in G f, sei f (K) der größtmögliche Kreisfluss auf K, der die Restkapazitäten nicht überschreitet. Wir sagen ein Kreis K hat negative Kosten, wenn gilt e K l(e) < 0. Cycle-Canceling-Algorithmus: 1 Berechne einen beliebigen Fluss f mit Wert W ; 2 Solange G f einen Kreis K mit neg. Kosten enthält 3 setze f := f + f (K); 4 Ausgabe von f. Da f (K) eine Zirkulation ist, erhöht sich durch die Addition von f (K) der Wert des Flusses nicht, denn w(f + f (K)) = w(f) + w(f (K)) = w(f) = W. Andererseits verringern sich aber die Kosten, denn es gilt l(f + f (K)) = l(f) + l(f (K)) < l(f), da l(f (K)) = f (a) e K l(e) < 0, wobei a eine beliebige Kante aus K bezeichnet

15 Lemma 12 Wenn f nicht kostenminimal ist, dann gibt es einen Kreis K mit negativen Kosten in G f. Beweis: Übungsaufgabe: Zeige, dass jede Zirkulation f, die M viele Kanten benutzt, in höchstens M viele Kreisflüsse zerlegt werden kann, d.h. f besteht aus der Addition von höchstens M Kreisflüssen. Sei f ein Fluss, der nicht kostenminimal ist, und sei f ein kostenminimimaler Fluss, d.h. l(f ) < l(f). Der Fluss f f erfüllt die Flusserhaltung auf allen Knoten, ist also eine Zirkulation auf den maximal 2m Kanten des Restnetzwerkes G f und kann somit in M 2m viele Kreisflüsse f 1,...,f M zerlegt werden. Es gilt f f = f f M und somit l(f ) l(f) = l(f 1 ) + + l(f M ). Aus l(f ) l(f) < 0 folgt nun l(f 1 ) + + l(f M ) < 0. Wenn nun keiner der diesen M Kreisflüssen zugrunde liegenden Kreise negative Kosten hätte, so wäre aber l(f 1 ) + + l(f M ) 0. Also gibt es mindestens einen Kreis in G f mit negativen Kosten. Aus dem Lemma und den vorhergehenden Überlegungen folgt Satz 13 Ein Fluss f ist kostenminimal genau dann, wenn G f keinen Kreis mit negativen Kosten enthält. Damit ist die Korrektheit des Cycle-Canceling-Algorithmus nachgewiesen. Die Laufzeit des Cycle-Canceling-Algorithmus lässt sich im Allgemeinen wieder nur pseudopolynomiell in C, der Summe der Kapazitäten, beschränken. Wie schon bei der Ford-Fulkerson-Methode kann man aber eine polynomielle Laufzeitschranke erhalten, wenn man die aufzuaddierenden Flüsse in diesem Fall die Kreise mit negativen Kosten geschickt wählt

16 Der Min-Mean-Cycle-Canceling-Algorithmus Der Min-Mean-Cycle-Canceling-Algorithmus wählt in jeder Iteration einen Kreis K aus G f, der die durchschnittlichen Kantenkosten (mean cost) minimiert. l(k) = l(k) K = e K l(e) K K wird als Min-Mean-Cycle bezeichnet. Sei µ(f) = l(k). Beachte, wenn K ein Kreis mit negativen Kosten ist, so ist l(k) negativ und somit µ(f) positiv. Für die Laufzeitanalyse zerlegen wir die Folge der Iterationen des Algorithmus in Phasen. Sei f der Fluss zu Beginn einer Phase. Die Phase endet nach der ersten Iteration in der ein Fluss g mit µ(g) (1 1 n )µ(f) oder µ(g) 0 berechnet wird. Im letzteren Fall enthält G g keinen Kreis mit negativen Kosten und die Berechnung terminiert. Ansonsten folgt die nächste Phase. 31 Anzahl der Phasen: Sei T die Anzahl der Phasen. Sei µ 0 der Wert von µ zu Beginn der ersten Phase und, für 1 t T, sei µ t der Wert von µ zu Ende der t-ten Phase. Für 1 t T 1 folgt aus der Definition der Phasen ( µ t 1 1 ) µ t 1 µ t 1. (1) n e1/n Die letzte Abschätzung erfolgt dabei aus der allgemeingültigen Ungleichung 1 x e x mit x = 1 n. Zu Beginn des Algorithmus ist µ durch den maximalen Absolutbetrag aller Kantenkosten, das wir mit L bezeichnen, nach oben beschränkt. Es gilt somit µ 0 L. (2) Der Algorithmus terminiert, wenn zum Ende einer Phase die Bedingung µ 0 erfüllt ist. Am Ende von Phase T 1 gilt somit noch µ > 0. Aufgrund der Ganzzahligkeit der Kosten kann µ nicht im Interval (0, 1 n ) liegen. (Warum?) Am Ende von Phase T 1 gilt somit µ 1 n, d.h. µ T 1 1 n. (3) Aus den Ungleichungen (1), (2) und (3) folgt T 1 log e 1/n(nL) = ln(nl) ln(e 1/n ) = n ln(nl), und somit terminiert der Algorithmus nach T n ln(nl) + 1 Phasen. 32

17 Anzahl der Iterationen je Phase: Sei f der initiale Fluss zu Beginn einer Phase. Wir zeigen, dass der Algorithmus nach m Iterationen terminiert oder nach spätestens m 1 Iterationen wird ein Fluss g mit µ(g) (1 1 n )µ(f) berechnet. Eine Phase dauert somit höchstens m Iterationen. Wir treffen zunächst die folgende vereinfachende Annahme. Annahme 14 Für alle Kanten e G f gelte l(e) µ(f). Wir unterscheiden Iterationen vom Typ 1 in denen der Min- Mean-Cycle jeweils nur Kanten mit negativen Kosten enthält und Iterationen vom Typ 2 in denen der Min-Mean-Cycle mindestens eine Kante mit positiven Kosten enthält. In jeder Typ-1-Iteration wird mindestens eine Kante mit negativen Kosten saturiert und aus dem Restnetzwerk entfernt. Ferner verlaufen alle möglicherweise neu entstehenden Kanten entgegengesetzt zu den Kanten mit negativen Kosten und haben somit selbst positive Kosten. Spätestens nach m konsekutiven Typ-1-Iterationen terminiert der Algorithmus somit, weil das Restnetzwerk dann nur noch Kreise mit positiven Kosten enthält. Wenn die Phase länger als m Iterationen dauert, folgt nach spätestens m 1 Typ-1-Iterationen eine Typ-2-Iteration. Sei g der Fluss zu Beginn der ersten Typ-2-Iteration. Da die Typ-1-Iterationen keine Kanten mit negativen Kosten hinzugefügt haben, gilt weiterhin unsere Annahme, d.h. l(e) µ(f) bzw. l(e) µ(f) für alle Kanten e G g. Sei K der Min-Mean-Cycle in g und H K die Menge der Kanten mit negativen Kosten aus K. Es gilt µ(g) = e K l(e) K e H l(e) K H µ(f) K weibei die letzte Abschätzung aus Annahme 14 folgt. Aus H K 1 folgt nun H / K 1 1/ K 1 1/n und somit µ(g) (1 1 n )µ(f). Die Phase endet also sobald der Fluss g berechnet ist und damit noch vor der ersten Typ-2-Iteration! Wenn Annahme 14 zu Beginn einer Phase hält, so gibt es also keine Typ-2-Iterationen in der Phase und die Phase endet nach spätestens m vielen Typ-1-Iterationen., 33 34

18 Annahme 14 sieht sehr restriktiv aus, insbesondere vor dem Hintergrund der vorhergehenden Analyse. Wir zeigen aber nun, dass wir diese Annahme erreichen können, indem wir die Kostenfunktion l auf geeignete Art und Weise verändern, ohne dabei den Ablauf des Algorithmus zu beeinflussen. Sei p : V Z eine beliebige Funktion, die jedem Knoten einen Wert zuweist, ein sogenanntes Potential. Wir setzen l (e) = l(e) p(v) + p(u) für jede Kante e = (u, v). Beachte, für ē = (v, u) gilt l (ē) = l(ē) p(u) + p(v) = l(e) p(u) + p(v) = l (e). Wir beobachten, dass die Potentiale die Kostensumme auf Kreisen nicht beeinflussen, da jeder Potentialwert einmal mit positivem und einmal mit negativem Vorzeichen aufsummiert wird, d.h. für jeden Kreis K gilt l(k) = l (K). Die Potentiale haben somit keine Auswirkungen auf den Ablauf des Algorithmus. Um Annahme 14 in der vorhergenden Analyse zu erreichen, können wir also beliebige Potentiale verwenden, um die Kostenfunktion zu Beginn einer Phase geeignet zu manipulieren. Das folgende Lemma besagt, dass es tatsächlich Potentiale gibt, die es erlauben, Annahme 14 zu erreichen. 35 Lemma 15 Im Restnetzwerk G f = (V, E f ) gelte l(k) µ für jeden Kreis K. Dann gibt es eine Funktion p : V Z mit der Eigenschaft l (e) = l(e) p(v)+p(u) µ für jede Kante e E f. Beweis: Für jede Kante e E f definiere ein Kantengewicht w(e) = l(e) + µ. Für jeden Knoten v V definiere nun p(v) als die Länge (= Gewicht) eines kürzesten Kantenzuges (d.h. Pfades mit beliebigen Wiederholungen von Knoten und Kanten) in G f, der von einem beliebigen Knoten zum Knoten v in G f führt. Dieser Wert ist wohldefiniert, weil keine Kreise mit negativem Gewicht in G f existieren, denn aus l(k) µ folgt w(k) 0 für jeden Kreis K. Die Definition der Potentiale garantiert uns die folgende Eigenschaft: Für jede Kante e = (u, v) gilt p(v) p(u) + w(u, v), denn der kürzeste Weg, der in v endet, kann nicht länger als der kürzeste Weg sein, der zu u führt und über die Kante (u, v) fortgesetzt wird. Es folgt l (e) = l(e) p(v) + p(u) = w(e) p(v) + p(u) µ µ. 36

19 Beweis von Lemma 16 Laufzeit pro Iteration: Wir zeigen nun wie man einen Min-Mean-Cycle im Restnetzwerk in Zeit O(nm) berechnen kann (Karp, 1978). Für k = 0, 1,...,n und v V sei d k (v) die Länge (=Kosten) eines kürzesten Kantenzuges mit genau k Kanten, der bei v endet. Es gilt d 0 (v) = 0 und d k+1 (v) = min (d k(u) + l(e)). e=(u,v) E Alle d k (v)-werte können somit durch dynamische Programmieren in Zeit O(nm) berechnet werden. Lemma 16 Der Wert l(k) des Min-Mean-Cycles in G ist ( ) n 1 dn (v) d j (v) α = min max v V j=0 n j Sei K ein Min-Mean-Cycle. Wenn wir alle Kantenkosten um den gleichen additiven Betrag erhöhen, so ist K unverändert ein Min-Mean-Cycle aber sein Wert würde sich um erhöhen. Beachte, dass auch α sich genau um erhöhen würde. (Warum?) Deshalb können wir die Kantenkosten um einen beliebigen additiven Betrag verschieben und somit o.b.d.a. annehmen, dass l(k) = 0 gilt. Unter dieser Annahme müssen wir zeigen, es gilt auch α = 0. Betrachte dazu einen beliebigen Knoten v. Sei P ein Kantenzug aus n Kanten, der bei v endet und die Länge d n (v) hat. Weil das Netzwerk nur n Knoten enthält, muss P einen Kreis enthalten. Sei C dieser Kreis und P der Kantenzug, den wir enthalten, wenn wir C aus P entfernen. Sei j die Anzahl Kanten in P und n j die Anzahl Kanten in C. Es gilt nun d n (v) = l(p) = l(c) + l(p ) l(p ) d j (v), da l(c) 0. Somit existiert für jeden Knoten v ein j {1,...,n 1} mit der Eigenschaft d n (v) d j (v). Hieraus folgt α

20 Tafelbild: Wir müssen nun also nur noch zeigen, dass auch α 0 gilt. Dazu werden wir zeigen, dass es einen Knoten w mit der Eigenschaft d n (w) d j (w) für alle j {0,...,n 1} gibt. Zu diesem Zweck betrachte die folgende Situation: Sei v ein Knoten des Min-Mean-Cycle K. Sei P ein kürzester unter allen Kantenzügen beliebiger Länge, die am Knoten v enden. O.B.d.A. enthält P keinen Kreis, da es keine Kreise negativer Länge gibt. Sei p < n die Anzahl Kanten in P. Sei w derjenige Knoten, den wir erreichen, wenn wir K von v ausgehend entlang von n p Kanten folgen. Diesen Kantenzug bezeichnen wir mit Q. Sei R der Weg von w zu v entlang von K, und sei r die Anzahl Kanten dieses Weges. Sei nun j {0,...,n 1} beliebig gewählt und S ein Kantenzug minimaler Länge aus j Kanten, der am Knoten w endet. Aus der Definition der Kantenzüge folgt und Es folgt d n (w) l(p) + l(q) = d p (v) + l(q), d p (v) d j+r (v) d j (w) + l(r). d n (w) d j (w) + l(r) + l(q). Nun hat aber der Kantenzug Q R die Länge 0, da er K (möglicherweise mehrfach) umläuft und l(k) = 0 gilt. Somit gilt, wie gefordert, d n (w) d j (w)

21 Gesamtlaufzeit: Der Algorihmus zur Bestimmung des Min-Mean-Cycles arbeitet nun folgendermaßen: Berechne die d k (v)-werte und bestimme α, also den Wert des Min-Mean-Cycles. Erhöhe alle Kantenkosten um den additiven Term α, so dass der Wert des Min-Mean-Cycles nun gleich 0 ist. Transformiere die Kantenkosten wie in Lemma 15 beschrieben. Die benötigten Potentiale lassen sich aus den d k (v)-werten bestimmen. Nun sind alle Kantenkosten nicht-negativ und alle Kanten auf dem Min-Mean-Cycle haben somit den Wert 0. Streiche alle Kanten mit Kosten größer als 0 aus dem Graphen und suche den Min-Mean-Cycle mittels Tiefensuche unter den verbleibenden Kanten. Der Algorithmus benötigt höchstens n log(nl) + 1 Phasen, die jeweils höchstens m Iterationen benötigen, die jeweils Laufzeit O(mn) haben. L bezeichnet dabei das Maximum der Absolutwerte der Kantenkosten. Es folgt Satz 17 Der Mean-Cycle-Canceling-Algorithmus hat eine Laufzeit von O(m 2 n 2 log(nl)). Diese Abschätzung der Laufzeit ist zwar polynomiell in der Eingabelänge beschränkt, aber man spricht von einer schwach polynomiellen Schranke, da die Größe der Eingabezahlen, wenngleich nur logarithmisch, in die Abschätzung eingeht. Tatsächlich lässt sich auch eine stark polynomielle Laufzeitschranke herleiten. Satz 18 Der Mean-Cycle-Canceling-Algorithmus hat eine Laufzeit von O(m 3 n 2 log n). Auf die Präsentation des Beweises dieses Satzes verzichten wir an dieser Stelle

Kapitel 1: Flussalgorithmen

Kapitel 1: Flussalgorithmen Netzwerke und Flüsse Ein Flussnetzwerk ist ein gerichteter Graph G = (V, E, c) mit zwei ausgewählten Knoten q, s V und einer Kapazitätsfunktion c : E N 0. Die Quelle q hat Eingangsgrad 0 und die Senke

Mehr

Effiziente Algorithmen (SS2014)

Effiziente Algorithmen (SS2014) Effiziente Algorithmen (SS204) Kapitel 2 Flüsse Walter Unger Lehrstuhl für Informatik 26.06.204 09: (2:2) Walter Unger 7..205 7:56 SS204 Z x Inhalt I Dinitz mit Propagation Einleitung Algorithmus und

Mehr

Wiederholung zu Flüssen

Wiederholung zu Flüssen Universität Konstanz Methoden der Netzwerkanalyse Fachbereich Informatik & Informationswissenschaft SS 2008 Prof. Dr. Ulrik Brandes / Melanie Badent Wiederholung zu Flüssen Wir untersuchen Flüsse in Netzwerken:

Mehr

Algorithmen und Datenstrukturen Kapitel 10

Algorithmen und Datenstrukturen Kapitel 10 Algorithmen und Datenstrukturen Kapitel 10 Flüsse Frank Heitmann heitmann@informatik.uni-hamburg.de 6. Januar 2016 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/8 Flüsse Graphen Grundlagen Definition

Mehr

Inhalt. 1. Flußprobleme. 2. Matching. 3. Lineares Programmieren. 4. Ganzzahliges Programmieren. 5. NP-Vollständigkeit. 6. Approximationsalgorithmen

Inhalt. 1. Flußprobleme. 2. Matching. 3. Lineares Programmieren. 4. Ganzzahliges Programmieren. 5. NP-Vollständigkeit. 6. Approximationsalgorithmen Effiziente Algorithmen Einführung 1 Inhalt 1. Flußprobleme 2. Matching. Lineares Programmieren 4. Ganzzahliges Programmieren 5. NP-Vollständigkeit 6. Approximationsalgorithmen 7. Backtracking und Branch-and-Bound

Mehr

Algorithmen zur Berechnung von Matchings

Algorithmen zur Berechnung von Matchings Algorithmen zur Berechnung von Matchings Berthold Vöcking 1 Einleitung Matchingprobleme sind Zuordnungsprobleme. Es geht darum z.b. Studierenden Plätze in Seminaren zuzuordnen, Bewerber auf freie Stellen

Mehr

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4: Flüsse

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4: Flüsse Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4: Flüsse Dipl-Math. Wolfgang Kinzner 3.4.2012 Kapitel 4: Flüsse Flüsse Netzwerk, Fluss, s,t-schnitt, Kapazität MaxFlow-MinCut-Theorem Restnetzwerk

Mehr

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

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung Gliederung der Vorlesung. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Minimale spannende Bäume 5. Färbungen und Cliquen 6. Traveling Salesman Problem 7. Flüsse in Netzwerken

Mehr

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

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme 10 Matching-Probleme 10.1 Definition von Matching-Probleme Definition 21 [2-dimensionales Matching] Sei G = (V, E) ein ungerichteter Graph und E E. E ist ein Matching, wenn für alle Kantenpaare e 1, e

Mehr

Algorithmen zur Berechnung von Matchings

Algorithmen zur Berechnung von Matchings Algorithmen zur Berechnung von Matchings Berthold Vöcking 10. Oktober 2006 1 Einleitung Matchingprobleme sind Zuordnungsprobleme. Es geht darum z.b. Studierenden Plätze in Seminaren zuzuordnen, Bewerber

Mehr

Flüsse, Schnitte, bipartite Graphen

Flüsse, Schnitte, bipartite Graphen Flüsse, chnitte, bipartite Graphen Matthias Hoffmann 5.5.009 Matthias Hoffmann Flüsse, chnitte, bipartite Graphen 5.5.009 / 48 Übersicht Einführung Beispiel Definitionen Ford-Fulkerson-Methode Beispiel

Mehr

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

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung 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

Mehr

KAPITEL 4 FLÜSSE IN NETZWERKEN

KAPITEL 4 FLÜSSE IN NETZWERKEN KAPITEL 4 FLÜSSE IN NETZWERKEN F. VALLENTIN, A. GUNDERT 1. Das Max-Flow-Min-Cut Theorem Es sei D = (V, A) ein gerichteter Graph, s, t V zwei Knoten. Wir nennen s Quelle und t Senke. Definition 1.1. Eine

Mehr

Graphentheorie. Maximale Flüsse. Maximale Flüsse. Maximale Flüsse. Rainer Schrader. 31. Oktober Gliederung. sei G = (V, A) ein gerichteter Graph

Graphentheorie. Maximale Flüsse. Maximale Flüsse. Maximale Flüsse. Rainer Schrader. 31. Oktober Gliederung. sei G = (V, A) ein gerichteter Graph Graphentheorie Rainer Schrader Zentrum ür Angewandte Inormatik Köln 31. Oktober 2007 1 / 30 2 / 30 Gliederung maximale Flüsse Schnitte Edmonds-Karp-Variante sei G = (V, A) ein gerichteter Graph sei c eine

Mehr

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

Laufzeit. Finden eines Matchings maximaler Kardinalität dauert nur O( E min{ V 1, V 2 }) mit der Ford Fulkerson Methode. Effiziente Algorithmen Flußprobleme 81 Laufzeit Finden eines Matchings maximaler Kardinalität dauert nur O( E min{ V 1, V 2 }) mit der Ford Fulkerson Methode. Der Fluß ist höchstens f = min{ V 1, V 2 }.

Mehr

6. Flüsse und Zuordnungen

6. Flüsse und Zuordnungen 6. Flüsse und Zuordnungen Flußnetzwerke 6. Flüsse und Zuordnungen In diesem Kapitel werden Bewertungen von Kanten als maximale Kapazitäten interpretiert, die über diese Kante pro Zeiteinheit transportiert

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester

Mehr

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

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung Gliederung der Vorlesung 1. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Minimale spannende Bäume 5. Färbungen und Cliquen 6. Traveling Salesman Problem 7. Flüsse in Netzwerken

Mehr

Flüsse in Netzwerken

Flüsse in Netzwerken Proseminar Theoretische Informatik, Prof. Wolfgang Mulzer, SS 17 Flüsse in Netzwerken Zusammenfassung Gesa Behrends 24.06.2017 1 Einleitung Unterschiedliche technische Phänomene wie der Flüssigkeitsdurchfluss

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Dr. Hanjo Täubig Lehrstuhl für Eziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester 2007/08

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14

Datenstrukturen & Algorithmen Lösungen zu Blatt 11 FS 14 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 14. Mai

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 13: Flüsse und Zuordnungen Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 9. Juni 2017 DURCHSATZ D(e) ist die maximale Flussmenge,

Mehr

VU Algorithmen auf Graphen Übungsblatt 2 - Aufgabe 2 Transformation einer MaxFlow- in eine MinCost Circulation Instanz

VU Algorithmen auf Graphen Übungsblatt 2 - Aufgabe 2 Transformation einer MaxFlow- in eine MinCost Circulation Instanz VU Algorithmen auf Graphen Übungsblatt 2 - Aufgabe 2 Transformation einer MaxFlow- in eine MinCost Circulation Instanz Gruppe A: Bernhard Stader, Georg Ziegler, Andreas Zugaj 10. November 2004 Inhaltsverzeichnis

Mehr

6 Flüsse und Matchings

6 Flüsse und Matchings 6. Flüsse in Netzwerken Flußnetzwerke 6 Flüsse und Matchings In diesem Kapitel werden Bewertungen von Kanten als maximale Kapazitäten interpretiert, die über diese Kante pro Zeiteinheit transportiert werden

Mehr

Mathematische Modelle in den Naturwissenschaften Proseminar

Mathematische Modelle in den Naturwissenschaften Proseminar Mathematische Modelle in den Naturwissenschaften Proseminar Johannes Kepler Universität Linz Technische Mathematik Der Algorithmus von Ford und Fulkerson Ausgearbeitet von Julia Eder, Markus Eslitzbichler,

Mehr

Effiziente Algorithmen I

Effiziente Algorithmen I 9. Präsenzaufgabenblatt, WiSe 2013/14 Übungstunden am 13.01. & 15.01.2014 Aufgabe Q Gegeben sei ein Fluss-Netzwerk mit Digraph D = (V, A), Knotenkapazitäten c(u, v) 0, Quelle s und Senke t. Kann sich der

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Kürzeste Wege Maike Buchin 4. und 6.7.2017 Einführung Motivation: Bestimmung von kürzesten Wegen ist in vielen Anwendungen, z.b. Routenplanung, ein wichtiges Problem. Allgemeine

Mehr

Graphentheorie. Kürzeste Wege. Kürzeste Wege. Kürzeste Wege. Rainer Schrader. 25. Oktober 2007

Graphentheorie. Kürzeste Wege. Kürzeste Wege. Kürzeste Wege. Rainer Schrader. 25. Oktober 2007 Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 25. Oktober 2007 1 / 20 2 / 20 Wir werden Optimierungsprobleme vom folgenden Typ betrachten: gegeben eine Menge X und eine Funktion

Mehr

Anwendungen von Netzwerkfluss. Wojciech Polcwiartek Institut für Informatik FU Berlin

Anwendungen von Netzwerkfluss. Wojciech Polcwiartek Institut für Informatik FU Berlin Anwendungen von Netzwerkfluss Wojciech Polcwiartek Institut für Informatik FU Berlin 13. 01. 2009 Gliederung Einführung Netzwerk, Fluss und Schnitt Max-Flow-Min-Cut Theorem Algorithmen zum Bestimmen vom

Mehr

Effiziente Algorithmen Übung 2 Lösungen

Effiziente Algorithmen Übung 2 Lösungen TU Ilmenau, Fakultät für Informatik und Automatisierung FG Komplexitätstheorie und Effiziente Algorithmen Univ.-Prof. Dr. M. Dietzfelbinger, M. Sc. Stefan Walzer https://www.tu-ilmenau.de/iti/lehre/lehre-ws-016017/ea/

Mehr

Effiziente Algorithmen und Datenstrukturen II

Effiziente Algorithmen und Datenstrukturen II Effiziente Algorithmen und Datenstrukturen II Prof. Dr. Christian Scheideler Technische Universität München, 25. April 2006 1 Algorithmen für maximale Flüsse 1.1 Flüsse Ein Flussnetzwerk G = (V, E) ist

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Graphenalgorithmen Maximaler Fluss Einleitung Flussnetzwerke Ford-Fulkerson Fulkerson Methode Maximales bipartites Matching

Mehr

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

Flüsse und Zuordnungen. Kapitel 6. Peter Becker (H-BRS) Graphentheorie Wintersemester 2018/ / 296 Kapitel 6 Peter Becker (H-BRS) Graphentheorie Wintersemester 2018/19 227 / 296 Inhalt Inhalt 6 Flussnetzwerke Berechnung maximaler Flüsse Max-Flow-Min-Cut Matchings Peter Becker (H-BRS) Graphentheorie

Mehr

Flüsse, Schnitte, Bipartite Graphen

Flüsse, Schnitte, Bipartite Graphen Flüsse, Schnitte, Bipartite Graphen Sebastian Hahn 4. Juni 2013 Sebastian Hahn Flüsse, Schnitte, Bipartite Graphen 4. Juni 2013 1 / 48 Überblick Flussnetzwerke Ford-Fulkerson-Methode Edmonds-Karp-Strategie

Mehr

Seminar über aktuelle Forschungsthemen in der Algorithmik, Dozent Prof. Dr. Alt;

Seminar über aktuelle Forschungsthemen in der Algorithmik, Dozent Prof. Dr. Alt; Seminar über aktuelle Forschungsthemen in der Algorithmik, Dozent Prof. Dr. Alt Referent Matthias Rost 1 Einleitung Definitionen Maximaler Dynamischer Fluss Algorithmus von Ford-Fulkerson Techniken zur

Mehr

Minimum Cost Flow Grundlagen und erste Algorithmen. Philip Ralph Weber

Minimum Cost Flow Grundlagen und erste Algorithmen. Philip Ralph Weber Minimum Cost Flow Grundlagen und erste Algorithmen Philip Ralph Weber..5 Grundlagen. Voraussetzungen Sei G=(V,E) ein gerichteter Graph. c ij bezeichne die Kosten für der Kante (i, j) E C := max (i,j) E

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 7 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 2. Mai 2018 [Letzte Aktualisierung: 2/05/2018,

Mehr

Maximale s t-flüsse in Planaren Graphen

Maximale s t-flüsse in Planaren Graphen Maximale s t-flüsse in Planaren Graphen Vorlesung Algorithmen für planare Graphen 6. Juni 2017 Guido Brückner INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg

Mehr

Kürzeste-Wege-Algorithmen und Datenstrukturen

Kürzeste-Wege-Algorithmen und Datenstrukturen Kürzeste-Wege-Algorithmen und Datenstrukturen Institut für Informatik Universität zu Köln SS 2009 Teil 1 Inhaltsverzeichnis 1 Kürzeste Wege 2 1.1 Voraussetzungen................................ 2 1.2

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 07..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

Mehr

Lösungshinweise 3 Vorlesung Algorithmentechnik im WS 08/09

Lösungshinweise 3 Vorlesung Algorithmentechnik im WS 08/09 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Lösungshinweise Vorlesung Algorithmentechnik im WS 08/09 Problem : Kreuzende Schnitte Zwei Schnitte (S, V \ S) und (T, V \ T ) in einem

Mehr

Übung 5 Algorithmen II

Übung 5 Algorithmen II Michael Axtmann michael.axtmann@kit.edu http://algo.iti.kit.edu/algorithmenii_ws6.php - 0 Axtmann: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

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

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1 Allgemeines. Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition.. (a) Ein Graph G =(V, E) heißt kreisfrei, wenn er keinen Kreis besitzt. Beispiel: Ein kreisfreier Graph: FG KTuEA, TU Ilmenau

Mehr

Flüsse, Schnitte, bipartite Graphen

Flüsse, Schnitte, bipartite Graphen Flüsse, Schnitte, bipartite Graphen Thomas Fersch mail@t-fersch.de 11.06.2010 Seminar "Hallo Welt!" für Fortgeschrittene 1 Übersicht Maximale Flüsse in Netzwerken Worum geht s? Lösung nach Ford-Fulkerson

Mehr

6. Flüsse und Zuordnungen

6. Flüsse und Zuordnungen 6. Flüsse und Zuordnungen In diesem Kapitel werden Bewertungen von Kanten als maximale Kapazitäten interpretiert, die über solch eine Kante pro Zeiteinheit transportiert werden können. Wir können uns einen

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum

Mehr

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

lässt sich auch ableiten, dass es einen augmentierenden Pfad der Länge höchstens Praktikum Algorithmen-Entwurf (Teil 5)..5 Matchings in Graphen Es sei ein ungerichteter Graph G = (V, E) gegeben. Ein Matching in G ist eine Teilmenge M E, so dass keine zwei Kanten aus M einen Endpunkt

Mehr

Freie Bäume und Wälder

Freie Bäume und Wälder (Martin Dietzfelbinger, Stand 4.6.2011) Freie Bäume und Wälder In dieser Notiz geht es um eine besondere Sorte von (ungerichteten) Graphen, nämlich Bäume. Im Gegensatz zu gerichteten Bäumen nennt man diese

Mehr

1 Kürzeste Pfade in Graphen

1 Kürzeste Pfade in Graphen Praktikum Algorithmen-Entwurf (Teil 3) 03.11.2011 1 1 Kürzeste Pfade in Graphen Es sei ein gerichteter Graph G = (V, E) mit V = n Knoten, E = m Kanten und Kantengewichten c : E R gegeben. Ein Pfad in G

Mehr

Bipartite Graphen. Beispiele

Bipartite Graphen. Beispiele Bipartite Graphen Ein Graph G = (V, E) heiÿt bipartit (oder paar), wenn die Knotenmenge in zwei disjunkte Teilmengen zerfällt (V = S T mit S T = ), sodass jede Kante einen Knoten aus S mit einem Knoten

Mehr

4.7 Der Algorithmus von Dinic für maximalen Fluss

4.7 Der Algorithmus von Dinic für maximalen Fluss 4.7 Der Algorithmus von Dinic für maximalen Fluss Wir kennen bereits den Algorithmus von Ford Fulkerson zur Suche nach einem maximalen Fluss in einem Graphen. Wir lernen nun einen Algorithmus für maximalen

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 5. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Wdhlg.: Dijkstra-Algorithmus I Bestimmung der

Mehr

Der Preow-push-Algorithmus

Der Preow-push-Algorithmus Der Preow-push-Algorithmus Bea Schumann 26. Juni 2009 Inhaltsverzeichnis Einleitung 2 Der generische Algorithmus 2 2. Push und Relabel........................... 3 2.. Push..............................

Mehr

Beispiel-Prüfungsfragen für Effiziente Algorithmen II M. Dietzfelbinger, 6. Februar 2011.

Beispiel-Prüfungsfragen für Effiziente Algorithmen II M. Dietzfelbinger, 6. Februar 2011. Beispiel-Prüfungsfragen für Effiziente Algorithmen II M. Dietzfelbinger, 6. Februar 2011. Vorbemerkung: Die Liste der Beispielfragen soll bei der Vorbereitung helfen. Sie definiert nicht den Prüfungsstoff

Mehr

Klausur zum Modul Einführung in die Diskrete Mathematik

Klausur zum Modul Einführung in die Diskrete Mathematik Klausur zum Modul Einführung in die Diskrete Mathematik 11.2.2014 Aufgabe 1 [10 Punkte] Sei G ein ungerichteter Graph, k N und x, y, z V (G). Zeigen Sie: Gibt es k paarweise kantendisjunkte x-y-wege und

Mehr

10 Kürzeste Pfade SSSP-Problem

10 Kürzeste Pfade SSSP-Problem In diesem Kapitel setzen wir uns mit der Berechnung von kürzesten Pfaden in einem Graphen auseinander. Definition 10.1 (Pfadgewichte). i) Das Gewicht eines Pfades p = (v 0, v 1,..., v k ) ist die Summe

Mehr

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME Algorithmen und Datenstrukturen 11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 1 Algorithmen und Datenstrukturen 11.1. BERECHNUNG MAXIMALER FLÜSSE

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 10 Suche in Graphen Version vom 13. Dezember 2016 1 / 2 Vorlesung 2016 / 2017 2 /

Mehr

Operations Research. Flüsse in Netzwerken. Flüsse in Netzwerken. Unimodularität. Rainer Schrader. 2. Juli Gliederung.

Operations Research. Flüsse in Netzwerken. Flüsse in Netzwerken. Unimodularität. Rainer Schrader. 2. Juli Gliederung. Operations Research Rainer Schrader Flüsse in Netzwerken Zentrum für Angewandte Informatik Köln 2. Juli 2007 1 / 53 2 / 53 Flüsse in Netzwerken Unimodularität Gliederung Netzwerke und Flüsse bipartite

Mehr

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

Bipartites Matching. Gegeben: Ein bipartiter, ungerichteter Graph (V 1, V 2, E). Gesucht: Ein Matching (Paarung) maximaler Kardinalität. Netzwerkalgorithmen Bipartites Matching (Folie 90, Seite 80 im Skript) Gegeben: Ein bipartiter, ungerichteter Graph (V, V, E). Gesucht: Ein Matching (Paarung) maximaler Kardinalität. Ein Matching ist eine

Mehr

\ 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.

\ 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. Das Komplement Ḡ = (V, ( V ) \ 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. Ein Graph H = (V, E )

Mehr

2.6.1 Definition und Darstellung Ausspähen von Graphen Minimal spannende Bäume Kürzeste Pfade 2.6.

2.6.1 Definition und Darstellung Ausspähen von Graphen Minimal spannende Bäume Kürzeste Pfade 2.6. .6 Graphen.6. Definition und Dartellung.6. Aupähen von Graphen.6.3 Minimal pannende Bäume.6.4 Kürzete Pfade.6.5 Maximaler Flu .6.5 Maximaler Flu.6.5. Flunetzwerke.6.5. Ford-Fulkeron-Methode.6.5.3 Algorithmu

Mehr

Graphalgorithmen Netzwerkalgorithmen. Laufzeit

Graphalgorithmen Netzwerkalgorithmen. Laufzeit Netzwerkalgorithmen Laufzeit (Folie 390, Seite 78 im Skript) Finden eines Matchings maximaler Kardinalität dauert nur O( E min{ V, V 2 }) mit der Ford Fulkerson Methode. Der Fluß ist höchstens f = min{

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen Lerneinheit : Kürzeste Pfade in Graphen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 016.6.01 Einleitung Diese Lerneinheit beschäftigt

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Effiziente Algorithmen Lösen NP-vollständiger Probleme 320 Approximationsalgorithmen In polynomieller Zeit lässen sich nicht exakte Lösungen von NP-harten Problemen berechnen. Approximationsalgorithmen

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester

Mehr

ij. , d (k 1) + d (k 1)

ij. , d (k 1) + d (k 1) Dabei war ja die Idee, dass wir unser k Schritt für Schritt erhöhen bis wir bei n angekommen sind, denn dann haben wir das Problem gelöst. Dies ist im Grunde unser Algorithmus. Wir müssen diesen nur noch

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 9 Programm: Übungsblatt

Mehr

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

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt: 3. Minimale Spannbäume Sei G = (V, E) ein einfacher ungerichteter Graph, der o.b.d.a. zusammenhängend ist. Sei weiter w : E R eine Gewichtsfunktion auf den Kanten von G. Wir setzen E E: w(e ) = e E w(e),

Mehr

Matchings in Graphen. Praktikum Diskrete Optimierung (Teil 5)

Matchings in Graphen. Praktikum Diskrete Optimierung (Teil 5) Praktikum Diskrete Optimierung (Teil 5) 6.05.009 Matchings in Graphen Es sei ein ungerichteter Graph G = (V, E) gegeben. Ein Matching in G ist eine Teilmenge M E, so dass keine zwei Kanten aus M einen

Mehr

Übung zur Vorlesung Berechenbarkeit und Komplexität

Übung zur Vorlesung Berechenbarkeit und Komplexität RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 7 26.11.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T15 Entwickeln Sie ein

Mehr

15. Elementare Graphalgorithmen

15. Elementare Graphalgorithmen Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen

Mehr

9 Minimum Spanning Trees

9 Minimum Spanning Trees Im Folgenden wollen wir uns genauer mit dem Minimum Spanning Tree -Problem auseinandersetzen. 9.1 MST-Problem Gegeben ein ungerichteter Graph G = (V,E) und eine Gewichtsfunktion w w : E R Man berechne

Mehr

Einführung in die Mathematik des Operations Research

Einführung in die Mathematik des Operations Research Universität zu Köln Mathematisches Institut Prof. Dr. F. Vallentin Einführung in die Mathematik des Operations Research Sommersemester 3 en zur Klausur (7. Oktober 3) Aufgabe ( + 3 + 5 = Punkte). Es sei

Mehr

Berechnung von Abständen

Berechnung von Abständen 3. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 3.4. Es sei G = (V, E) ein Graph. Der Abstand d(v, w) zweier Knoten v, w V ist die minimale Länge eines Weges von v nach w.

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester H.

Mehr

5. Bäume und Minimalgerüste

5. Bäume und Minimalgerüste 5. Bäume und Minimalgerüste Charakterisierung von Minimalgerüsten 5. Bäume und Minimalgerüste Definition 5.1. Es ein G = (V, E) ein zusammenhängender Graph. H = (V,E ) heißt Gerüst von G gdw. wenn H ein

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Search - Beweis der Korrektheit David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2013 Algemeine Anmerkungen zur Übung 9 Aufgabenblätter, 3 Abgabetermine

Mehr

Algorithmentheorie. 13 - Maximale Flüsse

Algorithmentheorie. 13 - Maximale Flüsse Algorithmentheorie 3 - Maximale Flüsse Prof. Dr. S. Albers Prof. Dr. Th. Ottmann . Maximale Flüsse in Netzwerken 5 3 4 7 s 0 5 9 5 9 4 3 4 5 0 3 5 5 t 8 8 Netzwerke und Flüsse N = (V,E,c) gerichtetes Netzwerk

Mehr

Effiziente Algorithmen I

Effiziente Algorithmen I H 10. Präsenzaufgabenblatt, Wintersemester 2015/16 Übungstunde am 18.01.2015 Aufgabe Q Ein Reiseveranstalter besitzt ein Flugzeug, das maximal p Personen aufnehmen kann. Der Veranstalter bietet einen Flug

Mehr

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

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7 1 Kürzeste Pfade Woche 6 7 Hier arbeiten wir mit gewichteten Graphen, d.h. Graphen, deren Kanten mit einer Zahl gewichtet werden. Wir bezeichnen die Gewichtsfunktion mit l : E R. Wir wollen einen kürzesten

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 7 und 8: Euler- und Hamilton-Graphen Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 17. April 2018 1/96 WIEDERHOLUNG Eulersche

Mehr

1.Aufgabe: Minimal aufspannender Baum

1.Aufgabe: Minimal aufspannender Baum 1.Aufgabe: Minimal aufspannender Baum 11+4+8 Punkte v 1 v 2 1 3 4 9 v 3 v 4 v 5 v 7 7 4 3 5 8 1 4 v 7 v 8 v 9 3 2 7 v 10 Abbildung 1: Der Graph G mit Kantengewichten (a) Bestimme mit Hilfe des Algorithmus

Mehr

Vorlesung 2 KÜRZESTE WEGE

Vorlesung 2 KÜRZESTE WEGE Vorlesung 2 KÜRZESTE WEGE 34 Kürzeste Wege im Graphen Motivation! Heute:! Kürzeste Wege von einem Knoten (SSSP)! Kürzeste Wege zwischen allen Knotenpaaren (APSP)! Viele Anwendungen:! Navigationssysteme!

Mehr

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

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V. Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg

Mehr

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Vortrag von Michael Daumen am 13.12.2000 Thema : Minimum Spanning Tree und 2-Approximation der TSP-Tour Inhalt des Vortrags : 1. genaue Vorstellung des

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 4 Programm des

Mehr

5. Musterlösung. Problem 1: Vitale Kanten * ω(f) > ω(f ). (a) Untersuchen Sie, ob es in jedem Netzwerk vitale Kanten gibt.

5. Musterlösung. Problem 1: Vitale Kanten * ω(f) > ω(f ). (a) Untersuchen Sie, ob es in jedem Netzwerk vitale Kanten gibt. Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 05/06 ITI Wagner 5. Musterlösung Problem : Vitale Kanten * In einem Netzwerk (D = (V, E); s, t; c) mit Maximalfluß f heißen Kanten e

Mehr

Graphdurchmusterung, Breiten- und Tiefensuche

Graphdurchmusterung, Breiten- und Tiefensuche Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,

Mehr

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

Graphentheorie. Kardinalitätsmatchings. Kardinalitätsmatchings. Kardinalitätsmatchings. Rainer Schrader. 11. Dezember 2007 Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 11. Dezember 2007 1 / 47 2 / 47 wir wenden uns jetzt einem weiteren Optimierungsproblem zu Gliederung Matchings in bipartiten Graphen

Mehr

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

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0. 8.4 Digraphen mit negativen Kantengewichten 8.4.1 Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0. k 4 5 1 s 1 3 2 C k 0 k 3 1 1 1 k 1 k 2 v Sollte ein Pfad von s nach C und

Mehr

Kapitel IV Minimale Spannbäume

Kapitel IV Minimale Spannbäume Kapitel IV Minimale Spannbäume 1. Grundlagen Ein Graph G = (V, E) besteht aus einer Menge V von Knoten und einer Menge E von Kanten. Wir werden nur endliche Knoten- (und damit auch Kanten-) Mengen betrachten.

Mehr

Univ.-Prof. Dr. Goulnara ARZHANTSEVA

Univ.-Prof. Dr. Goulnara ARZHANTSEVA Diskrete Mathematik Univ.-Prof. Dr. Goulnara ARZHANTSEVA SS 2018 c Univ.-Prof. Dr. Goulnara Arzhantseva Kapitel 08: Menger, König und Hall / Planare Graphen 1 / 30 Der Satz von Menger: s t trennende Kantenmenge

Mehr

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

Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,... Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,..., k, so dass gilt M = k c i P i i=1 k c i = r. i=1 Diskrete Strukturen 7.1 Matchings

Mehr

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

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0

Mehr