Vorlesung. Graphenalgorithmen. Sommersemester Angelika Steger. ETH Zürich

Größe: px
Ab Seite anzeigen:

Download "Vorlesung. Graphenalgorithmen. Sommersemester Angelika Steger. ETH Zürich"

Transkript

1 Vorlesung Graphenalgorithmen Sommersemester 005 Angelika Steger ETH Zürich 3. Mai 006

2 Teile des vorliegenden Skriptes sind Erweiterungen des Skript zu meiner Vorlesung Effiziente Algorithmen und Datenstrukturen II, die ich im Sommersemester 997 an der TU München gehalten habe. Das Skript zu meiner damaligen Vorlesung wurde von den Studenten der Vorlesung geschrieben, denen ich an dieser Stelle nochmals für ihren Einsatz danken möchte: Markus Ebersberger, Maximilian Fischer, Alexander Hall, Sebastian Heupel, Thomas Schickinger und Ulrich Voll.

3 Inhaltsverzeichnis Flüsse in Netzwerken 5. Einführung und Definitionen Der Algorithmus von Ford Fulkerson Augmentierende Pfade Korrektheit für ganzzahlige Netzwerke, Max Flow Min Cut Theorem Anmerkungen und Erweiterung auf nichtganzzahlige Netzwerke Die Push-/Relabel Methode nach Goldberg und Tarjan Matching Probleme 9. Definition und Beispiele Das ungewichtete Matchingproblem Augmentierende Pfade Bipartite Graphen Matching in allgemeinen Graphen Das gewichtete Matchingproblem Bipartite Graphen Exkurs: Die primal-duale Methode der linearen Programmierung Allgemeine Graphen Das Rundreiseproblem Exakte Lösungsverfahren Dynamische Programmierung Branch and Bound Das Rundreiseproblem mit Dreiecksungleichung Das euklidische Rundreiseproblem Planare Graphen 5 4. Eigenschaften planarer Graphen Planaritätstest Zeichnen von planaren Graphen

4 4 INHALTSVERZEICHNIS 5 Separatoren Separatoren in planaren Graphen Anwendungen des Separatorensatzes Beschränkte Baumweite Baumzerlegung und Baumweite Algorithmische Konsequenzen Partielle k-bäume Bestimmung einer Baumzerlegung

5 Kapitel Flüsse in Netzwerken. Einführung und Definitionen In diesem Kapitel betrachten wir so genannte Netzwerke N = (V, A, c, s, t). Hierbei sei D = (V, A) s V t V c : A R 0 ein gerichteter Graph, die Quelle (engl.: source), die Senke (engl.: target) und eine nicht-negative Kapazitätsfunktion. Intuitiv stelle man sich unter einem Netzwerk beispielsweise ein Röhrensystem vor, bei dem die Kanten des Graphen den Rohren entsprechen und die Knoten den Kreuzungspunkten der Rohre. Es soll nun z. B. eine Flüssigkeit von der Quelle s zur Senke t transportiert werden. Diese Flüssigkeit darf nur an der Quelle bzw. Senke eingespeist werden bzw. abfliessen. An allen anderen Kreuzungspunkten geht keine Flüssigkeit verloren. Jedes Rohr transportiert die Flüssigkeit nur in eine vorgegebene Richtung. Ausserdem kann jedes Rohr nur bis zu einer gewissen Obergrenze, der Kapazität, Flüssigkeit aufnehmen. Formal lässt sich dies wie folgt beschreiben: Definition. Eine Abbildung f : A R heisst s t Fluss, falls. u Γ + (v) f(v, u) = u Γ (v) f(u, v) v V \ {s, t} (Flusserhaltung). 0 f(a) c(a) a A (Zulässigkeit) Hier bezeichnet Γ + (v) die von v aus erreichbaren Nachbarknoten, also Γ + (v) := {u V : (v, u) A}. Analog bezeichnet Γ (v) die Menge der Knoten, von denen aus v direkt erreicht werden kann, also Γ (v) := {u V : (u, v) A}. Definition. Der Wert w(f) eines Flusses f ist definiert durch w(f) = f(s, u) f(u, s) u Γ + (s) u Γ (s) Anschaulich gibt also der Wert an, um wie viel die an der Quelle ins Netzwerk gepumpte Flüssigkeitsmenge die dort abfliessende Menge übertrifft. Diese Definition ist äquivalent zur Flüssigkeitsmenge, die an der Senke mehr zu- als abfliesst: Proposition.3 Für ein Netzwerk mit gegebenem s t Fluss f gilt w(f) = f(u, t) f(t, u) u Γ (t) u Γ + (t) 5

6 6 KAPITEL. FLÜSSE IN NETZWERKEN Beweis: Folgt unmittelbar aus v V u Γ + (v) f(v, u) = v V u Γ (v) f(u, v) durch Umsortieren der Summanden und Anwendung von Teil der Definition.. Definition.4 Ein s t Fluss f 0 mit w(f 0 ) = max{w(f) : f ist s t Fluss} heisst maximaler Fluss. In den folgenden Abschnitten betrachten wir nun das MaxFlow-Problem: Geg.: Ein Netzwerk mit nicht-negativer Kapazitätsfunktion N = (V, A, c, s, t) Ges.: Bestimme einen maximalen Fluss f. Diese Fragestellung spielt bei zahlreichen Anwendungen ein Rolle. Man denke hierbei z. B. an ein Transportnetzwerk, bei dem durch optimale Zuordnung der zu transportierenden Güter zu den einzelnen Transportwegen ein maximaler Gesamtdurchsatz erreicht werden soll. Neben solchen direkten Anwendungen tritt das MaxFlow-Problem aber auch oft als Subproblem anderer Probleme auf. Die nächste Proposition stellt sicher, dass die Suche nach einem maximalen Fluss immer sinnvoll ist. Proposition.5 In jedem Netzwerk gibt es einen maximalen Fluss. Beweis: Betrachte F = { f : f ist s t Fluss } R A. Diese Menge ist abgeschlossen und beschränkt. Daraus folgt, dass jede Funktion auf F, also insbesondere auch f : F R, f w(f) auf F ihr Maximum annimmt.. Der Algorithmus von Ford Fulkerson Diesem Algorithmus liegt folgende einfache Idee zugrunde: Starte mit f 0 und vergrössere w(f) schrittweise, solange dies möglich ist. Dazu betrachten wir spezielle Pfade im Graphen... Augmentierende Pfade Definition.6 Für einen Fluss f in einem Netzwerk N heisst eine Folge s = v 0, v,..., v k, v k = x ein augmentierender s x Pfad, falls für alle i {0,...,k } gilt:. e = (v i, v i+ ) A und f(e) < c(e) (e heisst Vorwärtskante) oder. e = (v i+, v i ) A und f(e) > 0 (e heisst Rückwärtskante) Anschaulich besagt dies, dass man entlang eines augmentierenden Pfades mehr Flüssigkeit transportieren kann, als dies im aktuellen Fluss f der Fall ist. Auf den Vorwärtskanten ist die Kapazität noch nicht erschöpft, d. h. dort kann noch mehr durchgepumpt werden. Auf den Rückwärtskanten liegt ein von Null verschiedener Fluss entgegen des augmentierenden Pfades vor, der echt verringert werden kann. Abbildung. zeigt ein Beispiel für dieses Vorgehen. Die Beschriftung der Kanten besteht aus Paaren (c(e), f(e)). Entlang des gestrichelt markierten augmentierenden Pfades kann der Fluss um eins erhöht werden. Dadurch steigt der Wert des Flusses von eins auf zwei und erreicht dadurch den Maximalwert für diesen Graphen. Das folgende Lemma präzisiert die Eigenschaften der augmentierenden Pfade. Vgl. hierzu spätere Kapitel der Vorlesung.

7 .. DER ALGORITHMUS VON FORD FULKERSON 7 s / /0 v / /0 / t =) s / / v /0 / / t v v Abbildung.: Erhöhung des Flusses entlang eines augmentierenden Pfades Lemma.7 Sei f ein s t Fluss und s = v 0, v,...,v k, v k = t ein augmentierender s t Pfad P. Dann gilt: Für jedes δ > 0 mit δ min({c(a) f(a) : a P, a Vorwärtskante} {f(a) : a P, a Rückwärtskante}) ist f(a) + δ f δ (a) = f(a) δ f(a) falls a P, a Vorwärtskante falls a P, a Rückwärtskante sonst ein s t Fluss mit Wert w(f δ ) = w(f) + δ. Beweis: Zu überprüfen ist die Definition.: Die Zulässigkeit folgt unmittelbar aus der Definition von f δ. Zum Nachweis der Flusserhaltung betrachten wir einen beliebigen Knoten v V \ {s, t}:. Fall: v liegt nicht auf P. Hier ist nichts zu zeigen.. Fall: v = v i P für ein i {,...,k }. Je nachdem, ob es sich bei den an v angrenzenden Kanten auf dem Pfad um Vorwärts- oder Rückwärtskanten handelt, sind vier Fälle zu unterscheiden, die in Abbildung. dargestellt sind. s s s + v + + v v + t t t s v t Abbildung.: Verschiedene Fälle bei der Modifikation von f entlang eines augmentierenden Pfades Offensichtlich bleibt in jedem Fall die Flusserhaltung erfüllt. w(f δ ) = w(f) + δ folgt sofort aus der Veränderung von f auf der Kante (s, v ). Die vorangegangenen Überlegungen führen schliesslich zu folgendem Algorithmus:

