Evakuierung und Netzwerkflüsse

Größe: px
Ab Seite anzeigen:

Download "Evakuierung und Netzwerkflüsse"

Transkript

1 Evakuierung und Netzwerkflüsse Diplomarbeit bei Prof. Dr. Martin Skutella vorgelegt von Ingo Schulz am Lehrstuhl für Diskrete Optimierung der Universität Dortmund Dortmund, 13. Oktober 2007

2

3 Für meinen Vater Wolfgang

4

5 Einleitung Diese Diplomarbeit befasst sich mit dem Lösen von Evakuierungsproblemen. Dabei können wir uns zunächst ein Evakuierungsproblem vorstellen, wie es in der Realität vorkommen kann. Ein sehr gutes Beispiel für solch ein Problem ist die Flugzeugevakuierung, bei der es darum geht, dass in einem gewissen Zeitrahmen alle Passagiere ihr Flugzeug verlassen haben müssen. Ein Auftraggeber könnte uns einen Zeitrahmen nennen und von uns verlangen, einen Evakuierungsplan zu entwickeln, so dass alle Passagiere innerhalb des Zeitrahmens das Flugzeug verlassen können. Was ist aber, wenn wir feststellen, dass der Zeitrahmen nicht ausreichend ist. Der Auftraggeber könnte dann unser Problem vereinfachen und verlangen, dass wir einen Plan entwickeln, so dass so viele Passagiere wie möglich zu diesem Zeitrahmen ihr Flugzeug verlassen können. Wie so oft im Leben können sich Aufträge in letzter Minute ändern. Z. B. kann der Auftraggeber einen kleineren Zeitrahmen vorschreiben, bzgl. dessen wir einen Plan aufstellen müssen. Müssen wir unseren alten Plan zu dem alten Zeitrahmen verwerfen? Wenn wir das Problem mit Mitteln aus der diskreten Mathematik bzw. theoretischen Informatik modellieren, die wir in dieser Diplomarbeit vorstellen werden, und den ersten Plan geschickt erstellt haben, so lautet die Antwort: nein. Wir übersetzen das Problem in die Sprache der Flusstheorie und modellieren das Flugzeug mit Netzwerken. Das mathematische Problem, dessen Lösung uns hier Abhilfe schafft, ist das sogenannte Earliest Arrival Transshipment Problem, welches wir in dieser Arbeit definieren werden und für welches wir exakte und heuristische Lösungsmöglichkeiten aufzeigen. Das erste Kapitel gibt eine Übersicht über die nötigen Grundlagen um diese mathematischen Begriffe zu verstehen. Wir werden in diesem Kapitel Graphen definieren und einige wichtige grundlegende Begriffe hervorheben. Dazu werden wir auch grundlegende Probleme definieren und dabei Lösungen in Form von Algorithmen präsentieren. Für Details zur Komplexität von Algorithmen verweisen wir auf [22] von Ingo Wegener. Dort wird auch die Eingabegröße eines Algorithmus genau definiert, in dessen Abhängigkeit wir die Laufzeit von Algorithmen messen werden. In der Eingabe haben wir meist Graphen und gewisse Zahlen. Unsere Algorithmen arbeiten streng polynomiell, wenn die Laufzeit sich durch ein Polynom, welches unabhängig von den eingegebenen Zahlen ist, in Abhängigkeit von der Anzahl der Knoten und Kanten abschätzen lässt. Unsere Algorithmen arbeiten pseudopolynomiell, wenn die Laufzeit polynomiell von der Anzahl der Knoten und Kanten und zusätzlich von der größten dargestellten Zahl der Eingabe abhängt. Wenn aber die Laufzeit polynomiell v

6 vi von der Größe des Graphens und zusätzlich nur von der Eingabelänge der größten vorkommenden Zahl abhängt, dann haben wir einen polynomiellen Algorithmus. Ferner geben wir im ersten Kapitel eine Einleitung in die Flusstheorie statischer sowie dynamischer Netzwerke und werden uns dort mit klassischen Flussproblemen beschäftigen. Am Ende des Kapitels schlagen wir mit dem Instrument des zeitexpandierten Graphen eine Brücke zwischen der statischen und dynamischen Flusstheorie. Dieser Graph hilft uns gewisse dynamische Probleme auf statische Probleme zu reduzieren. Das zweite Kapitel beschäftigt sich mit dem Evakuierungsproblem, dem Problem eine kleinste Zeitschranke zu finden, innerhalb welcher eine gewisse Anzahl von Flusseinheiten von gegebenen Quellen zu einer Senke transportiert werden können. Wir zeigen auf, wie man mittels dynamischer Netzwerke dieses Problem definiert und wir geben an, wie bisher dieses Problem behandelt wurde und wie es exakt und approximativ gelöst werden kann. Wir definieren Flüsse, welche die Eigenschaft haben, dass sie zu jedem Zeitpunkt die bis dahin maximal mögliche Anzahl an Flusseinheiten von einer Quelle zu einer Senke transportieren können. Wir beweisen die Existenz dieser Flüsse und geben exakte und approximative Lösungsmöglichkeiten an. Schließlich untersuchen wir das Problem, welches wir am Anfang motiviert haben. Wenn wir ein Netzwerk mit mehreren Quellen gegeben haben und vorab bekannt ist, wieviele Flusseinheiten von diesen Quellen in eine Senke fließen müssen, dann gibt es ebenfalls Flüsse, die zu jedem Zeitpunkt von keinem anderen Fluss in der Anzahl der bis dahin transportierten Flusseinheiten geschlagen werden können. Diese Flüsse lösen das am Anfang motivierte Earliest Arrival Transshipment Problem und lösen insbesondere das Evakuierungsproblem, wie es formal in der Mathematik und Informatik bekannt ist. Wir beweisen hier ebenfalls die Existenz dieser Flüsse und geben eine exakte Lösungsmöglichkeit an. Im letzten Kapitel stellen wir heuristische Lösungsansätze des Earliest Arrival Transshipment Problem vor. Heuristiken sind in der Praxis interessant geworden, da bisher bekannte exakte Lösungsmöglichkeiten sehr unpraktikabel sind, d. h. bei einer sehr großen Instanz des Problems können wir nicht mit einer praktisch befriedigenden Laufzeit rechnen. Die Heuristiken dagegen sind einfach zu implementieren und besitzen eine praktisch schnelle Laufzeit. Wir werden drei Heuristiken beschreiben, welche im Rahmen der Flugzeugevakuierung entwickelt wurden. Wir werden sie dann auf einigen ausgewählten Instanzen, welche anhand von Flugzeugsitzplänen modelliert wurden, anwenden. Wir vergleichen die Lösungen der Heuristiken untereinander und jeweils mit der exakten Lösung und geben eine Übersicht über die Qualität der berechneten Lösungen.

7 vii Danksagung Ich möchte mich an dieser Stelle sehr bei meinen Eltern Renate und Wolfgang bedanken, die mir das Studium ermöglicht haben und mich in jeder erdenklichen Situation unterstützt haben. Schade ist nur, dass mein Vater die Vollendung dieser Arbeit nicht mehr erleben kann. Ich widme ihm daher diese Arbeit. Bei meiner Schwester Silvia bedanke ich mich, da sie mich ebenfalls zu jedem Zeitpunkt auf vielfältigste Weise unterstützt hat. Weiterhin möchte ich mich bei meiner Freundin Katrin Thadeusz, sowie bei den übrigen Mitgliedern der Familie Thadeusz bedanken, da sie mich einerseits sehr gut unterstützt haben, aber auch deswegen, dass, wenn es nötig war, sie mich von dieser Arbeit zum Ausgleich abgelenkt haben. Für die fachliche Unterstützung möchte ich mich sehr bei meinem Betreuer Martin Skutella und seiner ehemaligen Assistentin Nadine Baumann bedanken. Weiterhin möchte ich mich für konstruktive Ratschläge bei Daniel Dressler, Martin Gross, Katrin Kosfeld, Britta Peis, Daniel Plümpe, Joachim Reichel, Thomas Rohkämper und Madeleine Theile bedanken.

8

9 Inhaltsverzeichnis 1 Graphentheoretische Grundlagen Grundlegende Definitionen Kürzeste Pfade Flussprobleme Statische maximale s-t-flüsse statische Minimalkostenflüsse dynamische Flussprobleme Zeitexpandierte Graphen Evakuierungsprobleme Einführung Das Quickest Transshipment Problem Die Earliest Arrival Eigenschaft und dynamische Flüsse Earliest Arrival Flow Probleme mit einer Quelle und einer Senke Existenz Verallgemeinerte Pfadzerlegungen Exakte Algorithmen Approximationsalgorithmen Earliest Arrival Transshipments Existenz Ein exakter Algorithmus für das Earliest Transshipment Problem Heuristiken Die kürzeste Wege Heuristik Die Alternativausgang Unterheuristik Die Ausgangentlastungs-Heuristik Die kürzeste Fahrzeit Heuristik Ein kleines Beispiel Eine Pfadzerlegung eines Earliest Arrival Transshipments Anwendung der kürzesten Wege Heuristik Anwendung der Ausgangentlastungs-Heuristik Anwendung der kürzesten Fahrzeit Heuristik Die Heuristiken in der Praxis Ergebnisse des exakten Algorithmus Ergebnisse der Heuristiken ix

