Algorithmische Diskrete Mathematik

Größe: px
Ab Seite anzeigen:

Download "Algorithmische Diskrete Mathematik"

Transkript

1 Algorithmische Diskrete Mathematik Vorlesungsskript WS 2010/11, TU München Prof. Dr. Raymond Hemmecke Version vom 3. Februar 2011

2

3 Inhaltsverzeichnis 1 Das Rucksack-Problem Vollständige Enumeration Dynamische Programmierung FPTAS für das Rucksack-Problem Kürzeste Wege Dijkstra-Algorithmus Floyd-Warshall-Algorithmus (Dynamische Programmierung) Minimale aufspannende Bäume Algorithmus von Prim/Borúvka Algorithmus von Kruskal Matroide Unabhängigkeitssysteme und Matroide Maximierungsprobleme über Unabhängigkeitssystemen und Matroiden Minimierungsprobleme über Basissystemen Max-Fluss Problem Problem und Definitionen Finden eines maximalen Flusses Algorithmus von Ford-Fulkerson Algorithmus von Edmonds-Karp Matchings in bipartiten Graphen Min-Cost Flow (MCF) Negative Cycle Optimalität i

4 INHALTSVERZEICHNIS ii Cycle Canceling Algorithmus Ganzahligkeitseigenschaft Komplexitätstheorie Was ist ein Problem? Was ist ein Algorithmus? Was ist Effizienz? Kodierungsschema Rechnermodell Die Klasse P Die Klasse N P Die Klasse N P-vollständig Komplexität von Optimierungsproblemen

5 Kapitel 1 Das Rucksack-Problem Gegeben seien n Gegenstände mit positiven Gewichten a 1,..., a n Z und positiven Werten c 1,..., c n Z. Desweiteren sei ein Rucksack gegeben und eine Schranke b für das maximale Gewicht, das mit dem Rucksack getragen werden kann. Wir möchten nun den Rucksack so mit einer Auswahl der n Gegenstände füllen, dass die Auswahl einen maximalen Gesamtwert hat. Um Trivialitäten zu vermeiden, werden wir annehmen, dass a i b für alle i gilt, da sonst der i-te Gegenstand nicht im Rucksack getragen werden könnte und somit aus dem Problem eliminiert werden könnte. Um das Rucksack-Problem mathematisch zu modellieren, führen wir binäre Variablen x i, i = 1,..., n, ein. Dabei soll x i gleich 1 sein, falls Gegenstand i ausgewählt wird und 0 sonst. Damit kann das Rucksack-Problem als folgendes ganzzahliges Optimierungsproblem modelliert werden: { n max c i x i : i=1 } n a i x i b, x i {0, 1} i. i=1 Das ist bereits ein NP-schweres Optimierungsproblem. Falls nicht P=NP gilt, so ist das beste, das wir erhoffen können, ein Approximationsalgorithmus. Unten werden wir einen best-möglichen Approximationsalgorithmus kennen lernen, einen sogenannten FPTAS (Abkürzung für fully polynomial-time approximation scheme ). Schauen wir uns aber erst einmal exakte Lösungsmethoden für das Rucksack-Problem an. 1.1 Vollständige Enumeration Die wahrscheinlich einfachste, aber auch naivste, Methode, ist die vollständige Enumeration aller 2 n möglichen Auswahlen von Gegenständen zur Rucksack-Bepackung. Dann testet man, welche Auswahlen in den Rucksack passen und identifiziert die bestmögliche Rucksack-Bepackung. Klar, aus Komplexitätssicht ist die vollständige Enumeration keine gute Idee und sollte vermieden werden. 1

6 1.2. Dynamische Programmierung Dynamische Programmierung Schauen wir uns die Idee hinter der dynamischen Programmierung am Beispiel unseres Rucksack- Problems { n } n max c i x i : a i x i b, x i {0, 1} i i=1 i=1 an. Anstatt alle Gegenstände auf einen Schlag auszuwählen, wählen wir die Gegenstände eines nach dem anderen, beginnend mit Gegenstand 1, dann Gegenstand 2 und so weiter. Nach j Entscheidungen haben wir die Werte von x 1,..., x j bestimmt. Zu diesem Zeitpunkt ist der Gesamtwert j j der Auswahl c i x i und das Gesamtgewicht a i x i. i=1 i=1 Sei C j (u) das kleinstmögliche Gewicht, das man benötigt, um einen Gesamtwert von genau u nur mit den ersten j Gegenständen zu erreichen. Sollte dies nicht möglich sein, setzen wir C j (u) = +. Desweiteren setzen wir C 0 (0) = 0 und C 0 (u) = + für u 0. Die entscheidende Beobachtung ist nun die folgende einfache Rekursionsformel C j+1 (u) = min {C j (u), C j (u c j+1 ) + a j+1 }. In anderen Worten: Wenn wir einen Gesamtwert von u mit minimalem Gewicht nur durch die Gegenstände {1,..., j + 1} erreichen wollen, wählen wir entweder den Gegenstand j + 1 nicht aus und haben kleinstes Gewicht C j (u) oder wir wählen den Gegenstand j + 1 aus und haben das kleinstmögliche Gewicht C j (u c j+1 ) + a j+1. In beiden Fällen kennen wir bereits die beste Lösung. Es ist genau dieser Fakt, der den großen Vorteil in der Laufzeit gegenüber der vollständigen Enumeration ausmacht! Beobachtung: Unser Rucksack-Problem ist nun äquivalent dazu, den größten Wert u zu finden, für den C n (u) b gilt. Was ist das größte u, für das wir C n (u) berechnen müssen? Trivialerweise gilt n i=1 c ix i nc max mit c max := max c i. Demzufolge müssen wir lediglich die Werte C n (u) für u = 0, 1,..., nc max i=1,...,n berechnen, um unser Rucksack-Problem zu lösen. Um diese Werte zu berechnen, berechnen wir zuerst C 1 (0),..., C n (0) (nun, diese sind alle 0), dann C 1 (1),..., C n (1), dann C 1 (2),..., C n (2),..., und letztlich C 1 (nc max ),..., C n (nc max ). Diese Werte lassen sich im Übrigen in einem zwei-dimensionalen n nc max -Array anordnen. Um die optimalen Werte für x 1,..., x n zu finden, müssen wir lediglich die Berechnung von C n (u) für das optimale u zurück verfolgen. Schauen wir uns nun die Laufzeit der dynamischen Programmierung an. Mit a max := max a i i=1,...,n benötigt die Berechnung von C j+1 (u) aus C j (u) und C j (u c j+1 ) + a j+1 höchstens O(n a max ) binäre Operationen. Das heißt, wir benötigen in Summe höchstens O(n 3 c max a max ) binäre Operationen für diesen dynamischen Programmierungsansatz. Obwohl c max typischerweise exponentiell in der Kodierungslänge der Eingabedaten ist (Übung: Was ist die Kodierungslänge einer Rucksack- Probleminstanz?), schlägt die dynamische Programmierung die vollständige Enumeration von 2 n potentieller Lösungen um Längen.

7 Kapitel 1. Das Rucksack-Problem 3 Übung: Ein möglicherweise natürlicherer dynamischer Programmierungsansatz für das Rucksack- Problem basiert auf der Berechnung der Werte V j (w), die den maximal möglichen Gesamtwert angeben, den man mit den ersten j Gegenständen erreichen kann, wenn diese ein Gesamtgewicht von genau w haben. 1.3 FPTAS für das Rucksack-Problem Definition Wir betrachten das Optimierungsproblem mit optimaler gültiger Lösung x. max {f(x) : x X} (a) Ein Algorithmus A ist ein ɛ-approximationsalgorithmus, wenn er eine gültige Lösung x 0 X mit f(x 0 ) (1 ɛ)f(x ) berechnet. (b) Eine Familie A ɛ von Algorithmen ist ein polynomielles Approximationsschema (englisch: polynomial time approximation scheme (PTAS)), falls für jedes ɛ > 0, der Algorithmus A ɛ ein ɛ-approximationsalgorithmus ist, dessen Laufzeit für festes ɛ polynomiell in der Kodierungslänge der Probleminstanz ist. (c) Falls A ɛ ein Approximationsschma ist und seine Laufzeit polynomiell in der Kodierungslänge der Probleminstanz und in 1/ɛ ist, dann heißt es ein voll-polynomielles Approximationsschema (englisch: fully polynomial time approximation scheme (FPTAS)). Wir konstruieren nun einen FPTAS zur Lösung des Rucksack-Problems. Wir erinnern uns, dass die Anzahl der Rechenschritte des obigen dynamischen Programmierungsansatzes O(n 3 c max a max ) war. Das heißt, wenn wir c max verkleinern, so ist die entstehende Probleminstanz schneller zu lösen. Wenn wir zum Beispiel statt eines Rucksack-Problems mit Zielfunktion 94x x x 3 ein Rucksack-Problem mit leicht geänderter Zielfunktion 90x 1 +70x x 3 lösen, können wir hoffen, dass sich die optimalen Kosten nur wenig ändern. Die Zielfunktion 90x x x 3 ist aber äquivalent zu 9x 1 + 7x x 3 und das leicht geänderte Rucksack-Problem lässt sich 10 mal schneller lösen!

8 1.3. FPTAS für das Rucksack-Problem 4 FPTAS für das Rucksack-Problem Eingabe: Vektoren a, c Z n +, eine Zahl b Z +, ein Fehler-Parameter ɛ > 0 Ausgabe: eine gültige Lösung x 0 für max{c x : a x b, x {0, 1} n } mit c x 0 (1 ɛ)c x 1. Falls n/c max > ɛ, so löse das Rucksackproblem exakt mit obigem dynamischen Programmierungsansatz. 2. (Runden) Falls n/c max ɛ, so setze t = c i = ( ɛcmax ) log 10, n ci 10 t, i = 1,..., n. Löse das Rucksack-Problem max{ c x : a x b, x {0, 1} n } exakt mit obigem dynamischen Programmierungsansatz. Sei x 0 die gefundene optimale Lösung. 3. Gib x 0 zurück. Der folgende Satz zeigt, dass dies tatsächlich einen FPTAS für das Rucksack-Problem ergibt. Satz Dieser Algorithmus findet eine gültige Lösung x 0 für max{c x : a x b, x {0, 1} n } mit c x 0 (1 ɛ)c x in O(n 4 a max /ɛ) Schritten. Beweis. Falls n/c max > ɛ, so lösen wir das Problem exakt. Der Approximationsfehler ist also 0. Die Laufzeit ist O(n 3 c max a max ) = O(n 4 a max /ɛ). Falls n/c max ɛ, so erfüllt t folgende Ungleichungen Demzufolge erhalten wir ɛ 10 < n10t c max ɛ. (1.1) c max c max 10 t 10n ɛ, und die Laufzeit ist O(n 3 c max a max ) = O(n 4 a max /ɛ). Berechnen wir nun den Approximationsfehler. Seien S bzw. S Mengen von Gegenständen, die von einer optimalen Lösung für max{c x : a x b, x {0, 1} n } bzw. für max{ c x : a x b, x {0, 1} n } gewählt werden. Wir erhalten c i c i 10 t c i 10 t c i (c i 10 t ) c i n10 t. (1.2) i S i S i S i S i S i S Die erste Ungleichung gilt wegen der Optimalität von S für das originale Problem. Die zweite Ungleichung gilt, da 10 t c i c i für alle i gilt. Die dritte Ungleichung gilt wegen der Optimalität

