Netzwerk Simplex Algorithmus für Minimum Cost Flow Probleme

Größe: px
Ab Seite anzeigen:

Download "Netzwerk Simplex Algorithmus für Minimum Cost Flow Probleme"

Transkript

1 Netzwerk Simplex Algorithmus für Minimum Cost Flow Probleme Jan Burkl 13. Juni 2003 Seminar Universität Trier Sommersemester 2003 Prof. S. Näher, O. Zlotowski 1

2 Inhaltsverzeichnis 1 Einleitung 3 2 Bezeichnungen und Definitionen 3 3 Spanning Tree Solution 6 4 Beschreibung einer Spanning Tree Structure 10 5 Knotenpotentiale berechnen 12 6 Initialer Spannbaum 14 7 Simplex-Algorithmus Entering Arc Dantzig s Pivot Regel First Eligable Arc Rule Kandidaten-Liste Pivot-Regel Leaving Arc Spannbaum updaten Beispiel Strongly Feasible Spanning Tree Leaving Arc Rule

3 1 Einleitung Der Simplex-Algorithmus ist einer der mächtigsten Algorithmen zum Lösen von Optimierungsproblemen. Obwohl er nicht direkt für eine Netzwerkstruktur konstruiert wurde, lässt er sich doch einfach modifizieren, um ein Minimum Cost Flow Problem effizient zu lösen. Im einzelnen betrachtet diese Seminararbeit folgende Aspekte: Es wird gezeigt, dass jedes Minimum Cost Flow Problem mindestens eine Spanning Tree Solution besitzt. Diese Spanning Tree Solutions sind die Grundlage der Simplex-Methode, da von einer Lösung zur nächsten gewechselt wird, bis die Optimallösung gefunden ist. Als nächstes wird beschrieben, wie solche Spanning Trees am geschicktesten implementiert werden können, damit der Algorithmus auch effizient ausgeführt werden kann. Bevor dann die eigentliche Simplex-Methode erklärt wird, muss vorher gezeigt werden, wie die sogenannten Knotenpotentiale berechnet werden und ein initialer Spannbaum konstruiert wird. Auch dieser Schritt muss genau durchdacht sein, damit der Netzwerk-Simplex-Algorithmus effizient ausgeführt werden kann. Schließlich wird eine einfache Methode beschrieben, wie der Algorithmus so modifiziert werden kann, dass eine Terminierung bzw. die Finitheit garantiert ist. 2 Bezeichnungen und Definitionen Einige grundlegende Begriffe aus der Graphentheorie werden in dieser Arbeit vorausgesetzt. So betrachten wir ein gerichtetes Netzwerk N mit n Knoten und m gerichteten Kanten. Die Menge der gerichteten Kanten nennen wir E. Auf diesem Netzwerk N können wir ein sogenanntes Minimum Cost Flow Problem beschreiben, dass wir mit Hilfe des Netzwerk Simplex Algorithmus 3

4 lösen können: Definition 2.1 (Min Cost Flow Problem). Sei N ein gerichtetes Netzwerk. Jede Kante (i, j) E hat bestimmte Kosten c ij, die die Kosten pro Flusseinheit auf dieser Kante beschreiben. Außerdem hat jede Kante (i, j) E eine obere Kapazitätsschranke u ij, das die maximal mögliche Menge von Flusseinheiten auf dieser Kante beschreibt. Mit jedem Knoten i gibt es auch einen ganzzahligen Wert b(i), der das Angebot (b(i) > 0) bzw. die Nachfrage (b(i) < 0) des Knotens angibt. Der Fluss, der über eine Kante (i, j) E fließt, wird mit x ij bezeichnet. Das Min Cost Flow Problem wird jetzt wie folgt definiert: min (i,j) E c ij x ij s.t. x i,j x ji = b(i) i N (1) {j:(i,j) E} {j:(j,i) E} 0 x ij u ij (i, j) E (2) Bemerkung 1. Wir betrachten ausschließlich Netzwerke N, deren Kantenfluss nach unten durch 0 beschränkt ist. Bemerkung 2. Wir sprechen von einem zulässigen Fluss x, wenn die Bedingungen (1) und (2) für alle x ij ((i, j) E) erfüllt sind. Um aus dem zulässigen Fluss einen optimalen zulässigen Fluss zu berechnen, benötigt der Simplex Algorithmus den Spanning Tree. 4

5 Definition 2.2. Ein zusammenhängender Graph ohne Kreis ist ein Spanning Tree T von N, wenn alle Knoten aus N auch in T enthalten sind. Ein Spanning Tree T von N mit zulässigem Fluss entspricht einer Basislösung des Simplex Algorithmus. Weiterhin benötigen wir die reduzierten Kosten aller Kanten: Definition 2.3. c π ij bezeichnet die reduzierten Kosten einer Kante (i, j) E wenn gilt: c π ij = c ij π(i) + π(j), wobei π(i) das Knotenpotential des Knotens i ist (Das Knotenpotential eines Knotens i entspricht in einem Spanning Tree dem negativen Distanzwert von der Wurzel zum Knoten i). Da wir im Simplex Algorithmus mit den reduzierten Kosten arbeiten, ist es wichtig den Zusammenhang zwischen den Funktionswerten z(π) := (i,j) E c π ijx ij und z(0) := (i,j) E c ij x ij zu verstehen. Sei zu Beginn π(0). Wir erhöhen jetzt das Knotenpotential von Knoten k zu π(k). Dadurch werden die reduzierten Kosten jeder ausgehenden Kante von k verringert, während die reduzierten Kosten der eingehenden Kanten um π(k) erhöht werden. Somit ändert sich der Zielfunktionswert um π(k)-mal dem ausgehenden Fluss minus π(k)-mal dem eingehenden Fluss von k. Da 5

