FLÜSSE, SCHNITTE UND - TEIL 2 - BIPARTITE GRAPHEN. Vortrag im Seminar Hallo Welt Für Fortgeschrittene Dozenten: Werth, T. & Brinkers, D.

Ähnliche Dokumente
Fortgeschrittene Netzwerk- und Graph-Algorithmen

Flüsse, Schnitte, Bipartite Graphen

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

Flüsse, Schnitte, bipartite Graphen

Flüsse, Schnitte, bipartite Graphen

Flüsse, Schnitte, Bipartite Graphen II

1.Aufgabe: Minimal aufspannender Baum

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

Wiederholung zu Flüssen

Die Ungarische Methode für das Assignment Problem von H. W. Kuhn (1955)

Kombinatorische Optimierung

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

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

Flüsse und Schnitte von Graphen

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

Klausur zum Modul Einführung in die Diskrete Mathematik

Kombinatorische Optimierung

Kapitel 1: Flussalgorithmen

Bipartite Graphen. Beispiele

Flüsse in Netzwerken

1 Matroide. 1.1 Definitionen und Beispiele. Seminar zur ganzzahligen Optimierung Thema: Durchschnitt von Matroiden - Satz von Edmonds von Dany Sattler

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen

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

Die Ungarische Methode für das Assignmentproblem

KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN

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

Optimierung. Optimierung. Vorlesung 9 Lineare Programmierung & Kombinatorische Optimierung Fabian Kuhn

4.7 Der Algorithmus von Dinic für maximalen Fluss

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

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

1 Kürzeste Pfade in Graphen

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

Durchschnitt von Matroiden

Einführung in die Mathematik des Operations Research

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

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

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

Matching. Organisatorisches. VL-18: Matching. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger. Tanzabend

Graphalgorithmen Netzwerkalgorithmen. Laufzeit

Algorithmen II Vorlesung am

Flüsse in Netzwerken. Seminar über Algorithmen SoSe Mike Rohland & Julia Schenk

Trennender Schnitt. Wie groß kann der Fluss in dem folgenden Flussnetzwerk höchstens sein?

ADS: Algorithmen und Datenstrukturen 2

Vorlesung Datenstrukturen

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

Diskrete Mathematik Graphentheorie (Übersicht)

Flüsse, Schnitte, bipartite Graphen. Martin Oettinger

Fortgeschrittene Netzwerk- und Graph-Algorithmen

9 Minimum Spanning Trees

Programmierkurs Python II

Formale Grundlagen der Informatik

Grundlagen: Algorithmen und Datenstrukturen

Flüsse, Schnitte, bipartite Graphen

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

Algorithmen und Datenstrukturen 2

Datenstrukturen & Algorithmen

Effiziente Algorithmen und Datenstrukturen II

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 4: Flüsse

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Effiziente Algorithmen I

Theoretische Informatik 1

Graphalgorithmen 2. Oleksiy Rybakov. 3. Juni Betreuer: Tobias Werth, Daniel Brinkers

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

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

Ausarbeitung über den Satz von Menger und den Satz von König

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

6. Flüsse und Zuordnungen

Algorithmen und Datenstrukturen Kapitel 10

Überblick. Kap. 1.4: Minimum Weight Perfect Matching. 1.3 Blüten-Schrumpf Algorithmus für Maximum Matching

Vorlesung Datenstrukturen

Globalübungsaufgabe1 (All Pair Shortest Path):

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

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

Algorithmen und Datenstrukturen

Bäume und Wälder. Definition 1

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

Very simple methods for all pairs network flow analysis

Aufgaben zur Klausurvorbereitung

Algorithmen & Komplexität

Very simple methods for all pairs network flow analysis

Studientag zur Algorithmischen Mathematik

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

Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin

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

Seminar: Einladung in die Mathematik

Lösungsskizzen zu den Klausuraufgaben zum Kurs 1142 Algorithmische Mathematik. a 0 = 0 =

Helmut Schauer Educational Engineering Lab Department for Information Technology University of Zurich. Graphen (2)