9 Kapitel 1. Das Rucksack-Problem 5 von S für das modifizierte Problem. Die vierte Ungleichung gilt, da c i = c i /10 t c i /10 t 1 gilt und 10 t c i c i 10 t impliziert. Die letzte Ungleichung wiederum gilt, da S n. Wir erhalten c x c x 0 c x = c i c i i S i S c i i S n10t c max ɛ. (1.3) Die erste Ungleichung folgt aus Gleichung (1.2) und aus unserer Annahme, dass a i b für alle i gilt, was für den optimalen Wert c i c max zur Folge hat. Die zweite Ungleichung folgt aus Gleichung (1.1). i S Schreiben wir Gleichung (1.3) um, erhalten wir c x 0 (1 ɛ)c x, und der Approximationsfehler ist ausreichend klein.

10 1.3. FPTAS für das Rucksack-Problem 6

11 Kapitel 2 Kürzeste Wege Gegeben ein Digraph D = (V, A) mit Bogengewichten c(a). Aufgabe: Finde einen Weg W von einem Knoten s V zu allen anderen Knoten oder zu einem bestimmten Knoten t V mit c(w ) minimal. Problem: mögliche negative Kreise 2.1 Dijkstra-Algorithmus Der Algorithmus von Dijkstra funktioniert (nur) für nichtnegative Gewichte korrekt und berechnet die kürzesten Wege von einem gegebenen Knoten s V zu einem Knoten t V (falls man entsprechend vorzeitig abbricht) bzw. zu allen Knoten in V. Idee: Dekomposition eines kürzesten s-v-weges in einen s-u-weg und eine Kante uv. Zwingend müssen dies ein kürzester s-u-weg plus ein kürzester u-v-weg sein, da sich sonst der kürzeste s-v-weg weiter verkürzen ließe. s u v s u + u v 7

12 2.1. Dijkstra-Algorithmus 8 Algorithmus: Dijkstra-Algorithmus Input: Digraph D = (V, A), Gewichte c : A R +, ein Knoten s V (und ein Knoten t V \{s}). Output: Kürzeste gerichtete Wege von s nach v für alle v V und ihre Länge (bzw. ein kürzester s-t-weg). Datenstrukturen: DIST(v) = Länge des kürzesten s-v-weges VOR(v) = Vorgänger von v im kürzesten s-v-weg 0. Setze: DIST(s) = 0 DIST(v) = + für alle v V \ {s} VOR(v) = s für alle v V 1. Alle Knoten seien unmarkiert. 2. Bestimme einen unmarkierten Knoten u, so dass DIST(u) = min{dist(v) : v unmarkiert}. Markiere u. (Falls u = t, gehe zu 5.) 3. Für alle unmarkierten Knoten v mit uv A führe aus: Falls DIST(v) > DIST(u) + c(uv) setze: DIST(v) := DIST(u) + c(uv) und VOR(v) := u. 4. Sind noch nicht alle Knoten markiert, gehe zu Gib DIST(v) und VOR(v) für alle v V zurück. Für alle markierten Knoten v ist DIST(v) die Länge des kürzesten s-v-weges. Falls v markiert ist und DIST(v) < +, so ist VOR(v) der Vorgänger von v in einem kürzesten s-v-weg, d.h. durch Rückwärtsgehen bis s kann ein kürzester s-v-weg bestimmt werden. Brechen wir das Verfahren nicht in Schritt 2 ab und gilt am Ende DIST(v) = +, so heißt das, dass es in D keinen s-v-weg gibt. Anzahl der Update-Operationen des Dijkstra-Algorithmus: O( V 2 ) Beispiel. s 7 5 c 5 d a 6 b 8 5 t

13 Kapitel 2. Kürzeste Wege 9 DIST (s) DIST (a) DIST (b) DIST (c) DIST (d) DIST (t) U nmarkiert Start 0 s s s s s s {s, a, b, c, d, t} Markiere s 0 5 s s 7 s s s {a, b, c, d, t} Markiere a 5 s 11 a 7 s 9 a s {b, c, d, t} Markiere c 10 c 7 s 9 a s {b, d, t} Markiere d 10 c 9 a 17 d {b, t} Markiere b 10 c 15 b {t} (Markiere t) 15 b Demnach ist der kürzeste Weg von s nach t und hat Länge 15. s c b t Satz Der Dijkstra-Algorithmus arbeitet korrekt. Beweis. Über Induktion nach der Anzahl k der markierten Knoten zeigen wir: (a) Ist v markiert, so enthält DIST(v) die Länge eines kürzesten s-v-weges. (b) Ist v unmarkiert, so enthält DIST(v) die Länge eines kürzesten s-v-weges, wobei nur markierte Knoten als innere Knoten zugelassen sind. k = 1: Dann ist nur s markiert und die Behauptung gilt sicherlich. Sei die Behauptung also richtig für k 1 markierte Knoten. Zeigen wir zuerst (a) für k + 1. Das Verfahren habe in Schritt 2 einen (k + 1)-sten Knoten u markiert. Nach Ind.-voraussetzung (b) ist DIST(u) die Länge eines kürzesten s-u-weges, der als innere Knoten nur die ersten k markierte Knoten benutzen darf. Angenommen, es existiere ein kürzerer Weg P von s nach u. Dann muß er einen Bogen von einem markierten Knoten zu einem unmarkierten enthalten. Sei vw der erste derartige Bogen auf dem Weg P. Der Teilweg P von P von s nach w benutzt dann nur markierte Knoten als innere Knoten. Deshalb gilt DIST(w) c( P ) c(p ) < DIST(u). Aber dies widerspricht DIST(u) DIST(w) entsprechend der Auswahl von u in Schritt 2. Dies zeigt (a) für k + 1. Zeigen wir nun (b) für k + 1: Für die derzeit unmarkierten Knoten v ist DIST(v) die Länge eines kürzesten s-v-weges, der nur markierte Knoten als innere hat. In Schritt 3 wird die Länge eines s-v-weges über markierte Knoten verschieden von u verglichen mit der Länge eines s-v-weges über markierte Knoten, der als vorletzten Knoten den Knoten u enthält. Der vorletzte Knoten auf einem kürzesten s-v-weg ist aber entweder u oder ein anderer (vor u) markierter Knoten. Daraus folgt die Behauptung.

14 2.2. Floyd-Warshall-Algorithmus (Dynamische Programmierung) 10 In der Datenstruktur VOR merken wir uns zu jedem Knoten v seinen Vorgänger in einem kürzesten s-v-weg. Einen kürzesten s-v-weg erhält man dann gemäß: v VOR(v) VOR(VOR(v))... VOR(... VOR(v)...) = s. Offensichtlich ist durch VOR( ) eine Arborenszenz definiert. 2.2 Floyd-Warshall-Algorithmus (Dynamische Programmierung) Der Floyd-Warshall-Algorithmus funktioniert für beliebige Gewichte und nicht existenten negativen gerichteten Kreisen im Digraphen. Er berechnet die kürzesten Wege von jedem Knoten i V zu jedem Knoten j V. Desweiteren kann der Algorithmus feststellen, ob es einen negativen Kreis im Digraphen gibt! Damit kann er also sein eigenes Ergebnis verifizieren. Sei m k ij die Länge eines kürzesten i-j-weges, der als innere Knoten nur Knoten mit Index k besitzt. Algorithmus: Floyd-Warshall-Algorithmus Input: Digraph D = ([n], A), beliebige Gewichte c : A R, keine negativen gerichteten Kreise Output: Matrix M = (m ij ) R n n, so dass m ij = Länge eines kürzesten i-j-weges 1.) For i = 1 to n 2.) For j = 1 to n 3.) 4.) For k = 1 to n 5.) For i = 1 to n 6.) For j = 1 to n 0 i = j m 0 ij := i j, (i, j) A c(i, j) sonst 7.) { m k ij := min m k 1 ij, m k 1 ik } + m k 1 kj 8.) Return M = (m n ij ) 1,i,j n.

15 Kapitel 2. Kürzeste Wege 11 Anzahl der Update-Operationen des Floyd-Warshall-Algorithmus: O(n 3 ) mit n = [n] = V. Satz Der Floyd-Warshall-Algorithmus arbeitet korrekt. Beweisidee. Geht der kürzeste Weg von u nach v durch w, dann sind schon die Teilwege minimal. Kennt man also die kürzesten Wege zwischen je zwei Knoten i und j, die nur über Knoten mit Index k 1 führen, und sucht man die kürzesten Wege zwischen je zwei Knoten i und j, die nur über Knoten mit Index k führen, so gibt es nur zwei Möglichkeiten: die kürzesten Wege führen über den Knoten k und haben die Länge m k 1 ik + m k 1 kj oder die kürzesten Wege führen nur über die Knoten mit Indizes k 1 und haben die Länge m k 1 ij. Genau das Minimum dieser beiden Zahlen wird aber zur Berechnung von m k ij herangezogen.

16 2.2. Floyd-Warshall-Algorithmus (Dynamische Programmierung) 12