6 der ausgehende Fluss gleich dem eingehenden Fluss sein muss (Massenbalance), reduziert eine Erhöhung des Potentials von Knoten k um π(k) den Zielfunktionswert um π(k)b(k). Wiederholt man dies für alle Knoten, erhält man z(0) z(π) = π(i)b(i). i N Für ein gegebenes π ist das Ergebnis konstant und somit gilt min z(π) min z(0). 3 Spanning Tree Solution Definition 3.1. Sei x eine zulässige Lösung für ein Netzwerk N, dann heißt eine Kante (i, j) frei, wenn 0 < x ij < u ij, beschränkt, wenn x ij = 0 oder x ij = u ij, wobei x ij der Fluss der Kante (i, j) ist und u ij die obere Flussgrenze der Kante (i, j). Der Einfachheit halber ist die untere Flussgrenze gleich 0. Bemerkung 3. Auf beschränkten Kanten kann man den Fluss nur verringern (x ij = u ij ) oder nur erhöhen (x ij = 0). Definition 3.2. Eine Lösung eines Netzwerks N heißt Cycle Free Solution, wenn sie keinen Kreis enthält, der nur aus freien Kanten besteht. 6

7 Eine Lösung heißt Spanning Tree Solution, wenn (zu einem Spanning Tree aus dem gegebenen Netzwerk) jede nicht-baum-kante eine beschränkte Kante ist. Bemerkung 4. Jede Spanning Tree Solution ist eine Cycle Free Solution. Umgekehrt gilt dies nicht. Eine Cycle Free Solution erhalten wir in der Simplex-Methode immer, wenn wir den Fluss des Kreises, der durch Einfügen einer Kante in den Spannbaum entstanden ist, maximal erhöht haben (Kapitel 7.2). Diese Cycle Free Solution können wir dann ganz einfach wieder zu einer Spanning Tree Solution umbauen. Betrachtet man nur die freien Kanten einer Cycle Free Solution, so erhält man einen Wald mit k Bäumen (im Spezialfall k = 1 direkt einen Spanning Tree), da nach Definition 3.2 jeder ursprüngliche Kreis mindestens eine beschränkte Kante enthält. Wenn man jetzt mit k 1 beschränkten Kanten alle k entstandenen Bäume zusammenfügt, erhält man eine Spanning-Tree-Solution. Beispiel 3.1. Wir können an Beispiel aus Abbildung 3.1 erkennen, dass es möglich ist aus einer Cycle Free Solution verschiedene Spanning Tree Solutions zu gewinnen. Denkbar wäre auch eine Lösung mit den Kanten (1, 3), (3, 2), (3, 4). Eine Spanning Tree Solution teilt die Menge der Kanten des Netzwerks in drei Gruppen auf: T: Alle Kanten im Spanning Tree L: Alle nicht-baum-kanten mit x ij = 0 U: Alle nicht-baum-kanten mit x ij = u ij 7

8 (a) Beispiel-Netzwerk (b) Alle freien Kanten (c) Zwei mögliche Spanning Tree Solution Abbildung 1: Konstruktion von Spanning Tree Solution aus einer Cycle Free Solution Wir nennen das Tupel (T,L,U) Spanning Tree Structure. Eine Spanning Tree Structure heißt zulässig, wenn die zugehörige Spanning Tree Solution die Kapazitätsschranken der Kanten erfüllt. Bemerkung 5. Wenn jede Baumkante eine freie Kante ist, so nennt man den Spanning Tree nichtdegenerativ, andernfalls degenerativ. Essentiell für die Durchführung des Simplex-Algorithmus ist der folgende Satz. Dabei betrachten wir die reduzierten Kosten c π ij = c ij π(i) + π(i), die wir in der Simplex-Methode als Optimalitätskriterium nutzen. 8