8 8 KAPITEL. FLÜSSE IN NETZWERKEN Alg. von Ford Fulkerson () Setze f 0; () Finde augmentierenden s-t Pfad P bzgl. f; Falls keiner existiert: Stopp, gib f aus; (3) Setze δ := min({c(a) f(a) : a P, a Vorwärtskante} {f(a) a P, arückwärtskante}); und f(a) := f(a) + δ f(a) δ f(a) a P, a Vorwärtskante a P, a Rückwärtskante sonst. Zurück zu ();.. Korrektheit für ganzzahlige Netzwerke, Max Flow Min Cut Theorem Bevor wir die Korrektheit des Algorithmus von Ford Fulkerson untersuchen, benötigen wir noch eine neue Definition: Definition.8 Sei N ein Netzwerk und W V eine Knotenmenge mit s W und t W. Dann heisst (W, W) ein s t Schnitt. Die Kapazität des Schnitts ist definiert als c(w, W) = (v,u) A v W,u W c(v, u) Zwischen Flüssen und Schnitten besteht ein direkter Zusammenhang: Proposition.9 Für jeden s t Fluss f und jeden s t Schnitt (W, W) gilt: w(f) = (v,u) A v W,u W f(v, u) (u,v) A u W,v W f(u, v) c(w, W) Beweis: w(f) = u Γ + (s) f(s, u) u Γ (s) f(u, s) = f(v, u) v W u Γ + (v) v W = f(v, u) f(u, v) = (v,u) A v W (v,u) A v W,u W (v,u) A v W,u W f(v, u) (u,v) A v W (u,v) A u W,v W f(v, u) c(w, W) u Γ (v) f(u, v) f(u, v) (wegen Flusserhaltung)

9 .. DER ALGORITHMUS VON FORD FULKERSON 9 Anschaulich besagt die Proposition.9, dass jeder Fluss auf dem Weg von der Quelle zur Senke die Grenze zwischen einer Partition (W, W) der Knoten mit s W vollständig passieren muss. Die Bilanz zwischen dem Fluss aus W hinaus und in W hinein entspricht genau dem Fluss, der an der Quelle entsteht bzw. an der Senke abfliesst. Da die Ungleichung in Proposition.9 für alle Flüsse und alle Schnitte gilt, ergibt sich daraus unmittelbar folgendes Korollar: Korollar.0 Für jedes Netzwerk gilt max w(f) min c(w, W) f s t Fluss (W,W) s t Schnitt Nun sind wir in der Lage, die folgende Aussage über die Korrektheit und Laufzeit des Algorithmus von Ford Fulkerson zu formulieren: Satz. Für Netzwerke mit einer ganzzahligen Kapazitätsfunktion c : A N 0 terminiert der Algorithmus von Ford Fulkerson nach höchstens V c max Augmentierungsschritten mit einem (ganzzahligen) maximalen Fluss, wobei c max = max{c(s) : a A}. Beweis: Lemma.7 garantiert, dass der Fluss nach jeder Iteration des Algorithmus zulässig ist. Ausserdem ist klar, dass der Fluss immer ganzzahlig ist, d. h., dass f(e) N 0 e A, da der Nullfluss zu Beginn des Algorithmus diese Bedingung erfüllt und alle Operationen während der Iteration (Minimumsbildung, Addition und Subtraktion) die Ganzzahligkeit erhalten. Da der Fluss in jedem Iterationsschritt echt erhöht wird und ganzzahlig bleibt, muss er also jedes mal um mindestens eins wachsen. Jede von der Quelle s ausgehende Kante kann also höchstens c max mal an einem augmentierenden Pfad beteiligt sein. Da jeder augmentierende s t Pfad eine solche Kante enthalten muss und s weniger als V direkte Nachbarn hat, folgt unmittelbar die Oberschranke für die Anzahl der Iterationen. Es bleibt also nur noch zu zeigen, dass der Fluss f 0, mit dem der Algorithmus terminiert, maximal ist. Hierzu betrachten wir W = {x V : es existiert ein augmentierender s x Pfad bezüglich f 0 }. Es gilt s W nach Definition und ausserdem t W, da der Algorithmus sonst einen augmentierenden s t Pfad gefunden und nicht terminiert hätte. D. h. (W, W) ist ein s t Schnitt. Nach Definition von W gilt:. f 0 (x, v) = c(x, v) (x, v) A mit x W, v W. f 0 (u, x) = 0 (u, x) A mit u W, x W Wenn man diese Werte in Proposition.9 einsetzt, so erhält man w(f 0 ) = c(w, W) max w(f) f s t Fluss wobei sich die Ungleichung aus Korollar.0 ergibt. Daraus folgt dann unmittelbar die Behauptung. Aus Theorem. können wir direkt folgende Verschärfung von Proposition.5 ableiten. Korollar. Ist N = (V, A, C, s, t) ein Netzwerk mit ganzzahligen Kapazitäten, so existiert ein ganzzahliger maximaler Fluss. Ergänzend wollen wir noch ein bekanntes Resultat der Graphentheorie angeben. Da uns, wie immer, nur die Grössenordnung interessiert, verzichten wir auf weitere Argumente, diese Schranke noch um eins oder zwei zu erniedrigen

10 0 KAPITEL. FLÜSSE IN NETZWERKEN Satz.3 (Max Flow Min Cut Theorem) Für jedes Netzwerk N = (V, A, C, s, t) gilt: max w(f) = min c(w, W) f s t Fluss (W,W) s t Schnitt Beweis: haben wir in Korollar.0 bereits gezeigt. Bleibt also nur noch nachzuweisen. Betrachte hierzu einen maximalen Fluss f 0, der nach Proposition.5 immer existiert. Bezüglich f 0 definiere man eine Menge W 0 genauso wie im Beweis von Theorem.. Genau dieselbe Argumentation wie dort liefert w(f 0 ) c(w 0, W 0 )...3 Anmerkungen und Erweiterung auf nichtganzzahlige Netzwerke Anzahl der Iterationen Die in Theorem. angegebene Schranke für die Anzahl der Iterationen ist bis auf eine Konstante bestmöglich. Man betrachte hierzu das Netzwerk in Abbildung.3. c v c s c c t v Abbildung.3: Worst case Beispiel für Ford Fulkerson Wenn der Algorithmus abwechselnd die augmentierenden Pfade s, v, v, t und s, v, v, t wählt, so sind c Iterationen nötig. Daraus folgt, dass der Algorithmus von Ford Fulkerson kein effizienter, d. h. polynomieller Algorithmus ist, da die Kapazitäten mit O(log c max ) Bits kodiert werden können. Wenn man also hinreichend grosse Kapazitäten zulässt, so ist die Laufzeit des Algorithmus exponentiell in der Grösse der Eingabe. Dennoch kann der Algorithmus von Ford Fulkerson unter gewissen Umständen in der Praxis erfolgreich eingesetzt werden. Beispielsweise lässt sich das Problem der Suche nach einem Maximum Matching 3 in einem bipartiten Graphen auf ein MaxFlow Problem in einem Netzwerk mit Kapazitäten c(e) = transformieren. Dazu erweitert man den bipartiten Graphen um zwei neue Knoten s und t, die als Quelle und Senke des Netzwerks dienen. Von s aus werden Kanten zu allen Knoten einer Partition gezogen und alle Knoten der anderen Partition werden mit t verbunden. Diese neuen Kanten und alle Kanten des ursprünglichen Graphen werden von der Quelle zur Senke gerichtet. Es ist leicht einzusehen, dass genau die Kanten mit einem Fluss gleich eins in der Lösung des MaxFlow Problems ein Maximum Matching bilden. Dieses Flussproblem kann der Algorithmus von Ford Fulkerson in O(n) Iterationsschritten lösen, wobei n = V. Nichtganzzahlige Kapazitäten: Algorithmus von Edmonds und Karp Theorem. lässt sich leicht auf rationale Kapazitätsfunktionen erweitern, indem man die Kapazitäten mit dem Hauptnenner durchmultipliziert und auf diese Weise ein äquivalentes Netzwerk erhält, das die Voraussetzungen von Theorem. erfüllt. Für irrationale Kapazitäten kann der Algorithmus von Ford Fulkerson völlig versagen, wie das folgende Beispiel zeigt: 3 Dieser Begriff wird in einem späteren Kapitel genau definiert.