10 x Inhaltsverzeichnis Weitere Instanzen Zusammenfassung und Ausblick Liste der Algorithmen 103 Literaturverzeichnis 105 Erklärung 107 A Arrival Pattern A-1

11 Kapitel 1 Graphentheoretische Grundlagen Die im weiteren Verlauf dieser Diplomarbeit vorgestellten Probleme benötigen in ihren Instanzen den Begriff des Graphen. Dieser Begriff, sowie weitere dazugehörige grundlegende Problemstellungen und Lösungsmethoden werden in diesem Kapitel, welches sich hauptsächlich nach dem Buch von Korte und Vygen [15] richtet, behandelt. Zunächst werden die wichtigsten Definitionen und Notationen eingeführt. In weiteren Abschnitten werden die wichtigsten Grundprobleme eingeführt. 1.1 Grundlegende Definitionen Definition 1.1. Seien V, A endliche Mengen und ψ : A {X V : X = 2} sowie φ : A {(v, w) V V : v w} Abbildungen. (1) Das Tripel (V, A, ψ) heißt ungerichteter Graph. (2) Das Tripel (V, A, φ) heißt gerichteter Graph oder kurz Digraph. (3) Ein Element v V heißt Knoten oder Ecke. (4) Ein Element a A wird als Kante bezeichnet. Definition 1.2. Seien G = (V, A, ψ) ein Graph und e sowie e A Kanten mit e e. Gilt ψ(e) = ψ(e ), so heißen e und e parallel. Graphen ohne parallele Kanten werden schlicht oder einfach genannt. Bemerkungen 1.3. (1) Im Folgenden identifizieren wir in einem Graphen G = (V, A, ψ) einfachheitshalber die Kanten mit ihren Bildern bzgl. ψ, so dass wir von nun an G = (V, A) schreiben mit A {X V : X = 2}, wenn G ungerichtet ist bzw. A V V, sofern G gerichtet ist. (2) Wenn im Folgenden ein Graph G nicht näher spezifiziert wird, wird G = (V, A) angenommen und n := V und m := E gesetzt. Definition 1.4. Seien G = (V, A) und e = {v, w} bzw. e = (v, w) eine Kante. Dann ist v ein Nachbar von w (und umgekehrt) und die Knoten v und w sind adjazent und heißen Endpunkte von e. Endpunkte einer Kante e A werden als inzident zu e bezeichnet. Im gerichteten Fall sagen wir, dass die Kante e den Knoten v verlässt und zum Knoten w führt. Kanten die zumindest einen Endpunkt gemeinsam haben, heißen adjazent. 1

12 2 Graphentheoretische Grundlagen Um später Sachverhalte einfacher darzustellen, führen wir noch häufig vorkommende Notationen ein. Definition 1.5. Sei G = (V, A) ein Graph und X V. (1) Wenn G ungerichtet ist, setzen wir δ(x) := {{v, w} A : v X, w V \ X} für die Menge aller Kanten, die zu einem Knoten außerhalb von X führen. Falls X={v} gilt setzen wir δ(v) := δ({v}). Werden in einem Sachverhalt noch andere Graphen betrachtet, ergänzen wir in der Schreibweise den Namen des Graphen und schreiben δ G (X) statt δ(x). (2) Sei G ungerichtet. Ein Schnitt (engl. cut) ist eine Kantenmenge C A zu welcher es eine Knotenmenge X gibt, so dass C = δ(x) gilt. (3) Wenn G gerichtet ist, setzen wir δ + (X) := {(v, w) A : v X, w V \ X} für die Menge aller Kanten, welche aus X herausführen, und δ (X) := {(w, v) A : v X, w V \ X} für die Menge aller Kanten, welche nach x hineinführen. Werden in einem Sachverhalt noch andere Graphen betrachtet, ergänzen wir in der Schreibweise den Namen des Graphen und schreiben δ + G (X) statt δ+ (X) und δ G (X) statt δ (X). (4) Seien G gerichtet und s, t V mit s t. Ein gerichteter Schnitt ist eine nichtleere Kantenmenge C A zu welcher es eine Knotenmenge X gibt, so dass C = δ + (X) gilt. Ein s-t Schnitt ist eine Kantenmenge C A zu zu welcher es eine Knotenmenge X gibt, so dass C = δ + (X), s X und t / X gelten. (5) Sei c : A R eine Funktion. Für F A setzen wir c(f ) := e F und erweitern damit c zu einer Funktion c : 2 A R c(e) (6) Seien G gerichtet und c : A R und s, t V mit s t zwei Ausgezeichnete Knoten. Dann wird das Tupel (G, c, s, t) als Netzwerk bezeichnet. Bemerkungen 1.6. Die Funktion c aus Punkt (6) der Definition 1.5 wird in diesem Abschnitt, sowie im folgenden Abschnitt über kürzeste Wege als Kosten- oder Längenfunktion betrachtet und auch als solche bezeichnet. In späteren Abschnitten betrachten wir Netzwerke der Form (G, u, s, t), in welchen wir u als Kapazitätsfunktion bezeichnen werden, welche eine obere Schranke für eine später gesuchte Funktion auf den Kanten darstellen soll.

13 1.1 Grundlegende Definitionen 3 Mit Hilfe der letzten Definition können wir nun das erste in dieser Diplomarbeit behandelte Graphenproblem definieren, das sogenannte MIN CUT -Problem auf Netzwerken: MIN CUT Problem Instanz: Ein Netzwerk N = (G, c, s, t) Gesucht: Ein s-t-schnitt mit minimalen Kosten, d. h. gesucht ist eine Menge X V mit s X und t V \X welche den Ausdruck c(δ + (X)) minimiert. Dieses Problem wird an dieser Stelle zunächst noch nicht untersucht, da es mit einem weiteren wichtigen Problem in der Flusstheorie zusammenhängt, welches erst später in dieser Diplomarbeit im Rahmen der Flusstheorie behandelt wird. Bis jetzt haben wir Graphen und einige Bezeichnungen und Notationen über Lageverhältnisse definiert. Im weiteren Verlauf werden Pfade in Graphen eine wichtige Rolle spielen. Um diese zu definieren brauchen wir zunächst den Begriff des Teilgraphen. Definition 1.7. Sei G = (V, A) ein Graph. (1) Ein Graph G = (V, A ) heißt Teilgraph von G, falls V V und A A gilt. Wir sagen in diesem Fall, dass der Graph G den Graphen G enthält. (2) Seien V V und A := {(v, w) oder {v, w} A : v, w V }. G[V ] := G = (V, A ) heißt der von V induzierte Teilgraph. Nun können wir Wege und Pfade definieren. Definition 1.8. Seien G = (V, A) ein Graph und W = (e 1,..., e p ) mit e k = (v k, v k+1 ) oder e k = {v k, v k+1 } (1 k n 1) eine Folge von Kanten in G. (1) W heißt Weg, falls e i e j für alle 1 i < j p gilt. (2) W heißt geschlossener Weg, wenn zu (1) zusätzlich e p = e 1 gilt. (3) Der Teilgraph P = ({v 1,..., v p+1 }, {e 1,..., e p }) von G heißt Pfad, falls v i v j für alle 1 i < j p + 1 gilt. P nennt man auch Pfad von v 1 nach v p+1 oder kurz v 1 -v p+1 -Pfad. (4) Sei P = (V P, A P ) ein v-w-pfad. Dann bezeichnet P [x,y] den Teilgraphen von P welcher ein x-y-pfad ist. (5) Der Teilgraph P = ({v 1,..., v p+1 }, {e 1,..., e p }) von G heißt Kreis, falls v i v j für alle 1 i < j p und v 1 = v p+1 gilt.