9 Satz 3.1 (Min-Cost-Flow Optimalitätsbedingungen). Eine Spanning Tree Structure (T,L,U) ist ein optimale Spanning Tree Structure, wenn die Lösung zulässig ist und (für eine Wahl des Knotenpotentials π) die reduzierten Kosten c π ij folgende Bedingungen erfüllen: Beweis. a) c π ij = 0, (i, j) T b) c π ij 0, (i, j) L c) c π ij 0, (i, j) U Sei x die zur Spanning Tree Solution (T,L,U) zugehörige Lösung. Wir wissen, dass für ein bestimmtes π die Bedingungen erfüllt sind. Wir müssen jetzt zeigen, dass x eine optimale Lösung des Min-Cost-Flow Problems ist. Da c π ij = c ij π(i) + π(j) gilt nach Kapitel 2 min( (i,j) A c ij x ij ) min( Für ein gegebenes π gilt weiter: min( c π ijx ij ) (i,j) A (i,j) A c π ijx ij ) min c π ijx ij + (i,j) L cπ ijx ij + c π ij }{{} (i,j) T (i,j) U }{{} 0 =0 ( min (i,j) L cπ ijx ij ) (i,j) U cπ ij x ij 9 x ij } {{ } 0 (3)

10 Da für eine beliebige Lösung x x ij x ij (i, j) L und x ij x ij (i, j) U gilt, kann (3) mit der Lösung x nur größer oder gleich des Zielfunktionswertes der Lösung x werden. Bemerkung 6. Eine Spanning Tree Structure ist optimal, wenn die zugehörige Spanning Tree Solution eine Optimallösung des Min-Cost-Flow Problems ist. 4 Beschreibung einer Spanning Tree Structure Damit der Simplex-Algorithmus effektiv arbeiten kann, muss der Spanning Tree geeignet im Computer dargestellt werden. Wir stellen uns den Spanning Tree wie folgt vor: Von einer Wurzel (root) hängt der Baum nach unten. Um diese Struktur darstellen zu können, brauchen wir drei Indizes: Definition 4.1. Der Predecessor Index pred(i) bezeichnet den Knoten j, der auf dem eindeutigen Pfad von i zur Wurzel liegt, wenn die Kante (i,j) existiert. D.h. pred(i)=j ist der direkte Vorgänger von i auf dem Weg von i zur Wurzel. Der Depth Index depth(i) bezeichnet die Anzahl der Kanten des eindeutigen Pfades von i zur Wurzel, d.h. die Tiefe des Knotens in dem hängenden Baum, wobei die Wurzel Tiefe 0 hat. 10

11 i pred(i) depth(i) thread(i) Abbildung 2: Beispiel eines Netzwerks mit dazugehörigen Baumindizes Der Thread Index thread(i) bezeichnet den direkten Nachfolger j des Knotens i bei der vollständigen Traversierung des Baumes. Die Thread Indizes definieren somit einen Weg von der Wurzel über alle Knoten zurück zur Wurzel. Diese Thread Indizes sind nicht eindeutig bestimmt. Je nach Anwendung kann man sie z.b. durch einen Preorder Traversal erreichen. Beispiel 4.1. Knoten 1 ist die Wurzel. Die gestrichelten Kanten in Abb. 2 entsprechen dem Traversierungspfad des Netzwerks. 11

12 5 Knotenpotentiale berechnen Um die im vorigen Kapitel erwähnten reduzierten Kosten ermitteln zu können, müssen vorher die Potentiale aller Knoten berechnet werden. Dafür können wir das Knotenpotential des Wurzelknotens beliebig setzen (hier gleich 0) und können so alle anderen Potentiale berechnen. Lemma 5.1. Das Knotenpotential des Wurzelknotens kann π(1) = 0 gesetzt werden, ohne dass diese Änderung Auswirkung auf die reduzierten Kosten aller Kanten hat. Beweis. Addition einer Konstanten k bewirkt keine Änderung der reduzierten Kosten, da c π ij = c ij π(i) + π(j) = c ij [π(i) + k] + [π(j) + k]. Wir nutzen jetzt die Eigenschaft aus, dass gilt: c π ij = c ij π(i) + π(j) = 0 (i, j) T (4) Somit können wir, wenn ein Knotenpotential der Gleichung 4 bekannt ist, das Potential des anderen Knotens berechnen. Dabei starten wir mit dem Wurzelknoten i = 1, da nach Lemma 5.1 π(1) = π(i) = 0 bekannt ist und berechnen sukzessive anhand der Thread Indizes und des folgenden Algorithmus alle Knotenpotentiale. Algorithmus 1. 12

13 procedure compute-potentials; begin π(1) := 0; j := thread(1); while j 1 do begin i := pred(j); if (i, j) N then π(j) := π(i) c ij ; if (j, i) N then π(j) := π(i) + c ij ; j := thread(j); end; end; Laufzeitanalyse: Die Prozedur braucht O(1) Zeit für einen Iterationsdurchlauf, der n 1-mal durchgeführt wird. Somit hat die Prozedur eine Gesamtlaufzeit von O(n). Beispiel 5.1. Wir verwenden den zweiten Spanning Tree aus Beispiel 3.1 c): π(1) = 0 pred(2) = 1 π(2) = π(1) c 12 = 5 pred(3) = 1 π(3) = π(1) c 13 = 3 pred(4) = 2 π(4) = π(2) c 24 = 5 2 = 7 An diesem Beispiel kann man erkennen, dass die Knotenpotentiale nichts anderes als die negativen Distanzwerte vom Wurzelknoten aus darstellen. 13

14 6 Initialer Spannbaum Damit der Simplex Algorithmus auf jedes beliebige Netzwerk N angewendet werden kann, muss zunächst ein initialer Spannbaum mit gültigem Fluss aus N konstruiert werden. Der initiale Spannbaum entspricht einer gültigen Startlösung. Um eine solche Startlösung zu erreichen, fügt man einen neuen, künstlichen Knoten r ein und n (Anzahl der Knoten in N) neue, künstliche Kanten, die wie folgt konstruiert werden: Wir untersuchen jeden Knoten j aus N. Wenn b(j) > 0, fügen wir eine Kante (j, r) ein, mit einem Fluss von b(j). Ist b(j) 0, so fügen wir eine Kante (r, j) mit Fluss von b(j) ein. Alle Kanten haben unendlich grosse Kapazität, ebenso setzt man ihre Kosten sehr hoch, damit es auf jeden Fall teurer ist, wenn Fluss über künstliche Kanten fließt. Die Kosten der künstlichen Kanten können sich z.b. wie folgt ergeben: c rk = c kr = c ij + 1 k N. (i,j) N Alle anderen Kanten haben zu diesem Zeitpunkt noch keinen Fluss. Wir erhalten so einen Spanning Tree aus dem Orginalnetzwerk mit Wurzel r und ausschließlich künstlichen Kanten zu allen Knoten aus N mit zulässigem 14

15 Fluss, wobei die Flusseinheiten zu diesem Zeitpunkt nur von den Senken über den Knoten r zu den Quellen fließt. Beispiel 6.1. Wir nutzen das Netzwerk N aus Bsp Abb. 3(a) zeigt das ursprüngliche Netzwerk, in Abb. 3(b) sieht man den konstruierten Spanning Tree mit künstlichem Wurzelknoten und künstlichen Kanten. In diesem Beispiel entspricht Knoten 1 der Quelle s, Knoten 2 der Senke t und der neue, künstliche Knoten r ist Knoten 5. (a) Beispiel-Netzwerk (b) Konstruierter Spanning Tree Abbildung 3: Initialer Spannbaum Existiert eine Lösung für das gegebene Problem, dann berechnet der Simplex Algorithmus einen Fluss x, bei dem nur Kanten des Orginalnetzwerks positive Flusswerte haben. Daher setzt man die Kosten der künstlichen Kanten so hoch, dass es auf jeden Fall günstiger ist, Fluss über die Kanten des gegebenen Netzwerks fließen zu lassen, wenn das Problem lösbar ist. 15