11 .. DER ALGORITHMUS VON FORD FULKERSON Beispiel.4 Es seien φ = 5, c i = φ i und S = i=0 c i = Netzwerk: φ. Weiter betrachte man folgendes c o s c t c wobei die drei horizontalen Kanten Kapazitäten c 0, c und c und alle übrigen Kanten Kapazität S haben. Durch Induktion kann man sich davon überzeugen, dass der Ford-Fulkerson Algorithmus augmentierende Pfade stets so wählen kann, dass sich der Fluss in de i-ten Iterationen genau c i erhöht. Der Wert der gefundenen Flüsse konvergiert somit gegen S. [Um dies einzusehen, überprüft man zunächst, dass für alle i N gilt: c i+ = c i c i. Die Idee ist nun, Pfade so zu wählen, dass nach i Iterationen die Flüsse über die drei horizontalen Kanten genau c i, c i und 0 betragen. Für die (i + )te Iteration wählt man dann einen Pfad, der die Kante mit Fluss 0 vorwärts durchläuft und die beiden anderen horizontalen Kanten rückwärts. Der Fluss wir daher um c i erhöht und die neuen Flüsse über die horizontalen Kanten betragen dann 0, c i c i = c i+ und c i, was zu zeigen war.] Der Wert eines maximalen Flusses ist jedoch 3S. Wir suchen deshalb eine Modifikation des Algorithmus von Ford Fulkerson, der die folgenden zwei Ziele erreicht:. Der Algorithmus soll auch für irrationale Kapazitätsfunktionen funktionieren.. Die Laufzeit, bzw. die Anzahl der Iterationen soll nur noch von der Grösse des Graphen abhängen, nicht aber von der Grösse der Kapazitäten. Bei der Implementierung des Algorithmus von Ford Fulkerson hat man noch eine wichtige Wahlmöglichkeit, nämlich die Auswahl des augmentierenden Pfades, entlang dem der Fluss erhöht wird. Edmonds und Karp haben gezeigt, dass man durch geschickte Durchführung dieses Schritts die beiden oben genannten Ziele erreichen kann. Ihre Variante des Algorithmus von Ford Fulkerson wählt in jedem Iterationsschritt einen kürzesten (bezüglich der Anzahl von Kanten) augmentierenden Pfad aus. Dieser lässt sich leicht durch Breitensuche bestimmen. Da der Beweis zur Laufzeit des Algorithmus von Edmonds und Karp kompliziert ist und wir ausserdem im nächsten Kapitel einen noch schnelleren Algorithmus betrachten werden, sei hier nur das Ergebnis ohne Beweis angegeben. Satz.5 Der Algorithmus von Edmonds und Karp terminiert für jedes Netzwerk nach höchstens (nm)/ Iterationen mit einem maximalen Fluss, wobei m = A und n = V.