17 Kapitel 3 Minimale aufspannende Bäume Sei G = (V, E, c) ein gewichteter ungerichteter zusammenhängender Graph mit c : E R +. Ein minimal aufspannender Baum (minimum spanning tree = MST) von G ist ein Baum T = (V, F ) G mit der Eigenschaft, dass Wie findet man einen MST? c(t ) = min{c(t ) : T = (V, F ) G ist ein Baum}. 3.1 Algorithmus von Prim/Borúvka Idee: Starte mit beliebigen Knoten und füge in jedem Schritt kürzeste Kante zwischen Baumknoten W und Nichtbaumknoten V \ W hinzu. Algorithmus von Prim/Borúvka Eingabe: G = (V, E, c), c : E R +, G zusammenhängend Ausgabe: Baum T = (V, F ) 1) Wähle beliebigen Knoten s V. 2) W := {s}, F :=, d(s) := 0 3) for all v N(s) do VOR(v) := s, d(v) := c({s, v}) 4) for all v V \ (N(s) {s}) do VOR(v) := NIL, d(v) := + 5) while W V do 6) y := Knoten mit minimalem d(.)-wert in V \ W 7) W := W {y}, F := F {{VOR(y), y}} 8) for all z N(y) (V \ W ) mit d(z) > c({y, z}) do 9) d(z) := c({y, z}), VOR(z) := y 13

18 3.1. Algorithmus von Prim/Borúvka 14 Beispiel. y W F d(1) d(2) d(3) d(4) d(5) d(6) {1} {6} +{1, 6} {5} +{6, 5} {2} +{5, 2} {4} +{5, 4} {3} +{4, 3} Satz Der Algorithmus von Prim/Borúvka berechnet einen MST in G und hat Laufzeit O( V 2 ). Beweis. Wir beweisen per Induktion: Nach jedem Durchlauf der while-schleife gilt: 1. T = (W, F ) ist ein Baum. 2. Für alle v V \ W gilt: d(v) = { min{c({x, v}) : x W, {x, v} E} +, falls keine Kante {x, v} E existiert d(v) = c({vor(v), v}), falls d(v) < + 3. Es gibt einen MST T in G mit T T. Wenn 1. und 3. auch nach dem letzten Durchlauf gelten, muss T ein MST von G sein. Offensichtlich gelten nach Initialisierung. Angenommen gelten zu Beginn einer while- Schleife:

19 Kapitel 3. Minimale aufspannende Bäume 15 Sei T := (W, F ) der zuletzt berechnete Baum, T ein MST von G mit T T und y der Knoten, der jetzt neu zu W hinzukommt. Nach Konstruktion gelten 1. und 2. auch nach Beendigung dieses while-schleifendurchlaufs: Baum klar, weil nur ein neues Blatt angefügt wird. Update korrekt, weil neuer Knoten einen Beitrag liefern könnte. Bleibt lediglich 3. zu zeigen. Falls die neue Kante {VOR(y), y} eine Kante in T ist, ist nichts zu zeigen. Angenommen, dies gilt nicht. Dann... In T existiert ein Pfad P, der VOR(y) mit y verbindet. Sei {x, v } P die Kante, die W das erste Mal verlässt : x W, v V \ W. Nach Wahl von y und 2. gilt: c({vor(y), y}) 2. = d(y) Alg.Zeile 6 d(v ) 2. c({v, x }). (3.1) Betrachte nun T := (T \ {v, x }) {{VOR(y), y}}. Dann ist T wieder aufspannender Baum in G (denn T {{VOR(y), y}} hat einen Kreis und {v, x } ist Kante auf diesem Kreis, also ist (T \{v, x }) {{VOR(y), y}} noch zusammenhängend und hat genauso viele Knoten und Kanten wie T, ist also ein Baum.) Es gilt c( T ) = c(t ) c({v, x }) + c({vor(y), y}) (3.1) c(t ). Damit ist T auch ein MST von G und T {{VOR(y), y}} T. Damit ist auch 3. gezeigt. Laufzeit: Initialisierung: O( V ) while-schleife: V 1 mal O( V ) ergibt O( V 2 )

20 3.2. Algorithmus von Kruskal Algorithmus von Kruskal Es geht noch einfacher! Algorithmus von Kruskal Eingabe: G = (V, E, c), c : E R +, G zusammenhängend Ausgabe: Baum T = (V, F ) 1) Sortiere alle Kanten, so dass c(e 1 ) c(e 2 )... c(e m ) gilt. 2) F := 3) for i = 1 to m do if (V, F {e i }) ist kreisfrei then F := F {e i } Beispiel. Satz Kruskals Algorithmus berechnet einen minimalen Spannbaum von G und kann in einer Laufzeit O((m + n) log n) implementiert werden. Beweis. Korrektheit: MST (später) Laufzeit: Sortieren: O(m log m) = O(m log n 2 ) = O(2m log n) = O(m log n) kreisfrei: n mal Tiefen-/Breitensuche Θ(n(m + n)) Das ist zu teuer! Wie geht der Test auf Kreisfreiheit schneller/besser?

21 Kapitel 3. Minimale aufspannende Bäume 17 Beispiel. jeder Knoten zeigt auf repräsentativen Knoten (R-Knoten) seiner Komponente; zu Beginn (bei F = ) zeigt jeder Knoten auf sich selbst jeder R-Knoten kennt alle Knoten seiner Komponente und deren Anzahl Bei Test auf Kreisfreiheit prüfe, ob R-Knoten der beiden Kantenenden von e i identisch. Falls nein, kann e i hinzugefügt werden. Dann Update: Knoten der kleineren Komponenten merken sich den R-Knoten der größeren Komponente, dieser merkt sich neue Knoten und die neue Gesamtzahl. Kosten ohne Update: O(m) Kosten für Update: O(Anzahl der Knoten in kleinerer Komponente) Wie oft ist ein Knoten in kleinerer Komponente? Höchstens log 2 n mal, weil jedes Mal die Größe seiner Komponente verdoppelt wird. = insgesamt höchstens v V log 2 n O(n log n) Update-Kosten

22 3.2. Algorithmus von Kruskal 18

23 Kapitel 4 Matroide 4.1 Unabhängigkeitssysteme und Matroide Definition Ein Unabhängigkeitssystem ist ein Paar (E, I), wobei E eine endliche Menge und I P(E) gilt und die Bedingung (1) B I, A B A I erfüllt ist. E heißt Grundmenge. Die Mengen A E mit A I heißen unabhängig, die Mengen B E mit B I heißen abhängig. Wenn außerdem noch gilt, dass (2) A, B I mit A < B : e B \ A mit A {e} I, dann heißt (E, I) Matroid. Beispiel. Sei G = (V, E) ein zusammenhängender Graph und sei I := {F E : (V, F ) ist kreisfreier Graph}. Dann ist (E, I) ein Matroid. (E, I) heißt auch das graphische Matroid von G. Beweis. (1) ist klar, da eine Teilkantenmenge eines kreisfreien Graphen wieder kreisfrei ist. (2) Seien A, B E mit A < B. Finde e B \ A mit A {e} immernoch kreisfrei. Übung Beispiel. E = Spalten einer gegebenen Matrix. Dann ist (E, I) ein Matroid. Beweis. (1) ist wieder klar. I := {F E : F ist linear unabhängige Familie von Vektoren}. (2) folgt aus dem Austauschsatz von Steinitz. 19

24 4.1. Unabhängigkeitssysteme und Matroide 20 Lemma Sei (E, I) ein Unabhängigkeitssystem. Dann gilt (a) I (b) (E, I) ist genau dann ein Matroid, wenn gilt: (2 ) A, C I mit A + 1 = C : e C \ A mit A {e} I. Beweis. (a) I A I. Da A, folgt I nach (1). (b) (2) (2 ): Klar. (2 ) (2): Wende (2 ) auf eine Menge C B mit A + 1 = C an: e C \ A mit A {e} I. Lemma Sei (E, I) ein Unabhängigkeitssystem, F E und I F := {A I : A F }. Dann gilt: (a) (F, I F ) ist ein Unabhängigkeitssystem. (b) Wenn (E, I) ein Matroid ist, so ist auch (F, I F ) ein Matroid. Beweis. Klar nach Definition. (F, I F ) heißt das durch F induzierte Unabhängigkeitssystem. Definition Sei U = (E, I) ein Unabhängigkeitssystem. Jede inklusionsmaximale unabhängige Menge von U heißt Basis. Jede inklusionsminimale abhängige Menge von U heißt Kreis. Definiere: oberer Rang von U: r + (U) := max{ B : B Basis von U} unterer Rang von U: r (U) := min{ B : B Basis von U} Wenn r + (U) = r (U) =: r(u), dann heißt r(u) der Rang von U. Beispiel. (Graphisches Matroid) Basen = aufspannende Bäume, Kreise = Kreise, r + (U) = r (U) = V 1 Lemma Sei U = (E, I) ein Unabhängigkeitssystem. Dann ist U genau dann ein Matroid, wenn F E und U F = (F, I F ) gilt: r + (U F ) = r (U F ).

25 Kapitel 4. Matroide 21 Beweis. ( ) U Matroid U F Matroid. Gäbe es in U F zwei Basen A, B mit A < B, dann e E mit A {e} I F (wegen (2)), im Widerspruch zur Maximalität der Basis A. ( ) Seien A, B I mit A + 1 = B. Betrachte F := A B. Dann sind A, B I F = {C I : C F }. Wegen A < B und r + (U F ) = r (U F ), kann A nicht maximal unabhängig sein (sonst A = B ), d.h., es existiert ein e F \ A = (A B) \ A = B \ A mit A {e} I F I, also ist auch U ein Matroid. Bemerkung. Sei M = (E, I) ein Matroid, A I, e E, und A {e} I. Dann enthält A {e} genau einen Kreis. 4.2 Maximierungsprobleme über Unabhängigkeitssystemen und Matroiden Definition Ein Maximierungsproblem über einem Unabhängigkeitssystem/Matroid (E, I) ist gegeben durch l : E R +. Für A I setze l(a) := l(e). e A Aufgabe: Finde Menge A I mit l(a ) = max{l(a) : A I}. (MAX) Greedy-Algorithmus: Input: (E, I) Unabhängigkeitssystem, l : E R + Output: A g I 1) Sortiere E so, dass E = {e 1,..., e m } mit l(e 1 )... l(e m ). 2) A g := 3) for i = 1 to m do if A g {e i } I then A g := A g {e i } Zurückgegebene Lösung A g heißt auch Greedy-Lösung von (E, I, l). Ziel: Algorithmus löst (MAX) (E, I) ist Matroid. Definition Sei U = (E, I) ein Unabhängigkeitssystem, F E, setze wieder I F := {A I : A F }, U F := (F, I F ).