16 7 Simplex-Algorithmus Sei (T, L, U) eine mögliche Spanning Tree Struktur des Min-Cost-Flow-Problems und π die entsprechenden Knotenpotentiale. Nach Satz 3.1 ist diese Lösung optimal, wenn gilt: (i, j) L : c π ij 0, (i, j) U : c π ij 0. Sollten die Bedingungen nicht erfüllt sein, so muss eine Kante durch eine andere ersetzt werden, damit der Zielfunktionswert in Richtung des optimalen Werts verbessert wird. Dadurch ändern sich bestimmte Knotenpotentiale, sowie reduzierte Kosten einzelner Kanten. Diese müssen angepasst werden und die Optimalitätsbedingungen erneut überprüft werden. Im einzelnen lautet der Simplex -Algorithmus wie folgt: Algorithmus 2. algorithm network simplex begin konstruiere initialen Spannbaum; solange die Optimalitätsbedingungen nicht erfüllt sind tue wähle eine einzufügende Kante, die die Optimalitätsbedingung verletzt; füge diese Kante ein und bestimme die wegfallende Kante; baue den Spannbaum neu auf und passe x und π an; end; end; Bemerkung 7. Sollte noch Fluss auf den eingefügten künstlichen Kanten fließen, obwohl alle 16

17 Optimalitätskriterien erfüllt sind, so gibt es keine zulässige Lösung für dieses Netzwerk. 7.1 Entering Arc Die einzufügende Kante muss aus der Menge der Kanten stammen, die die obigen Optimalitätsbedingungen nicht erfüllen (sie kann also nur aus L oder U stammen). Für die Wahl dieser Kante gibt es verschiedene Pivotregeln, drei werden an dieser Stelle vorgestellt Dantzig s Pivot Regel Die Regel wählt in jeder Iteration die Kante mit der höchsten Verletzung. (Als Verletzung einer Kante (i, j) bezeichnen wir c π ij ). Der Hintergrund zu dieser Regel ist die größere Verringerung des Zielfunktionswertes bei einer hohen Verletzung, wenn alle Kandidaten eine ähnlich hohe Flussänderung bewirken. Der Algorithmus muss also alle Kanten aus L und U nach der maximalen Verletzung durchsuchen. Da dies jedoch bei jeder Iteration gemacht werden muss, ist diese Regel auf Grund der hohen Laufzeit für die Praxis nicht geeignet First Eligable Arc Rule Bei dieser Regel werden alle Kanten durchsucht und die erste geeignete Kante ausgewählt. Eine bekannte Variante dieser Regel arbeitet nach der wraparound fashion. Dabei wird die letzte gewählte Kante als Startpunkt für die neue Suche gesetzt. Durch diese Tatsache wird schnell die neue, einzufügende Kante gefunden. Diese hat aber in den meisten Fällen nur eine geringe Verletzung und somit eine kleine Reduzierung des Zielfunktionswertes. Durch 17

18 die vielen daraus resultierenden Iterationen ist auch diese Regel nicht für die Praxis geeignet Kandidaten-Liste Pivot-Regel Dieser Algorithmus ist eine Zwei-Phasen-Prozedur, bestehend aus einer Hauptiteration und einer Nebeniteration. In der Hauptiteration werden ausgehend von der Wurzel alle geeigneten Kanten in eine Kandidatenliste eingefügt. Das wiederholt man für Knoten 2, 3,..., bis entweder alle geeigneten Kanten eingefügt sind oder der für die Liste allokierte Speicherplatz belegt ist. Die nächste Hauptiteration beginnt an dem Knoten, an dem die vorhergehende Iteration endete. In der Nebeniteration wird die Liste nach der Kante mit der maximalen Verletzung durchsucht. Gleichzeitig werden alle nicht mehr geeigneten Kanten wieder aus der Liste entfernt. Das wiederholt sich solange, bis die Liste leer ist oder die angegebene maximale Anzahl der Iterationsdurchläufe erreicht ist. Anschließend wird eine neue Liste in der Hauptiteration aufgebaut. Man kann erkennen, dass diese Regel viele Möglichkeiten zur Optimierung bietet und sowohl die Dantzig s Pivot Regel als auch die First Eligable Arc Rule Spezialfälle der Kandidaten-Liste Pivot-Regel sind(größe der Kandidatenliste = 1 First Eligable Arc Rule; Größe der Kandidatenliste = Dantzig s Pivot Regel). In der Praxis hat sich diese Mischung aus den beiden anderen Pivotregeln auf Grund ihrer schnelleren Laufzeit bewährt. 7.2 Leaving Arc Nachdem eine Kante eingefügt wurde, muss auch wieder eine entfernt werden, damit die Spanning Tree Struktur wieder aufgebaut werden kann. Sei (k, l) die eingefügte Kante. (k, l) erzeugt genau einen Kreis W (Pivot- 18

19 Kreis), dessen Orientierung der Richtung von (k, l) entspricht, wenn (k, l) L und entgegengesetzt, wenn (k, l) U. So wird der Kreis W partitioniert in W und W. Dabei enthält W alle Vorwärtskanten (entsprechend der Orientierung des Pivot-Kreises), W alle Rückwärtskanten. Wir erhöhen den Fluss (entlang W ) jetzt um δ = min (δ ij (i, j) W ), wobei u ij x ij, δ ij = x ij, wenn (i, j) W wenn (i, j) W. So erreicht mindestens eine Kante ihre obere bzw. untere Grenze. Diese Kante (i, j) bzw. eine dieser Kanten (kann beliebig gewählt werden) heißt blockierende Kante. Diese wird aus T entfernt und in L eingefügt (wenn x ij = 0) oder in U eingefügt (wenn x ij = u ij ). Bemerkung 8. Ein positiver erhöhender Fluss entlang W erhöht den Fluss auf Vorwärtskanten, verringert ihn auf Rückwärtskanten. Definition 7.1. Eine Pivot-Operation heißt nichtdegenerative Iteration, wenn δ > 0, degenerative Iteration, wenn δ = 0. Bemerkung 9. Wenn es mehr als eine Kante gibt, die durch den erhöhenden Fluss an ihre Grenzen stoßen, so wird der nächste Spanning Tree degenerativ sein. 19