Das Heiratsproblem. Definition Matching

Graphdurchmusterung, Breiten- und Tiefensuche

Matching markets Seminar maschinelles Lernen WS 10/11

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

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

Algorithmen und Datenstrukturen

Systems of Distinct Representatives

3.6 Branch-and-Bound-Verfahren

Minimal spannende Bäume

Maximale s t-flüsse in Planaren Graphen

Anhang: Ungarische Methode

Transkript:

FLÜSSE, SCHNITTE UND BIPARTITE GRAPHEN - TEIL 2 - Vortrag im Seminar Hallo Welt Für Fortgeschrittene Dozenten: Werth, T. & Brinkers, D. Lukas Dresel 17. Juni 215

Inhalt Problemstellung Lösungsmethode 1 Optimales Bipartites Matching 2 Minimale MINIMUMCUT oder Reduktion auf ein Flussproblem 3 (Kanten-/Knoten-) Reduktion auf ein Flussproblem 4 Modifizierter Ford-Fulkerson 2

Grundlagen Annahmen Schritte des Algorithmus 3

Lukas Das Urlaubs-Dilemma 3 1 2 Kilian Nick 4

Die auch Kuhn-Munkres Algorithmus genannt Zum Lösen gewichteter Zuordnungsprobleme auf bipartiten Graphen ( Optimales Bipartites Matching) 5

Die 1955 entwickelt von Harold W. KUHN basierend auf Ideen der ungarischen Mathematiker Dénes Kőnig & Jenő Egerváry 1957 überarbeitet nach Laufzeit- Analyse von James R. MUNKRES 6

Algorithmus zur Minimierung der Kosten eines bipartiten Matchings Basierend auf der Idee der augmentierenden Pfade Algorithmus ist greedy Laufzeit des originalen Algorithmus in O(n 4 ) Laufzeit nach Optimierung in O(n 3 ) 7

Annahmen zur Ungarischen Methode eine Gewichtungsmatrix, bei der die Zeilen den Arbeitern und die Spalten den Jobs entsprechen Gewichtungsmatrix ist quadratisch, andernfalls muss sie künstlich erweitert werden es gibt keine negativen Gewichte 8

1. Uminterpretieren der Kosten als Verlust gegenüber dem Minimum 2. Wähle initial kostenloses Matching 3. Überprüfe aktuelles kostenloses Matching auf Vollständigkeit, wenn JA Ende des Algorithmus 4. Finde augmentierenden Pfad, wenn keiner gefunden goto Schritt 6 5. In Schritt 4 gefundenen Pfad augmentieren goto Schritt 3 6. Passe Matrix an, um kleinstmögliches Übel zu akzeptieren goto Schritt 4 9

Beispiel: Schritt 1.1: Spaltenminima abziehen 2 1 12 4 3 5 8 45 35 15 1 4 18 13 2 3 2 1 12 4 3 5 8 45 35 15 1 4 18 13 2 3 1

Beispiel: Schritt 1.1: Spaltenminima abziehen 2 1 12 4 3 5 8 45 35 15 1 4 18 13 2 3 17 1 12 4 5 8 45 32 15 1 4 15 13 2 3 11

Beispiel: Schritt 1.1: Spaltenminima abziehen 2 1 12 4 3 5 8 45 35 15 1 4 18 13 2 3 17 5 12 4 8 45 32 1 1 4 15 8 2 3 12

Beispiel: Schritt 1.1: Spaltenminima abziehen 2 1 12 4 3 5 8 45 35 15 1 4 18 13 2 3 17 5 2 4 7 45 32 1 4 15 8 1 3 13

Beispiel: Schritt 1.1: Spaltenminima abziehen 2 1 12 4 3 5 8 45 35 15 1 4 18 13 2 3 17 5 2 1 7 15 32 1 1 15 8 1 14

Beispiel: Schritt 1.2: Zeilenminima abziehen 17 5 2 1 7 15 32 1 1 15 8 1 17 5 2 1 7 15 32 1 1 15 8 1 15