26 4.2. Maximierungsprobleme über Unabhängigkeitssystemen und Matroiden 22 Setze und nenne κ(f ) := 1, falls r + (U F ) = 0 r (U F ) r +(U F ) falls r + (U F ) > 0 ρ(u) := min{κ(f ) : F E} den Rangquotient von U. Bemerkung. Sei (U = (E, I) ein Unabhängigkeitssystem. Dann gilt: (a) ρ(u) 1 (b) U Matroid Lemma4.1.5 F E : r + (U F ) = r (U F ) ρ(u) = 1 Beispiel. m 4, E := {e 1,..., e m }, I := {{e 1 }} P({e 2,..., e m }) U = ((E, I) ist Unabhängigkeitssystem, aber wegen A = {e 1 } und B = {e 2, e 3 } kein Matroid (Eigenschaft (2) ist nicht erfüllt). Sei γ Z + und l : E R + definiert durch γ + 1, für e = e 1 l(e) := γ für e E \ {e 1 } Betrachte nun das Maximierungsproblem (E, I, l). Dann ist A g = {e 1 }, aber die optimale Lösung ist A = {e 2,..., e m } mit l(a g ) = γ + 1 und l(a ) = (m 1)γ. Außerdem ist r (U) = 1 und r + (U) = m 1 und die Approximationsgüte ist l(a g ) l(a ) = γ + 1 (m 1)γ = ( γ ) 1 m 1 r (U) r + (U). Lemma (Zum Rechnen) Seien E = {e 1,..., e m }, A E, l : E R. j = 0, 1,..., m : E j := {e 1,..., e j }, A j = A E j Dann gilt mit l(e m+1 ) := 0. m l(e) = (l(e j ) l(e j+1 )) A j e A j=1

27 Kapitel 4. Matroide 23 Beweis. Für j = 1,..., m gilt: Also gilt: l(e) = e A = = 1, falls e j A A j A j 1 := 0, sonst m l(e j ) ( A j A j 1 ) j=1 m j=1 m 1 l(e j ) A j l(e j+1 ) A j j=0 m (l(e j ) l(e j+1 )) A j l(e 1 ) A 0 + l(e m+1 ) A m }{{}}{{} =0 =0 j=1 Satz (Hauptsatz) Sei (E, I, l) eine Maximierungsaufgabe über dem Unabhängigkeitssystem U = (E, I) mit Greedy-Lösung A g I und optimaler Lösung A I. Dann ist 1 l(ag ) l(a ) ρ(u) (Diese untere Schranke ist unabhängig von l!) und es gibt eine Funktion l, für die die zweite Ungleichung mit Gleichheit gilt. Beweis. Sei E = {e 1,..., e m } mit l(e 1 )... l(e m ), und für alle j = 0,..., m, seien E j := {e 1,..., e j }, I Ej := {A I : A E j }, U j := (E j, I Ej ), A j := A E j, für beliebiges A I, insbesondere für A = A g I oder A = A I.

28 4.2. Maximierungsprobleme über Unabhängigkeitssystemen und Matroiden 24 Für j [m] gilt r (U j ) (A g ) j (4.1) (A ) j r + (U j ), (4.2) denn (A g ) j und (A ) j sind Basen in U j. Also folgt: l(a g ) Lemma mit A=A g = Ungleichung (4.1) nach Def.: ρ(u) r (U j ) r + (U j ) m [l(e j ) l(e j+1 )] (A g ) j j=1 m [l(e j ) l(e j+1 )] r (U j ) j=1 m [l(e j ) l(e j+1 )] ρ(u) r + (U j ) j=1 Ungleichung (4.2) ρ(u) m [l(e j ) l(e j+1 )] (A ) j j=1 Lemma mit A=A = ρ(u) l(a ). Es bleibt zu zeigen, dass ein l : E R + exististiert mit l(a g ) = ρ(u) l(a ). Sei F E mit r (U F ) r +(U F ) = ρ(u). Setze nun { Seien weiterhin A, B Basen in F mit l(e) := 1, falls e F 0, falls e F. A = r (U F ) und B = r + (U F ). Wir können annehmen, dass der Greedy-Algorithmus die Elemente von E so anordnet, dass erst die Elemente aus A, dann die aus B \ A und dann die aus E \ (A B) kommen. Dann ist A g = A und l(a ) = B. Also gilt: l(a g ) l(a ) = A B = r (U F ) r + (U F ) = ρ(u). Folgerung (Edmonds-Karp) Sei U = (E, I) ein Unabhängigkeitssystem. Dann gilt: U ist Matroid. Für jede Funktion l : E R + findet der Greedy-Algorithmus eine optimale Lösung für die Maximierungsaufgabe (E, I, l).

29 Kapitel 4. Matroide 25 Beweis. ( ) U Matroid ρ(u) = 1 1 l(ag ) l(a ) ρ(u) = 1 l(ag ) = l(a ). ( ) Für jedes l : E R + gilt nach Voraussetzung l(ag ) l(a ) = 1. Desweiteren existiert nach dem Hauptsatz ein l : E R + mit l(a g )/ l(a ) = ρ(u). Demnach gilt 1 = l(a g ) l(a ) = ρ(u). Damit ist U ein Matroid. (Siehe Bemerkung nach Definition ) 4.3 Minimierungsprobleme über Basissystemen Ziel: Greedy-Algorithmus für MST-Problem Definition Sei U = (E, I) ein Unabhängigkeitssystem und J := {B I : B ist Basis von U}. (E, J ) heißt das zu (E, I) gehörige Basissystem. Eine Minimierungsaufgabe über einem Unabhängigkeitssystem ist gegeben durch ein Unabhängigkeitssystem (E, I) und l : E R und besteht darin, in dem zu (E, I) gehörigen Basissystem (E, J ) eine Menge B J mit l(b ) = min B J l(b) zu finden. Beispiel. Das Problem, einen MST in einem Graphen G = (V, E) mit l : E R zu finden, ist eine Minimierungsaufgabe über dem Unabhängigkeitssystem (E, I) mit l : E R und I = {F E : (V, F ) ist kreisfrei}, denn die Basen sind hier genau die aufspannenden Bäume. Lemma Sei U = (E, I) ein Unabhängigkeitssystem und (E, J ) zugehöriges Basissystem, l : E R Gewichtsfunktion und Definiere Ψ(e) = β l(e) für alle e E und β := max{0, max{l(e) : e E}}. Ψ(A) := e A Ψ(e) für A E, A I.

30 4.3. Minimierungsprobleme über Basissystemen 26 Dann gilt: β r (U) max{ψ(a) : A I} min{l(b) : B J } β r + (U) max{ψ(a) : A I}. Beweis. Nach Definition: Ψ(e) 0 für alle e E. A I : Ψ(A) = e A Ψ(e) = e A [β l(e)] = A β l(a), also l(a) = β A Ψ(A). Wegen β 0 folgt min{l(b) : B J } = min{β B Ψ(B) : B J } β r + (U) max{ψ(b) : B J } (nach Def. von r + (U)) β r + (U) max{ψ(a) : A I} (nach Def. von Basis und Ψ(e) 0) Abschätzung nach unten analog. Betrachte jetzt: Minimierungsalgorithmus Greedy-Algorithmus für Matroide: Input: (E, I) Matroid, l : E R Output: A I 1) Sortiere E so, dass E = {e 1,..., e m } mit l(e 1 )... l(e m ). 2) A := 3) for i = 1 to m do if A {e i } I then A := A {e i } Vergleichen Sie diesen Algorithmus mit dem Algorithmus von Kruskal! Satz Seien U = (E, I) ein Matroid, (E, J ) das zugehörige Basissystem, l : E R, β, Ψ wie oben. Dann gilt: (a) β r(u) max{ψ(a) : A I} = min{l(b) : B J }. (b) Minimierungsalgorithmus berechnet B J mit l(b ) = min{l(b) : B J }. Beweis. (a) Wegen Lemma und r (U) = r + (U), weil U ein Matroid ist. (b) Wenn l(e 1 )... l(e m ) dann Ψ(e 1 )... Ψ(e m ). Also berechnet der Algorithmus ein A mit Ψ(A ) = max{ψ(a) : A I} (a) = β r(u) min{l(b) : B J },

31 Kapitel 4. Matroide 27 und damit l(a ) = e A l(e) = e A [β Ψ(e)] = β A Ψ(A ) = β r(u) Ψ(A ) denn A J und B J : B = r(u) = min{l(b) : B J } da Ψ(A ) = β r(u) min{l(b) : B J }

32 4.3. Minimierungsprobleme über Basissystemen 28

33 Kapitel 5 Max-Fluss Problem 5.1 Problem und Definitionen Definition Ein Netzwerk ist ein Tupel N = (V, A, c, s, t), wobei (V, A, c) ein gerichteter Graph mit Kapazitätsfunktion c : A R + ist und s V Quelle und t Senke zwei ausgewählte Knoten sind. Eine Abbildung f : A R + heißt s-t-fluss (flow) in N, wenn 1. f((y, x)) = f((x, y)) y N (x) y N + (x) x V \ {s, t} (Flusserhaltung) 2. f((x, y)) c((x, y)) (x, y) A (Zulässigkeit) Vereinbarung: Wir schreiben ab jetzt immer f(x, y) und c(x, y) anstatt f((x, y)) und c((x, y)). Entweder f(x, y) = 0 oder f(y, x) = 0. (Kein Fluss in beide Richtungen gleichzeitig.) 29

34 5.2. Finden eines maximalen Flusses 30 Der Wert von f ist definiert als val(f) := f(s, y) f(y, s). Gesucht ist der Fluss mit maximalem Wert. y N + (s) y N (s) Lemma Jedes Netzwerk besitzt einen Fluss maximalen Werts. Beweis. Menge aller Flüsse ist als Punktmenge in R A beschränkt (durch c) und abgeschlossen. Funktion val ist stetig und nimmt damit ihr Maximum an. Definition Eine Menge X V heißt s-t-schnitt (cut), wenn s X und t V \ X. Die Kapazität von X ist definiert durch cap(x) := c(u, v). u X,v N + (u)\x Lemma Sei N = (V, A, c, s, t) ein Netzwerk, f ein Fluss in N und X ein s-t-schnitt. Dann gilt: (a) val(f) cap(x) (b) val(f) = f(x, y) f(y, x) x X,y N + (x)\x x X,y N (x)\x 5.2 Finden eines maximalen Flusses Gegeben ein Fluss f, gibt es einen besseren Fluss?