12 KAPITEL. FLÜSSE IN NETZWERKEN.3 Die Push-/Relabel Methode nach Goldberg und Tarjan Die Idee von Goldberg/Tarjan besteht darin, am Anfang die Quelle voll aufzudrehen, d. h. auf allen Ausgängen der Quelle schöpft man die Kapazitäten voll aus. Danach wird der Fluss iterativ weiter Richtung Senke geleitet (Push Aktion), soweit es die Kapazitäten und die am jeweiligen Knoten verfügbare Flüssigkeit erlauben. Wenn der Fluss irgendwann bei der Senke angekommen ist und aufgrund der beschränkten Kapazitäten ins Stocken gekommen ist, werden eventuell noch vorhandene überschüsse zurück zur Quelle geleitet und der Hahn wieder etwas zugedreht. Für diese Methode benötigen wir die Voraussetzung, dass D = (V, A) symmetrisch ist, d. h. dass (u, v) A = (v, u) A, damit wir die Flüssigkeit sowohl von der Quelle zur Senke, als auch wieder zurück transportieren können. Dies kann man durch Hinzufügen von Kanten (x, y) mit c(x, y) = 0 immer erreichen und stellt somit keine Einschränkung dar. Während der Iterationen des Algorithmus betrachten wir nicht mehr echte Flüsse, sondern Pseudoflüsse bzw. (genauer) Präflüsse. Diese Begriffe werden in den folgenden Definitionen eingeführt. Definition.6 Eine Abbildung f : A R heisst Pseudofluss, wenn gilt:. f(u, v) c(u, v) für alle (u, v) A und. f(u, v) = f(v, u) für alle (u, v) A. Definition.7 Gegeben sei ein Netzwerk mit einem Pseudofluss f. Als Überschuss (engl.: excess) e f (v) im Knoten v bezeichnen wir e f (v) := f(u, v) (u,v) A Hinter dieser einfachen Summe verbirgt sich im Grunde die Bilanz zwischen Zu- und Abfluss im Knoten v. Diese kurze Formulierung wird durch den. Teil von Definition.6 ermöglicht. Fluss nach v hinein taucht in der Summe als positiver Summand auf und Fluss aus v heraus wird im Gegenzug als negativer Summand berücksichtigt. Definition.8 Ein Präfluss (engl. preflow) ist ein Pseudofluss mit e f (v) 0 für alle v V \ {s, t}. Zwischen einem Pseudofluss f und einem echten Fluss nach Definition. besteht ein enger Zusammenhang. Wenn man nämlich erreicht, dass alle Überschüsse abgebaut sind, d. h., dass e f (v) = 0 für alle v V \ {s, t}, dann kann man leicht einen Fluss f angeben durch { f f(a) falls f(a) > 0 (a) = 0 sonst, Während der Algorithmus überschüssigen Fluss zur Senke oder, wenn deren Aufnahmefähigkeit erschöpft ist, zurück zur Quelle transportiert, betrachten wir die sogenannten aktiven Knoten. Definition.9 Alle Knoten mit v V \ {s, t} mit e f (v) > 0 bezeichnen wir als aktive Knoten. Beim Abbau von überschüssigem Fluss interessieren uns Kanten, über die wir noch Fluss transportieren können. Definition.0 Die Restkapazität c f (a) einer Kante a ist definiert durch c f (a) = c(a) f(a). Definition. Wenn wir nur Kanten mit positiver Restkapazität betrachten, erhalten wir den Restgraph D f = (V, A f ), wobei A f = {a A c f (a) > 0}.

13 .3. DIE PUSH-/RELABEL METHODE NACH GOLDBERG UND TARJAN 3 Als letztes benötigen wir nun noch einen Begriff, der es uns erlaubt festzulegen, wann wir über welche Kante zusätzlichen Fluss schicken dürfen. Hierzu führen wir eine Funktion d ein, die jedem Knoten eine Höhe zuordnet. Im Algorithmus werden wir sicherstellen, dass zusätzlicher Fluss immer nur zwischen Knoten verschickt wird, deren Höhe sich um genau den Wert unterscheidet (und zwar vom höheren zum niedrigeren Knoten). Dadurch dass man die Knoten sukzessive anhebt, kann auf diese Weise Fluss zunächst Richtung Senke und danach überschüssigen Fluss wieder zurück zur Quelle schicken. Definition. Gegeben sei ein Netzwerk mit Pseudofluss f. Eine Abbildung d : V N 0 mit. d(s) = n, d(t) = 0 und. d(u) d(v) + für alle (u, v) A f. heisst zulässige Markierung. Lemma.3 Ist f ein Präfluss und d eine zulässige Markierung, dann gibt es in D f keinen s t Pfad. Beweis: Wir führen einen Beweis durch Widerspruch. Sei also s = v 0,...,v l = t ein s t Pfad in D f. Dann ist (v i, v i ) A f für alle i {,...,l} und l n. Nach Definition gilt für die Markierung: n = d(s) = d(v 0 ) d(v ) + (d(v ) + ) +... d(v l ) + l = d(t) + l = 0 + l n Damit haben wir den gewünschten Widerspruch erhalten. Bemerkung.4 Im Beweis von Theorem. (bei der Definition der Menge W) haben wir bereits folgende Aussage gesehen: Wenn f ein Fluss ist, dann gilt: f maximal D f enthält keinen s t Pfad. Lemma.5 Ist f ein Präfluss und v ein aktiver Knoten, dann gibt es in D f einen Pfad von v nach s, d. h. Überschuss kann immer zurück zur Quelle transportiert werden. Beweis: Sei W = {w V : w ist in D f von v aus erreichbar}. Wir nehmen nun an, dass s W und führen dies zum Widerspruch. Betrachte alle Kanten (u, w) A die über den Rand der Partition von W nach W hinein führen, d. h. mit u W und w W. Es gilt: (w, u) A f = f(w, u) = c(w, u) 0 = f(u, w) = f(w, u) 0 0 e f (w) = f(u, w) = f(u, w) + f(u, w) 0 w W w W u V w W u V \W w W u W }{{}}{{} 0 =0 Das heisst e f (w) = 0 für alle w W und damit insbesondere auch e f (v) = 0. Dies widerspricht unserer Annahme, dass v ein aktiver Knoten ist. Der eigentliche Algorithmus sieht folgendermassen aus:

14 4 KAPITEL. FLÜSSE IN NETZWERKEN Basisalgorithmus // Initialisierung for all (u, v) A { f(u, v) := 0; if u = s then f(u, v) := c(u, v); if v = s then f(u, v) := f(v, u); } for all v V { e f (v) = w:(w,v) A f(w, v); if v = s then d(v) := n else d(v) := 0; } // Hauptschleife while ( aktiver Knoten ) Führe eine (zulässige) Update-Operation durch; Update-Prozeduren Push(v, w) Anwendbarkeit: v aktiv, (v, w) A f und d(v) = d(w) + Sende δ := min{e f (v), c f (v, w)} Flusseinheiten von v nach w; Relabel(v) Anwendbarkeit: v aktiv und w Γ + (v) gilt (v, w) A f oder d(w) d(v) d(v) := min{d(w) + w Γ + (v) mit (v, w) A f }; Lemma.6 Invarianten des Basisalgorithmus sind: a) In Relabel(v) wird d(v) um mindestens erhöht. b) f ist immer ein Präfluss und d eine zulässige Markierung. c) Für einen aktiven Knoten v kann immer eine der Operationen Push oder Relabel ausgeführt werden. d) d(v) n v V. Beweis: a) klar. b) Wegen der Wahl von δ ist klar, dass f ein Präfluss ist. Mit Induktion über die Anzahl der Push / Relabel Aufrufe zeigen wir, dass d eine zulässige Markierung ist. Induktionsbeginn klar. Induktionsannahme d ist nach k Push / Relabel Aufrufen eine zulässige Markierung. Induktionsschluss k k + Aufrufe. Wir betrachten die (k+)te Ausführung einer Push / Relabel Prozedur. Hierbei unterscheiden wir, ob dies ein Push oder ein Relabel Aufruf ist. Relabel(v): Es wird nur d(v) geändert. Für (w, v) A f gilt Für (v, w) A f gilt nach Konstruktion. Ind. Ann. d(w) d alt (v) + a) d neu (v) + d neu (v) d(w) +

15 .3. DIE PUSH-/RELABEL METHODE NACH GOLDBERG UND TARJAN 5 Push(v, w): Es gibt folgende mögliche Auswirkungen: (v, w) wird aus D f entfernt. Dadurch bleibt d sicherlich eine zulässige Markierung. (w, v) wird zu D f hinzugefügt. Zu zeigen ist in diesem Fall: d(w) d(v) +. Dies gilt nach Konstruktion, da Push(v, w) nur ausgeführt wird, wenn d(v) = d(w) +. c) Für alle (v, w) A f gilt d(v) d(w) +. Falls Push(v, w) nicht anwendbar ist, gilt d(v) < d(w) + (v, w) A f, d.h. Relabel(v) ist anwendbar. d) Nach Lemma.5 existiert im Graphen D f ein Pfad p = (v 0 = v, v, v,..., v l = s) von v nach s. D.h. d(v) = d(v 0 ) d(v ) + d(v l ) + l = d(s) + }{{}}{{} l n =n n Als unmittelbare Folgerung erhalten wir aus Lemma.6: Korollar.7 Der Basisalgorithmus terminiert mit einem maximalen Fluss. Als nächstes wollen wir noch die maximale Laufzeit des Basisalgorithmus abschätzen. Dazu werden wir zunächst Aussagen über die maximal mögliche Anzahl von Push bzw. Relabel Aufrufen herleiten. Lemma.8 Die Anzahl der Relabelings ist kleiner gleich n. Beweis: Pro Knoten v V \{s, t} kommen höchstens n Relabelings vor Insgesamt sind es maximal (n ) (n ) n. Es soll nun auch eine obere Schranke für die Anzahl der Pushs gefunden werden. Dazu unterscheidet man zwischen saturierten und nicht saturierten Pushs. Erstere schöpfen die Restkapazität einer Kante voll aus, letztere nicht. Lemma.9 Die Anzahl der saturierten Pushs ist kleiner gleich n m. Beweis: Wir betrachten die Kante (v, w) A. Ein saturierter Push v w tritt auf, wenn d(v) gleich d(w) + ist. Anschliessend gilt: (v, w) A f. Vor dem nächsten Push von v nach w muss daher ein Push von w nach v erfolgen., d.h. d(w) muss mindestens um erhöht werden und anschliessend muss d(v) um mindestens erhöht werden. Daher kann es höchstens n saturierte Pushs v w geben. Lemma.30 Die Anzahl der nicht saturierten Pushs ist kleiner gleich n m. Beweis: Wir betrachten das Potential φ := v: aktiv eines Push bzw. Relabel Aufrufs? Wir unterscheiden hierfür drei Fälle: d(v). Wie verändert sich das Potential während nicht saturierter Push v ist danach nicht mehr aktiv, da durch den Push der gesamte Überschuss abtransportiert wurde die Kapazität der Kante wurde ja nicht voll genutzt. w wird unter Umständen aktiv, falls der Knoten nicht vorher schon Überschuss hatte φ nimmt um mindestens d(v) d(w) = ab. saturierter Push Falls vor der Ausführung des Pushs bereits e f (w) > 0 galt, ändert sich am Potential durch den Push gar nichts. Andernfalls wird w aktiv φ nimmt um höchstens d(w) = d(v) n zu insgesamt nimmt φ bei saturierten Pushs um höchstens #saturierter Pushs (n ) nm (n ) zu.

16 6 KAPITEL. FLÜSSE IN NETZWERKEN Relabel Wir ermitteln die Änderung des Potentials über alle, sagen wir, r Relabels hinweg. Sei d i (v) i = 0...r, v V = V \ {s, t} die Markierung von v nach dem i-ten Relabel. Bei dem i-ten Relabel ändert sich das Potential um folgenden Wert: δ i = d i (v) d i (v) v: aktiv v: aktiv Da ein Relabel immer nur bei aktiven Knoten durchgeführt wird, ändert sich bei nicht aktiven Knoten sicherlich nichts. Daher gilt auch δ i = d i (v) d i (v) v V v V Nun summieren wir über alle Relabels auf (Anfangs sind alle Markierungen in V gleich 0): ( ) r r δ i = d i (v) d i (v) = d r (v) n i= i= v V v V v V Durch Relabels nimmt das Potential also insgesamt höchstens um n zu. das Potential nimmt insgesamt maximal um nm (n )+n n m (Ohne Einschränkung nehmen wir an, dass m n gilt sonst ist das Flussproblem trivial lösbar...) durch Relabels und saturierte Pushs zu. Da das Potential andererseits bei jedem nicht saturiertem Push um mindestens eins abnimmt, ist die Anzahl der nicht saturierten Pushs somit kleiner gleich n m. Aus den vorangehenden drei Lemmas folgt unmittelbar die Endlichkeit des Basisalgorithmus. Für eine effiziente Implementierung benötigen wir nun noch ein möglichst geschicktes Verfahren für die Auswahl der nächsten Update-Operation in der Hauptschleife. Dazu führen wir noch eine weitere Prozedur ein: Push/Relabel(v). Die Prozedur Push/Relabel(v) führt für einen aktiven Knoten v nach Möglichkeit eine Push, ansonsten eine Relabel Operation durch. Dazu gibt es für jeden Knoten eine Liste der adjazenten Kanten und eine Referenz current edge auf eine dieser Kanten. Zu Beginn ( Initialisierung) zeige current edge auf die erste Kante in der Adjazenzliste. Push/Relabel(v) Sei {v, w} die derzeitige current edge von v; if (Push(v, w) anwendbar) Push(v, w); else { if ({v, w} letzte Kante der Kantenliste von v) { Mache erste Kante der Kantenliste zur current edge; Relabel(v); } else { Ersetze current edge durch die nächte Kante der Kantenliste; weiter in der ersten Zeile; } } Lemma.3 In Push/Relabel(v) wird Relabel(v) nur ausgeführt, wenn es auch erlaubt ist. Beweis: Für alle Kanten oberhalb der current edge gilt zu jedem Zeitpunkt c f (v, w) = 0 oder d(v) < d(w) + Satz.3 Der Basisalgorithmus mit der Push/Relabel Prozedur bestimmt einen maximalen Fluss in Zeit O(n m).

17 .3. DIE PUSH-/RELABEL METHODE NACH GOLDBERG UND TARJAN 7 Beweis: Dass der Algorithmus mit einem maximalen Fluss terminiert wissen wir bereits aus Korollar.7. Wir müssen also nur die behauptete Laufzeit nachweisen. Dazu unterscheiden wir vier Posten:. Zeit für Relabels,. Zeit für saturierte Pushs, 3. Zeit für nicht saturierte Pushs, 4. Zeit für das Durchlaufen der Kantenlisten in Push/Relabel. Ein Relabel hat die Laufzeit O (deg(v)). An jedem Knoten werden wegen Lemma.6 maximal n Relabels durchgeführt die Gesamtlaufzeit für alle Relabels ist O( n deg(v)) = O(nm) ( deg(v) = m). v v Ein Push hat die Laufzeit O(), wegen Lemma.9 und.30 haben die Push Operationen insgesamt eine Laufzeit von O(n m). Das Abarbeiten der Kantenliste in der Push/Relabel Routine geschieht höchstens n mal pro Knoten, da es maximal so viele Relabels pro Knoten gibt. Zwischen zwei Relabel-Aufrufen wird die Adjazenzliste eines jeden Knotens genau einmal durchlaufen. Somit ergibt sich als Gesamtlaufzeit für das Durchlaufen der Kantenlisten in Push/Relabel: O(n v V deg(v)) = O(nm). Damit ergibt sich folgende Gesamtlaufzeit des Basisalgorithmus: O(nm) + O(n m) + O(nm) = O(n m) Durch eine geschickte Auswahl des nächsten mit Push/Relabel zu bearbeitenden aktiven Knoten, kann man die Anzahl der nicht saturierten Pushs reduzieren. Diese sind mit O(n m) die grössten Laufzeitfresser. Es gibt mehrere Auswahlstrategien, die einfachste (FIFO) werden wir näher betrachten. Bei der FIFO-Strategie werden die aktiven Knoten in einer Queue nach dem first-in first-out Prinzip gehalten. Basisalgorithmus mit FIFO-Strategie // Initialisierung... wie bisher... Füge zusätzliche alle aktiven Knoten in eine Queue Q ein; // Hauptschleife while ( Q nicht leer ) { Entferne den vordersten Knoten v von Q; repeat { Push/Relabel(v); Falls dadurch ein Knoten w aktiv wird, füge ihn am Ende von Q an; } until ( e f (v) = 0 oder d(v) hat zugenommen ) Falls v noch immer aktiv ist, füge v am Ende von Q an; } Satz.33 Der Basisgorithmus mit Push/Relabel und FIFO-Strategie hat Laufzeit O(n 3 ). Beweis: Wir unterteilen den Algorithmus in Phasen. In der ersten Phase werden alle Knoten abgearbeitet, die während der Initialisierung aktiv wurden. In Phase i + werden die in Phase i eingefügten Knoten abgearbeitet. Aus der Queue wird ja vorne immer ein Knoten entfernt und bearbeitet und die dadurch neu aktiv gewordenen Knoten werden hinten eingehängt. Wir überlegen uns zunächst, dass es maximal 4n Phasen gibt. Dazu betrachten wir das folgende Potential: φ = max{d(v) v aktiv}. Zu Beginn und am Ende ist φ = 0. Zunächst zeigen wir, dass in einer Phase ohne Relabeling φ um mindestens eins abnimmt. Dies sieht man folgendermassen ein. Für alle Knoten w, die durch einen Push(v, w) aktiv werden, gilt d(w) = d(v). D.h., jeder Knoten der in der Phase aktiv wird hat einen d-wert, der um eins kleiner ist als der d-wert des Knotens, der den Push initiiert. Da nach Annahme in der Phase kein Relabel durchgeführt wird, muss die repeat/until-schleife für v auf Grund der ersten Bedingung abgebrochen werden, der Knoten v ist also am Ende der Phase nicht mehr aktiv. Daher nimmt φ, das ja das Maximum der d-werte der

18 8 KAPITEL. FLÜSSE IN NETZWERKEN aktiven Knoten ist, in einer Phase ohne Relabeling sicherlich um mindestens eins ab. Die Anzahl Phasen ohne Relabeling ist daher beschränkt durch die gesamte Zunahme von φ. Wir schätzen wieder ähnlich wie in Lemma.30 ab. Nach dem i-ten Relabel (davor und danach sind dieselben Knoten aktiv) nimmt das Potential um δ i = max{d i (v) v aktiv} max{d i (v) v aktiv} d i (v) d i (v) v V v V zu, mit d i und V wie bei Lemma.30. Insgesamt ergibt sich somit eine Änderung von ( ) r r δ i d i (v) d i (v) = d r (v) n i= i= v V v V v V D.h. die gesamte Zunahme von φ ist maximal n. Damit haben wir also gezeigt, dass die Anzahl Phasen ohne Relabeling durch n beschränkt ist. Die Anzahl Phasen mit Relabeling ist offensichtlich durch die Anzahl Relabelings und damit gemäss Lemma.8 ebenfalls durch n beschränkt. es gibt höchstens 4n Phasen. Zurück zur Laufzeit:. Zeit für Durchlaufen der Kantenlisten in Push/Relabel: O(nm), siehe Beweis von Theorem.3.. Zeit für Relabels: O(nm), siehe Beweis von Theorem Zeit für saturierte Pushs: O(nm), siehe Beweis von Theorem Zeit für nicht saturierte Pushs: O(n 3 ), da höchstens ein nicht saturierter Push pro Knoten pro Phase auftritt und es maximal 4n Phasen gibt. Ausser der FIFO-Strategie gibt es noch weitere Auswahlstrategien, beispielsweise: Highest Label: es wird jeweils der aktive Knoten mit maximalem d-wert betrachtet. Laufzeit: O(n m) Excess Scaling: es wird nur Fluss von Knoten mit genügend grossem Überschuss zu Knoten mit genügend kleinem Überschuss geschickt. Laufzeit: O(nm + n log c max ) Die Analyse dieser Strategien ist etwas aufwendiger. Wir wollen daher an dieser Stelle darauf verzichten. Der interessierte Leser sei auf das Buch Network Flows von Ahuja, Magnanti und Orlin verwiesen.

19 Kapitel Matching Probleme. Definition und Beispiele Betrachten wir das folgende Zuordnungsproblem. Gegeben ist eine Menge von Rechnern mit verschiedenen Leistungsmerkmalen (Speicher, Geschwindigkeit, Plattenplatz, etc.) und eine Menge von Jobs mit unterschiedlichen Leistungsanforderungen an die Rechner. Gibt es eine Möglichkeit, die Jobs so auf die Rechner zu verteilen, dass alle Jobs gleichzeitig bearbeitet werden können? Graphentheoretisch können wir das Problem wie folgt formulieren: Wir symbolisieren jeden Job und jeden Rechner durch einen Knoten und verbinden einen Job mit einem Rechner genau dann, wenn der Rechner die Leistungsanforderungen des Jobs erfüllt. Gesucht ist dann eine Auswahl der Kanten, die jedem Job genau einen Rechner zuordnet und umgekehrt jedem Rechner höchstens einen Job. Eine solche Teilmenge der Kanten nennt man ein Matching des Graphen. Definition. Eine Kantenmenge M E heisst Matching in einem Graphen G = (V, E), falls kein Knoten des Graphen zu mehr als einer Kante aus M inzident ist, oder formal ausgedrückt, wenn e f = für alle e,f M mit e f. Man sagt ein Knoten v wird von M überdeckt, falls es eine Kante e M gibt, die v enthält. Ein Matching M heisst perfektes Matching, wenn jeder Knoten durch genau eine Kante aus M überdeckt wird, oder, anders ausgedrückt, wenn M = V /. Bemerkung. Ein Graph enthält im Allgemeinen sehr viele Matchings. Beispielsweise ist M = {e} für jede Kante e E ein Matching. Die folgende Abbildung zeigt ein Matching (links) und ein perfektes Matching (Mitte). Nicht jeder Graph enthält jedoch ein perfektes Matching. Für Graphen mit einer ungeraden Anzahl an Knoten ist dies klar. Es gibt aber sogar Graphen mit beliebig vielen Knoten, deren grösstes Matching aus einer einzigen Kante besteht. Dies sind die so genannten Sterngraphen (im Bild rechts), deren Kantenmenge genau aus den zu einem Knoten inzidenten Kanten besteht. Wir werden uns in diesem Kapitel mit der Frage beschäftigen, wie man ein bezüglich bestimmten Kriterien optimales Matching bestimmen kann. Genauer werden wir uns zunächst der Frage widmen, wie 9

20 0 KAPITEL. MATCHING PROBLEME man ein Matching mit möglichst vielen Kanten finden kann. Im zweiten Teil dieses Kapitels verallgemeinern wir dann die Aufgabe dahingehend, dass wir als Eingabe zusätzlich zu dem Graphen noch eine Gewichtsfunktion w : E N eingeben und dann nach einem Matching suchen, dass a) möglichst viele Kanten enthält und b) unter allen solchen Matchings eines mit möglichst geringem Kantengewicht. Wie sich herausstellen wird, ist der Fall, dass der zu Grunde liegende Graph bipartit ist, wesentlich einfacher. Wir werden daher die beiden Fälle bipartiter Graph und beliebiger Graph jeweils separat betrachten. Formal werden wir also in diesem Kapitel die folgenden vier Probleme betrachten: (Ungewichtetes) Matching in bipartiten Graphen Eingabe: Ein zusammenhängender bipartiter Graph G = (A B, E). Ausgabe: Ein Matching M 0 mit M 0 = max{ M : M Matching in G}. (Ungewichtetes) Matching in beliebigen Graphen Eingabe: Ein zusammenhängender Graph G = (V, E). Ausgabe: Ein Matching M 0 mit M 0 = max{ M : M Matching in G}. Gewichtetes Matching in bipartiten Graphen Eingabe: Ein zusammenhängender bipartiter Graph G = (A B, E) und eine Gewichtsfunktion w : E N. Ausgabe: Ein Matching M 0 mit M 0 = k und w(m 0 ) = min{w(m) : M Matching in G mit M = k}, wobei k = max{ M : M Matching in G}. Gewichtetes Matching in beliebigen Graphen Eingabe: Ein zusammenhängender Graph G = (V, E) und eine Gewichtsfunktion w : E N. Ausgabe: Ein Matching M 0 mit M 0 = k und w(m 0 ) = min{w(m) : M Matching in G mit M = k}, wobei k = max{ M : M Matching in G}. Auf den ersten Blick mag die Definition des gewichteten Matchingproblems etwas artifiziell wirken. Wir wollen uns daher zunächst die Definition etwas näher bringen. Wir beginnen mit einer Formalie: w(m) bezeichnet das Gesamtgewicht aller Kanten in M, also w(m) = e M w(e). Da wir vorausgesetzt haben, dass die Gewichtsfunktion positiv ist, wird nun auch klar warum wir nach einem Matching mit minimalem Gewicht, aber maximal vielen Kanten suchen. Würden wir die Bedingung an die Anzahl Kanten weglassen, wäre das leere Matching (das ja Gewicht Null hat) immer ein optimales Matching. Genau genommen ist die Situation hier ähnlich zu der bei der Suche nach einem minimalen spannenden Baum. Auch dort wollen wir das Gesamtkantengewicht minimieren - aber unter der Nebenbedingung, dass die ausgewählten Kanten einen spannenden Baum bilden. Beim Matchingproblem wird also nur die Nebenbedingung spannender Baum durch kantenmaximales Matching ersetzt. Noch deutlicher wird die Analogie, wenn der Eingabegraph G vollständig ist. Da in vollständigen Graphen immer ein perfektes Matching existiert, entspricht das Matchingproblem hier der Suche nach einem perfekten Matching minimalen Gewichtes. Dass wir uns bei der Eingabe auf zusammenhängende Graphen beschränkt haben, sollte nicht weiter irritieren. Für nicht zusammenhängende Graphen ergibt sich ein optimales Matching offensichtlich durch Vereinigung optimaler Matchings bezüglich der einzelnen Zusammenhangskomponenten. da die Zusammenhangskomponenten eines Graphens in linearer Zeit einfach bestimmt werden können, genügt es somit das Matchingproblem für zusammenhängende Graphen zu lösen. Zum Abschluss dieses Abschnittes wollen wir nun noch einige Anwendungsbeispiele für das Matchingproblem vorstellen. Später... ;-). Das ungewichtete Matchingproblem.. Augmentierende Pfade Ein wichtiges Konzept für die Konstruktion eines maximalen Matchings ist das eines augmentierenden Pfades. Augmentierende Pfade waren uns bereits bei dem Ford-Fulkerson Algorithmus begegnet. Im Zusammenhang mit Matchings sind sie leicht anders definiert.