20 Die Schwierigkeit bei diesem Verfahren liegt in der Erkennung des Kreises. Effizient lösen kann man dieses Problem, wenn man den Spanning Tree vor Einfügen der neuen Kante (k, l) betrachtet. Jetzt werden in einer Schleife die Vorgänger von k und l solange aufgerufen, bis der gemeinsame Vorgänger gefunden ist. Das konkrete Vorgehen beschreibt der nachfolgende Algorithmus: Algorithmus 3. procedure identify-cycle; begin i:=k und j:=l; while i j do begin if depth(i) > depth(j) then i:=pred(i); else if depth(j) > depth(i) then j:=pred(j); else i:=pred(i) und j:=pred(j); end; end; 7.3 Spannbaum updaten Wenn die wegfallende Kante (p, q) gleich der eingefügten Kante (k, l) ist (δ = δ kl = u kl ), ändert sich T nicht, lediglich die Kante (k, l) wechselt von L nach U oder umgekehrt. Ist (p, q) ungleich (k, l), so müssen einige Veränderungen vorgenommen werden. Als erstes wird (p, q) zu L hinzugefügt (wenn x pq = 0), bzw. zu U (wenn x pq = u pq ) hinzugefügt. Betrachten wir jetzt den Spannbaum ohne die Kanten (p, q) und (k, l), so erhalten wir einen Teilbaum 20

21 T 1, der die Wurzel und entweder k oder l enthält. Der zweite Teilbaum T 2 hängt dagegen entweder am Knoten p oder q. Der entsprechend andere Knoten befindet sich in T 1. Damit auch im neuen Spannbaum die Bedingung c π ij = 0 gilt, müssen die Knotenpotentiale in T 1 oder in T 2 geändert werden: Wenn k T 1, dann müssen alle Knotenpotentiale um c π kl verringert werden, wenn k T 2, dann müssen alle Knotenpotentiale um c π kl erhöht werden. Eine genaue Beschreibung des Spannbaum-Updates liefert der folgende Algorithmus. Algorithmus 4. procedure update-potentials; begin if q T 2 then y := q else y := p; if k T 1 then change := c π kl else change := cπ kl ; π(y) := π(y) + change; z:=thread(y); while depth(z) > depth(y) do begin π(z) := π(z) + change; z:=thread(z); end; end; 7.4 Beispiel Wir nutzen erneut das bekannte Beispiel. Diesmal ist es das vollständige Netzwerk mit Kantenkosten, Kantenbeschränkungen und Supply/Demand. 21

22 Als erstes wird der künstliche Knoten (5) eingefügt, inkl. aller künstlichen Kanten. Wir lassen 4 Einheiten Fluss über die Kanten (1,5) und (5,4) fließen und berechnen die Knotenpotentiale, wobei wir die Kosten der künstlichen Kanten mit (i,j) N c ij +1 = 16 Einheiten veranschlagen. Mit dieser Berechnung der Kantenkosten ist bei allen Min-Cost-Flow Problemen sichergestellt, dass es auf jeden Fall teurer ist, Fluss über die künstlichen Kanten fließen zu lassen. Somit haben wir den initialen Spannbaum (durchgezogene Kanten). Da die Kante (1,3) die höchsten reduzierten Kosten besitzt (c π 13 = 29), wählen wir diese als einzufügende Kante(grün). Weil δ jedoch 0 ist, kann der Fluss nicht erhöht werden. Wir wählen daraufhin (5,3) als blockierende Kante(rot), und entfernen diese aus dem Spannbaum, und fügen sie in die Menge L ein. 22

23 Das Knotenpotential von Knoten 3(rot) inkl. der reduzierten Kosten aller inzidenten Kanten muss jetzt erneuert werden, woraufhin Kante (3,2) mit c π 32 = 28 als neue Baumkante gewählt wird. Wiederum kann der Fluss nicht erhöht werden, so wird Kante (5,2) nach L verschoben. Nach einigen weiteren Schritten erhalten wir das linke unten stehende Bild. 23

24 Bis hierhin sind auch Kanten (1,3) und (2,4) aus dem Baum nach U verschoben worden. Beide Kanten sind mit maximalem Fluss (x 13 = x 24 = 3) entfernt worden. Ein Update müssen hier die Knoten 2 und 3 erhalten. Kante (1,2) wird neu eingefügt und der Fluss kann um eine Einheit erhöht werden. Kante (5,4) muss daraufhin entfernt werden. Nach einem Update der Knoten 2,3 und 4 sind alle Optimalitätsbedingungen erfüllt. Da Optimalitätsbedingungen auf allen Kanten erfüllt ist und kein Fluss auf künstlichen Kanten fließt, ist die Lösung optimal mit Flusskosten von 26 Einheiten. 24

25 8 Strongly Feasible Spanning Tree Es kann passieren, dass die Simplex-Methode nicht terminiert. Damit der Algorithmus nicht in eine Endlosschleife gerät, wird hier das Konzept des Strongly Feasible Spanning Tree mit einer Leaving Arc Rule vorgestellt, die die Finitheit des Algorithmus garantiert. Stellen wir uns nochmal den Spanning Tree (T, L, U) als hängenden Baum vor, dann gibt es Kanten, die nach oben zeigen (upward pointing) oder die nach unten zeigen (downward pointing). Definition 8.1. Ein Spannbaum T ist strongly feasible, wenn jede Baumkante ohne Fluss nach oben zeigt und jede Baumkante deren Fluss gleich ihrer Kapazität ist nach unten zeigt. Definition