35 Kapitel 5. Max-Fluss Problem 31 Definition Sei N = (V, A, c, s, t) ein Netzwerk und f ein Fluss in N. Wir erweitern zunächst die Kapazitätsfunktion auf c : V V R + mit c(x, y) := 0 für alle (x, y) A. Dann ist das Restnetzwerk N f = (V, A, c f, s, t) definiert durch c(x, y) f(x, y) falls f(x, y) > 0, c f (x, y) = c(x, y) + f(y, x) falls f(y, x) > 0, c(x, y) sonst und A f = {(x, y) : c f (x, y) > 0}. Lemma Wenn f Fluss in N und W gerichteter s-t-weg im Restnetzwerk N f, dann kann f entlang W zu einem Fluss f erhöht werden mit val(f ) > val(f). Satz (Max-Flow-Min-Cut) Sei N = (V, A, c, s, t) ein Netzwerk. Dann gilt max{val(f) : f Fluss in N} = min{cap(x) : X ist s t Schnitt in N}. Satz Sei f ein Fluss in N. Wenn es in N f keinen gerichteten s-t-pfad mehr gibt, dann hat f maximalen Wert. 5.3 Algorithmus von Ford-Fulkerson Algorithmus. Eingabe: N = (V, A, c, s, t) Ausgabe: Fluss f 1) f := 0 2) while s-t-pfad W in N f 3) erhöhe f entlang von W

36 5.4. Algorithmus von Edmonds-Karp 32 Satz Sei N ein Netzwerk mit Kapazitäten aus Z +. Dann terminiert der Algorithmus nach höchstens u,v c(u, v) Verbesserungsrunden mit einem Fluss maximalem Werts. Bemerkung. langsam Wenn Kapazitäten nicht ganzzahlig sind, dann terminiert der Algorithmus eventuell nicht oder konvergiert gegen suboptimalen Fluss. Abhilfe. Edmonds-Karp: wähle kürzesten s-t-pfad O(nm 2 ) Dinic: wähle alle kürzesten s-t-pfade simultan O(n 3 ) 5.4 Algorithmus von Edmonds-Karp 1) Initialisiere f = 0. 2) Solange ein augmentierender Pfad P von s nach t in N f existiert: 2a) Konstruktion bzw. Aktualisierung von N f 2b) Finden des augmentierenden Pfades mittels Breitensuche. 3) Für jede Kante e auf P erhöhe Fluss um c f (P ) = min{restkapazität auf Kanten in P }. Satz Der Edmonds-Karp Algorithmus führt höchstens O( V E ) Augmentierungen durch. Sei δ f (u, v) der Abstand zwischen u und v im Restnetzwerk N f, also die Anzahl der Kanten auf einem kürzesten Weg von u nach v. Dann gilt: Proposition Beim Edmonds-Karp Algorithmus gilt für alle Knoten v V \{s, t}: Während des Ablaufs des Algorithmus ist δ f (s, v) monoton wachsend. Beweis. Angenommen die Aussage gilt nicht. Dann existiert ein Knoten v V, ein Fluss f und ein Fluss f im nächsten Schritt des Algorithmus, so dass δ f (s, v) < δ f (s, v). Sei v ein Knoten mit dieser Eigenschaft für den δ f (s, v) minimal ist. Also gilt für alle anderen Knoten u V : δ f (s, u) < δ f (s, v) = δ f (s, u) δ f (s, u). (5.1)

37 Kapitel 5. Max-Fluss Problem 33 Sei P ein kürzester s-v-weg in N f und u der letzte Knoten vor v in P. Dann gilt nach (5.1): δ f (s, u) δ f (s, u). (5.2) Betrachten wir nun f(u, v), den Fluss von u nach v vor der Augmentierung. Fall (a): f(u, v) < c(u, v). Dann ist (u, v) Bogen in N f und es gilt: δ f (s, v) δ f (s, u) + 1 kürzester s-v-weg ist höchstens so lang wie s-u-v-weg (5.2) δ f (s, u) + 1 = δ f (s, v) da u = VOR(v) Dies ist ein Widerspruch zu δ f (s, v) < δ f (s, v). Fall (b): f(u, v) = c(u, v). Dann ist (u, v) kein Bogen in N f, aber in N f (da (u, v) in P ). Daraus folgt, dass der augmentierende Pfad P den Bogen (v, u) enthalten haben muss und es gilt δ f (s, v) = δ f (s, u) 1 da v = VOR P (u) (5.2) δ f (s, u) 1 = δ f (s, v) 2 da u = VOR P (v) < δ f (s, v) Dies ist ein Widerspruch zu δ f (s, v) < δ f (s, v). Lemma Der Edmonds-Karp Algorithmus führt höchstens O( V E ) Augmentierungen durch. Beweis. Ein Bogen (u, v) heiße kritisch auf augmentierenden Pfad P genau dann, wenn Restkapazität c f (u, v) = c f (P ). Ein kritischer Bogen verschwindet bei einer Augmentierung aus dem Restnetzwerk. Wie oft kann ein Bogen kritisch werden? Der Bogen (u, v) kann in einem späteren Restnetzwerk wieder auftreten, wenn er irgendwann wieder Restkapazität > 0 erhält, d.h., (v, u) liegt auf einem augmentierenden Pfad. Sei f ein Fluss, bei dem (u, v) kritisch war. = δ f (s, v) = δ f (s, u) + 1 da u = VOR(v) Sei f der Fluss, bei dem der Bogen (v, u) das nächste Mal wieder auf dem augmentierenden Weg liegt. Dann gilt: δ f (s, u) = δ f (s, v) + 1 da v = VOR f (u) (5.2) δ f (s, v) + 1 Monotonie = δ f (s, u) + 2 da u = VOR f (v)

38 5.5. Matchings in bipartiten Graphen 34 Also gilt: Zwischen 2 Zeitpunkten, zu denen ein Bogen (u, v) kritisch ist, erhöht er seinen Abstand zu s im Restnetzwerk um mindestens 2. = Jeder Bogen wird höchstens O( V ) mal kritisch. = Es gibt höchstens O( V E ) Augmentierungen. 5.5 Matchings in bipartiten Graphen Sei G = (V, E) ein Graph. Eine Menge M E heißt Matching, wenn für alle e e M gilt: e e =. Ein Matching M heißt maximales Matching, wenn für alle e E \ M gilt: M {e} ist kein Matching. größtes Matching, wenn M M für alle Matchings M von G. perfektes Matching, wenn 2 M = V. Ziel: Algorithmus für größtes Matching Satz Sei G = (V, E) bipartit, V = A B. Dann lässt sich ein größtes Matching mit Hilfe von Flussalgorithmen in O( V 2/3 E ) berechnen. Beweis. Konstruiere aus G ein Netzwerk N := (V {s, t}, E, s, t, c) mit gannzahliger 0 1 Fluss Matching M f val(f) = M f ganzzahliger maximaler Fluss größtes Matching Augmentierende Pfade im Ford-Fulkerson-Algorithmus entsprechen M-alternierenden Pfaden in G.

39 Kapitel 5. Max-Fluss Problem Min-Cost Flow (MCF) MCF Problem. Gegeben sei ein Netzwerk N = (V, A, s, t, c), Bogengewichte/-kosten w : A R und ein geforderter Durchfluss (Nachfrage) vom Wert d. Man finde unter allen s-t-flüssen vom Wert d einen mit minimalem Gewicht/Kosten. Anmerkung. Theoretisch kann man auch mehrere Quellknoten s 1,..., s k und mehrere Senken t 1,..., t l annehmen. Diese lassen sich aber immer zu einer Super-Quelle bzw. Super-Senke zusammenfassen. Anwendung. Von diversen Produktionsstätten sollen Güter (z.b. Autos) in diverse Vertriebsstätten (Autohäuser) möglichst kostengünstig transportiert werden, so dass die geforderte Nachfrage in den Vertriebsstätten bedient wird. Frage. Wie findet man überhaupt einen Fluss vom Wert d, wenn d nicht der maximal mögliche Durchfluss ist? Negative Cycle Optimalität Satz (Negative Cycle Optimalität) Ein gültiger Fluss f ist genau dann eine optimale Lösung des MCF Problems, wenn das Restnetzwerk N f keinen gerichteten Kreis mit negativem Gewicht enthält. Beispiel. Im folgenden Beispiel seien b(i) der Nettofluss durch Knoten i. Es sollen also 4 Einheiten von Knoten 1 nach Knoten 4 transportiert werden. Die Werte u ij entsprechen den Kapazitäten c ij und die c ij den Bogengewichten w ij in unserer oben eingeführten Notation. Das erste Bild zeigt einen gültigen Fluss f vom Wert val(f) = 4. Das zweite Bild zeigt das Restnetzwerk N f nebst negativ gewichteten Kreis, der zur Aktualisierung von f genutzt wird. Entlang des negativ gewichteten Kreises W 1 = {(2, 3), (3, 4), (4, 2)} mit Kosten ( 3) = 1, kann man f um 2 Einheiten ändern. Es entsteht ein neuer Fluss f mit val(f ) = val(f) = 4, dessen Gewicht um 2 kleiner ist als das Gewicht von f.