Beispiel: Schritt 1.2: Zeilenminima abziehen 17 5 2 1 7 15 32 1 1 15 8 1 15 3 8 7 15 32 1 1 15 8 1 16

Beispiel: Schritt 1.2: Zeilenminima abziehen 17 5 2 1 7 15 32 1 1 15 8 1 15 3 8 7 15 32 1 1 15 8 1 17

Beispiel: Schritt 1.2: Zeilenminima abziehen 17 5 2 1 7 15 32 1 1 15 8 1 15 3 8 7 15 32 1 1 15 8 1 18

Beispiel: Schritt 1.2: Zeilenminima abziehen 17 5 2 1 7 15 32 1 1 15 8 1 15 3 8 7 15 32 1 1 15 8 1 19

Beispiel: Schritt 2: Initiales Matching finden Wir iterieren über die Matrix und markieren noch nicht überdeckte Nullen mit einem Stern. 15 3 8 7 15 32 1 1 15 8 1 [ ] 2

Beispiel: Schritt 2: Initiales Matching finden Wir iterieren über die Matrix und markieren noch nicht überdeckte Nullen mit einem Stern. 15 3 8 7 15 32 1 1 15 8 1 [ 1 ] 1 21

Beispiel: Schritt 2: Initiales Matching finden Wir iterieren über die Matrix und markieren noch nicht überdeckte Nullen mit einem Stern. 15 3 8 7 15 32 1 1 15 8 1 [1 1 ] 1 1 22

Beispiel: Schritt 2: Initiales Matching finden Wir iterieren über die Matrix und markieren noch nicht überdeckte Nullen mit einem Stern. 15 3 8 7 15 32 1 1 15 8 1 [1 1 ] 1 1 23

Beispiel: Schritt 2: Initiales Matching finden Wir iterieren über die Matrix und markieren noch nicht überdeckte Nullen mit einem Stern. 15 3 8 7 15 32 1 1 15 8 1 [1 1 ] 1 1 24

Beispiel: Schritt 2: Initiales Matching finden Wir iterieren über die Matrix und markieren noch nicht überdeckte Nullen mit einem Stern. 15 3 8 7 15 32 1 1 15 8 1 [1 1 1] 1 1 1 25

Beispiel: Schritt 3: Ist initiales Matching perfekt? 15 3 8 7 15 32 1 1 15 8 1 [1 1 1] Es gibt eine unüberdeckte Spalte Kein perfektes Matching, weitermachen 26

Beispiel: Schritt 4: Finde augmentierenden Pfad Finde eine noch nicht überdeckte Null, markiere sie 15 3 8 7 15 32 1 1 15 8 1 [1 1 1] Mit Stern markierte Null in der selben Zeile? Ja, deren Spalte entfernen, Reihe zur Überdeckung hinzufügen 27

Beispiel: Schritt 4: Finde augmentierenden Pfad Finde eine noch nicht überdeckte Null 15 3 8 7 15 32 1 1 15 8 1 [ 1 1] 1 Keine unüberdeckte Null mehr Wir müssen mehr Kosten in Kauf nehmen. goto Schritt 6 28

Beispiel: Schritt 6: Matrix Werte anpassen Finde Minimum aller nicht überdeckten Werte 15 3 8 7 15 32 1 1 15 8 1 [ 1 1] 1 Minimum = 3 29

Beispiel: Schritt 6: Matrix Werte anpassen Zeile überdeckt? Spalte nicht überdeckt? 15 3 8 7 15 32 1 1 15 8 1 val += minimum; val = minimum; [ 1 1] 1 3

Beispiel: Schritt 6: Matrix Werte anpassen Zeile überdeckt? Spalte nicht überdeckt? 12 8 73 18 29 7 1 12 5 1 val += minimum; val = minimum; [ 1 1] 1 31