14 4 Graphentheoretische Grundlagen Mit Hilfe des Pfadbegriffes kann man nun die Eigenschaft des Zusammenhangs in Graphen erklären. Im weiteren Verlauf werden die untersuchten Graphen immer als zusammenhängend vorausgesetzt. Definition 1.9. (1) Ein ungerichteter Graph G = (V, A) heißt zusammenhängend, wenn es für alle v, w V mit v w einen v-w-pfad gibt. (2) Ein gerichteter Graph G = (V, A) heißt zusammenhängend, wenn der zu G zugrundeliegende ungerichtete Graph G (G := (V, A ) mit {v, w} A, falls (v, w) A oder (w, v) A gilt) zusammenhängend ist. (3) Ein gerichteter Graph G = (V, A) heißt stark zusammenhängend, wenn es für alle v, w V mit v w einen v-w-pfad und einen w-v- Pfad gibt. 1.2 Kürzeste Pfade Kürzeste Pfade in Graphen zu bestimmen ist ein weiteres grundlegendes Problem in der Graphentheorie. Dieses Problem tritt häufig auf, insbesondere in den später vorgestellten Heuristiken. Das Problem, in einem Graphen zwischen zwei Knoten den kürzesten Pfad zu bestimmen, ist wie folgt definiert: SHORTEST PATH PROBLEM Instanz: Ein Netzwerk N = (G, c, s, t) Gesucht: Ein kürzester s-t-pfad mit minimaler Länge, d. h. gesucht ist ein Pfad P = (V P, A P ) von s nach t, welcher den Ausdruck c(a P ) minimiert, oder die Antwort, dass es keinen Pfad von s nach t gibt. Im Falle einer beliebigen Kostenfunktion c ist lt. [15] das Problem kürzeste Pfade zu finden i. A. ein schweres Problem. Wenn wir aber zusätzliche Voraussetzungen an die Kostenfunktion stellen, z. B. dass c nicht negativ ist, ist das Problem praktikabel und es existieren Algorithmen, von welchen zwei im Folgenden vorgestellt werden. Bei den später betrachteten Graphen, werden wir ausschließlich konservative Funktionen auf der Kantenmenge betrachten. Definition Seien G = (V, A) ein Graph und c : A R eine Funktion. c heißt konservativ, wenn es keinen Kreis in G gibt mit negativem Gewicht, d. h. es gibt keinen Kreis C = (V C, A C ) in G mit c(a C ) < 0. Der erste hier vorgestellte Algorithmus, welcher kürzeste Pfade von einem ausgezeichneten Knoten zu allen anderen Knoten im Graphen berech-

15 1.2 Kürzeste Pfade 5 net, ist der Algorithmus von Dijkstra. Er basiert auf dem Optimalitätsprinzip von Bellman, welches besagt, dass optimale Lösungen sich ausschließlich aus optimalen Teillösungen zusammensetzen. Auf das kürzeste Wege Problem bezogen besagt es, falls P = (V P, A P ) ein kürzester s-t-pfad ist, so ist auch jeder Pfad P [s,v] mit v V P ein kürzester s-v-pfad. Dieses Prinzip ist die Grundlage der dynamischen Programmierung, welche im Algorithmus von Dijkstra und einigen anderen kürzeste-wege-algorithmen angewendet wird. Eine gute Einführung zur dynamischen Programmierung kann man in [23] finden. Theorem 1.11 (Optimalitätsprinzip von Bellman[15]). Seien G = (V, A) ein gerichteter Graph und c : A R eine konservative Kostenfunktion. Ferner seien k N, s, w V und P = (V P, A P ) ein s-w-pfad mit A P k Kanten und es gelte c(a P ) c(a P ) für alle s-w-pfade P = (V P, A P ) mit A P k. Dann ist der Pfad P [s,v] für alle v V P \{w} unter allen Pfaden mit höchstens k 1 Kanten kostenminimal, d. h. für alle s-v-pfade P = (V P, A P ) mit A P k 1 gilt c(a P[s,v] ) c(a P ). Theorem 1.12 ([15]). Der Algorithmus von Dijkstra arbeitet korrekt und hat eine Laufzeit von O(n 2 ). Durch eine geschickte Wahl der Datenstrukturen, kann er aber auch eine Laufzeit von O(m + n log n) haben. Der nächste kürzeste Wege Algorithmus, welcher nun vorgestellt wird, ist der Algorithmus von Moore-Bellman-Ford. Dieser erwartet wie der Algorithmus von Dijkstra einen Graphen G, eine Kostenfunktion c und einen ausgezeichneten Knoten s, von welchem aus alle kürzesten Wege zu allen anderen Knoten berechnet werden. Der Vorteil des Algorithmus von Moore- Bellman-Ford ist der, dass c konservativ sein darf. Auch dieser Algorithmus basiert auf der dynamischen Programmierung. Theorem 1.13 ([15]). Der Algorithmus von Moore-Bellman-Ford arbeitet korrekt und hat eine Laufzeit von O(n m). Mit Hilfe des Algorithmus von Moore-Bellman-Ford läßt sich auch überprüfen, ob eine gegebene Kostenfunktion konservativ ist. Dies funktioniert mit dem Nachweis zulässiger Potentialfunktionen. Definition Sei G = (V, A) ein gerichteter Graph und c : A R eine Kostenfunktion. Weiterhin sei eine Funktion π : V R gegeben. (1) Bezüglich c und π nennen wir die Funktion c π : A R mit c π ((x, y)) := c((x, y)) + π(x) π(y) reduzierte Kosten der Kante (x, y). (2) π heißt zulässiges Potential, wenn die reduzierten Kosten aller Kanten nichtnegativ sind, d. h. es gilt c π (e) 0 für alle Kanten e A.

16 6 Graphentheoretische Grundlagen input : Ein Digraph G = (V, A), eine Kostenfunktion c : A R + und ein Knoten s V output : l(v) und p(v) für alle v V : l(v) für alle v V bezeichnet die Länge eines kürzesten s-v Pfades bzgl. c welcher aus einem kürzesten s-p(v)-pfad und der Kante (p(v), v) besteht. Somit bezeichnet p(v) den Vorgängerknoten auf einem kürzesten s-v Pfad. Falls es keinen s-v-pfad gibt, wird l(v) = zurückgeliefert und p(v) bleibt unbestimmt. l(s) := 0; R := ; foreach v V \ {s} do l(v) := ; end repeat Bestimme v V \ R mit l(v) = min l(w); w V \R R := R {v}; foreach w V \ R mit (v, w) A do if l(w) > l(v) + c((v, w)) then l(w) := l(v) + c((v, w)); p(w) := v; end end until V = R ; Algorithmus 1.1 : Der Algorithmus von Dijkstra Theorem 1.15 ([15]). Seien G = (V, A) ein gerichteter Graph und c : A R eine Kostenfunktion. (1) Die Kostenfunktion c ist genau dann konservativ, wenn es bzgl. c ein zulässiges Potential gibt. (2) Mit Hilfe des Moore-Bellman-Ford Algorithmus kann man in O(nm) Zeit überprüfen, ob es entweder einen negativen Kreis oder ein zulässiges Potential gibt. 1.3 Flussprobleme In diesem Abschnitt stellen wir eine weitere Klasse von Problemen auf Graphen vor, nämlich die Klasse der Flussprobleme. Gegeben sei ein Netzwerk N = (G, u, s, t). Ein Fluss ist i. A. eine Abbildung, die jeder Kante einen positiven Wert zuweist und zusätzlich einige wichtige Eigenschaften erfüllen muss. Interpretiert man diese Abbildung als Flusseinheiten, welche sich

17 1.3 Flussprobleme input : Ein Digraph G = (V, A), eine konservative Kostenfunktion c : A R und ein Knoten s V output : l(v) und p(v) für alle v V : l(v) für alle v V bezeichnet die Länge eines kürzesten s-v Pfades bzgl. c welcher aus einem kürzesten s-p(v)-pfad und der Kante (p(v), v) besteht. Somit bezeichnet p(v) den Vorgängerknoten auf einem kürzesten s-v Pfad. Falls es keinen s-v-pfad gibt, wird l(v) = zurückgeliefert und p(v) bleibt unbestimmt. l(s) := 0; foreach v V \ {s} do l(v) := ; end for i := 1 n 1 do foreach (v, w) A do if l(w) > l(v) + c((v, w)) then l(w) := l(v) + c((v, w)); p(w) := v; end end end Algorithmus 1.2 : Der Algorithmus von Moore-Bellman-Ford in den Kanten befinden, so sprechen wir von einem statischen Fluss. Interpretiert man diese Werte als Flussraten und fügt noch eine zusätzliche Zeitkomponente in die Instanz ein, so haben wir es mit einem dynamischen Fluss zu tun. Zunächst behandeln wir statische Flussprobleme und werden den Flussbegriff genauer spezifizieren: Definition Sei N = (G, u, s, t) ein Netzwerk. (1) Ein Fluss ist eine Abbildung f : A R +, welche die Bedingung f(e) u(e) für alle e A erfüllt. Man bezeichnet hier u als Kapazitätsfunktion. (2) Ein Fluss f erfüllt die Flusserhaltungseigenschaft im Knoten v V falls, ex f (v) := f(e) f(e) = 0 gilt. e δ (v) e δ + (v) (3) Ein Fluss f heißt Zirkulation, falls ex f (v) = 0 für alle v V gilt.