40 5.6. Min-Cost Flow (MCF) 36 Definition Eine Fluss-Zirkulation ist ein (möglicherweise negativer) Fluss f : A R in N mit val(f) = 0. (In jedem Knoten, also auch in s und t, fließt genauso viel hinein wie heraus.) Bemerkung: Eine Fluss-Zirkulation f : A R lässt sich immer in Flüsse (vom Wert 0) entlang Kreisen zerlegen. Beweis von Satz Angenommen f ist ein gültiger Fluss und N f entält einen negativ gewichteten (gerichteten) Kreis. Dann ist f nicht optimal, da f entlang des negativen Kreises geändert werden könnte und die Kosten damit gesenkt würden. Daraus folgt: wenn f optimaler Fluss ist, dann enthält N f keinen negativ gewichteten (gerichteten) Kreis. Angenommen f ist ein gültiger Fluss und N f entält keinen negativ gewichteten Kreis. Sei nun f ein optimaler Fluss mit f f. Da beide Flüsse gültig sind, haben sie den gleichen Flusswert val(f) = val(f ). Folglich muss f f eine Fluss-Zirkulation in N sein. f f kann also in Kreise (mit Flusswert 0) zerlegt werden. Wichtig ist, dass diese Kreise auch in N f liegen und dass (wegen der Linearität der Kostenfunktion w( )) die Summen der Kosten der Flüsse auf diesen Kreisen gleich w(f ) w(f) ist. Da (nach Annahme) alle Kreise in N f nichtnegativ sind, gilt somit w(f ) w(f) 0 bzw. w(f ) w(f). Da f minimale Kosten hatte, folgt andererseits w(f ) w(f). Demnach ist w(f ) = w(f) und f damit optimal. Frage. Wie findet man einen negativ gewichteten (gerichteten) Kreis in N f (oder kann entscheiden, dass kein solcher existiert)? Cycle Canceling Algorithmus Satz legt einen von der Idee her simplen Algorithmus zur Lösung des MCF Problems nahe, den Cycle Canceling Algorithmus. Dieser Algorithmus berechnet zuerst einen gültigen Fluss mit Wert d. Anschließend werden negative Kreise im Restnetzwerk N f ausfindig gemacht. Diese werden durch Flussänderungen eliminiert. Der Algorithmus terminiert, wenn im Restnetzwerk keine negativen Kreise mehr vorhanden sind. Nach Satz ist dann auch ein MCF gefunden worden. Beispiel. Im folgenden Beispiel seien b(i) der Nettofluss durch Knoten i. Es sollen also 4 Einheiten von Knoten 1 nach Knoten 4 transportiert werden. Die Werte u ij entsprechen den Kapazitäten c ij und die c ij den Bogengewichten w ij in unserer oben eingeführten Notation. Das erste Bild zeigt einen gültigen Fluss f vom Wert val(f) = 4. Die drei folgenden Bilder die jeweilig auftretenden Restnetzwerke N f nebst negativ gewichteten Kreis, der zur Aktualisierung von f genutzt wird.

41 Kapitel 5. Max-Fluss Problem 37 Im ersten Restnetzwerk N f (rechts oben) gibt es einen negativ gewichteten Kreis W 1 = {(2, 3), (3, 4), (4, 2)} mit Kosten ( 3) = 1, entlang dessen man f um 2 Einheiten ändern kann. Es entsteht ein neuer Fluss f mit val(f ) = val(f) = 4, dessen Gewicht um 2 kleiner ist als das Gewicht von f. Im zweiten Restnetzwerk N f (links unten) gibt es wieder negativ gewichteten Kreis W 2 = {(1, 3), (3, 4), (4, 2), (2, 1)} mit Kosten 2+1+( 3)+( 2) = 2, entlang dessen man f um 1 Einheit ändern kann. Es entsteht ein neuer Fluss f mit val(f ) = val(f ) = 4, dessen Gewicht wiederum um 2 kleiner ist als das Gewicht von f. Im dritten Restnetzwerk N f (rechts unten) gibt es keinen negativ gewichteten Kreis. f ist somit nach Satz ist f also ein MCF Ganzahligkeitseigenschaft Satz Wenn alle Kapazitätsschranken c e und der geforderte Durchfluss d ganzzahlig sind, dann existiert ein ganzzahliger MCF. Beweis. Mit Hilfe eines Extra-Knotens r, der nur durch einen Bogen (r, s) mit Gewicht 0 und Kapazität d an das gegebene Netzwerk angeschlossen ist, kann man das Problem, einen s-t-fluss

42 5.6. Min-Cost Flow (MCF) 38 vom Wert genau d zu finden, auf das Problem einen maximalen r-t-fluss zu finden zurück führen. Da die Augmentierungen im Ford-Fulkerson- oder im Edmonds-Karp-Algorithmus vom Null-Fluss ausgehend immer nur ganzzahlige Augmentierungen ausführen (da die Kapazitäten und damit auch die Restkapazitäten ganzzahlig sind), ist der erhaltene Fluss vom Wert d auch ganzzahlig. Da der Cycle Canceling Algorithmus ebenfalls mithilfe der ganzzahligen Restkapazitäten augmentiert, bleiben die erhaltenen Flüsse ganzzahlig.

43 Kapitel 6 Komplexitätstheorie Wiederholung: Notation Wir setzen N = Z + = {0, 1, 2,...}. Desweiteren sei g : N R eine Funktion. Dann definieren wir: O(g) = {f : N R c > 0, n N mit f(n) c g(n) für alle n n 0 } Ω(g) = {f : N R C > 0, n N mit f(n) c g(n) für alle n n 0 } Θ(g) = {f : N R c, C > 0, n N mit c g(n) f(n) C g(n) für alle n n 0 } Beispiel. f(n) = a k n k a 1 n + a 0 O(n k ) 6.1 Was ist ein Problem? Definition Ein Problem ist eine allgemeine Fragestellung, bei der mehrere Parameter offen gelassen sind und für die eine Lösung oder Antwort gesucht wird. Ein Problem ist dadurch definiert, dass alle seine Parameter beschrieben werden und dass genau angegeben wird, welche Eigenschaften eine Antwort (Lösung) haben soll. Sind alle Parameter eines Problems mit expliziten Daten belegt, dann sprechen wir von einem Problembeispiel (Instanz). Beispiel. Finde in einem gewichteten Graphen G einen kürzesten Hamiltonischen Kreis. Offene Parameter: Graph G, Kantengewichte (Entfernungen) 39

44 6.2. Was ist ein Algorithmus? Was ist ein Algorithmus? Definition Ein Algorithmus ist eine Anleitung zur schrittweisen Lösung eines Problems. Wir sagen, ein Algorithmus Problem Π löst, wenn er für jedes Problembeispiel I Π eine Lösung in einer endlichen Anzahl an Schritten findet. Ein Schritt ist eine elementare Opteration, z.b. Addieren, Subtrahieren, Vergleichen, Multiplikation, Division. Die Laufzeit eines Algorithmus ist die Anzahl der Schritte, die notwendig sind zur Lösung des Problembeispiels. Forschungsschwerpunkte: Entwurf von Algorithmen Berechenbarkeit: Was kann durch Algorithmen berechnet werden? Komplexität von Algorithmen Korrektheit von Algorithmen 6.3 Was ist Effizienz? Inhalt der Komplexitätstheorie Speicher- und Laufzeitkomplexität Bemerkung. Laufzeit eines Algorithmus hängt von der Größe der Eingabedaten ab. Laufzeitanalyse erfordert eine Beschreibung, wie Problembeispiele dargestellt werden (Kodierungsschema). Notwendigkeit exakter Definitionen geeignetes Rechnermodell Turing-Maschine 6.4 Kodierungsschema Ganze Zahlen Ganze Zahlen werden binär dargestellt, d.h. wir schreiben mit x i {0, 1} und k = log 2 ( n ). k n = ± x i 2 i, i=0 D.h. die Kodierungslänge n einer ganzen Zahl n ist gegeben durch die Formel n = (k + 1) + 1 = log 2 ( n ) + 2.

45 Kapitel 6. Komplexitätstheorie 41 Rationale Zahlen Sei r Q. Dann existieren p Z und q Z, teilerfremd, mit r = p q. r = p + q Vektoren und Matrizen Für A Q m n ist m n A = a ij. i=1 j=1 6.5 Rechnermodell Nach Festlegung der Kodierungsvorschrift muss ein Rechnermodell entworfen werden, auf dem unsere Speicher- und Laufzeitberechnungen durchgeführt werden. In der Komplexitätstheorie: Turing- Maschine (ein ganz normaler Computer) Ablauf eines Algorithmus auf der Turing-Maschine: Algorithmus A soll Problembeispiel I des Problems Π lösen. Alle Problembeispiele liegen in kodierter Form vor. Die Anzahl der Speicherplätze, die nötig sind, um I vollständig anzugeben, heißt Inputlänge, I. Der Algorithmus liest die Daten und beginnt dann, Operationen auszuführen, d.h. Zahlen zu berechnen, zu speichern, zu löschen. Die Anzahl der Speicherplätze, die während der Ausführung des Algorithmus mindestens einmal benutzt werden, nennen wir Speicherbedarf von A zur Lösung von I. Die Laufzeit von A zur Lösung von I ist die Anzahl elementarer Operationen. Dazu zählen +,,, /, Vergleich, Löschen, Schreiben, Lesen von rationalen Zahlen. Dies ist jedoch zu unpräzise! Zur Darstellung der entsprechenden Zahlen werden mehrere Bits benötigt. Für jede Operation müssen wir mehrere Bits zählen. Definition Laufzeit von A zur Lösung von I ist definiert durch die Anzahl elementarer Operationen, die A ausgeführt hat, um I zu lösen, multipliziert mit der größten Kodierungslänge der während der Berechnung aufgetretenen ganzen oder rationalen Zahl. Definition ( worst-case Laufzeit ) (a) Sei A ein Algorithmus zur Lösung eines Problems Π. Die Funktion f A : N N, f A (n) = max{laufzeit von A zur Lösung von I : I Π, I n} heißt Laufzeitfunktion von A.

46 6.6. Die Klasse P 42 (b) Die Funktion s A : N N definiert durch s A (n) = max{speicherbedarf von A zur Lösung von I : I Π, I n} heißt Speicherplatzfunktion von A. (c) Der Algorithmus A hat eine polynomiale Laufzeit (kurz: A ist ein polynomialer Algorithmus), wenn es ein Polynom p : N N gibt mit f A (n) p(n) für alle n N. Wir sagen f A ist von der Ordnung höchstens n k (geschrieben f A = O(n k )), falls das Polynom p den Grad k hat. (d) Der Algorithmus A hat polynomialen Speicherbedarf, falls es ein Polynom q : N N gibt mit Bemerkung. s A (n) q(n) für alle n N. f A (n) ist in Praxis kaum exakt berechenbar (zu aufwendig). f A (n) ist maschinenabhängig. Man kann aber a priori ein g bestimmen mit f O(g). Man finde möglichst kleinstes solches g. 6.6 Die Klasse P Ein Entscheidungsproblem ist ein Problem, das nur zwei mögliche Antworten besitzt, ja oder nein. Beispiel. Ist n eine Primzahl? Klasse P: Klasse aller Entscheidungsprobleme, für die ein polynomialer Lösungsalgorithmus existiert Diese Definition ist informell: Gegeben ein Kodierungsschema E und ein Rechnermodell M. Π sei ein Entscheidungsproblem, wobei jede Instanz aus Π durch Kodierungsschema E kodierbar sei. Π gehört zur Klasse P (bzgl. E und M), wenn es einen auf M implementierbaren Algorithmus zur Lösung aller Problembeispiele aus Π gibt, dessen Laufzeitfunktion auf M polynomial ist. 6.7 Die Klasse N P Motivation. Enthält G einen Kreis? einfach P Enthält G einen hamiltonischen Kreis? schwieriger N P