21 .. DAS UNGEWICHTETE MATCHINGPROBLEM Definition.3 Sei G = (V, E) ein Graph; M ein Matching in G. Ein Pfad heisst M-alternierend (oder kurz alternierend), falls er abwechselnd Kanten aus M und E \ M enthält. Ein Pfad heisst M-augmentierend (kurz augmentierend), falls er M-alternierend ist und beide Endknoten nicht von M überdeckt sind. Man macht sich leicht klar, dass ein M-augmentierender Pfad immer ungerade viele Kanten enthält, da die Anzahl der Nicht-Matchingkanten die Anzahl der Matchingkanten gemäss Definition um Eins übertreffen muss. Vertauscht man daher entlang eines M-augmentierenden Pfades Matching und Nicht- Matching Kanten, so erhöht sich die Kardinalität der Matching-Kanten um Eins. Wir formalisieren diese Beobachtung in der folgenden Proposition. Proposition.4 Ist P ein M-augmentierender Pfad für ein Matching M, dann gilt: ist ein Matching mit M = M +. M := M P = (M \ P) (P \ M) Beweis: Wir zeigen zunächst, dass M in der Tat ein Matching ist. Angenommen, dies wäre nicht der Fall. Dann gäbe es e, e M mit e e. Folgende drei Konstellationen sind möglich:. e M und e M Widerspruch dazu, dass M ein Matching ist.. e M und e / M e / P, e P. Sei v der gemeinsame Knoten von e und e. Dann kann v kein Endpunkt von P sein, da v in M überdeckt und P nach Annahme M-augmentierend bzgl. M ist. Da e / P, muss folglich von v eine weitere Kante e 3 P ausgehen, die (da P alternierend ist) in M liegen muss. Dies ist jedoch ein Widerspruch zur Voraussetzung, dass M ein Matching ist. 3. e / M und e / M e P, e P Widerspruch dazu, dass P M-alternierend ist. M ist also ein Matching. Für die Kardinalität von M gilt: M = M M P + P \ M. Da P augmentierend ist, gilt P \ M = P M + und somit wie behauptet M = M +. Proposition.4 besagt, dass man aus einem M-augmentierenden Pfad immer ein um Eins grösseres Matching erhalten kann. Der folgenden Satz besagt nun, dass in der Tat noch mehr gilt: Ist M kein kardinalitätsmaximales Matching, so gibt es immer einen M-augmentierenden Pfad, der benutzt werden kann, um M zu vergrössern. Satz.5 Ein Matching M ist genau dann (kardinalitäts-)maximal, wenn es keinen M-augmentierenden Pfad gibt. Beweis: Ergibt sich unmittelbar aus Proposition.4. Sei M ein Matching, das nicht maximal ist. Wir zeigen: es gibt einen M-augmentierenden Pfad. Sei M max ein (beliebiges) maximales Matching. Betrachte den Subgraphen M M max (genauer: den durch die Kantenmenge M M max induzierten Subgraphen). Es gilt Jeder Knoten hat Grad, d. h. M M max ist Vereinigung von Kreisen und Pfaden. Jeder Kreis ist von gerader Länge und enthält die gleiche Anzahl von Kanten aus M wie aus M max.