18 8 Graphentheoretische Grundlagen (4) Ein Fluss f heißt s-t-fluss, falls ex f (s) < 0, ex f (t) > 0 und in allen anderen Knoten die Flusserhaltungseigenschaft, also ex f (v) = 0 für alle v V \ {s, t} gilt. Der Flusswert (oder kurz: Wert) eines s-t-flusses f wird mit val(f) := ex f (s) bezeichnet. Die im Folgenden betrachteten Flussalgorithmen arbeiten auf Graphen, welche gegenüber dem Ausgangsgraphen des Netzwerks leicht modifiziert bzw. erweitert werden. Es handelt sich dabei um die Residualgraphen. Definition Seien G = (V, A) ein gerichteter Graph und u : A R + eine Kapazitätsfunktion. (1) G ist der Graph, der entsteht, indem für alle e = (v, w) A eine Rückwärtskante e := (w, v) zusätzlich eingefügt wird. In diesem Fall heißt e die Rückwärtskante der Kante e, d. h. G := (V, A { e : e A}). Kanten e A werden zur Verdeutlichung auch Vorwärtskanten genannt. (2) Sei f ein Fluss. Dann heißt die Funktion u f : A G R + mit u f (e) := u(e) f(e) und u f ( e ) := f(e) für alle e A Residualkapazitätsfunktion und weist jeder Kante in G eine Residualkapazität zu. (3) Der Residualgraph von G bzgl. des Flusses f ist der Graph G f := (V, A Gf ) := (V, {e A G : u f (e) > 0}) (4) Seien f ein Fluss, γ > 0 und P = (V P, A P ) ein Pfad in G f. Augmentieren von f entlang P um γ bezeichnet folgenden Vorgang, durch welchen man einen neuen Fluss f erhält, sofern 0 f (a) u(a) für alle a A gilt: f(a) a, a / A P f (a) := f(a) + γ a A P, a / A P f(a) γ a AP, a / A P (5) Sei f ein s-t-fluss in G. Ein f-augmentierender Pfad bzw. flussvergrößender Pfad ist ein s-t-pfad in G f Statische maximale s-t-flüsse Mit Hilfe der vorangegangenen Definitionen können wir uns nun dem ersten klassischen Flussproblem widmen, dem MAX FLOW Problem. Es besteht darin bei einem gegebenen Netzwerk einen Fluss zu finden, dessen Flusswert maximal ist.

19 1.3 Flussprobleme 9 MAX FLOW Problem Instanz: Ein Netzwerk N = (G, u, s, t) Gesucht: Ein s-t-fluss mit maximalem Flusswert, d. h. gesucht ist ein s-t-fluss f mit val(f) val(f ) für alle s-t-flüsse f. Dieses Problem kann mit Hilfe der Linearen Optimierung gelöst werden. In der Theorie der linearen Optimierung ist das MAX FLOW Problem zu dem MIN CUT Problem dual, beide besitzen also im Optimalitätsfall den gleichen Lösungswert. Diese Tatsache wird später hier durch das MAX FLOW - MIN CUT Theorem festgestellt, welches ohne Lineare Programmierung bewiesen wird. Für weitere Details verweisen wir auf [15]. Die im Folgenden betrachteten Algorithmen kommen ohne lineare Programmierung aus und sind kombinatorisch. Bevor wir den ersten Algorithmus vorstellen, halten wir noch einige Tatsachen fest. Theorem 1.18 ([15]). Sei N = (G, u, s, t) ein Netzwerk. (1) Der Nullfluss f 0 ist ein s-t-fluss (2) Seien f ein s-t-fluss und P = (V P, A P ) ein f-augmentierender Pfad. Ferner sei γ > 0 gegeben mit γ = min e AP u f (e). Dann erhält man durch Augmentieren um γ entlang P einen s-t-fluss f mit val(f ) = val(f) + γ. (3) Jeder s-t-fluss f ist durch die Kapazität eines beliebigen s-t-schnittes beschränkt, d. h. für jeden s-t-schnitt C gilt val(f) u(c). Weiterhin benötigen wir ein Kriterium um maximale Flüsse zu erkennen. Dieses lautet wie folgt: Theorem 1.19 ([15]). Sei f ein s-t-fluss. Dann ist f genau dann maximal, wenn es keinen f-augmentierenden Pfad gibt. Mit dem Beweis von Theorem 1.19 wurde auch folgender wichtiger Sachverhalt in der Flusstheorie bewiesen Theorem 1.20 (Max-Flow-Min-Cut Theorem). Sei (G, u, s, t) ein Netzwerk. Die Kapazität eines minimalen s-t-schnittes entspricht dem Flusswert eines maximalen s-t-flusses. Wir haben bis jetzt gesehen wie das Max Flow Problem mit dem Min Cut Problem zusammenhängt. Nun sehen wir den ersten Algorithmus, welcher maximale Flüsse berechnet. Der erste Algorithmus den wir vorstellen ist der Algorithmus von Ford & Fulkerson. Dieser beginnt mit dem Nullfluss

20 10 Graphentheoretische Grundlagen und vergrößert diesen durch Augmentieren entlang beliebiger Flussvergrößender Pfade. Findet der Algorithmus keinen solchen Pfad mehr, bricht der Algorithmus mit einem s-t-fluss ab, welcher nach Theorem 1.19 maximal ist input : Ein Netzwerk N = (G, u, s, t). output : Einen maximalen s-t-fluss f. foreach e A do f(e) := 0; end repeat Bestimme einen f-augmentierenden Pfad P = (V P, A P ).; if P then bestimme γ := min e AP u f (e); augmentiere f um γ entlang P ; else γ := 0; end until γ = 0 ; Algorithmus 1.3 : Der Algorithmus von Ford & Fulkerson Theorem 1.21 ([15]). Sei N = (G, u, s, t) ein Netzwerk, wobei die Kapazitäten nur ganzzahlig sind. Dann arbeitet der Algorithmus von Ford & Fulkerson korrekt und terminiert. Insbesondere ist der berechnete Fluss ganzzahlig. Beweis. Der Algorithmus startet mit dem Nullfluss, welcher nach Theorem 1.18(1) zulässig ist. Jedes Augmentieren vergrößert den Flusswert um mindestens eine Flusseinheit, da die Kapazitäten ganzzahlig sind. Da der Flusswert durch e δ + (s) u(e) beschränkt ist, finden maximal genausoviele Augmentierungen statt. Daher terminiert der Algorithmus, sobald es keinen augmentierenden Pfad im Residualgraphen gibt. Der berechnete s-t-fluss ist ganzzahlig nach Theorem 1.19 maximal. Dieser Algorithmus ist i. A. kein Polynomialzeitalgorithmus, d. h. in Abhängigkeit der Eingabelänge (hier: Kodierungslänge der größten vorkommenden Kapazität) kann der Algorithmus exponentiell viele Augmentierungen durchführen. Diese Tatsache beleuchtet die Abbildung 1.1. Ausserdem terminiert der Algorithmus i. A. nicht, wenn das Netzwerk über irrationale Kapazitäten verfügt.

21 1.3 Flussprobleme 11 M 1 M M 2 Abbildung 1.1: In diesem kleinen Netzwerk kann der Algorithmus M Augmentierungen benötigen, wenn der berechnete augmentierende Pfad jeweils die Kante (1, 2) bzw. dessen Residualkante enthält. Man beachte dass die Eingabelänge von M nur log M beträgt. M statische Minimalkostenflüsse In diesem Abschnitt betrachten wir weitere grundlegende Graphprobleme, die sogenannten Minimalkostenflussprobleme in gerichteten Graphen, auf die wir später im Rahmen der dynamischen Flüsse zurückgreifen werden. Hier geht es darum, Flüße zu bestimmen, die kostenminimal sind. Dabei ergeben sich die Kosten einer Kante aus dem Produkt des Flusswertes und einer vorher gegebenen Kostenfunktion auf den Kanten. Die Gesamtkosten ergeben sich durch die Summe aller Kantenkosten. Desweiteren müssen gewisse Anforderungen, die an die Knoten gestellt werden, erfüllt sein. Um das Problem präziser formulieren zu können, führen wir zunächst b-flüsse ein. Definition Seien G = (V, A) ein gerichteter Graph, u : A R + eine Kapazitätsfunktion auf den Kanten und b : V R eine Funktion mit v V b(v) = 0. Ein b-fluss ist ein Fluss f mit e δ + (v) f(e) e δ (v) f(e) = b(v) für alle v V. Die Funktion b mit diesen Eigenschaften wird auch Balancefunktion genannt. Das erste Problem was sich nun ergibt ist nun herauszufinden, ob solch ein b-fluss existiert. Um festzustellen, ob zu einem Graphen mit einer gegebenen Kapazitäts- und Balancefunktion ein b-fluss existiert, kann man folgendes Kriterium überprüfen: Theorem Sei G = (V, A) ein gerichteter Graph, u : A R + eine Kapazitätsfunktion und b : V R eine Balancefunktion auf den Knoten mit b(v) = 0. Ein b-fluss existiert genau dann, wenn für alle X V gilt: v V e δ + (X) u(e) v X b(v). Beweis. Sei P := {v V : b(v) > 0} und N := {v V : b(v) < 0}. Sind beide Mengen leer, so ist stets der Nullfluss ein b-fluss. Betrachten wir nun den Graphen G der aus G entsteht, indem man zwei neue Knoten s und