26 Ein Spannbaum ist strongly feasible, wenn es möglich ist, einen Fluss von einem beliebigem Knoten zur Wurzel zu schicken, ohne Kapazitätsgrenzen zu verletzen. Bemerkung 10. Man kann leicht zeigen, dass diese beiden Definitionen äquivalent sind. Leider erhalten wir durch Konstruktion des initialen Spannbaums keinen Strongly Feasible Spanning Tree. Dies kann jedoch erreicht werden, wenn die Definition für eine Startlösung wie folgt geändert wird: Wir untersuchen jeden Knoten j aus N(Orginalnetzwerk). Wenn b(j) 0(statt b(j > 0)), fügen wir eine Kante (j, r) (mit r als neuem künstlichem Knoten) ein, mit einem Fluss von b(j). Ist b(j) < 0(statt b(j) 0), so fügen wir eine Kante (r, j) mit Fluss von b(j) ein. Jetzt ist leicht zu sehen, dass es möglich ist von jedem Knoten Fluss zur Wurzel r zu schicken. Da wir durch unsere Konstruktion des initialen Spannbaums immer einen nicht-degenerativen Baum erhalten, haben wir auch automatisch zu Beginn einen Strongly Feasible Spanning Tree. Jetzt gilt es, diese Eigenschaft im Spanning Tree beizubehalten. Der Spannbaum kann im nächsten Schritt nur degenerieren, wenn es mehr als eine blockierende Kante gibt, d.h. ist die blockierende Kante eindeutig, so erhält man auch im nächsten Schritt einen Strongly Feasible Spanning Tree. Damit dies auch im anderen Fall passiert, gibt es folgende Regel. 8.1 Leaving Arc Rule Aus dem Spannbaum soll die letzte blockierende Kante, die nach Traversierung (entlang der Orientierung der eingefügten Kante) des entstanden Krei- 26

27 ses entfernt werden. Dabei wird am Knoten w, der höchste Punkt (apex) des Kreises im hängenden Baum, gestartet. Durch diese Regel wird der Kreis W in W 1 und W 2 geteilt. W 1 ist der Teil von W vom Knoten w bis zur Kante (p, q) (entfernte Kante), W 2 = W W 1 {(p, q)}. Beide Teile haben die gleiche Orientierung wie der Kreis W. Satz 8.1. a) Jeder Knoten im Segment W 2 kann einen positiven Fluss zur Wurzel schicken. b) Jeder Knoten im Segment W 1 kann einen positiven Fluss zur Wurzel schicken. Beweis. a) Da (p, q) die letzte blockierende Kante war, kann in W 2 keine blockierende Kante sein. Deshalb ist es auf jeden Fall möglich, dass jeder Knoten aus W 2 noch Fluss zur Wurzel schicken kann. b) Fall 1: Wenn die vorhergende Pivotoperation den Fluss entlang W 1 erhöht hat und damit eine nichtdegenerative Pivotoperation war, dann kann im nächsten Schritt der Fluss auch wieder in die andere Richtung (zur Wurzel hin) geschickt werden. Fall 2: Wenn in der vergangenen Pivotoperation keine Flusserhöhung durchgeführt wurde, muss W 1 zwischen w und k liegen, da nach den Eigenschaft des Strongly Feasible Trees Fluss von l zur Wurzel geschickt werden kann. Und da der 27

28 Fluss ja auch nicht im Segment W 1 erhöht wurde, kann auch positiver Fluss von jedem Knoten in W 1 zur Wurzel geschickt werden. Die Finitheit resultiert jetzt daraus, dass mit jeder Flusserhöhung in den Pivotoperationen der Zielfunktionswert vermindert wird. Das kann aber nur endlich oft passieren, deswegen garantiert diese Methode die Finitheit des Algorithmus. Beispiel 8.1. Abbildung 4: Strongly Feasible Spanning Tree 28

29 Literatur [1] Ravindra K. Ahuja, James B. Orlin, Thomas L. Magnanti, Network Flows: Theory, Algorithms & Applications, Prentice Hall,

Netzwerk Simplex Algorithmus. Min Cost Flow Probleme. Jan Burkl Juli 2003

Netzwerk Simplex Algorithmus. Min Cost Flow Probleme. Jan Burkl Juli 2003 1 Netzwerk Simplex Algorithmus für Min Cost Flow Probleme Jan Burkl Juli 2003 2 Inhalt Spanning Tree Solution Beschreibung der Spanning Tree Structure Knotenpotentiale berechnen Initialer Spannbaum Simplex-Algorithmus

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

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

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

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

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

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

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 16 (2.7.2014) Graphtraversierung II, Minimale Spannbäume I Algorithmen und Komplexität Tiefensuche: Pseusocode DFS Traversal: for all u in

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

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

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

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

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

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

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

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck Lemma 15 KLP 1 ist genau dann lösbar, wenn das dazugehörige LP KLP 2 eine Lösung mit dem Wert Z = 0 besitzt. Ist Z = 0 für x 0, x 0, dann ist x eine zulässige Lösung von KLP 1. Beweis von Lemma 15: Nach

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

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme Theoretische Informatik Exkurs Rainer Schrader Exkurs: Komplexität von n Institut für Informatik 13. Mai 2009 1 / 34 2 / 34 Gliederung Entscheidungs- und Approximationen und Gütegarantien zwei Greedy-Strategien

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

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

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

1 DFS-Bäume in ungerichteten Graphen

1 DFS-Bäume in ungerichteten Graphen Praktikum Algorithmen-Entwurf (Teil 3) 06.11.2006 1 1 DFS-Bäume in ungerichteten Graphen Sei ein ungerichteter, zusammenhängender Graph G = (V, E) gegeben. Sei ferner ein Startknoten s V ausgewählt. Startet

Mehr

1 DFS-Bäume in ungerichteten Graphen

1 DFS-Bäume in ungerichteten Graphen Praktikum Algorithmen-Entwurf (Teil 3) 31.10.2005 1 1 DFS-Bäume in ungerichteten Graphen Sei ein ungerichteter, zusammenhängender Graph G = (V, E) gegeben. Sei ferner ein Startknoten s V ausgewählt. Startet

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

Dualitätssätze der linearen Optimierung

Dualitätssätze der linearen Optimierung Kapitel 9 Dualitätssätze der linearen Optimierung Sei z = c T x min! Ax = b 9.1 x 0 mit c, x R n, b R m, A R m n ein lineares Programm. Definition 9.1 Duales lineares Programm. Das lineare Programm z =

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

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

2.2 Der Algorithmus von Knuth, Morris und Pratt

2.2 Der Algorithmus von Knuth, Morris und Pratt Suchen in Texten 2.1 Grundlagen Ein Alphabet ist eine endliche Menge von Symbolen. Bsp.: Σ a, b, c,..., z, Σ 0, 1, Σ A, C, G, T. Wörter über Σ sind endliche Folgen von Symbolen aus Σ. Wörter werden manchmal