22 KAPITEL. MATCHING PROBLEME Jeder Pfad enthält abwechselnd Kanten aus M und M max. Wegen M max > M muss es einen Pfad P geben, der mehr Kanten aus M max als aus M enthält. Anfangs- und Endkanten von P gehören daher zu M max, d. h. die Anfangs- und Endknoten von P sind von M nicht überdeckt. Also ist P M-augmentierend. Aus dem Beweis von Satz.5 ergibt sich auch eine obere Schranke für die Länge eines kürzesten M- augmentierenden Pfades. Dies werden wir in Abschnitt.. benötigen und wollen sie daher hier noch kurz festhalten. Korollar.6 Sei M max ein maximales Matching und M ein Matching mit M < M max, in dem der kürzeste M-augmentierenden Pfad, die Länge t hat. Dann gilt M M max n/t. Beweis: Betrachte wie im Beweis von Theorem.5 den Subgraphen M M max. Da ein Pfad in diesem Graphen höchstens eine Kante mehr aus M max als aus M enthalten kann, enthält M M max mindestens s := M max M Pfade P i (i =,...,s), die M-augmentierend sind. Die Pfade P i sind knotendisjunkt und haben nach Annahme alle Länge mindestens t. Es gilt daher und somit M max M = s n/t. s t s P i n Aus obigen Überlegungen ergibt sich unmittelbar der folgende Ansatz für einen Matching-Algorithmus: i=. Starte mit einem beliebigen Matching. (Beispielsweise mit dem leeren Matching oder einem, das der Greedy-Algorithmus gefunden hat).. Vergrössere das Matching sukzessive entlang augmentierender Pfade. (Wie in Proposition.4 beschrieben). Zu lösen ist hier lediglich noch die Frage, wie man augmentierende Pfade effizient findet. Diese auf den ersten Blick einfach aussehende Aufgabe ist in der Tat jedoch nicht ganz so einfach. Zumindest führt die nahe liegende Idee, bei einem beliebigen nicht überdeckten Knoten anzufangen und einen von dort ausgehenden alternierenden Pfad zu verfolgen, bis man auf einen weiteren nicht überdeckten Knoten trifft, nicht notwendiger Weise zum Ziel, wie die nachfolgende Abbildung zeigt.? = Matching-Kanten Das Problem hierbei ist, dass man bei der Konstruktion des augmentierenden Pfades auf Knoten treffen kann, die man bereits besucht hat und dadurch das Anfangsstück des Pfades quasi in umgekehrter Reihenfolge nochmal durchlaufen müsste was der Definition eines Pfades natürlich widerspricht. Man beachte jedoch dass dieses Problem nur auftreten kann, wenn der Graph ungerade Kreise enthält. Beschränkt man sich daher auf bipartite Graphen führte die oben angegebene Idee zur Konstruktion augmentierenden Pfade in der Tat zum Ziel, wie wir im nächsten Abschnitt sehen werden.