Beispiel: Schritt 4: Finde augmentierenden Pfad Finde eine noch nicht überdeckte Null, markiere sie 12 8 73 18 29 7 1 12 5 1 [ 1 1] 1 Mit Stern markierte Null in der selben Zeile? Ja, deren Spalte entfernen, Reihe zur Überdeckung hinzufügen 32

Beispiel: Schritt 4: Finde augmentierenden Pfad Finde eine noch nicht überdeckte Null, markiere sie 12 8 73 18 29 7 1 12 5 1 [ 1] 1 1 Mit Stern markierte Null in der selben Reihe? Nein, Markiere sie 33

Beispiel: Schritt 4: Finde augmentierenden Pfad Finde eine noch nicht überdeckte Null, markiere sie 12 8 73 18 29 7 1 12 5 1 [ 1] 1 1 Mit Stern markierte Null in der selben Reihe? Nein, Markiere sie, GOTO 5, augmentierender Pfad gefunden 34

Beispiel: Schritt 5: Pfad Augmentieren Beginne von der in Schritt 4 entdeckten unüberdeckten Null aus 12 8 73 18 29 7 1 12 5 1 [ 1] 1 1 Von jedem Prime aus finde einen Stern in der selben Spalte Von jedem Stern aus finde einen Prime in der selben Zeile 35

Beispiel: Schritt 5: Pfad Augmentieren Wiederhole solange möglich 12 8 73 18 29 7 1 12 5 1 [ 1] 1 1 Von jedem Prime aus finde einen Stern in der selben Spalte Von jedem Stern aus finde einen Prime in der selben Zeile 36

Beispiel: Schritt 5: Pfad Augmentieren Wiederhole solange möglich 12 8 73 18 29 7 1 12 5 1 [ 1] 1 1 Von jedem Prime aus finde einen Stern in der selben Spalte Von jedem Stern aus finde einen Prime in der selben Zeile 37

Beispiel: Schritt 5: Pfad Augmentieren Der Pfad ist nicht fortsetzbar, in Spalte 1 gibt es keinen Stern mehr 12 8 73 18 29 7 1 12 5 1 [ 1] 1 1 Augmentiere den Pfad: * * Zeilen und Spaltenüberdeckungen, sowie alle übrigen Primes werden gelöscht 38

Beispiel: Schritt 5: Pfad Augmentieren Der Pfad ist nicht fortsetzbar, in Spalte 1 gibt es keinen Stern mehr 12 8 73 18 29 7 1 12 5 1 [ ] Augmentiere den Pfad: * * Zeilen und Spaltenüberdeckungen, sowie alle übrigen Primes werden gelöscht GOTO 4 (Finde augmentierenden Pfad) 39

Beispiel: Schritt 5: Pfad Augmentieren 12 8 73 18 29 7 1 12 5 1 [1 1 1 1] In diesem Fall aber bereits am Ende, da jede Spalte einen Eintrag in unserem Matching hat 4

Beispiel: Schritt 5: Pfad Augmentieren Konsequenz: Unser finales (optimales) Matching lautet: 2 1 12 4 3 5 8 45 35 15 1 4 18 13 2 3 [ ] Arbeiter 1 Job 2 Arbeiter 2 Job 1 Arbeiter 3 Job 3 Arbeiter 4 Job 4 41

Grundlagen zu n Minimale und Maximale Flüsse in Fluss-Netzen in ungerichteten Graphen 42

in Fluss-Netzen Definition: Schnitt eines Fluss-Netzes Ein Schnitt teilt ein Fluss-Netz G V, E in zwei Teilgraphen S und T = V S, so dass die Quelle s S und die Senke t T gilt. Eigenschaften Kapazität c S, T = u S v T c(u, v) Fluss f S, T = u S v T f(u, v) - u S v T f(v, u) 43

7/13 1/23 Lukas Dresel in Fluss-Netzen Beispiel: v1 11/16 v2 s t v3 12/12 v4 Kapazität: c S, T = 2 + 12 = 32 Fluss: f S, T = 12 1 + 15 = 26 44

in Fluss-Netzen Definition: Minimaler Schnitt Ein minimaler Schnitt ist ein Schnitt, dessen Kapazität c(s, T) der Kapazität jedes anderen s im Netzwerk ist. 45