22 12 Graphentheoretische Grundlagen t einfügt und neue Kanten (s, v) für alle v P und (v, t) für alle v N einfügt. Hierbei definieren wir die Kapazität der Kanten von der Form (s, v) mit u(s, v) := b(v) und die Kanten (v, t) mit u(v, t) := b(v). Wir berechnen dann einen maximalen s-t Fluss f auf G. Ist val(f ) = e δ + (s) u(e) dann erhalten wir einen zulässigen b-fluss f indem wir f auf G bzw. A einschränken, da alle neu eingefügten Kanten nach Konstruktion saturiert sind, d. h. sie haben Residualkapazität Null. Somit sind die Balancebedingungen an allen Knoten erfüllt. Nachdem MaxFlow MinCut Theorem hat nun jeder s-t-schnitt in G eine Kapazität von mindestens val(f ). Sei nun X V. Enthält X keine Knoten aus P, so gilt e δ + G (X) u(e) 0 v X b(v). Sei nun C = X P. Nun gilt u(δ + G (s X)) e δ + u(e) = val(f ). G (s) Weiter gilt: u(δ + G (s X) = u(δ + G (X)) + v P \X = u(δ + G (X)) v X N = u(δ + G (X)) + val(f ) v X b(v) = u(δ + G (X)) + val(f ) v C b(v) + val(f ) v C b(v). b(v) b(v) Wegen u(δ + G (s X)) val(f ) 0 gilt daher u(δ + G (X)) v X b(v) 0 bzw. u(δ + G (X)) v X b(v). Ist andererseits val(f ) < e δ + (s) u(e) so existiert kein b-fluss auf G, da sich dieser sonst auf G zu einem s-t-fluss erweitern liesse, wobei dessen Wert den von f übertreffen würde. Weiterhin muss es nach dem MaxFlow MinCut Theorem eine Menge X V geben mit u(δ + G (s X)) = val(f ). Es gilt: u(δ + G (s X)) = b(v) + = v P \X e δ + (s) u(e) v C > val(f ) v C e δ + G (X) u(e) b(v) + u(δ + G (X)) b(v) + u(δ + G (X)) = u(δ + G (X)) + val(f ) v X b(v). v X N v X N b(v) b(v) Es folgt 0 > u(δ + G (X)) v X b(v) und daher gilt schließlich u(δ+ G (X) < v X b(v). Wenn die Frage geklärt ist, ob ein b-fluss existiert, stellt sich die Aufgabe, einen b-fluss mit minimalen Kosten zu ermitteln, d. h. einen b-fluss f

23 1.3 Flussprobleme 13 zu bestimmen, der den Ausdruck e A c(e)f(e) minimiert, wobei c die gegebene Kostenfunktion ist. Genauer betrachten wir nun folgendes Problem: MINIMUM COST FLOW PROBLEM Instanz: Ein gerichteter Graph G, eine Kapazitätsfunktion u : A R + eine Balancefunktion b : V R mit v V b(v) = 0 und eine Kostenfunktion c : A R Gesucht: ein b-fluss der den Ausdruck c(f) := e A c(e)f(e) minimiert oder die Ausgabe, dass kein b-fluss existiert. Abkürzend notieren wir die o. g. Instanz als 4-Tupel (G, u, b, c). Wir weisen darauf hin, dass es in Instanzen auch möglich ist, dass unbegrenzte Kapazitäten vorkommen können. Das führt aber zu keinerlei Problemen, sofern die Instanz beschränkt ist, d. h. dass in jeder Instanz, in welcher ein b-fluss existiert auch einer mit minimalen Kosten existiert. Unbeschränkte Instanzen werden aber im Rahmen dieser Diplomarbeit nicht weiter untersucht und wir nehmen im Folgenden an, dass die Minimalkostenflussinstanzen stets beschränkt sind. In diesem Fall kann man unbeschränkte Kapazitäten durch geeignete endliche Kapazitäten ersetzen. Ähnlich wie im Kapitel über maximale s-t-flüsse arbeiten wir hier auch mit dem Konzept der Residualgraphen nach Definition Wir erweitern diese Definition um das Augmentieren entlang Kreisen, da Kreise mit negativen Kosten eine sehr wichtige Rolle spielen. Definition Sei G = (V, A) ein gerichteter Graph und u : A R + eine Kapazitätsfunktion. (1) Seien c : A R eine Kostenfunktion in einer MINIMUM COST FLOW PROBLEM Instanz. Dann erweitern wir c auf A G mit c( e ) := c(e) für alle e A. (2) Seien f ein Fluss, γ > 0 und C = (V C, A C ) ein Kreis in G f. Augmentieren von f entlang C um γ bezeichnet folgenden Vorgang, durch welchen man einen neuen Fluss f erhält, sofern 0 f (a) u(a) für alle a A gilt: f(a) a, a / A C f (a) := f(a) + γ a A C, a / A C f(a) γ a AC, a / A C (3) Sei f ein Fluss in G. Ein f-augmentierender Kreis ist ein Kreis in G f.

24 14 Graphentheoretische Grundlagen Ein wichtiges Kriterium, um die Minimalkosteneigenschaft eines Flusses zu zeigen, ist das, dass es es in dem entsprechenden Residualgraphen keinen augmentierenden Kreis mit negativen Gesamtgewicht gibt. Theorem 1.25 ([15]). Sei (G, u, b, c) eine MINIMUM COST FLOW PRO- BLEM Instanz. Dann ist f ein kostenminimaler b-fluss genau dann, wenn es in G f keinen Kreis C gibt mit c(c) < 0. Ein zweites Kriterium, um die Minimalkosteneigenschaft eines Flusses zu zeigen, ist die Existenz eines zulässigen Potentials für alle Knoten. Theorem 1.26 ([15]). Sei (G, u, b, c) eine MINIMUM COST FLOW PRO- BLEM Instanz. Dann ist f genau dann ein kostenminimaler b-fluss, wenn in G f bzgl. c ein zulässiges Potential existiert. Beweis. Nach Theorem 1.25 ist f nicht kostenminimal, wenn es einen Kreis C gibt mit c(c) < 0. Dies ist aber genau dann der Fall, wenn c nicht konservativ in G f ist. Letzteres ist nach Theorem 1.15 genau dann gültig, wenn es in G f kein zulässiges Potential gibt.. Nachdem wir nun wissen, wann ein b-fluss optimal ist, werden wir kurz zwei Algorithmen zeigen, welche kostenminimale b-flüsse bestimmen können. Der erste hier vorgestellte Algorithmus ist der Successive Shortest Path Algorithmus. Das Prinzip des Algorithmus besteht darin, dass das Augmentieren eines kostenminimalen b-flusses entlang eines Pfades von einem Knoten s V mit b(s) > 0 zu einem Knoten t V mit b(t) < 0 zu einem kostenminmalen b -Fluss bzgl. einer neuen Balancefunktion b führt. Folgender Sachverhalt liefert die Korrektheit des Successive Shortest Path Algorithmus von Seite 15. Theorem 1.27 (Ford und Fulkerson [7]). Seien (G, u, b, c) eine Instanz des Minimalkostenflussproblems und f ein b-fluss mit minimalen Kosten. Seien s, t V und P ein kürzester Pfad bzgl. c. Sei f der entstehende Fluss, wenn man f entlang P um höchstens der Minimalresidualkapazität auf dem Pfad augmentiert. Dann gilt: (1) Der Fluss f ist ein Minimalkostenfluss bzw. b -Fluss mit minimalen Kosten für eine entsprechendes Balancefunktion b. (2) Für alle v V gilt: dist Gf (s, v) dist Gf (s, v) und dist Gf (v, t) dist Gf (v, t). Dabei bezeichne dist G (v, w) die Kosten eines billigsten Pfades von v nach w in G. Dieses Theorem liefert die Korrektheit des Algorithmus, da der Algorithmus mit dem Nullfluss beginnt und dieser minimal ist für b 0, weil die Kostenfunktion konservativ ist. Jeder dazwischen berechnete Fluss ist für

25 1.3 Flussprobleme input : Ein gerichteter Graph G = (V, A), eine Kapazitätsfunktion u : A R + konservative Kosten c : A R, eine Balancefunktion b : V R mit v V b(v) = 0 output : Einen b-fluss mit minimalen Kosten, oder die Ausgabe, dass kein b-fluss existiert. b := 0; foreach e A do f(e) := 0; end while b 0 do Bestimme einen Knoten s mit b(s) > 0; Bestimme einen Knoten t mit b(t) < 0, so dass es einen s-t-pfad in G f gibt; if t V mit b(t) < 0, so dass es einen s-t-pfad in G f gibt then bestimme einen kostenminimalen s-t-pfad P bzgl. c; bestimme γ := min{min e AP {u f (e), b (s), b (t)}}; b (s) := b (s) γ; b (t) := b (t) + γ; augmentiere f um γ entlang P ; else Ausgabe: Es gibt keinen b-fluss; STOPP; end end Algorithmus 1.4 : Der Successive Shortest Path Algorithmus das jeweils aktuelle b auch minimal. Somit ist auch der am Ende resultierende b-fluss für die b Funktion aus der Eingabeinstanz minimal. Die Laufzeit des Algorithmus beträgt O(nmB), wobei B := 1 2 v V b(v) ist, sofern alle Bedarfe und Kapazitäten ganzzahlig sind. Da B der Menge der Flusseinheiten entspricht, um die höchstens augmentiert werden kann, ist die Anzahl der Augmentierungen durch B beschränkt. Bei jeder Iteration ist die Kürzeste Wege Berechnung die teuerste Operation. Da aber negative Kosten auftreten können, kommt der Moore Bellman Ford Algorithmus zur Anwendung, der eine Laufzeit von O(nm) hat. Mit einer Verbesserung, die darin besteht, ab der 2. Iteration die Kosten c mithilfe eines Knotenpotentials durch reduzierte Kosten zu ersetzen, lässt sich die Laufzeit O(nm + B(m + n log n)) erreichen, da diese reduzierten Kosten nichtnegativ sind und somit den Einsatz des Dijkstra Algorithmus ermöglichen. Diese Laufzeit ist pseudopolynomiell, da B eine wesentliche Größe ist,

26 16 Graphentheoretische Grundlagen welche sich aber durch O(log B) vielen Bits darstellen lässt. Wir erwähnen noch kurz eine Verbesserung des Successive Shortest Path Algorithmus durch die Capacity Scaling Technik, wenn die Knotenbalancen ganzzahlig sind. Der Capacity Scaling Algorithmus für das Minimalkostenflussproblem besteht aus mehreren Phasen, den sogenannten Scaling- Runden. In jeder Runde wird eine untere Schranke festgesetzt, um wieviele Flusseinheiten ein augmentierender Pfad den Fluss mindestens vergrößern muss. Diese untere Schranke wird Scaling Faktor genannt. Um dem Scaling Faktor gerecht zu werden, werden die Augmentierenden Pfade in G f ( ) := (V, {a A Gf : u f (a) }) bestimmt. Augmentiert wird dann wieder in G f. Theorem 1.28 ([15]). Der Capacity Scaling Algorithmus arbeitet korrekt und benötigt eine Laufzeit von O(n(m + n log n) log b max ). Wichtig zu erwähnen ist, dass es auch streng polynomielle Algorithmen für das Minimalkostenflussproblem gibt, auf welche wir hier nicht weiter eingehen. Wir werden später im Rahmen der Heuristiken im Kapitel 3 Minimalkostenfluss-Instanzen betrachten, in welchen B = O(n) gelten wird. In diesem Falle ist der Sucessive Shortest Path Algorithmus laut [15] der bisher bekannte schnellste. 1.4 dynamische Flussprobleme In diesem Abschnitt, welcher sich an die Vorlesung Ausgewählte Kapitel der Kombinatorischen Optimierung [21] lehnt, geht es um dynamische Flussprobleme. Wie bei den statischen Flussproblemen haben wir wieder ein Netzwerk, bestehend aus einem gerichteten Graphen, ausgezeichneten Knoten (Quellen und Senken) und einer Kapazitätsfunktion auf der Kantenmenge. Im Unterschied zu den statischen Flussproblemen spielt der Faktor Zeit eine sehr wichtige Rolle, d. h. es wird nun auch die Zeit mit einbezogen, welche verbraucht wird, um Fluss von gewissen Knoten zu anderen Knoten zu schicken. Zu diesem Zweck werden dynamische Netzwerke eingeführt, die zusätzlich Fahrzeitinformationen für jede Kante beinhalten, also die Zeit, die eine Flusseinheit benötigt, um vom Start- zum Endknoten der Kante zu gelangen. Da wir hier auch wieder über einen Fluss sprechen werden, müssen wir den Flussbegriff für unsere dynamischen Netzwerke erweitern bzw. ändern. Wir werden unter einem dynamischen Fluss in einer Kante eine zeitabhängige Flussrate verstehen, mit welcher Fluss in die Kante hineinfließt. Mit Hilfe der dynamischen Netzwerke und dynamischen Flüsse lassen sich u. a. auch Evakuierungsprobleme untersuchen, da hier nun der Faktor Zeit berücksichtigt werden kann. Bevor wir zu dem Evakuierungsproblem gelangen werden, definieren wir u. a. den Begriff des dynamischen Flusses ge-

27 1.4 dynamische Flussprobleme input : Ein gerichteter Graph G = (V, A), eine Kapazizätsfunktion u : A R + konservative Kosten c : A N 0, eine Balancefunktion b : V R mit v V b(v) = 0 output : Einen b-fluss mit minimalen Kosten, oder die Ausgabe, dass kein b-fluss existiert b := b; foreach e A do f(e) := 0; end b max := max{b(v) : v V }; := 2 log bmax ; while b 0 do Bestimme einen Knoten s mit b(s) ; Bestimme einen Knoten t mit b(t), so dass es einen s-t-pfad in G f ( ) gibt; if t V mit b(t) γ, so dass es einen s-t-pfad in G f ( ) gibt then bestimme einen kostenminimalen s-t-pfad P bzgl. c; b (s) := b (s) ; b (t) := b (t) + ; augmentiere f in G f um entlang P ; else if = 1 then Ausgabe: Es gibt keinen b-fluss; STOPP; else := /2; end end end Algorithmus 1.5 : Ein Capacity Scaling Algorithmus für das Minimalkostenfluss Problem nauer und betrachten vorher ein grundlegendes Problem, welches uns später bei der Analyse unterstützen wird. Definition Seien G = (V, A), u : A R + eine Kapazitätsfunktion, τ : A R eine Fahrzeitfunktion und T R +. Weiterhin seien S + S V Mengen ausgezeichneter Knoten. Dann heißt das Tupel (G, u, τ, S +, S ) dynamisches Netzwerk. Ein dynamischer Fluss mit Zeithorizont T ist eine integrierbare Abbildung f : A [0, T ) R +, welche folgende Eigenschaften erfüllt:

28 18 Graphentheoretische Grundlagen (1) Für alle a A und θ [0, T ) gilt f(a, θ) u(a) (Kapazitätsbedingung). (2) Für alle v V \ (S + S und Y [0, T ) gilt : ex f (v, Y ) := Y 0 ( a δ (v) (Flusserhaltungsbedingung). f(a, θ τ(a)) a δ + (v) f(a, θ))dθ 0 (3) Die Flusserhaltungsbedingung (2) muss für Y = T mit Gleichheit erfüllt werden. (4) Für alle a A und θ > T τ(a) gilt f(a, θ) = 0. Die Definition erscheint auf den ersten Blick etwas gewöhnungsbedürftig, wenn man sich zuvor nur mit statischen Flüssen beschäftigt hat. Die Kapazitätsbedingung ist analog zu den statischen Flüssen einfach zu verstehen. Die Flusserhaltungsbedingung bedarf einer kleinen Erklärung. Wenn f ein dynamischer Fluss ist und a = (x, y) A eine Kante, dann gibt der Wert f(a, θ) die Flussrate an, wieviele Flusseinheiten pro Zeiteinheit in die Kante fliessen. Der Wert τ(a) gibt die Fahrzeit an, welche jede Flusseinheit benötigt um von x nach y zu gelangen. Daher erreicht eine Flusseinheit den Knoten y über a erst nach θ + τ(a) Zeiteinheiten. Umgekehrt, wenn nun eine Flusseinheit zum Zeitpunkt θ den Knoten y über die Kante a erreicht, hat sie zum Zeitpunkt θ τ(a) den Knoten x verlassen. Diese Erkenntnis führt zum besseren Verständnis der Flusserhaltungsbedingung. Wenn wir nun zu einem Zeitpunkt θ ermitteln, wieviele Flusseinheiten pro Zeiteinheit über eine Kante a in den Knoten v fließen, muss wir uns die Flussrate zu dem zeitpunkt ansehen, zu welchem die betreffenden Flusseinheiten in die Kante a einfließen. Dieses passiert zum Zeitpunkt θ τ(a) und somit ist die Flussrate der Flusseinheiten, die über die Kante a in den Knoten w gelangt, gleich dem Wert f(a, θ τ(a)). Summieren wir diesen Ausdruck entsprechend über alle Kanten aus δ (v), so erhalten wir die Flussrate, die in den Knoten v zum Zeitpunkt θ fließt. Daher liegt es nun auf der Hand, analog zu den statischen Flüssen, die Anzahl der Flusseinheiten, die bis zum Zeitpunkt θ in den Knoten v fließen, mit der Anzahl an Flusseinheiten zu vergleichen, welche den Knoten v bis zum Zeitpunkt θ verlassen haben. Die Flusserhaltungsbedingung besagt nun, dass nicht mehr Flusseinheiten zum Zeitpunkt θ den Knoten verlassen haben können, als ihn bis dahin erreicht haben. Dies muss für alle Zeitpunkte θ mit θ < T gelten. Insbesondere ist es hier möglich, dass ein nicht ausgezeichneter Knoten Flusseinheiten speichern kann. Würde in der Bedingung ein Gleichheitszeichen stehen, wäre keine Flussspeicherung in Knoten erlaubt.

29 1.4 dynamische Flussprobleme 19 Die letzten beiden Bedingungen besagen, dass sich keine Flusseinheit nach dem Zeithorizont T in einem Knoten (4) befinden darf und dass keine Kante a A nach dem Zeitpunkt T τ(a) Flusseinheiten befördern darf. Somit ist sichergestellt, dass jede Flusseinheit nach dem Zeithorizont T das Netzwerk verlassen hat bzw. sich in einer Senke befindet. Zunächst geben wir für den Graphen aus Abbildung 1.4 einen Beispielfluss mit Zeithorizont 2 an. Die einzige Kante im Graph verfügt über Einheitsfahrzeit und Einheitskapazität. Wir betrachten den Fluss f mit f((s, t), θ) = 1 für alle θ [0, 1). Für θ [1, 2) setzen wir f((s, t), θ) = 0. Somit fließt genau eine Flusseinheit von s nach t. Nach einer Zeiteinheit befindet sich diese Flusseinheit komplett in der Kante (s, t). Nach einer weiteren Zeiteinheit, hat sie die Kante vollständig verlassen und hat über den Knoten t das Netzwerk verlassen. Somit besitzt f den Zeithorizont 2. s 1/1 Abbildung 1.2: Ein einfaches dynamisches Netzwerk t Zunächst betrachten wir dynamische Flüsse auf Netzwerken mit zwei ausgezeichneten Knoten und befassen uns dann danach mit dem Problem, wie man innerhalb einer vorgegebenen Zeit T den Flusswert, den wir ebenfalls noch definieren müssen, maximiert. Dieses gelingt immer, wie wir später sehen werden, mit einem dynamischen Fluss aus einer einfachen Klasse dynamischer Flüsse. Definition T R Sei (G, u, τ, S +, S ) ein dynamisches Netzwerk mit (1) Ein dynamischer S + -S -Fluss f ist ein dynamischer Fluss gemäß Definition 1.29, wobei v S + als Quellknoten, d. h. ex f (v, T ) 0, und v S als Senkeknoten, d. h. ex f (v, T ) 0, die ausgezeichneten Knoten sind. (2) Der Wert eines dynamischen S + -S -Flusses wird mit f bezeichnet und beträgt: f := ex(s, T ) s S + = T ( s S + 0 a δ + (s) f(a, θ) a δ (s) f(a, θ τ(a)))dθ.

30 20 Graphentheoretische Grundlagen Zur Vereinfachung bezeichnen wir das dynamische Netzwerk mit einer Quelle und einer Senke mit (G, u, τ, s, t) und den Fluss als dynamischen s-t-fluss. Bemerkungen Mit unserer Definition dynamischer Flüsse haben wir sogenannte kontinuierliche Flüsse definiert. Die Flussrate einer Kante ist dabei bzgl. jeden reellen Zeitintervalls eine messbare Funktion. In der Literatur werden auch sogenannte diskrete dynamische Flüsse betrachtet, da die Diskretisierung eine Reduktion vieler dynamischer Flussprobleme auf statische Flussprobleme mittels zeitexpandierter Graphen, welche wir in Abschnitt 1.5 einführen, zulässt. In dieser Diplomarbeit werden wir ebenfalls diskrete dynamische Flüsse betrachten und nur solche als Lösung von unseren Problemen in den Kapiteln 2 und 3 zulassen. Wir schränken uns dabei auf ganzzahlige Fahrzeiten τ und Zeithorizonte T N ein. Wir teilen dann den Zeithorizont T in Intervalle [θ, θ+1) mit θ N 0 und θ < T ein. Ein diskreter dynamischer Fluss f ist dann eine Abbildung f : A N 0 R +. Die Kapazitätsbedingung wird analog zu Definition 1.29 zu jedem ganzzahligen Zeitpunkt formuliert und die Flusserhaltungsbedingung zum Zeitpunkt Y sowie der Ausdruck ex f für dynamische Flüsse wird analog zu Definition 1.29 mittels einer diskreten Summe von 0 bis Y 1 statt eines Integrals von 0 bis Y formuliert. Zum Zeitpunkt T muss diese mit Gleichheit erfüllt sein. Weiterhin darf es keine Kante a A nach dem Zeitpunkt θ > T τ(a) mit f(a, θ) > 0 geben. Einen diskreten Fluss f können wir als kontinuierlichen Fluss f auffassen, indem wir in jede Kante a A zu jedem Zeitpunkt Y [θ, θ + 1) f(a, θ) Fluss in die Kante a schicken, d. h. wir setzen f(a, Y ) := f(a, θ) für alle Y [θ, θ + 1). Umgekehrt können wir jeden dynamischen Fluss f mit ganzzahligen Fahrzeiten und ganzzahligem Zeithorizont als diskreten Fluss f auffassen, indem wir zu jedem diskreten Zeitpunkt θ der Kante a die Menge an Flusseinheiten zuweisen, die mittels f innerhalb des Zeitraumes [θ, θ + 1) in die Kante a hineinfließen, d. h. wir setzen f(a, θ) = θ+1 θ f(a, κ)dκ. Für weitere Details verweisen wir auf den Abschnitt in [16]. Ein wichtiges Problem, welches wir nun betrachten, ist das dynamische Max Flow Problem, bei dem es darum geht innerhalb des gegebenen Zeithorizontes einen dynamischen Fluss zu ermitteln, dessen Flusswert maximal ist. Wir können das Problem auf Netzwerke mit einer Quelle und einer Senke reduzieren, indem wir jeweils eine Superquelle und eine Supersenke einführen und entsprechend sie mit den Quellen bzw. Senken mit Kanten, die eine Fahrzeit von Null besitzen und über geeignet viel Kapazität verfügen, verbinden.

31 1.4 dynamische Flussprobleme 21 dynamisches MAX FLOW Problem Instanz: Ein dynamisches Netzwerk N = (G, u, τ, s, t) und ein T Gesucht: R + Ein dynamischer s-t-fluss mit maximalem Flusswert und Zeithorizont T, d. h. gesucht ist ein dynamischer s-t-fluss f mit f f für alle s-t-flüsse f mit Zeithorizont T. Dieses klassische Problem wurde bereits von Ford und Fulkerson [7] untersucht und gelöst. Die Lösung ist immer in einer einfachen Klasse dynamischer s-t-flüsse zu finden, wie wir später noch zeigen werden. Desweiteren lässt sich das Problem auf eine statische Minimalkostenflussberechnung zurückführen. Bevor wir nun aber den Algorithmus von Ford und Fulkerson für dieses Problem vorstellen, müssen wir noch einige Vorbereitungen treffen. Wir führen zunächst die o. g. einfache Klasse dynamischer s-t-flüsse ein, die sogenannten zeitlich wiederholten Flüsse, die durch eine Pfadzerlegung statischer s-t-flüsse induziert werden. Theorem 1.32 ([15]). Seien (G, u, s, t) ein Netzwerk und x ein statischer s- t-fluss. Dann existiert eine Menge P mit s-t-pfaden, eine Menge C mit Kreisen und eine Abbildung w : P R + mit x(a) = w(p ) P =(V P,A P ) P C:a A P und val(f) = P P w(p ). Falls x ganzzahlig ist, kann die Abbildung w auch ganzzahlig gewählt werden. Definition Es seien (G, u, τ, s, t) ein dynamisches Netzwerk und x ein statischer s-t-fluss, die Mengen P und C und die Abbildung w wie in Theorem (1) Die Abbildung w heißt Flusszerlegung von x. (2) Falls C = ist, heißt w auch Pfadzerlegung von x. (3) Seien T R + und w eine Pfadzerlegung von x, so dass für alle Pfade P = (V P, A P ) mit P P und w(p ) > 0 gilt: τ(p ) := a A P τ(a) T. Dann induziert x wie folgt einen dynamischen s-t-fluss f T : f T ((v, w), θ) := w(p ). P P:(v,w) A P und θ [τ(p [s,v] ),T τ(p )+τ(p [s,v] )) f T heißt zeitlich wiederholter Fluss. Zeitlich wiederholte Flüsse werden also dadurch induziert, indem wir entlang jeden Pfades P der Pfadzerlegung w(p ) Flusseinheiten in die Quelle im Zeitraum [0, T τ(p )) schicken. Wir schreiben daher bei einer gegebenen Pfadzerlegung der Pfade P 1,..., P k auch [P 1,..., P k ] T w um den induzierten zeitlich wiederholten Fluss zu beschreiben.

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

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

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

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

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

Vorlesung Kombinatorische Optimierung (Wintersemester 2016/17)

Vorlesung Kombinatorische Optimierung (Wintersemester 2016/17) Vorlesung Kombinatorische Optimierung (Wintersemester 06/7) Kapitel : Flüsse und Zirkulationen Volker Kaibel Otto-von-Guericke Universität Magdeburg (Version vom 4. Oktober 06) Definition. Ein Netzwerk

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Folien aus der Vorlesung Optimierung I SS2013

Folien aus der Vorlesung Optimierung I SS2013 Folien aus der Vorlesung Optimierung I SS2013 Dr. Jens Maßberg Institut für Optimierung und Operations Research, Universität Ulm July 10, 2013 Datenstrukturen für Graphen und Digraphen Graph Scanning Algorithmus

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

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

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

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

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

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

KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN

KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN F. VALLENTIN, A. GUNDERT 1. Definitionen Notation 1.1. Ähnlich wie im vorangegangenen Kapitel zunächst etwas Notation. Wir beschäftigen uns jetzt mit ungerichteten

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

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

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, 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

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

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

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

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

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

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

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

Minimalpolynome und Implikanten

Minimalpolynome und Implikanten Kapitel 3 Minimalpolynome und Implikanten Wir haben bisher gezeigt, daß jede Boolesche Funktion durch einfache Grundfunktionen dargestellt werden kann. Dabei können jedoch sehr lange Ausdrücke enstehen,

Mehr

Strukturelle Modelle in der Bildverarbeitung Binäre MinSum Probleme

Strukturelle Modelle in der Bildverarbeitung Binäre MinSum Probleme Strukturelle Modelle in der Bildverarbeitung Binäre MinSum Probleme TUD/INF/KI/IS Äquivalente Transformationen (Reparametrisierung) Binäre MinSum Probleme kanonische Form MinCut Binäre MinSum Probleme

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

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

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

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

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

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

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

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

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

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

Kantengraphen und Planare Graphen. Seminararbeit

Kantengraphen und Planare Graphen. Seminararbeit Kantengraphen und Planare Graphen Seminararbeit in Mathematisches Seminar für LAK 621.378 SS 2018 vorgelegt von Anna Maria Gärtner bei: Baur, Karin, Univ.-Prof. Dr.phil. Graz, 2018 Inhaltsverzeichnis 1

Mehr

Effiziente Algorithmen I 11. Übungsblatt, Wintersemester 2015/16 Abgabetermin:

Effiziente Algorithmen I 11. Übungsblatt, Wintersemester 2015/16 Abgabetermin: 11 11. Übungsblatt, Wintersemester 2015/16 Abgabetermin: 19.01.2016 Aufgabe 29 Bestimmen Sie mit der Stepping-Stone-ethode einen Transportplan mit minimalen Kosten für das klassische Transportproblem mit

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

Algorithmische Methoden für schwere Optimierungsprobleme

Algorithmische Methoden für schwere Optimierungsprobleme Algorithmische Methoden für schwere Optimierungsprobleme Prof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund

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

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

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

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

8 Diskrete Optimierung

8 Diskrete Optimierung 8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von

Mehr

Teil 2: Graphenalgorithmen

Teil 2: Graphenalgorithmen Teil : Graphenalgorithmen Anwendungen Definitionen Datenstrukturen für Graphen Elementare Algorithmen Topologisches Sortieren Kürzeste Wege Problemstellung Ungewichtete Graphen Distanzgraphen Gewichtete

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

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

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

EDM, Algorithmen und Graphenspeicherung

EDM, Algorithmen und Graphenspeicherung EDM, Algorithmen und Graphenspeicherung 1 Graphenspeicherung Gespeichert werden soll ein Graph G = (V, E) bzw. Digraph D = (V, A). Man beachte: E ( ) V 2 bzw. E V 2 1.1 Adjazenzmatrix Graph G: A = (a vw

Mehr

Technische Universität München Zentrum Mathematik. Optimierung 2, WS 2008/09 Übungsblatt 12

Technische Universität München Zentrum Mathematik. Optimierung 2, WS 2008/09 Übungsblatt 12 Technische Universität München Zentrum Mathematik Prof. Dr. P. Gritzmann, Dipl.-Inf. Dipl.-Math. S. Borgwardt, Dr. M. Ritter Optimierung 2, WS 2008/09 Übungsblatt 12 Aufgabe 12.1 Betrachten Sie die folgenden

Mehr

Teil III. Komplexitätstheorie

Teil III. Komplexitätstheorie Teil III Komplexitätstheorie 125 / 160 Übersicht Die Klassen P und NP Die Klasse P Die Klassen NP NP-Vollständigkeit NP-Vollständige Probleme Weitere NP-vollständige Probleme 127 / 160 Die Klasse P Ein

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 June 18, 2012 Ignaz Rutter INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg

Mehr

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

Lösungen zur Vorlesung Berechenbarkeit und Komplexität Lehrstuhl für Informatik 1 WS 009/10 Prof. Dr. Berthold Vöcking 0.0.010 Alexander Skopalik Thomas Kesselheim Lösungen zur Vorlesung Berechenbarkeit und Komplexität. Zulassungsklausur Aufgabe 1: (a) Worin

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

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

Statistik und Graphentheorie

Statistik und Graphentheorie Statistik und Graphentheorie Sommersemester 2014 24. März 2015 Teil Graphentheorie Matrikelnummer: 1 (12) 2 (12) 3 (12) 4 (12) 5 (12) (60) Aufgabe 1 (12 Punkte) Gegeben sei das folgende Netzwerk: (a) Berechnen

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

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

Kürzeste Wege. Ein Startknoten, nichtnegative Gewichte

Kürzeste Wege. Ein Startknoten, nichtnegative Gewichte Kürzeste Wege Gegeben ein Digraph D = (V, A) mit Bogengewichten c(a). Aufgabe: Finde einen Weg W von einem Knoten zu allen anderen oder zu einem bestimmten mit c(w) minimal. Problem: negative Gewichte

Mehr

Gliederung. Kapitel 4. Lokale Suchverfahren. Meta-Heuristiken. Simulated Annealing. Lokale Suchverfahren. Optimierungsalgorithmen

Gliederung. Kapitel 4. Lokale Suchverfahren. Meta-Heuristiken. Simulated Annealing. Lokale Suchverfahren. Optimierungsalgorithmen Kapitel Optimierungsalgorithmen Gunnar Klau Institut für Computergraphik und Algorithmen Gliederung Kombinatorische vs. Ganzzahlige Optimierung Exakte Verfahren Branch-and-Bound Schnittebenenverfahren

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

Das Heiratsproblem. Definition Matching

Das Heiratsproblem. Definition Matching Das Heiratsproblem Szenario: Gegeben: n Frauen und m > n Männer. Bekanntschaftsbeziehungen zwischen allen Männern und Frauen. Fragestellung: Wann gibt es für jede der Frauen einen Heiratspartner? Modellierung

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

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 6: Matchings und TSP-Problem

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 6: Matchings und TSP-Problem Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 6: Matchings und TSP-Problem Dipl-Math. Wolfgang Kinzner 4.4.2012 Kapitel 6: Matchings und TSP-Problem Matching und Matchingproblem Flussalgorithmus

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

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

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

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

12. Der Algorithmus von Dijkstra. Informatik II für Verkehrsingenieure

12. Der Algorithmus von Dijkstra. Informatik II für Verkehrsingenieure . Der Algorithmus von Dijkstra Informatik II für Verkehrsingenieure Problemstellung Gegeben: Graph G =(V, E, len) mit positiver Kantenfunktion len : E! R 0, Knoten s, t V Mögliche Aufgaben Berechne Distanz

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

Graphen KAPITEL 3. Dieses Problem wird durch folgenden Graph modelliert:

Graphen KAPITEL 3. Dieses Problem wird durch folgenden Graph modelliert: KAPITEL 3 Graphen Man kann als Ursprung der Graphentheorie ein Problem sehen, welches Euler 1736 von Studenten aus Königsberg gestellt bekam. Der Fluss Pregel wird von 7 Brücken überquert, und die Frage

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

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

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

Die Klasse NP und die polynomielle Reduktion. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen

Die Klasse NP und die polynomielle Reduktion. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen Die Klasse NP und die polynomielle Reduktion Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 26 Optimierungsprobleme und ihre Entscheidungsvariante Beim Rucksackproblem

Mehr

Vorlesung 1: Graphentheorie. Markus Püschel David Steurer. Algorithmen und Datenstrukturen, Herbstsemester 2018, ETH Zürich

Vorlesung 1: Graphentheorie. Markus Püschel David Steurer. Algorithmen und Datenstrukturen, Herbstsemester 2018, ETH Zürich Vorlesung 1: Graphentheorie Markus Püschel David Steurer Algorithmen und Datenstrukturen, Herbstsemester 2018, ETH Zürich Plan für die ersten Vorlesungen Vorlesungen 1,2: wichtige mathematische Grundlagen;

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