23 .. DAS UNGEWICHTETE MATCHINGPROBLEM 3.. Bipartite Graphen Die einfachste Art ein neues Problem zu lösen ist, es auf ein bereits gelöstes Problem zurückzuführen. Im Falle des Matchingproblem in bipartiten Graphen ist dies ganz einfach: Wir konstruieren darau ein Flussproblem: s t A B A B Richte alle Kanten von A nach B. Verbinde einen zusätzlichen Knoten s (Quelle) durch gerichtete Kanten mit allen Knoten in A; verbinde alle Knoten in B durch gerichtete Kanten mit einem zusätzlichen Knoten t (Senke). Gebe allen Kanten Kapazität identisch Eins. Offenbar entspricht dann ein maximales Matching im ursprünglichen Graphen genau einem (ganzzahligen) maximalen Fluss im neuen Graphen. Damit erhalten wir unmittelbar: Satz.7 In bipartiten Graphen ist die Bestimmung eines maximalen Matchings in O(nm) Schritten möglich. Beweis: Überführe das Matchingproblem wie oben beschrieben in ein entsprechendes Flussproblem. Dieses lässt sich (beispielsweise mit dem Algorithmus von Ford und Fulkerson) innerhalb der geforderten Zeitschranke lösen. Als nächsten wollen wir die Laufzeit von O(nm) auf O( nm) verbessern. Der entsprechende Algorithmus wurde 973 von Hopcroft und Karp entwickelt. Er ist noch immer der schnellste Algorithmus, den man für das bipartite Matchingproblem kennt. Die zu Grunde liegende Idee ist recht einfach. Wir versuchen, wie im vorangehenden Abschnitt vorgestellt, ausgehend von den von M nicht überdeckten Knoten in A kürzeste augmentierende Pfade zu finden und zwar wenn möglich mehrere gleichzeitig. Um den Algorithmus etwas genauer skizzieren zu können, benötigen wir zunächst einige vorbereitende Hilfsaussagen. Lemma.8 Sei P ein kürzester M-augmentierender Pfad für ein Matching M und P ein beliebiger (M P)-augmentierender Pfad. Dann gilt P P + P P P Beweis: Sei M := (M P) P. Dann gilt (nach Proposition.4) M = M +, und M M enthält daher mindestens zwei knotendisjunkte M-augmentierende Pfade, sagen wir P und P. M M enthält genau die Kanten, die in genau einem der Pfade P und P vorkommen. Daher gilt M M = P P und somit auch P P = M M P + P P, da P ein kürzester M-augmentierender Pfad ist. Andererseits ist P P = P + P P P. Zusammen also P P P P, woraus die Behauptung unmittelbar folgt.

24 4 KAPITEL. MATCHING PROBLEME Lemma.9 Sei M,...,M k+ eine Folge von Matchings und P,..., P k eine Folge von augmentierenden Pfaden, wobei gelte P i ist ein kürzester M i -augmentierender Pfad ( i =,...,k) M i+ = M i P i ( i =,...,k) Dann gilt Beweis: a) P i+ P i (i =,...,k) b) P i = P j, i j P i und P j sind knotendisjunkt. a) Folgt direkt aus Lemma.8. b) Angenommen, dies gilt nicht. Dann wähle i < j mit P i = P j, so dass P i und P j nicht knotendisjunkt sind, und j i minimal bezüglich dieser Eigenschaften ist. Dann gilt für alle i+ k < l j: P k = P l und P k und P l sind knotendisjunkt. Aus der Knotendisjunktheit der Pfade P i+,...,p j folgt aber, dass P j nicht nur bezüglich M j sondern auch bezüglich M i+ ein augmentierender Pfad ist. Nach Lemma.8 gilt daher: P j P i + P i P j, woraus wegen P i = P j folgt, dass P i P j = 0 sein muss, d. h. P i und P j sind kantendisjunkt. Sei nun v beliebig V (P i ) V (P j ). Da jeder Knoten aus V (P i ) in M i+ = M i P i überdeckt ist und zwar durch Matchingkanten, die in P i enthalten sind, enthält jeder M i+ -augmentierende Pfade, der einen Knoten von V (P i ) enthält auch eine Kante aus P i. Da P j ein M i+ -augmentierender Pfad ist, der nach obiger Überlegung kantendisjunkt zu P j ist, müssen P i und P j auch knotendisjunkt sein, was unserer Annahme widerspricht. Das Lemma legt folgenden Ansatz für einen Matching-Algorithmus nahe: BipartitesMatching Eingabe: zusammenhängender bipartiter Graph G = (A B, E). Ausgabe: (kardinalitäts-) maximales Matching M E. M = ; repeat Bestimme eine (inklusions-) maximale Menge knotendisjunkter kürzester M-augmentierenden Pfade. Augmentiere M entlang dieser Pfade. until (es existiert kein M-augmentierender Pfad). Gemäss Lemma.9 muss die Länge eines kürzesten M-augmentierenden Pfades in jeder Iteration der Schleife zunehmen. Bezeichnen wir mit M das Matching, das wir nach n Iterationen erhalten haben, so beträgt die Länge eines kürzesten M-augmentierenden Pfades daher mindestens n. Aus Korollar.6 folgt daher M M max n/ n. Der Algorithmus terminiert daher spätestens nach n weiteren Iterationen. Wenn wir also zeigen könnten, dass man zu einem Matching M in Zeit O(m) eine maximale Menge knotendisjunkter kürzester M-augmentierenden Pfade bestimmen kann, hätten wir einen Algorithmus, der in Zeit O( nm) ein maximales Matching bestimmt. Solch einen Algorithmus werden wir jetzt herleiten. Im Folgenden sei G = (A B, E) ein zusammenhängender bipartiter Graph und M E ein Matching in G. Ziel ist es eine (inklusions-) maximale Menge knotendisjunkter kürzester M-augmentierender Pfade zu bestimmen. Hierbei gehen wir folgendermassen vor. Durch eine modifizierte Breitensuche bestimmen wir in Zeit O(m) zunächst die Länge l eines kürzesten M-augmentierenden Pfades. Zusätzlich generieren wir dabei einen geeigneten Subgraphen von G, in dem wir in einer zweiten Phase eine maximale Menge knotendisjunkter M-augmentierender Pfade der Länge l durch Tiefensuche bestimmen können. Der geeignete Subgraph von G ist dabei ein Graph G, dessen Knoten sich auf Ebenen (engl. layers) L 0, L,..., L k+ verteilen für die gilt:

25 .. DAS UNGEWICHTETE MATCHINGPROBLEM 5 L 0 enthält genau die von M nicht überdeckten Knoten aus A. L enthält alle Nachbarknoten der Knoten aus L 0. Für alle i k gilt: L i enthält alle Knoten, die von Knoten aus L i über Matchingkanten erreicht werden können. L i+ enthält alle Knoten, die von Knoten aus L i über Nicht-Matchingkanten (also Kanten aus E \ M) erreicht werden können und die noch nicht in j i L j enthalten sind. Die Mengen L, L 3,..., L k 3, L k enthalten nur von M überdeckte Knoten. L k+ ist entweder leer oder enthält mindestens einen von M nicht überdeckten Knoten. Die Kanten von G bestehen aus allen Matchingkanten zwischen Ebenen L i und L i ( i k) und allen Nicht-Matchingkanten zwischen Ebenen L i und L i+ (0 i k). Man macht sich leicht klar, dass aus diesen Eigenschaften folgt, dass die Länge eines kürzesten M- augmentierenden Pfades genau k+ ist bzw. dass, falls L k+ leer ist, es keinen M-augmentierenden Pfad gibt. Ist andererseits P irgendein M-augmentierender Pfad der Länge k +, dann ist P in G enthalten. Für die Bestimmung einer maximalen Menge knotendisjunkter M-augmentierender Pfade können wir uns daher auf G beschränken. Da wir nur an kürzesten augmentierenden Pfaden interessiert sind, wissen wir zusätzlich, dass die zu bestimmenden Pfade genau einen Knoten von jedem Levels enthalten müssen. Wir können uns G daher auch als gerichteten Graphen vorstellen, wobei die Kanten jeweils von der grösseren zur kleineren Ebene gerichtet sind. Die gesuchte maximale Menge knotendisjunkter M-augmentierender Pfade können wir dann wie folgt bestimmen. Wir starten bei einem beliebigen nicht überdeckten Knoten der untersten Ebene eine Tiefensuche, die wir abbrechen sobald wir einen Knoten der obersten Ebene erreichen. Haben wir einen Knoten der obersten Ebene erreicht, definiert uns dies einen augmentierenden Pfad, den wir zu unserer Menge hinzufügen. Dann löschen wir alle während der Tiefensuche besuchten Knoten und starten in dem verbliebenen Graphen von einem anderen von M nicht überdeckten Knoten der untersten Ebene erneut eine Tiefensuche. Diesen Prozess wiederholen wir so lange, bis die unterste Ebene keinen weiteren von M nicht überdeckten Knoten mehr enthält. Unmittelbar einsichtig sollte sein, dass in jeder der beiden Phasen, also Aufbau des Layergraphen G und Konstruktion der augmentierenden Pfade, jede Kante des Graphen höchstens zweimal angefasst wird. Damit haben wir also in der Tat die gewünschte Laufzeit von O(m) erhalten. Wir formulieren den Algorithmus nun noch etwas formaler. AugmentierendePfade Eingabe: zusammenhängender bipartiter Graph G = (A B, E), Matching M E. Ausgabe: (inklusions-) maximale Menge knotendisjunkter kürzester M-augmentierender Pfade // Konstruiere Layergraph G = (V, E ) E := ; X, L 0 := ; for all v A, v nicht überdeckt do L 0 := L 0 {v}; for all {v, w} E do E := E {(w, v)}; X := X {w}; V := L 0 X; while (X ) and (X enthält nur überdeckte Knoten) do // folge Matchingkanten von X in die Menge A Y := ; for all v X und {v, w} M do Y := Y {w}; E := E {(w, v)}; V := V Y ; // folge Nicht-Matchingkanten von Y in die Menge B X := ;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Mehr

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

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

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

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

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

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

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

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

Mehr

Algorithmen 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

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

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

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

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

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

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

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

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

\ 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

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

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

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

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

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

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

Diskrete Mathematik Graphentheorie (Übersicht)

Diskrete Mathematik Graphentheorie (Übersicht) Diskrete Mathematik Graphentheorie (Übersicht) Dr. C. Löh 2. Februar 2010 0 Graphentheorie Grundlagen Definition (Graph, gerichteter Graph). Ein Graph ist ein Paar G = (V, E), wobei V eine Menge ist (die

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

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

Kapitel IV Minimale Spannbäume

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

Mehr

Systems of Distinct Representatives

Systems of Distinct Representatives Systems of Distinct Representatives Seminar: Extremal Combinatorics Peter Fritz Lehr- und Forschungsgebiet Theoretische Informatik RWTH Aachen Systems of Distinct Representatives p. 1/41 Gliederung Einführung

Mehr

ADS: Algorithmen und Datenstrukturen 2

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

Mehr

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

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

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

1 Kürzeste Pfade in Graphen

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

Mehr

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

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

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

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

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

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

Ü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

Algorithmen zur Berechnung von Matchings

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

Mehr

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

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

Freie Bäume und Wälder

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

Mehr

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 3 Programm des

Mehr

Flüsse, Schnitte, bipartite Graphen

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

Mehr

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2008/2009

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2008/2009 . Klausur zur Vorlesung Algorithmentechnik Wintersemester 008/009 Hier Aufkleber mit Name und Matrikelnummer anbringen Vorname: Nachname: Matrikelnummer: Beachten Sie: Bringen Sie den Aufkleber mit Ihrem

Mehr

Übung zur Vorlesung Diskrete Mathematik (MAT.107) Blatt Beispiellösungen Abgabefrist:

Übung zur Vorlesung Diskrete Mathematik (MAT.107) Blatt Beispiellösungen Abgabefrist: Svenja Hüning, Michael Kerber, Hannah Schreiber WS 2016/2017 Übung zur Vorlesung Diskrete Mathematik (MAT.107) Blatt Beispiellösungen Abgabefrist: Hinweise: Dieses Blatt präsentiert Beispiellösungen zu

Mehr

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1

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

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

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

Diskrete Mathematik 1 WS 2008/09

Diskrete Mathematik 1 WS 2008/09 Ruhr-Universität Bochum Lehrstuhl für Kryptologie und IT-Sicherheit Prof. Dr. Alexander May M. Ritzenhofen, M. Mansour Al Sawadi, A. Meurer Lösungsblatt zur Vorlesung Diskrete Mathematik 1 WS 008/09 Blatt

Mehr

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2009/2010

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2009/2010 . Klausur zur Vorlesung Algorithmentechnik Wintersemester 2009/200 Lösung! Beachten Sie: Bringen Sie den Aufkleber mit Ihrem Namen und Matrikelnummer auf diesem Deckblatt an und beschriften Sie jedes Aufgabenblatt

Mehr

Wir betrachten einen einfachen Algorithmus, der den Zusammenhang eines Graphen testen soll.

Wir betrachten einen einfachen Algorithmus, der den Zusammenhang eines Graphen testen soll. Kapitel 2 Zusammenhang 2.1 Zusammenhängende Graphen Wir betrachten einen einfachen Algorithmus, der den Zusammenhang eines Graphen testen soll. (1) Setze E = E, F =. (2) Wähle e E und setze F = F {e},

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

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung

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

Mehr

Algorithmen und Datenstrukturen 2-1. Seminar -

Algorithmen und Datenstrukturen 2-1. Seminar - Algorithmen und Datenstrukturen 2-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 1. Übungsserie: 3 Aufgaben, insgesamt 30 28 Punkte A1 Spannbäume (10 8

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

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

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

3 Klassifikation wichtiger Optimierungsprobleme

3 Klassifikation wichtiger Optimierungsprobleme 3 Klassifikation wichtiger Optimierungsprobleme 3.1 Das MIN- -TSP Wir kehren nochmal zurück zum Handlungsreisendenproblem für Inputs (w {i,j} ) 1 i

Mehr

Kapitel 8: Bipartite Graphen Gliederung der Vorlesung

Kapitel 8: Bipartite Graphen 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

2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/ April 2007

2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/ April 2007 2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/2007 12. April 2007 Hier Aufkleber mit Name und Matrikelnr. anbringen Vorname: Nachname: Matrikelnummer: Beachten Sie: Bringen Sie den Aufkleber

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

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

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

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

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

Algorithmentechnik - U bung 3 4. Sitzung Tanja Hartmann 03. Dezember 2009

Algorithmentechnik - U bung 3 4. Sitzung Tanja Hartmann 03. Dezember 2009 Algorithmentechnik - U bung 3 4. Sitzung Tanja Hartmann 03. Dezember 2009 I NSTITUT F U R T HEORETISCHE I NFORMATIK, P ROF. D R. D OROTHEA WAGNER KIT Universita t des Landes Baden-Wu rttemberg und nationales

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

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

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

Algorithmische Graphentheorie

Algorithmische Graphentheorie 1 Algorithmische Graphentheorie Sommersemester 2014 5. Vorlesung Matchings / Paarungen II Kombinatorischer Algorithmus, Anwendung für Handlungsreisende, LP-Runden Dr. Joachim Spoerhase Prof. Dr. Alexander

Mehr

Graphentheorie. Zusammenhang. Zusammenhang. Zusammenhang. Rainer Schrader. 13. November 2007

Graphentheorie. Zusammenhang. Zusammenhang. Zusammenhang. Rainer Schrader. 13. November 2007 Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 13. November 2007 1 / 84 2 / 84 Gliederung stest und Schnittkanten älder und Bäume minimal aufspannende Bäume Der Satz von Menger 2-zusammenhängende

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

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

Algorithmen und Datenstrukturen 2

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

Mehr

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. a) Es seien W 1 = (V, E 1 ), W 2 = (V, E 2 ) Untergraphen von G, die beide Wälder sind. Weiter gelte E 1 > E 2.

Mehr

Übung zur Vorlesung Berechenbarkeit und Komplexität

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

Mehr

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

Richtig oder falsch? Richtig oder falsch? Richtig oder falsch? Mit dynamischer Programmierung ist das Knapsack- Problem in Polynomialzeit lösbar.

Richtig oder falsch? Richtig oder falsch? Richtig oder falsch? Mit dynamischer Programmierung ist das Knapsack- Problem in Polynomialzeit lösbar. Gegeben sei ein Netzwerk N = (V, A, c, s, t) wie in der Vorlesung. Ein maximaler s-t-fluss kann immer mit Hilfe einer Folge von höchstens A Augmentationsschritten gefunden werden. Wendet man den Dijkstra-Algorithmus

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