Mehr

Die duale Simplexmethode

Die duale Simplexmethode Kapitel 0 Die duale Simplexmethode Bei der dualen Simplexmethode ist eine Startlösung oftmals leichter angebbar als bei der Simplexmethode für das ursprüngliche lineare Programm, da man keine Nichtnegativitätsanforderungen

Mehr

2. Optimierungsprobleme 6

2. Optimierungsprobleme 6 6 2. Beispiele... 7... 8 2.3 Konvexe Mengen und Funktionen... 9 2.4 Konvexe Optimierungsprobleme... 0 2. Beispiele 7- Ein (NP-)Optimierungsproblem P 0 ist wie folgt definiert Jede Instanz I P 0 hat einen

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

Lösungen zu Kapitel 5

Lösungen zu Kapitel 5 Lösungen zu Kapitel 5 Lösung zu Aufgabe : (a) Es gibt derartige Graphen: (b) Offensichtlich besitzen 0 der Graphen einen solchen Teilgraphen. Lösung zu Aufgabe : Es sei G = (V, E) zusammenhängend und V

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

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

Hauptsatz und Optimalitätskriterium der Simplexmethode

Hauptsatz und Optimalitätskriterium der Simplexmethode Kapitel 4 Hauptsatz und Optimalitätskriterium der Simplexmethode In diesem Abschnitt wird das wichtigste Verfahren zur Lösung linearer Optimierungsprobleme eingeführt die Simplexmethode Es existiere für

Mehr

Algorithmische Bioinformatik 1

Algorithmische Bioinformatik 1 Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen

Mehr

3.6 Branch-and-Bound-Verfahren

3.6 Branch-and-Bound-Verfahren 36 Branch-and-Bound-Verfahren Die Branch-and-Bound -Methode beruht darauf, auf eine intelligente Weise alle zulässigen Lösungen eines kombinatorischen Optimierungsproblems aufzulisten und mit Hilfe von

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

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

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

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Minimale Spannbäume Maike Buchin 18.7., 20.7.2017 Einführung Motivation: Verbinde Inseln mit Fähren oder Städte mit Schienen und verbrauche dabei möglichst wenig Länge. Problem:

Mehr

Effiziente Algorithmen 2

Effiziente Algorithmen 2 Effiziente Algorithmen 2 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen

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

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

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München 7 Fortgeschrittene Datenstrukturen Graphen

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

Das Steinerbaumproblem

Das Steinerbaumproblem Das Steinerbaumproblem Natalie Richert Fakultät für Elektrotechnik, Informatik und Mathematik, Universität Paderborn 4. Februar 008 / 3 Überblick Problembeschreibung Vorstellung von zwei Approimationsalgorithmen

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

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung

Mehr

Datenstrukturen und Algorithmen (SS 2013)

Datenstrukturen und Algorithmen (SS 2013) Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 10 Abgabe: Montag, 08.07.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes

Mehr

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind. 3.5 Gerichteter Pfad Definition 291 Eine Folge (u 0, u 1,..., u n ) mit u i V für i = 0,..., n heißt gerichteter Pfad, wenn ( i {0,..., n 1} ) [ (u i, u i+1 ) A]. Ein gerichteter Pfad heißt einfach, falls

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

Single Source Sortest Path Negative Kreise All-Pair Shortest Path Problem Minimum Mean Cycle Zusammenfassung. Shortest Paths

Single Source Sortest Path Negative Kreise All-Pair Shortest Path Problem Minimum Mean Cycle Zusammenfassung. Shortest Paths Shortest Paths Label Correcting Algorithms Florian Reitz Universität Trier Fachbereich IV Fach Informatik Seminar Netzwerkalgorithmen WS 2005/2006 Einleitung: Problemübersicht Eben: Schnelle Algorithmen

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

6. Einführung 43. gilt. Dann soll also A B x B = b eindeutig lösbar sein, also A B vollen Rang haben, d. h. invertierbar (regulär) sein.

6. Einführung 43. gilt. Dann soll also A B x B = b eindeutig lösbar sein, also A B vollen Rang haben, d. h. invertierbar (regulär) sein. 6. Einführung 43 und aus der linearen Unabhängigkeit der (a i ) i I(x) folgt y i = z i auch für i I(x). Insgesamt gilt also y = z, d. h., nach Definition 6.9 ist x eine Ecke von P. Beachte: Der Koordinatenvektor

Mehr

Lernmodul 7 Algorithmus von Dijkstra

Lernmodul 7 Algorithmus von Dijkstra Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer

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

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 13 (6.6.2018) Graphenalgorithmen II Yannic Maus Algorithmen und Komplexität Repräsentation von Graphen Zwei klassische Arten, einen Graphen

Mehr

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

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008 Technische Universität München Fakultät für Informatik Lehrstuhl für Informatik 15 Computergraphik & Visualisierung Prof. Dr. Rüdiger Westermann Dr. Werner Meixner Wintersemester 2007/08 Lösungsblatt 9

Mehr

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

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung. Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 14. November 2007 1 / 22 2 / 22 Gliederung eulersche und semi-eulersche Graphen Charakterisierung eulerscher Graphen Berechnung eines

Mehr

Das Problem des Handlungsreisenden

Das Problem des Handlungsreisenden Seite 1 Das Problem des Handlungsreisenden Abbildung 1: Alle möglichen Rundreisen für 4 Städte Das TSP-Problem tritt in der Praxis in vielen Anwendungen als Teilproblem auf. Hierzu gehören z.b. Optimierungsprobleme

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

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

\ 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

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) WS 2016/17 Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16

Mehr

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Mayr)

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Mayr) WS 2011/12 Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Mayr) Dr. Werner Meixner Fakultät für Informatik TU München http://www14.in.tum.de/lehre/2011ws/ds/uebung/ 25. Januar 2012 ZÜ DS ZÜ XIII

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

Lineare Optimierung: Simplexverfahren Phase Ⅰ