47 Kapitel 6. Komplexitätstheorie 43 Klasse NP Definition Ein Entscheidungsproblem Π gehört zu N P, wenn es die folgende Eigenschaften hat: (a) Für jedes Problembeispiel I Π, für das die Antwort ja lautet, gibt es mindestens ein Objekt Q, mit dessen Hilfe die Korrektheit der ja -Antwort überprüft werden kann. (b) Es gibt einen Algorithmus, der Problembeispiele I Π und Zusatzobjekte Q als Input akzeptiert und der in einer Laufzeit, die Polynomial in I ist, überprüft, ob Q ein Objekt ist, aufgrund dessen Existenz ein ja -Antwort für I gegeben werden muss. Beispiel. Hat gegebenes System Ax = b, x 0 eine Lösung? Zusatzobjekt Q: z.b. eine Lösung x 0 Überprüfungsalgorithmus: Teste, ob Ax 0 = b, x 0 0. Ja. : Die ja -Antwort für I ist bestätigt. Nein. : Q ist ungeeignetes Objekt. Die Antwort für I bleibt offen. Bemerkung. Es wird keine Aussage über die Berechenbarkeit eines geeigneten Q gemacht. Q kann geraten werden. Nondeterministic Polynomial time Laufzeit des Algorithmus in (b) ist polynomial in I. Da der Algorithmus Q lesen muss, ist Q polynomial in I. Auf die Frage Hat die Gleichung x 2 + y 2 = n eine Lösung in ganzen Zahlen? ist x = y = n 0.5 kein geeignetes Zusatzobjekt. Definition ist unsymmetrisch in ja und nein. N P impliziert nicht, dass auf die nein - Antwort ein polynomialer Algorithmus zur Überprüfung der Korrektheit dieser Aussage existiert. Probleme, die Negationen von Problemen aus N P sind, gehören zur Klasse con P. Zum Beispiel: Hat G keinen Kreis?, Ist n N eine Primzahl? Man weiß, dass beide Probleme zur Klasse N P con P gehören. Vom Problem Hat G keinen hamiltonischen Kreis? weiß man nicht, ob es zu N P gehört. P N P: Es ist kein Objekt Q nötig, um die ja -Antwort in polynomiller Zeit zu überprüfen. Offene Fragen: P = N P con P N P = con P P N P

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide Dipl-Math. Wolfgang Kinzner 3.4.2012 Kapitel 3: Minimal aufspannende Bäume und Matroide Minimal aufspannende

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

Durchschnitt von Matroiden

Durchschnitt von Matroiden Durchschnitt von Matroiden Satz von Edmonds Dany Sattler 18. Januar 2007/ Seminar zur ganzzahligen Optimierung / Wallenfels Definition: Unabhängigkeitssystem Definition: Ein Mengensystem (S, J ) nennt

Mehr

Wiederholung zu Flüssen

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

Mehr

Algorithmen und Datenstrukturen Kapitel 10

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

Mehr

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

2. Optimierungsprobleme 6

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

Mehr

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP Kap..1 Heuristiken Kap.. Approximative Algorithmen und Gütegarantien Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 3. VO DAP SS 008 14. Juli 009 Überblick

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

Übungsblatt 2 - Lösung

Übungsblatt 2 - Lösung Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 2 - Lösung Vorlesung Algorithmentechnik im WS 08/09 Ausgabe 04. November 2008 Abgabe 8. November, 5:0 Uhr (im Kasten vor Zimmer

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 5 Prof. Peter F. Stadler & Dr. Christian Höner zu Siederdissen Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität

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

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

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

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

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

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

Algorithmen II Vorlesung am 15.11.2012

Algorithmen II Vorlesung am 15.11.2012 Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS) Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen Der Tragödie IV. Theyl Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University

Mehr

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung

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

3. Musterlösung. Problem 1: Boruvka MST

3. Musterlösung. Problem 1: Boruvka MST Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner. Musterlösung Problem : Boruvka MST pt (a) Beweis durch Widerspruch. Sei T MST von G, e die lokal minimale Kante eines

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

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

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

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) 5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!

Mehr

6. Übung zur Linearen Optimierung SS08

6. Übung zur Linearen Optimierung SS08 6 Übung zur Linearen Optimierung SS08 1 Sei G = (V, E) ein schlichter ungerichteter Graph mit n Ecken und m Kanten Für eine Ecke v V heißt die Zahl der Kanten (u, v) E Grad der Ecke (a) Ist die Anzahl

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

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

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

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

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

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

Mehr

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

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

Mehr

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

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

Flüsse, Schnitte, bipartite Graphen

Flüsse, Schnitte, bipartite Graphen Flüsse, Schnitte, bipartite Graphen Vlad Popa 08.06.2010 Inhaltsverzeihnis 1. Flussnetzwerke und Flüsse 1.1 Ford- Fulkerson 1.2 Edmond Karp 1.3 Dinic 2. Schnitte 3. Maximaler Fluss bei minimalen Kosten

Mehr

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

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

Mehr

NP-vollständig - Was nun?

NP-vollständig - Was nun? Kapitel 4 NP-vollständig - Was nun? Wurde von einem Problem gezeigt, dass es NP-vollständig ist, ist das Problem damit nicht gelöst oder aus der Welt geschafft. In der Praxis muss es trotzdem gelöst werden.

Mehr

Kapitel 4: Minimale spannende Bäume Gliederung der Vorlesung

Kapitel 4: Minimale spannende Bäume Gliederung der Vorlesung Kapitel : Minimale spannende Bäume Gliederung der Vorlesung. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen. Kürzeste Wege. Minimale spannende Bäume. Färbungen und Cliquen. Traveling Salesman

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

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. Elementare Graphalgorithmen und Anwendungen. Minimal spannende Bäume. Kürzeste Pfade. Traveling Salesman Problem. Flüsse in Netzwerken

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

Kapitel 4: Minimal spannende Bäume Gliederung der Vorlesung

Kapitel 4: Minimal spannende Bäume Gliederung der Vorlesung Kapitel : Minimal spannende Bäume Gliederung der Vorlesung. Fallstudie Bipartite Graphen 2. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen. Minimal spannende Bäume. Kürzeste Wege. Traveling

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen

Mehr

Stefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie

Stefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie Stefan Schmid TU Berlin & T-Labs, Berlin, Germany Reduktionen in der Berechenbarkeitstheorie Problem: Wie komme ich von hier zum Hamburger Hbf? 2 Beispiel P1 Wie komme ich von hier zum Hamburger Hbf? kann

Mehr

37 Gauß-Algorithmus und lineare Gleichungssysteme

37 Gauß-Algorithmus und lineare Gleichungssysteme 37 Gauß-Algorithmus und lineare Gleichungssysteme 37 Motivation Lineare Gleichungssysteme treten in einer Vielzahl von Anwendungen auf und müssen gelöst werden In Abschnitt 355 haben wir gesehen, dass

Mehr

Felix Brandt, Jan Johannsen. Vorlesung im Wintersemester 2008/09

Felix Brandt, Jan Johannsen. Vorlesung im Wintersemester 2008/09 Felix Brandt, Jan Johannsen Vorlesung im Wintersemester 2008/09 Übersicht Übersicht Definition Ein Matching in G = (V, E) ist eine Menge M E mit e 1 e 2 = für e 1, e 2 M, e 1 e 2 Ein Matching M ist perfekt,

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

Theoretische Informatik SS 03 Übung 3

Theoretische Informatik SS 03 Übung 3 Theoretische Informatik SS 03 Übung 3 Aufgabe 1 a) Sind die folgenden Funktionen f : partiell oder total: f(x, y) = x + y f(x, y) = x y f(x, y) = x y f(x, y) = x DIV y? Hierbei ist x DIV y = x y der ganzzahlige

Mehr

x, y 2 f(x)g(x) dµ(x). Es ist leicht nachzuprüfen, dass die x 2 setzen. Dann liefert (5.1) n=1 x ny n bzw. f, g = Ω

x, y 2 f(x)g(x) dµ(x). Es ist leicht nachzuprüfen, dass die x 2 setzen. Dann liefert (5.1) n=1 x ny n bzw. f, g = Ω 5. Hilberträume Definition 5.1. Sei H ein komplexer Vektorraum. Eine Abbildung, : H H C heißt Skalarprodukt (oder inneres Produkt) auf H, wenn für alle x, y, z H, α C 1) x, x 0 und x, x = 0 x = 0; ) x,

Mehr

WS 2009/10. Diskrete Strukturen

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

Mehr

Kapitel 3: Untere Schranken für algorithmische Probleme Gliederung

Kapitel 3: Untere Schranken für algorithmische Probleme Gliederung Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte

Mehr

Grundlagen Datenstrukturen Transitive Hülle Traversierung Kürzeste Wege Spannender Baum Max. Fluss Zuordnungen. 6. Graphen

Grundlagen Datenstrukturen Transitive Hülle Traversierung Kürzeste Wege Spannender Baum Max. Fluss Zuordnungen. 6. Graphen . Graphen viele praktische (Optimierungs-)Probleme sind als graphentheoretische Probleme formulierbar z.b. in Produktionsplanung, Personaleinsatzplanung,.... Grundlagen gerichteter, ungerichteter und gewichteter

Mehr

Minimal spannende Bäume

Minimal spannende Bäume http://www.uni-magdeburg.de/harbich/ Minimal spannende Fakultät für Informatik Otto-von-Guericke-Universität 2 Inhalt Definition Wege Untergraphen Kantengewichtete Graphen Minimal spannende Algorithmen

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

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 Tobias Ludes 02.07.07 Inhalt Einführung Algorithmen Modifikation der Gomory-Hu Methode Einführung Nach Gomory-Hu nur n-1 Netzwerk-Fluss- Berechnungen

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

WS 2009/10. Diskrete Strukturen

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

Mehr

4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln.

4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln. 4.4 Perfektes Hashing Das Ziel des perfekten Hashings ist es, für eine Schlüsselmenge eine Hashfunktion zu finden, so dass keine Kollisionen auftreten. Die Größe der Hashtabelle soll dabei natürlich möglichst

Mehr

Minimal spannende Bäume