in Fluss-Netzen Theorem: Max-Flow-Min-Cut Sei f der Fluss in einem Netzwerk G = (V, E) mit Quelle s und Senke t, so sind die folgenden Bedingungen äquivalent: f ist maximaler Fluss in G Residualgraph G f hat keine erweiternden Pfade Es gibt einen Schnitt S, T aus G mit f = c S, T 46

in Fluss-Netzen Berechnung eines minimalen Schnitts Wir wissen: Max Flow = Min Cut Lösen durch Finden des maximalen Flusses Ford-Fulkerson Algorithmus auf den Graphen anwenden alle von s aus erreichbaren Knoten im Residualgraphen ergeben S alle übrigen Knoten im Residualgraphen ergeben T 47

in Graphen Der MINIMUMCUT Algorithmus arbeitet auf ungerichteten Graphen effizienter als simple flussbasierte Algorithmen leicht verständlich und implementierbar Mit n = Anzahl der Knoten und m = Anzahl der Kanten ergibt sich eine Laufzeit von O(nm + n 2 log n ) 48

in Graphen Der MINIMUMCUT Algorithmus Die zwei Komponenten des Algorithmus Reduktionsfunktion - reduziert Anzahl der Knoten im Graphen um eins (durch Knotenverschmelzung) Hauptfunktion - ruft Reduktionsfunktion in einer Schleife auf, solange noch mehr als ein Knoten im Graphen enthalten ist 49

in Graphen Die Reduktionsfunktion MINIMUMCUTPHASE (G, w, Startknoten a) A := {a} solange A V: finde x mit y A w x, y maximal füge x zu A hinzu seien z n, z n 1 die zuletzt gefundenen Knoten speichere c( z n, V z n ) vereinige z n, z n 1 gib gespeicherte Kapazität zurück 5

in Graphen Die Hauptfunktion MINIMUMCUT (G, w, Startknoten a) minimum := solange V > 1: cut := MINIMUMCUTPHASE (G, w, a) wenn cut < minimum: minimum = result gib minimum zurück 51

Definition: Unter der eines Graphen versteht man die minimale Anzahl der Verbindungselemente (Kanten oder Knoten), deren Entfernen aus dem Graphen diesen in mindestens zwei disjunkte Teilgraphen zerfallen lässt. s-t-kanten- Allgemeine Kanten- s-t-knoten- Allgemeine Knoten- 52

Die s-t-kanten- Gegeben: ungerichteter Graph G = V, E zwei Knoten s, t aus V Gesucht: Anzahl der Kanten, die mindestens durchtrennt werden müssen, um s von t unerreichbar werden zu lassen 53

Die s-t-kanten- Setze alle Kanten-Gewichte in G auf eins Finde minimalen Schnitt Reduktion auf Fluss-Problem MINIMUMCUT Kapazität Min-Cut = 54

Die allgemeine Kanten- Gibt Anzahl der Kanten an, die mindestens durchtrennt werden müssen, um den Graphen in mindestens zwei disjunkte Teilgraphen zerfallen zu lassen. Lösung: Bestimme die s-t-kanten- für jedes Knotenpaar s,t V Wähle Minimum 55

Knoten- Analog zur Kanten- Statt den Kanten-Gewichten werden die Knoten-Gewichte auf eins gesetzt Achtung: In der Reduktion beachten! 56

Problemstellung Annahmen Lösung 57

Problemstellung Annahmen Lösung 58

Problemstellung Gegeben: Fluss-Netzwerk G = V, E mit Kantenkapazitäten c(e E) Kantenkosten Cost(e E) Quelle und Senke s, t V Gesucht: Maximaler Fluss mit minimalen Kosten 59

Cost 2 Cap. 6 Cost 4 Cap. 9 Lukas Dresel Beispiel: v1 Cost 1 Cap. 16 v2 s t v3 Cost 1 Cap. 3 v4 Kosten sind ein konstanter Multiplikator! Der Transport (Fluss) von 5 entlang des roten Weges kostet: 2*5+1*5+5*5 = 175 6