Lineare Optimierung: Simplexverfahren Phase Ⅰ Lineare Optimierung: Simplexverfahren Phase Ⅰ Zur Erinnerung: Die Lineare Optimierungsaufgabe in Standardform lautet z = c T x + c 0 min (.) bei Ax = b, x 0. Revidiertes Simplexverfahren Mit dem Simplexverfahren

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 4 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 24. April 2019 [Letzte Aktualisierung: 24/04/2019,

Mehr

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. 8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.

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

Isomorphie von Bäumen

Isomorphie von Bäumen Isomorphie von Bäumen Alexandra Weinberger 23. Dezember 2011 Inhaltsverzeichnis 1 Einige Grundlagen und Definitionen 2 1.1 Bäume................................. 3 1.2 Isomorphie..............................

Mehr

Betriebliche Optimierung

Betriebliche Optimierung Betriebliche Optimierung Joachim Schauer Institut für Statistik und OR Uni Graz Joachim Schauer ( Institut für Statistik und OR Uni Graz Betriebliche ) Optimierung 1 / 21 1 Approximationsalgorithmen auf

Mehr

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. (a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,

Mehr

Algorithmen zur Visualisierung von Graphen

Algorithmen zur Visualisierung von Graphen Algorithmen zur Visualisierung von Graphen Kombinatorische Optimierung mittels Flussmethoden II Vorlesung im Wintersemester 2011/2012 10.11.2011 Orthogonale Zeichnungen II letztes Mal: Satz G Maxgrad-4-Graph

Mehr

Algorithmen und Datenstrukturen Heapsort

Algorithmen und Datenstrukturen Heapsort Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das

Mehr

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Approximationsalgorithmen für NP-harte Optimierungsprobleme Approximationsalgorithmen für NP-harte Optimierungsprobleme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 18 Was tun mit NP-harten Problemen? Viele praxisrelevante

Mehr

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza) WS 2013/14 Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza) Dr. Werner Meixner Fakultät für Informatik TU München http://www14.in.tum.de/lehre/2013ws/ds/uebung/ 22. Januar 2014 ZÜ DS ZÜ XIII

Mehr

Wintersemester 2004/ Februar 2005

Wintersemester 2004/ Februar 2005 Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim

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

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 16 Programm: Einführung

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

Relationen und DAGs, starker Zusammenhang

Relationen und DAGs, starker Zusammenhang Relationen und DAGs, starker Zusammenhang Anmerkung: Sei D = (V, E). Dann ist A V V eine Relation auf V. Sei andererseits R S S eine Relation auf S. Dann definiert D = (S, R) einen DAG. D.h. DAGs sind

Mehr

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Approximationsalgorithmen für NP-harte Optimierungsprobleme Approximationsalgorithmen für NP-harte Optimierungsprobleme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 4. Januar 2011 Berthold Vöcking, Informatik 1 () Vorlesung

Mehr

3.2 Generischer minimaler Spannbaum-Algorithmus

3.2 Generischer minimaler Spannbaum-Algorithmus 3.2 Generischer minimaler Spannbaum-Algorithmus Initialisiere Wald F von Bäumen, jeder Baum ist ein singulärer Knoten (jedes v V bildet einen Baum) while Wald F mehr als einen Baum enthält do wähle einen

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

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

Betriebswirtschaftliche Optimierung

Betriebswirtschaftliche Optimierung Institut für Statistik und OR Uni Graz 1 Approximationsalgorithmen auf metrischen Instanzen Minimum Spanning Tree Definition (Spannbaum) Ein Spannbaum in einem Graphen G = (V,E) ist ein kreisfreier Teilgraph

Mehr

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

Name:... Vorname:... Matr.-Nr.:... Studiengang:... Technische Universität Braunschweig Sommersemester 2013 IBR - Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christiane Schmidt Stephan Friedrichs Klausur Netzwerkalgorithmen 16.07.2013 Name:.....................................

Mehr

Aufgabe 1: Berechnen Sie für den in Abbildung 1 gegebenen Graphen den. Abbildung 1: Graph für Flussproblem in Übungsaufgabe 1

Aufgabe 1: Berechnen Sie für den in Abbildung 1 gegebenen Graphen den. Abbildung 1: Graph für Flussproblem in Übungsaufgabe 1 Lösungen zu den Übungsaufgaben im Kapitel 4 des Lehrbuches Operations Research Deterministische Modelle und Methoden von Stephan Dempe und Heiner Schreier Aufgabe 1: Berechnen Sie für den in Abbildung

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

Very simple methods for all pairs network flow analysis

Very simple methods for all pairs network flow analysis Very simple methods for all pairs network flow analysis obias Ludes 0.0.0. Einführung Um den maximalen Flusswert zwischen allen Knoten eines ungerichteten Graphen zu berechnen sind nach Gomory und Hu nur

Mehr

1 Pfade in azyklischen Graphen

1 Pfade in azyklischen Graphen Praktikum Algorithmen-Entwurf (Teil 5) 17.11.2008 1 1 Pfade in azyklischen Graphen Sei wieder ein gerichteter Graph mit Kantengewichten gegeben, der diesmal aber keine Kreise enthält, also azyklisch ist.

Mehr

2.4 Starke Zusammenhangskomponenten in Digraphen

2.4 Starke Zusammenhangskomponenten in Digraphen Starke Zusammenhangskomponenten Einleitung 2.4 Starke Zusammenhangskomponenten in Digraphen Definition 2.4.1 Zwei Knoten v und w in einem Digraphen G heißen äquivalent, wenn v w und w v gilt. Notation:

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphdurchläufe Maike Buchin 22. und 27.6.2017 Graphexploration Motivation: Für viele Zwecke will man den gesamten Graphen durchlaufen, zb. um festzustellen ob er (stark) zusammenhängt.

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

WS 2013/14. Diskrete Strukturen

WS 2013/14. Diskrete Strukturen WS 2013/14 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws1314

Mehr

Algorithmische Graphentheorie

Algorithmische Graphentheorie Algorithmische Graphentheorie Vorlesung 4: Suchstrategien Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. April 2017 HALBORDNUNG TOPOLOGISCHE ORDNUNG TOPOLOGISCHES

Mehr