Minimal spannende Bäume Minimal spannende Bäume Ronny Harbich 4. Mai 006 (geändert 19. August 006) Vorwort Ich danke Patrick Bahr und meinem Bruder Steffen Harbich für die Unterstützung bei dieser Arbeit. Sie haben sowohl zu

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

MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

MafI I: Logik & Diskrete Mathematik (F. Hoffmann) Lösungen zum 14. und letzten Aufgabenblatt zur Vorlesung MafI I: Logik & Diskrete Mathematik (F. Hoffmann) 1. Ungerichtete Graphen (a) Beschreiben Sie einen Algorithmus, der algorithmisch feststellt, ob

Mehr

4. Kreis- und Wegeprobleme Abstände in Graphen

4. Kreis- und Wegeprobleme Abstände in Graphen 4. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 4.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. Falls

Mehr

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling Approximationsalgorithmen: Klassiker I Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling VO Approximationsalgorithmen WiSe 2011/12 Markus Chimani

Mehr

1 Zahlentheorie. 1.1 Kongruenzen

1 Zahlentheorie. 1.1 Kongruenzen 3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern

Mehr

Einführung in Approximative Algorithmen und Parametrisierte Komplexität

Einführung in Approximative Algorithmen und Parametrisierte Komplexität Einführung in Approximative Algorithmen und Parametrisierte Komplexität Tobias Lieber 10. Dezember 2010 1 / 16 Grundlegendes Approximationsalgorithmen Parametrisierte Komplexität 2 / 16 Grundlegendes Definition

Mehr

Eulerweg, Eulerkreis. Das Königsberger Brückenproblem. Definition 3.1. Ein Weg, der jede Kante von G genau einmal

Eulerweg, Eulerkreis. Das Königsberger Brückenproblem. Definition 3.1. Ein Weg, der jede Kante von G genau einmal 3. Kreis- und Wegeprobleme Kapitelübersicht 3. Kreis- und Wegeprobleme Eulerweg, Eulerkreis Charakterisierung von eulerschen Graphen Bestimmung von eulerschen Wegen und Kreisen Hamiltonsche Graphen Definition

Mehr

SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung

SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung Martin Dietzfelbinger Juni/Juli 2011 FG KTuEA, TU Ilmenau Effiziente Algorithmen SS11 Kapitel 5 Kapitel 5: Dynamische Programmierung Typische

Mehr

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009

Mehr

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

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

Mehr

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É.

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É. Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É. Tardos Janick Martinez Esturo jmartine@techfak.uni-bielefeld.de xx.08.2007 Sommerakademie Görlitz Arbeitsgruppe 5 Gliederung

Mehr

κ(k) k K S Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965).

κ(k) k K S Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965). 5. Graphenprobleme Im folgenden bezeichnen G = (E, K) einen endlichen Graphen mit der Eckenmenge E und der Kantenmenge K. G kann ungerichtet, gerichtet, schlicht oder nicht schlicht sein. 5.1 Spannende

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Ausarbeitung zum Thema Approximationsalgorithmen im Rahmen des Fachseminars 24. Juli 2009 Robert Bahmann robert.bahmann@gmail.com FH Wiesbaden Erstellt von: Robert Bahmann Zuletzt berarbeitet von: Robert

Mehr

Lösung zur Übung für Analysis einer Variablen WS 2016/17

Lösung zur Übung für Analysis einer Variablen WS 2016/17 Blatt Nr. 3 Prof. F. Merkl Lösung zur Übung für Analysis einer Variablen WS 206/7 Aufgabe Das Guthaben G setzt sich zusammen aus der Summe aller bisherigen Einzahlungen multipliziert mit ( + p) k, wobei

Mehr

Lösungen zu den Hausaufgaben zur Analysis II

Lösungen zu den Hausaufgaben zur Analysis II Christian Fenske Lösungen zu den Hausaufgaben zur Analysis II Blatt 6 1. Seien 0 < b < a und (a) M = {(x, y, z) R 3 x 2 + y 4 + z 4 = 1}. (b) M = {(x, y, z) R 3 x 3 + y 3 + z 3 = 3}. (c) M = {((a+b sin

Mehr

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme Universität Hamburg Fachbereich Mathematik Seminar: Proseminar Graphentheorie Dozentin: Haibo Ruan Sommersemester 2011 Ausarbeitung zum Modulabschluss Graphentheorie spannende Bäume, bewertete Graphen,

Mehr

Algorithmen zum Lösen von Vertex und Set Cover Instanzen zur Planung von Angriffen auf Netzwerke

Algorithmen zum Lösen von Vertex und Set Cover Instanzen zur Planung von Angriffen auf Netzwerke Algorithmen zum Lösen von Vertex und Set Cover Instanzen zur Planung von Angriffen auf Netzwerke Steve Göring 13.07.2012 1/18 Gliederung Einleitung Grundlagen Vertex-Cover-Problem Set-Cover-Problem Lösungsalgorithmen

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

Das Linear Ordering Problem Exakte Lösungsverfahren. für NP-schwierige. VO Algorithm Engineering

Das Linear Ordering Problem Exakte Lösungsverfahren. für NP-schwierige. VO Algorithm Engineering Das Linear Ordering Problem Exakte Lösungsverfahren VO Algorithm Engineering für NP-schwierige Professor Dr. Petra Mutzel kombinatorische Lehrstuhl für Algorithm Engineering, LS11 Optimierungsprobleme

Mehr

2 Die Dimension eines Vektorraums

2 Die Dimension eines Vektorraums 2 Die Dimension eines Vektorraums Sei V ein K Vektorraum und v 1,..., v r V. Definition: v V heißt Linearkombination der Vektoren v 1,..., v r falls es Elemente λ 1,..., λ r K gibt, so dass v = λ 1 v 1

Mehr

Optimierungsprobleme. B. Langfeld, M. Ritter, B. Wilhelm Diskrete Optimierung: Fallstudien aus der Praxis

Optimierungsprobleme. B. Langfeld, M. Ritter, B. Wilhelm Diskrete Optimierung: Fallstudien aus der Praxis Optimierungsprobleme Instanz eines Optimierungsproblems zulässiger Bereich (meist implizit definiert) Zielfunktion Optimierungsrichtung opt {max, min} Optimierungsproblem Menge von Instanzen meist implizit

Mehr

WS 2009/10. Diskrete Strukturen

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

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Clustering: Partitioniere Objektmenge in Gruppen(Cluster), so dass sich Objekte in einer Gruppe ähnlich sind und Objekte

Mehr

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn Ein 5.55-Approximationsalgorithmus für das VPND-Problem Lars Schäfers Inhalt Einführung:

Mehr

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen WS 08/09 Friedhelm Meyer auf der Heide Vorlesung 8, 4.11.08 Friedhelm Meyer auf der Heide 1 Organisatorisches Am Dienstag, 11.11., fällt die

Mehr

Komplexität von Algorithmen

Komplexität von Algorithmen Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen

Mehr

6 Reelle und komplexe Zahlenfolgen

6 Reelle und komplexe Zahlenfolgen $Id: folgen.tex,v.7 200//29 :58:57 hk Exp hk $ 6 Reelle und komplexe Zahlenfolgen 6. Folgenkonvergenz In der letzten Sitzung hatten wir den Begriff der Konvergenz einer reellen oder komplexen Folge gegen

Mehr

Kapitel 3. Kombinatorische Optimierung. 3.1 Begriffe aus der Graphentheorie

Kapitel 3. Kombinatorische Optimierung. 3.1 Begriffe aus der Graphentheorie Kapitel 3 Kombinatorische Optimierung 3 Begriffe aus der Graphentheorie Zur Beschreibung vieler Optimierungsprobleme eignet sich besonders die Sprache der Graphentheorie Das erste graphentheoretisch beschriebene

Mehr

Rechnerische Komplexität

Rechnerische Komplexität Proseminar Effiziente Algorithmen SS 2002 Rechnerische Komplexität Ulrike Krönert (34180) 0. Inhalt 1. Einführung 2. Algorithmen und Komplexität 2.1. Algorithmen 2.2. Laufzeitabschätzung 2.3. Polynomialzeit

Mehr

abgeschlossen unter,,,, R,

abgeschlossen unter,,,, R, Was bisher geschah Turing-Maschinen können Sprachen L X akzeptieren entscheiden Funktionen berechnen f : X X (partiell) Menge aller Turing-akzeptierbaren Sprachen genau die Menge aller Chomsky-Typ-0-Sprachen

Mehr

Algorithmen zur Berechnung von Matchings

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

Mehr

Gleichungen und Ungleichungen

Gleichungen und Ungleichungen Gleichung Eine Gleichung erhalten wir durch Gleichsetzen zweier Terme. Kapitel 3 Gleichungen und Ungleichungen linke Seite = rechte Seite Grundmenge: Menge aller Zahlen, die wir als Lösung der Gleichung

Mehr

3.4 Maximale Flüsse und der Algorithmus von Ford Fulkerson

3.4 Maximale Flüsse und der Algorithmus von Ford Fulkerson 3.4 Maximale Flüsse und der Algorithmus von Ford Fulkerson Definition 3.4.1 Die Aufgabe, zu jedem Netzwerk N = (s, t, V, E, c o ) mit n = V Knoten und m = E Kanten den Fluß f IR m mit maximalem Wert zu

Mehr

Übungen zu Einführung in die Lineare Algebra und Geometrie

Übungen zu Einführung in die Lineare Algebra und Geometrie Übungen zu Einführung in die Lineare Algebra und Geometrie Andreas Cap Sommersemester 2010 Kapitel 1: Einleitung (1) Für a, b Z diskutiere analog zur Vorlesung das Lösungsverhalten der Gleichung ax = b

Mehr

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108 23. November 2011 Betweenness Centrality Closeness Centrality H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108 Betweenness Centrality Grundlegende Idee: Ein Knoten ist wichtig, wenn er auf

Mehr

3.2 Lineare Optimierung (Entscheidungen unter Sicherheit)

3.2 Lineare Optimierung (Entscheidungen unter Sicherheit) 3. Lineare Optimierung (Entscheidungen unter Sicherheit) Betrachtet wird hier der Fall Θ = (bzw. die Situation u(a, ϑ) bzw. l(a,ϑ) konstant in ϑ Θ für alle a A). Da hier keine Unsicherheit über die Umweltzustände

Mehr

Effiziente Algorithmen Übung 2 Lösungen

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

Mehr