Lösung: Variation von Ford-Fulkerson Augmentierende Pfade werden durch eine Kürzeste-Wege-Suche gefunden Distanz Kosten! Negative Gewichte (vor allem Zyklen) stellen ein Problem dar, daher z.b. Bellman-Ford verwenden 61

Zusammenfassung Besprochene Lösungsmethoden: Bipartites Matching Reduktion auf Fluss-Problem in Min-Cut Reduktion auf Fluss-Problem MINIMUMCUT (ungerichtet) 62

Laufzeiten Besprochene Lösungsmethoden: Reduktion auf Minimalen Schnitt Kanten, Knotengewichte auf 1 Minimaler Schnitt = Variation von Max-Flow Algorithmus kürzeste-wege Suche um augmentierende Pfade zu finden 63

Zusammenfassung Es gilt: n=anzahl Knoten, m=anzahl Kanten Algorithmus Lösungsmethode Laufzeit Optimales Bipartites Matching Ungarische Methode O(n 4 ) Minimale MINIMUMCUT O(nm + n 2 log n ) Minimale Reduktion auf ein Flussproblem O(n 2 m) 64

Zusammenfassung Algorithmus Lösungsmethode Laufzeit s-t-kanten Allgemein Kanten s-t-knoten Allgemein Knoten O m 2 O n m 2 O nm O n 3 m Min-Cost-Max- Flow Ford-Fulkerson mit kürzeste-wege- Suche O(nm log n ) 65

Quellen Cormen, Thomas H., Leiserson, Charles E., Rivest, Ronald L., Stein Clifford, Introduction to Algorithms, Second Edition, MIT Press, Cambridge, Massachusettes, London, England 21 Levitin, Anany, Introduction to The Design and Analysis of Algorithms, Third Edition, 212, Villanova University Vortragsfolien zum Seminar Hallo Welt! Für Fortgeschrittene (21 214) Pilgrim, Robert A., Munkres Assignment, Algorithm, csclab.murraystate.edu/bob.pilgrim/445/munkres.html Preussler, Ernst-Joachim und Klein, Patrick, Datenstrukturen und Algorithmen Minimale in Graphen, www-stud.rbi.informatik.uni-frankfurt.de/~erps/seminar/theoseminar.pdf Schulz Christof, Die für das Assignment Problem von H.W. Kuhn (1955), www.zib.de/groetschel/teaching/ss28/ss28/talks/schulz- Talk.pdf Stoer, Mechthild und Wagner, Frank, A simple Min-Cut Algorithm, e-maxx.ru/bookz/files/stoer_wagner_mincut.pdf Prof. Dr. Täubig, Hanjo, Fortgeschrittene Netzwerk- und Graph-Algorithmen, http://wwwmayr.informatik.tu-muenchen.de/lehre/21ws/anga/slides/anga- 21-12-22.pdf 66

Quellen Unknown author, The Hitchhiker s Guide to Programming Contests, home.iitk.ac.in/~abhra/icpc.pdf Unknown author,, https://www.fernuni-hagen.de/bwlor/assets/courses/k853-a1.pdf Unknown author, Graph Theory: The Hungarian Algorithm Example https://www.youtube.com/watch?v=gqfombkzza4, 213 Unknown author, Graph Theory: The Hungarian Algorithm, https://www.youtube.com/watch?v=djaqebv3vmy, (213) Unknown author, Graph Theory: The Hungarian Algorithm - Allocation, https://www.youtube.com/watch?v=dqdznhwuuoy,,(213) Wikipedia Artikel Hungarian algorithm, http://en.wikipedia.org/wiki/hungarian_algorithm, (25) Wikipedia Artikel, http://de.wikipedia.org/wiki/ungarische_methode, (24) Wikipedia Artikel, Minimum-cost flow problem http://en.wikipedia.org/wiki/minimum-cost_flow_problem, (26) 67