Effiziente Algorithmen (SS2014)

Ähnliche Dokumente
Algorithmentheorie Maximale Flüsse

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

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

Das Briefträgerproblem

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen

4 Greedy-Algorithmen (gierige Algorithmen)

Klausur für Studiengänge INF und IST

Erfüllbarkeit und Allgemeingültigkeit

Algorithmen II Vorlesung am

8 Diskrete Optimierung

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

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm

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

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

Algorithmen und Datenstrukturen 2

Lineare Programmierung

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

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir

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

Fully dynamic algorithms for the single source shortest path problem.

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

Die k kürzesten Wege in gerichteten Graphen

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Die Verbindung von Linearer Programmierung und Graphentheorie

16. All Pairs Shortest Path (ASPS)

1 topologisches Sortieren

NP-Vollständigkeit. Krautgartner Martin ( ) Markgraf Waldomir ( ) Rattensberger Martin ( ) Rieder Caroline ( )

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

Graphen: Datenstrukturen und Algorithmen

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik

Kombinatorische Optimierung

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

Zeichnen von Graphen. graph drawing

Theoretische Grundlagen der Informatik

Anmerkungen zur Übergangsprüfung

Informatik II Greedy-Algorithmen

WS 2013/14. Diskrete Strukturen

Die Komplexitätsklassen P und NP

Bestimmung einer ersten

Komplexitätstheorie Einführung und Überblick (Wiederholung)

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Erzeugung zufälliger Graphen und Bayes-Netze

Codierungstheorie Rudolf Scharlau, SoSe

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Algorithmen & Datenstrukturen 1. Klausur

15 Optimales Kodieren

Maximizing the Spread of Influence through a Social Network

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

Teil II. Nichtlineare Optimierung

Wissensbasierte Systeme

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

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Algorithmen und Datenstrukturen

Nichtlineare Optimierung ohne Nebenbedingungen

Approximationsalgorithmen

Algorithmen und Datenstrukturen (WS 2007/08) 63

Guten Morgen und Willkommen zur Saalübung!

Binäre lineare Optimierung mit K*BMDs p.1/42

Grundlagen der Künstlichen Intelligenz

Das P versus N P - Problem

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten

Alles zu seiner Zeit Projektplanung heute

Beispiel. Bsp.: Betrachte Schlussweise in: (3) folgt aus (1) und (2), siehe z.b. Resolutionsregel. was ist mit folgender Schlußweise:

Das Dilemma des Einbrechers Wer die Wahl hat, hat die Qual!

WS 2009/10. Diskrete Strukturen

Algorithmische Methoden der Netzwerkanalyse

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen. Große Übung vom Nils Schweer

Universität Koblenz-Landau, Abteilung Koblenz FB 4 Informatik. Seminar Entscheidungsverfahren für logische Theorien. Endliche Modelle.

Wortproblem für kontextfreie Grammatiken

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Ein Algorithmus für die

Unterscheidung: Workflowsystem vs. Informationssystem

Kompakte Graphmodelle handgezeichneter Bilder. Einbeziehung in Autentizierung und Bilderkennung

Grundlagen der Theoretischen Informatik

3 Quellencodierung. 3.1 Einleitung

Algorithms for Regression and Classification

Vortrag. Suchverfahren der Künstlichen Intelligenz. Sven Schmidt (Technische Informatik)

Algorithmen und Datenstrukturen Balancierte Suchbäume

Seminararbeit für das SE Reine Mathematik- Graphentheorie

Codierung, Codes (variabler Länge)

Datenstrukturen & Algorithmen

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

Theoretische Informatik SS 04 Übung 1

Lineare Programmierung. Beispiel: Wahlkampf. Beispiel: Wahlkampf. Mathematische Schreibweise. Lineares Programm. Datenstrukturen & Algorithmen

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:

Undirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time

Datenstrukturen und Algorithmen SS07

Primzahlzertifikat von Pratt

Suchen und Sortieren Sortieren. Heaps

3. Das Auslastungsspiel

Kompakte Graphmodelle handgezeichneter Bilder

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.

Schwierige Probleme in der Informatik Informationen für die Lehrperson

Approximationsalgorithmen

Transkript:

Effiziente Algorithmen (SS204) Kapitel 2 Flüsse Walter Unger Lehrstuhl für Informatik 26.06.204 09:

(2:2) <> Walter Unger 7..205 7:56 SS204 Z x Inhalt I Dinitz mit Propagation Einleitung Algorithmus und Beispiel Weiteres Beispiel Laufzeit 2 Spezielle Flüsse Mit Mindestfluss Mit Alternativen 3 Mit Kostenfunktion Einleitung Idee Algorithmus Verbesserung der Laufzeit

Einleitung (2:) <> Walter Unger 7..205 7:56 SS204 Z g Situation Die Berechnung des Sperrflusses auf einem Niveaunetzwerk Ziel: Suche besseren Algorithmus zur Sperrflussberechnung. Idee: Fülle einen Knoten mit Fluss aus. D.h. suche den Knoten v, der am wenigsten Fluss f v weiterleiten kann. Propagiere dann diesen Fluss f v von v nach s und nach t. D.h. mache: Forward-Backward-Propagation. Im folgenden wird nur diese neue Sperrflussberechnung angegeben.

Einleitung (2:2) <> Walter Unger 7..205 7:56 SS204 Z g Definitionen Sei G f = (V, E f, s, t, c ) ein Niveaunetzwerk. N in(v) = {(w, v) (w, v) E f }. N out(v) = {(v, w) (v, w) E f }. pot(e) = rest f (e) ist das Potential einer Kante e. pot(v) = min{ e N in (v) pot(e), e N out (v) pot(e)} ist das Potential eines Knoten v.

Algorithmus und Beispiel (2:3) <> Walter Unger 7..205 7:56 SS204 Z g Idee (Forward Propagation) Sei G f = (V, E f, s, t, c ) ein Niveaunetzwerk. 2 Bestimme v V mit: pot(v) > 0 und w V : pot(v) pot(w). 3 Lege auf v einen Überschuss von pot(v), d.h. Setze U(v) = pot(v). 4 Setze U(w) = 0 für alle Knoten w V \ {v}. 5 Solange es einen Knoten v gibt mit U(v ) > 0, verschiebe den Überfluss auf die Nachfolger aus N out(v ). 6 Verwende, um gute Laufzeit zu erreichen, dazu eine Schlange.

Algorithmus und Beispiel (2:4) <> Walter Unger 7..205 7:56 SS204 Z s Algorithmus (Forward Propagation) Sei G f = (V, E f, s, t, c ) ein Niveaunetzwerk. 2 Bestimme v V mit: pot(v) > 0 und w V : pot(v) pot(w). 3 Setze U(v) = pot(v) und w V \ {v} setze U(w) = 0. 4 Enqueue(v, Q). 5 Solange Q nicht leer ist, mache: v = Dequeue(Q). 2 Solange U(v) > 0 mache: Für jedes e = (v, w) V out(v): 2 f (e) = min{pot(e), U(v)} 3 U(v) = U(v) f (e) 4 U(w) = U(w) + f (e) 5 Falls w t und U(w) = f (e), mache Enqueue(w, Q).

Algorithmus und Beispiel (2:5) <> Walter Unger 7..205 7:56 SS204 Z g kleines Beispiel (Dinitz) 5 a b c s 5 5 5 5 d e f 5 3 3 3 3 2 2 5 5 t 3 5 g h i

Algorithmus und Beispiel (2:6) <> Walter Unger 7..205 7:56 SS204 Z g kleines Beispiel (Niveaunetzwerk a) a 5 b c 5 5 s 5 d e 5 f 5 t 3 5 3 3 5 3 g 3 3 3 h 3 5 3 i

Algorithmus und Beispiel (2:7) <> Walter Unger 7..205 7:56 SS204 Z s Iterierte Propagation Sei G f = (V, E f, s, t, c ) ein Niveaunetzwerk. 2 Solange kein Sperrfluss berechnet ist, wiederhole: Führe eine Propagationsphase aus. 2 Solange es saturierte Kanten und Knoten gibt, entferne diese. Lemma (Anzahl der Iterationen) Nach spätestens n Propagationsphasen ist in dem Niveaunetzwerk ein Sperrfluss bestimmt. Beweis: In jeder Iteration wird mindestens ein Knoten saturiert.

Algorithmus und Beispiel (2:8) <> Walter Unger 7..205 7:56 SS204 Z s kleines Beispiel (Niveaunetzwerk b) a 5 b c 5 5 s 5 d e 5 f 5 t 3 5 4 5 g 3 3 h 3 5 i

Algorithmus und Beispiel (2:9) <> Walter Unger 7..205 7:56 SS204 Z s kleines Beispiel (Niveaunetzwerk c) a 5 b c 5 5 s 5 d e 5 f 5 t 4 5 4 5 g 3 3 h 3 5 i

Algorithmus und Beispiel (2:0) <> Walter Unger 7..205 7:56 SS204 Z s kleines Beispiel (Niveaunetzwerk d) a 5 b c 5 5 s 4 5 3 d 4 3 e 4 5 3 f 4 5 3 t 4 5 4 5 g 3 3 h 3 5 i

Algorithmus und Beispiel (2:) <> Walter Unger 7..205 7:56 SS204 Z s kleines Beispiel (Niveaunetzwerk e) a 5 b c 5 5 s 5 5 d 4 e 4 5 f 4 5 t 4 5 4 5 g 3 3 h 3 5 i

Algorithmus und Beispiel (2:2) <> Walter Unger 7..205 7:56 SS204 Z s kleines Beispiel (Niveaunetzwerk f) a 5 b c 5 5 s 5 5 d 4 e 4 5 f 5 5 t 4 5 4 5 g 3 3 h 3 5 i

Algorithmus und Beispiel (2:3) <> Walter Unger 7..205 7:56 SS204 Z s kleines Beispiel (Niveaunetzwerk g) a 4 5 3 b 4 3 c 4 5 3 4 5 3 s 5 5 d 4 e 4 5 f 5 5 t 4 5 4 5 g 3 3 h 3 5 i

Weiteres Beispiel (2:4) <> Walter Unger 7..205 7:56 SS204 Z s schönes Beispiel (Dinitz) s 8 5 7 a b c 6 7 6 5 e f g h 6 2 3 5 k l m 3 3 6 t d i 8 n

Weiteres Beispiel (2:5) <> Walter Unger 7..205 7:56 SS204 Z s schönes Beispiel (Niveaunetzwerk a) a e 6 k 8 5 b 6 f 2 3 l s 7 c 5 g h 5 m 6 t d i 8 n

Weiteres Beispiel (2:6) <> Walter Unger 7..205 7:56 SS204 Z s schönes Beispiel (Niveaunetzwerk b) a e 6 k 8 5 b 6 f 2 3 l s g 5 t 7 c 5 h m 6 d i 8 n

Weiteres Beispiel (2:7) <> Walter Unger 7..205 7:56 SS204 Z s schönes Beispiel (Niveaunetzwerk c) a 3 2 e 6 k s 3 8 2 5 b 6 f g 2 2 2 3 5 l 2 2 t 7 c 5 h m 6 d i 8 n

Weiteres Beispiel (2:8) <> Walter Unger 7..205 7:56 SS204 Z s schönes Beispiel (Niveaunetzwerk d) a 3 e 6 k s 3 8 2 5 2 b 2 6 2 f g 2 2 2 3 2 5 l 4 2 t 7 c 5 h m 6 d i 8 n

Weiteres Beispiel (2:9) <> Walter Unger 7..205 7:56 SS204 Z s schönes Beispiel (Niveaunetzwerk e) a 3 e 6 k s 3 8 5 5 3 7 b c 5 6 3 5 f g h 2 2 2 3 3 5 3 l m 4 3 3 6 t d i 8 n

Weiteres Beispiel (2:20) <> Walter Unger 7..205 7:56 SS204 Z s schönes Beispiel (Niveaunetzwerk f) a 3 e 6 k s 3 8 5 5 b 5 6 f g 2 2 2 3 3 5 l 4 3 t 4 7 4 c 5 h m 5 6 4 d 4 4 i 5 8 4 n

Laufzeit (2:2) <> Walter Unger 7..205 7:56 SS204 Z s Beispiel zur Laufzeit Die gelben Kanten haben Kapazität 00. 7 8 b f 6 9 4 j 7 2 8 2 n s 5 5 5 a 3 6 6 6 4 4 5 2 5 e d 5 7 5 2 6 2 4 4 5 i h 2 2 2 3 3 3 5 8 5 3 m l 2 8 2 2 8 2 9 27 99 2 2 t c 3 3 3 g 2 2 2 k

Laufzeit (2:22) <> Walter Unger 7..205 7:56 SS204 Z s Beispiel zur Laufzeit (2.Runde) Die gelben Kanten haben Kapazität 00. 6 7 6 8 b f 6 6 6 6 6 9 4 j 6 7 6 2 8 n s 5 5 a 3 5 2 6 6 4 e d 5 7 2 6 4 5 i h 2 2 3 3 5 8 3 m l 8 8 6 2 8 9 27 2 9 t c 3 3 g 2 2 k

Laufzeit (2:23) <> Walter Unger 7..205 7:56 SS204 Z s Forward-Propagation Lemma (Laufzeit einer Propagation) Eine Forward-Propagation kann in Zeit O(n + l) durchgeführt werden. Dabei ist l die Anzahl der neu saturierten Kanten. Beweis: Wegen der FIFO-Schlange Q werden die Niveaus nacheinander bearbeitet. Jeder Knoten wird höchstens einmal aus Q entnommen. Bei jedem Knoten werden von den betrachteten Kanten alle bis auf höchstens eine saturiert. Pro Knoten gibt es maximal eine Kante, die betrachtet, aber nicht saturiert wird. Damit: maximal n Knoten werden betrachtet. maximal l Kanten werden saturiert und nicht mehr betrachtet. maximal n Kanten werden betrachtet, aber nicht saturiert.

Laufzeit (2:24) <> Walter Unger 7..205 7:56 SS204 Z s Sperrflussberechnung Lemma (Laufzeit der Sperrflussberechnung) Ein Sperrfluss kann in Zeit O(m + n 2 ) berechnet werden. Beweis: Nach spätestens n Propagationsphasen ist in dem Niveaunetzwerk ein Sperrfluss bestimmt. Sei l i die Anzahl der saturierten Kanten in der i-ten Propagationsphase ( i n ). Laufzeit damit: n n O(n + l i) = O(n 2 + l i) = O(n 2 + m) i= i= Theorem (Laufzeit von Dinitz Algorithmus) Der Algorithmus von Dinitz hat Laufzeit O(n 3 ).

Mit Mindestfluss (2:25) <> Walter Unger 7..205 7:56 SS204 Z i Das Flussproblem mit Mindestfluss Definition (Flussproblem mit Mindestfluss) Eingabe: G = (V, E, s, t, c, c ) mit: Ausgabe: f : E R + 0 (V, E) ist ein gerichteter Graph (n = V, m = E ) s, t V mit s t c : E N + c : E N + mit: e : c (e) f (e) c(e) v V \ {s, t} : f ((a, v)) = f ((v, a)) (a,v) E (v,a) E Ziel: Bestimme, ob es so einen Fluss gibt. Falls ja, dann maximiere w(f ) = f ((s, v)). (s,v) E

Mit Mindestfluss (2:26) <> Walter Unger 7..205 7:56 SS204 Z i Lösbarkeit Es muss nicht immer eine Lösung geben. Hier ein einfaches Beispiel: 4 [2, 3] 4 [4, 6] s a t

Mit Mindestfluss (2:27) <> Walter Unger 7..205 7:56 SS204 Z i Idee b b s [u, o] t s u s o o u o y x u t t a a

Mit Mindestfluss (2:28) <> Walter Unger 7..205 7:56 SS204 Z i Verfahren Erzeuge aus G = (V, E, s, t, c, c ) einen neuen Graphen G = (V, E, s, t, c ). Füge neue Quelle s und neue Senke t hinzu. Ersetze jede Kante (v, w) durch einen Weg der Länge 3: für jede Kante (v, w) erzeuge zwei neue Knoten x, y und setze: c (v, x) = c(v, w) und c (y, w) = c(v, w). c (x, y) = c(v, w) c (v, w). c (s, y) = c (v, w) und c (x, t ) = c (v, w). s u s o o u o b y x a t u t Setze c (t, t ) = c (s, s) = e E c(e).

Mit Mindestfluss (2:29) <> Walter Unger 7..205 7:56 SS204 Z i Aussage Lemma Es gibt in G einen korrekten Fluss, der die Mindestflussbedingung erfüllt genau dann, wenn es in G einen maximalen Fluss gibt, der alle Kanten der Form (s, y) und (x, t ) saturiert. Beachte: x und y sind neu eingefügte Knoten, also nicht s oder t. Beweis: s u s o o u o b y x a t u t Zeige: = Zeige: =

Mit Mindestfluss (2:30) <> Walter Unger 7..205 7:56 SS204 Z i Beispiel (warum (s, y) und (x, t )) [2, 3] [4, 6] a b c s 2 2 2 4 4 3 3 3 3 3 6 a x y b x 2 y 4 6 c 4 2 2 2 3 t

Mit Mindestfluss (2:3) <> Walter Unger 7..205 7:56 SS204 Z i Zeige: = b b s [u, o] t s u s o o u o y x u t t a u f (a, b) o a f (s, y) = f (x, t ) = u f (a, x) = f (y, b) = f (a, b) f (x, y) = f (a, b) u

Mit Mindestfluss (2:32) <> Walter Unger 7..205 7:56 SS204 Z i Zeige: = Zeige: Wenn es in G einen maximalen Fluss gibt, der alle Kanten der Form (s, y) und (x, t ) saturiert, dann gibt es in G einen korrekten Fluss, der die Mindestflussbedingung erfüllt. Dann gilt: f (a, x) = f (y, b) für jede ursprüngliche Kante (a, b). Dann definiert f (a, b) = f (a, x) einen korrekten Fluss auf G. s u s o o u o b y x a t u t

Mit Mindestfluss (2:33) <> Walter Unger 7..205 7:56 SS204 Z i Algorithmus Sei f (resp. f ) der Fluss auf G (resp. G ). Sei weiter f der Fluss auf G ohne die untere Schranke c. Dann gilt, wenn es eine Lösung für G gibt: f = f, denn untere Schranken verringern den Fluss auf G nicht mehr. f = f + e E(G) c (e) Damit haben wir folgendes Verfahren: Bestimme aus G: G, G, f, f, f. 2 Bevorzuge auf G die Kanten der Form (s, y) und (x, t ). 3 Falls f < f + e E(G) c (e) gilt, so gibt es keine Lösung. 4 Ansonsten bestimme f aus f, d.h. f (a, b) = f (a, x).

Mit Alternativen (2:34) <> Walter Unger 7..205 7:56 SS204 Z n Das Flussproblem mit Alternativen Definition (Flussproblem) Eingabe: G = (V, E, s, t, c, c ) mit: Ausgabe: f : E R + 0 (V, E) ist ein gerichteter Graph (n = V, m = E ) s, t V mit s t c : E N + c : E N + mit: e : c (e) f (e) c(e) oder f (e) = 0. v V \ {s, t} : f ((a, v)) = f ((v, a)) (a,v) E (v,a) E Ziel: Bestimme, ob es so einen nicht trivialen Fluss gibt. Falls ja, dann maximiere w(f ) = f ((s, v)). (s,v) E

Mit Alternativen (2:35) <> Walter Unger 7..205 7:56 SS204 Z n Reduktion Theorem Zu einem gegeben Flussproblem G = (V, E, s, t, c, c ) ist es NP-vollständig zu bestimmen, ob es so einen nicht trivialen Fluss gibt. Beweis: Übung, b.z.w. Reduktion auf Exact-3-SAT.

Mit Alternativen (2:36) <> Walter Unger 7..205 7:56 SS204 Z n Exact-3-SAT Definition Eine Boolesche Formel F ist in Exact-3-KNF: F(x, x 2,..., x r ) = k i= ci (Klauseln) c i = (li li 2 li 3 ) { (Literale) l j xl oder i = für ein l : l r x l } i k i k und j 3 Eine Belegung ist eine Funktion W : {x, x 2,..., x r } {0, }. Theorem (Exakt-3-SAT) Es ist NP-vollständig, festzustellen, ob es für F aus Exact-3-KNF eine erfüllende Belegung gibt, bei der in jeder Klausel genau ein Literal true ist.

Mit Alternativen (2:37) <> Walter Unger 7..205 7:56 SS204 Z n Erste Variable x 0 [2, 2] s x 0 [2, 2] [2, 2] [2, 2] [2, 2] a 0 a a 2 a 3l [2, 2] [2, 2] b 0 b b 2 b 3l

Mit Alternativen (2:38) <> Walter Unger 7..205 7:56 SS204 Z n Zweite Variable x [2, 2] s x 0 [2, 2] [2, 2] [2, 2] [2, 2] a 0 a a 2 a l [2, 2] [2, 2] b 0 b b 2 b l [2, 2] [2, 2] x [2, 2] [2, 2] [2, 2] c 0 c [2, 2] d 0 d

Mit Alternativen (2:39) <> Walter Unger 7..205 7:56 SS204 Z n Erste zwei Klauseln k 0 und k [2, 2] [2, 2] a 0 a a 2 a 3 x l y l [2, 2] [2, 2] [2, 2] [2, 2] [2, 2] [2, 2] [2, 2] [2, 2] [2, 2] [2, 2] k 0 b 0 b k b 2 b 3 k 2 [2, 2] [2, 2] [2, 2] [2, 2] [2, 2] [2, 2] c 0 c c 2 c 3 [2, 2] [2, 2]

Mit Alternativen (2:40) <> Walter Unger 7..205 7:56 SS204 Z n Anpassung: Variable x l in Klausel k i s x l [2, 2] 2 [2, 2] 2 2 2 2 [2, 2] a 0 [2, 2] a [2, 2] a 2 a l 2 2 [, ] 2 [2, 2] b 0 b b 2 b l 2 [, ] x [, ] 2 [2, 2] [, ] c 0 [, ] c y [, ] 2 [2, 2] 2 [2, 2] 2 2 [2, 2] 2 x l+ x n ki [2, 2] 2 [2, 2] [2, 2] d 0 2 d [2, 2] 2 [2, 2] k i+ t [2, 2] e 0 e

Mit Alternativen (2:4) <> Walter Unger 7..205 7:56 SS204 Z n Konstruktion Für jede Variable konstruiere einen Baustein, wie oben. Der obere Zweig entspricht der Variablen selber. Der untere Zweig entspricht der negierten Variablen. 2 Für jede Klausel konstruiere einen Baustein, wie oben. Der erste Zweig entspricht dem ersten Literal in der Klausel. Die weiteren Zweige dem zweiten und dem dritten Literal in der Klausel. 3 Hänge alle Bausteine für die Variablen und Klauseln hintereinander. 4 Für jedes Auftreten eines Literals in einer Klausel mache die obige Anpassung. 5 Falls es eine Belegung der Variablen gibt, die die Formel erfüllt, dann: geht ein Fluss von 2 durch jeweils den Zweig, der der Belegung der Variablen entspricht.

Einleitung (2:42) <> Walter Unger 7..205 7:56 SS204 Z g Motivation Benutzung der Kanten (Transportwege) im allgemeinen nicht umsonst. Daher sollten wir die Kosten minimieren. Kosten sind minimal, wenn der Fluss Null ist. Daher suchen wir: Kostenminimalen Fluss mit Wert W. Wichtig: G sollte keine Kreise mit negativen Kosten (Gewichtssumme) enthalten.

Einleitung (2:43) <> Walter Unger 7..205 7:56 SS204 Z g Das Flussproblem mit Kosten Definition (Min-Cost-Flow-Problem) Eingabe: G = (V, E, s, t, c, l), W mit: Ausgabe: f : E R + 0 (V, E) ist ein gerichteter Graph (n = V, m = E ) s, t V mit s t c : E N + l : E Z und W N mit: e : f (e) c(e). v V \ {s, t} : f ((a, v)) = f ((v, a)) (a,v) E (v,a) E Ziel: Bestimme Fluss f w(f ) = W und minimalen l(f ) = f (e) l(e). e E D.h. l(f ) = min{l(g) g ist Fluss mit w(g) = W }.

Einleitung (2:44) <> Walter Unger 7..205 7:56 SS204 Z g Beobachtungen Falls W =, so entspricht das dem kürzesten Wege Problem. Falls l(e) = 0 für alle e E, dann können die obigen Algorithmen leicht zur Lösung des Problems adaptiert werden: Falls erstmalig w(f ) W gilt, dann breche ab. 2 Sei p der Wert der letzten Erweiterung. 3 Ersetze den letzten Fluss durch eine Fluss mit dem Wert p (w(f ) W ). Alternativ kann auch wie folgt vorgegangen werden: Erzeuge neue Quelle s. 2 Füge Kante e = (s, s) mit c(e ) = W hinzu. 3 Damit wird der maximale Fluss durche W begrenzt.

Einleitung (2:46) <> Walter Unger 7..205 7:56 SS204 Z g Idee (am Beispiel) Kantenbeschriftung: Fluss MaxFluss:Kosten Aktuelle Kosten Bestimme erst einen Fluss (mit Wert W = 6). Der Fluss muss nicht kostenoptimal sein. Verbessere die Kosten. s 6 6; 3 8 a 5; 2 2 5 6; 2 0 c 6; 5 5; 9 45 t b s 6 6; 3 8 a 5; 2 2 4; 8 5 6; 2 0 4 c b 6; 4; 4 5 5; 9 45 4 t

Einleitung (2:47) <> Walter Unger 7..205 7:56 SS204 Z g Beispiel (W = 5) 4 5; 3 2 5; 4 s a b 2; 6 2 3; 8 2 ; ; 4 5; 4 6 2; 8 2; 5; 9 2 5; 4 5 5; 3 5 c d t 2 2; 6

Idee (2:48) <> Walter Unger 7..205 7:56 SS204 Z g Idee Bestimme einen beliebigen Fluss f mit w(f ) = W. Verbessere schrittweise die Kosten des Flusses: Annahme: es gibt Fluss f mit l(f ) < l(f ) und w(f ) = w(f ). Dann gibt es einen Unterschied zwischen f und f. Betrachte diesen Unterschied. Das muss ein zyklischer Fluss sein, d.h. ein Fluss ohne Quelle und Senke. Für f und f gilt die Flusserhaltung. Und f out(s) = f out(s) = f in(t) = f in(t). Damit gilt: Falls f (a, b) f (a, b), dann gibt es c V \ {a, b} mit: f (a, c) f (a, c). Damit gibt es mindestens einen Kreis mit Fluss g über Kanten e mit f (e) f (e). Dieser zyklische Fluss besteht aus einer Summe von Kreisen. Einer dieser Kreise muss die Kosten für f verbessern. Idee: suche diese verbessernden Kreise.

Idee (2:49) <> Walter Unger 7..205 7:56 SS204 Z g Beispiel mit Kreisen (W = 5) 4 5; 3 2 5; 4 s a b 2; 6 2 4 5; 4 6 2; 8 3; 8 2 ; ; 2; 5; 9 2 5; 4 5 5; 3 5 c d t 2 2; 6

Idee (2:50) <> Walter Unger 7..205 7:56 SS204 Z g Frage: Warum eine Suche nach Kreisen? Ein verbessernder Kreis entspricht zwei Wegen: Ein Weg, der gelöscht wird, Ein Weg, der hinzugefügt wird. Die Differenz der Wege ist der Kreis. Man könnte also auch nach Wegen suchen. Vorteil bei Kreisen: Gewinn entspricht direkt den Kosten des Kreises. Einfachere Algorithmen bei sich ändernden Kosten. Optimale Lösung bekannt. Anbieter verändert die Kosten einer Kante. Passe bisherige Lösung durch das Suchen von Kreisen an. Die folgenden Beweise werden dadurch einfacher.

Idee (2:5) <> Walter Unger 7..205 7:56 SS204 Z g Definitionen Gegeben G = (V, E, s, t, c, l) und Restnetzwerk G f = (V, E, s, t, c, l ). c (e) = c(e) für e E E c (a, b) = c(b, a) und l (a, b) = l(b, a) für (a, b) E \ E f ist eine Zirkulation, gdw.: v V : f in(v) = f out(v). Wert einer Zirkulation f über Schnitt (S, T ): f (S, T ) = f (v, w) f (w, v). (v,w) E,v S,w T (w,v) E,v S,w T w(f ) = f ({s}, V \ {s}). Lemma Es gilt: w(f ) = 0 und für jeden Schnitt (S, T ) gilt: f (S, T ) = 0. Beweis: Flusserhaltung und Induktion über Größe von S.

Idee (2:52) <> Walter Unger 7..205 7:56 SS204 Z i Zirkulation und Kostenminimalität Lemma Falls f nicht kostenminimal ist, dann gibt es einen Kreis C in G f C negative Kosten. und f hat auf Beweis: Sei f Fluss auf G mit l(f ) < l(f ). Damit unterscheiden sich f und f. Für alle e E setze f (e) = f (e) f (e). f ist dann zyklischer Fluss. f wird durch höchstens m 2m viele Kreisflüsse f i ( i m ) gebildet. Damit gilt: l(f ) = l(f ) l(f ) = i m l(f i ) Damit existiert j mit l(f j ) < 0.

Algorithmus (2:53) <> Walter Unger 7..205 7:56 SS204 Z i Algorithmus (Min-Cost-Flow) Theorem Ein Fluss f ist kostenminimal, wenn G f enthält. keinen Kreis mit negativen Kosten Eingabe: G = (V, E, s, t, c, l), W. 2 Bestimme Fluss f mit w(f ) = W. 3 Solange es in G f einen negativen Kreis C gibt: f = f + f (C). Es gilt: w(f + f (C)) = w(f ) + w(f (C)) = w(f ) = W. D.h. der Wert des Flusses bleibt gleich. Es gilt: l(f + f (C)) = l(f ) + l(f (C)) < l(f ). D.h. die Kosten verringern sich. Theorem Der obige Algorithmus bestimmt einen kostenminimalen Fluss.

Algorithmus (2:55) <> Walter Unger 7..205 7:56 SS204 Z i Beispiel zur Laufzeit (W = 00) Bei schlecht gewählten Kreisen kann die Laufzeit sehr lang werden. b 00; 00; s 00 00; 8 800 ; 4 a 00 00; 8 800 t

Algorithmus (2:56) <> Walter Unger 7..205 7:56 SS204 Z i Beispiel zur Laufzeit (W = 00) s 00; 00 00; 8 800 ; 4 4 b a 00; 99 00; 8 792 t

Algorithmus (2:57) <> Walter Unger 7..205 7:56 SS204 Z i Beispiel zur Laufzeit (W = 00) 00; b 00; s 99 00; 8 792 ; 4 a 99 00; 8 792 t

Algorithmus (2:59) <> Walter Unger 7..205 7:56 SS204 Z i Nochmal Beispiel zur Laufzeit (W = 00) Bei gut gewählten Kreisen kann die Laufzeit ggf. besser sein. b 00; 00; s 00; 8 00; 800 ; 4 a 00; 8 00; 800 t

Algorithmus (2:60) <> Walter Unger 7..205 7:56 SS204 Z i Nochmal Beispiel zur Laufzeit (W = 00) 00; b 00; s 00 00; 8 800 ; 4 a 00 00; 8 800 t

Verbesserung der Laufzeit (2:6) <> Walter Unger 7..205 7:56 SS204 Z i Laufzeit und Verbesserung selbiger Der bisherige Algorithmus hat in obiger Form eine pseudopolynomielle Laufzeit. Dies kann aber verbessert werden: Wähle kostengünstige Kreise. Wähle Kreise über kostengünstige Kanten. Also unabhängig von der Kreislänge. Dazu werden die Kreise gewählt, die die durchschnittlichen Kantenkosten minimieren. Setze: Setze weiter: µ(f ) = l(c). l(c) = l(c) C e C = l(e) C Falls C negative Kosten hat, so ist µ(c) positiv.

Verbesserung der Laufzeit (2:62) <> Walter Unger 7..205 7:56 SS204 Z i Mean-Algorithmus (Min-Cost-Flow) Eingabe: G = (V, E, s, t, c, l), W. 2 Bestimme Fluss f mit w(f ) = W. 3 Solange es in G f einen negativen Kreis C gibt, Wähle C mit l(c) minimal. Bestimme maximalen zyklischen Fluss f auf C. 2 f = f + f (C). l(c) = l(c) C = e C l(e) C µ(f ) = l(c) Es gilt: w(f + f (C)) = w(f ) + w(f (C)) = w(f ) = W. Es gilt: l(f + f (C)) = l(f ) + l(f (C)) < l(f ).

Verbesserung der Laufzeit (2:63) <> Walter Unger 7..205 7:56 SS204 Z i Überblick zum Beweis Teile Iterationen in Phasen auf. Bestimme die Anzahl der Phasen. Bestimme die Anzahl der Iterationen pro Phase. l(c) = l(c) C = e C l(e) C µ(f ) = l(c) x e x, x = /n Zeige dies unter Verwendung einer besonderen Annahme. Verändere l so, dass Annahme immer gilt und Algorithmus analog vorgeht. Bestimme dazu Potential der Knoten, und addiere dies zu den Kantenkosten. Bestimme Laufzeit für eine Iteration. Zeige, wie man einfach einen Min-Mean-Kreis C findet (Dynamisches Programmieren). Bestimme dazu vorab den Wert von C. Dann wird Suche nach C einfach (passe Kosten an).

Verbesserung der Laufzeit (2:64) <> Walter Unger 7..205 7:56 SS204 Z i Laufzeit (Aufteilung in Phasen) Sei f der Fluss zu Beginn der i-ten Phase. Die Phase i endet, falls ein Fluss g gefunden wird mit: µ(g) ( /n) µ(f ) oder µ(g) 0. Falls µ(g) 0 terminiert der Algorithmus. Sei µ 0 der Wert von µ zu Beginn der ersten Phase. Sei µ i der Wert von µ am Ende der i-ten Phase ( i T ). Damit gilt: µ i ( /n) µ i µi e. /n Weiter gilt: µ 0 L = l(e) e E Wegen der Ganzzahligkeit gilt: µ T /n. Es folgt: Und: T n ln(nl) +. T log e /n(nl) = ln(nl) ln(e /n ) = n ln(nl) l(c) = l(c) C = e C l(e) C µ(f ) = l(c) x e x, x = /n

Verbesserung der Laufzeit (2:65) <> Walter Unger 7..205 7:56 SS204 Z i Laufzeit (Iterationen pro Phase) Zeige im Folgenden: Vorgehen: l(c) = l(c) C = e C l(e) C µ(f ) = l(c) Die Phase (und der Algorithmus) terminiert nach spätestens m Iterationen, oder Die nächste Phase startet nach spätestens m Iterationen. D.h. war der initiale Fluss f zu Beginn der Phase, dann ist ein Fluss g nach spätestens m Iterationen erreicht mit: µ(g) ( /n) µ(f ). Zeige Behauptung unter der Annahme: e E(G f ) : l(e) µ(f ). Zeige Behauptung: Verändere dann l, so dass die Annahme immer gilt.

Verbesserung der Laufzeit (2:66) <> Walter Unger 7..205 7:56 SS204 Z i Laufzeit (Iterationen pro Phase) Typ Iteration: Kreis C enthält nur Kanten mit negativen Kosten. Typ 2 Iteration: Kreis C enthält mindestens eine Kante mit positiven Kosten. Bei jeder Typ Iteration wird mindestens eine Kante saturiert und entfernt. Alle dabei neu entstehenden Kanten haben positive Kosten (andere Richtung). Nach spätestens m konsekutiven Typ Iterationen terminiert das Verfahren. l(c) = l(c) C = e C l(e) C µ(f ) = l(c) e E(G f ) : l(e) µ(f ) Wenn also die Phase mehr als m Iterationen hat, folgt nach spätestens m Iterationen eine Typ 2 Iteration. Wir zeigen nun, dass dieser Fall unter der Annahme nicht auftritt.

Verbesserung der Laufzeit (2:67) <> Walter Unger 7..205 7:56 SS204 Z i Laufzeit mit Annahmen (Iterationen pro Phase) Sei g der Fluss vor der ersten Typ 2 Iteration. l(c) = l(c) C = e C l(e) C µ(f ) = l(c) e E(G f ) : l(e) µ(f ) Die Annahme gilt weiter (keine neuen Kanten mit negativen Kosten): e E(G g) : l(e) µ(f ) Sei C der Min-Mean-Kreis in G g und H die Kanten mit negativen Kosten in C. Damit gilt: µ(g) = e C Wegen H C folgt: l(e) C Damit: µ(g) ( /n) µ(f ). e H l(e) C H / C / C /n Widerspruch: sind schon am Ende der Phase. Also gibt es in der Phase keine Typ 2 Iterationen. H µ(f ) C Falls die Annahme gilt, so endet die Phase nach m Typ Iterationen.

Verbesserung der Laufzeit (2:68) <> Walter Unger 7..205 7:56 SS204 Z i Laufzeit (Erzwinge die Annahme) Wir sorgen dafür, dass die Annahme erfüllt werden kann: Wir verändern l geeignet. Verhalten des Algorithmus sollte unverändert sein. Sei p : V Z ein Potential für die Knoten. l(c) = l(c) C = e C l(e) C µ(f ) = l(c) Annahme: e E(G f ) : l(e) µ(f ) Setze für alle e = (v, w) E(G f ) setze: l (e) = l(e) + p(v) p(w). Für e = (w, v) gilt: l (e) = l(e) + p(w) p(v) l(e) + p(w) p(v) = l (e) Potentiale ändern die Kostensumme auf Kreisen C nicht: l(c) = l (C). Potentiale ändern damit auch nicht den Ablauf des Verfahrens. Wir zeigen nun, dass es Potentiale gibt, die die Annahme erzwingen.

Verbesserung der Laufzeit (2:69) <> Walter Unger 7..205 7:56 SS204 Z i Laufzeit (Erzwinge die Annahme durch Potential) Lemma (Existenz von p) l(c) = l(c) C = In G f = (V, E f ) gelte l(c) µ für jeden Kreis C. Dann gibt es p : V Z mit: l (e) = l(e) + p(w) p(v) µ für jede Kante e E f. Beweis: Für e E f setze: l µ(e) = l(e) + µ e C l(e), µ(f ) = l(c), Annahme: e E(G C f ) : l(e) µ(f ) Für v V bestimme Kantenzug P in G f von beliebigen Knoten w zu v mit minimalen Gewicht. Setze dann p(v) = l µ(p). Beachte: Das ist wohldefinert, denn aus l(c) µ folgt l µ(c) 0 für beliebigen Kreis C. Damit gilt für jede Kante e = (v, w) E f : p(w) p(v) + l µ(e). Es folgt: l (e) = l(e) + p(v) p(w) = l µ(e) + p(v) p(w) µ µ

Verbesserung der Laufzeit (2:70) <> Walter Unger 7..205 7:56 SS204 Z i Laufzeit pro Iteration Lemma (Karp, 978) Ein Min-Mean-Cycle kann in G f Beweis: l(c) = l(c) C = e C l(e), µ(f ) = l(c), e E(G C f ) : l(e) µ(f ) in Zeit O(nm) gefunden werden. Setze für v V und k {0,..., n}: d k (v) seien die Kosten des günstigsten Kantenzugs nach v mit genau k Kanten. Es gilt d 0(v) = 0 und d k+ (v) = min (d k (w) + l(e)). e=(w,v) E f Alle d k (v) Werte können durch dynamische Programmierung in Zeit O(nm) bestimmt werden.

Verbesserung der Laufzeit (2:7) <> Walter Unger 7..205 7:56 SS204 Z i Wert dem Min-Mean-Kreises Lemma Der Wert l(c) des Min-Mean-Kreises ist: ( ) n dn(v) d j(v) α = min max v V j=0 n j Beweis: Sei C ein Min-Mean-Kreis. l(c) = l(c) C = e C l(e), µ(f ) = l(c) C Wenn alle Kantenkosten um δ erhöht werden, bleibt C Min-Mean-Kreis. Der Wert von C erhöht sich auch um δ. Also können wir alle Kantenkosten um δ verschieben bis l(c) = 0 gilt. Zeige nun: α = 0 gilt damit auch.

Verbesserung der Laufzeit (2:72) <> Walter Unger 7..205 7:56 SS204 Z i Wert dem Min-Mean-Kreises (Zeige α 0) Sei v beliebig und P Kantenzug, der bei v endet und Kosten d n(v) hat. P muss Kreis C beinhalten. Sei P der verbleibende Kantenzug mit j Kanten ohne C. Dann hat C n j Kanten. Wegen l(c) 0 gilt: l(c) = l(c) C α = min v V max n j=0 d n(v) = l(p) = l(c) + l(p ) l(p ) d j(v). Für jeden Knoten v gibt es j {,..., n } mit d n(v) d j(v). Damit α 0. Im Folgenden zeigen wir nun noch α 0. ( e C l(e) C µ(f ) = l(c) = dn(v) d j (v) n j )

Verbesserung der Laufzeit (2:73) <> Walter Unger 7..205 7:56 SS204 Z i Wert dem Min-Mean-Kreises (Zeige α 0) Zeige: Es gibt Knoten w mit: d n(w) d j(w) für alle j {0,..., n } Sei v Knoten des Min-Mean-Kreises C. Sei P kürzester Kantenzug, der bei v endet. O.B.d.A. enthält P keinen Kreis. Sei p < n die Anzahl der Kanten in P Sei w der Knoten, der auf C von v aus nach n p Kanten liegt. Diesen Kantenzug nennen wir Q. Sei R der Weg von w zu v auf C mit r Kanten. Sei j {0,..., n } und S ein Kantenzug minimaler Länge aus j Kanten, der an w endet. l(c) = l(c) C = e C l(e) C s µ(f ) = l(c) α = min v V max n j=0 s q 2 q p ( w v p dn(v) d j (v) n j r r 2 )

Verbesserung der Laufzeit (2:74) <> Walter Unger 7..205 7:56 SS204 Z i Wert dem Min-Mean-Kreises (Zeige α 0) Dann gilt: d n(w) l(p) + l(q) = d p(v) + l(q). l(c) = l(c) C = e C l(e) C s µ(f ) = l(c) α = min v V max n j=0 s ( dn(v) d j (v) n j ) und d p(v) d j+r (v) d j(w) + l(r). q 2 w r es folgt: d n(w) d j(w) + l(r) + l(q). Der Kantenzug Q R hat Kosten 0 (wegen l(c) = 0). q v r 2 Damit gilt: d n(w) d j(w). p p

Verbesserung der Laufzeit (2:75) <> Walter Unger 7..205 7:56 SS204 Z i Gesamtverfahren Berechne die d k (v) Werte und bestimme α. 2 Addiere zu allen Kantenkosten um α. Damit ist der Wert des Min-Mean-Kreises 0. 3 Transformiere die Kantenkosten um den Wert α wie in Lemma Existenz von p beschrieben. Die Potentiale ergeben sich aus den Werten d k (v). Alle Kantenkosten sind nun nicht negativ. Die Kanten des Min-Mean-Cycle haben Wert 0. 4 Lösche alle Kanten mit Wert größer 0. 5 Suche mit Tiefensuche Kreis in den verbleibenden Kanten.

Verbesserung der Laufzeit (2:76) <> Walter Unger 7..205 7:56 SS204 Z i Gesamtlaufzeit Theorem Der Mean-Cycle-Algorithmus hat eine Laufzeit von O(m 2 n 2 log(nl)). Beweis, siehe obige Überlegungen: n log(nl) + Phasen (L Maximum der absoluten Kantenkosten). m Iterationen pro Phase. O(nm) Laufzeit pro Phase. Theorem Der Mean-Cycle-Algorithmus hat eine Laufzeit von O(m 3 n 2 log n).

Verbesserung der Laufzeit (2:77) <> Walter Unger 7..205 7:56 SS204 Z i Literatur Ahuja, Magnanti, Orlin: Network Flows: Theory, Algorihms, and Applications, Prentice Hall, 993. Cormen, Leiserson, Rives: Introduction to Algorithms, First Edition, MIT Press, 990. Cormen, Leiserson, Rives: Introduction to Algorithms, Second Edition, MIT Press, 200. Ottmann, Widmayer: Algorithmen und Datenstrukturen. BI-Wiss.-Verl. 990.

Verbesserung der Laufzeit (2:78) <> Walter Unger 7..205 7:56 SS204 Z x Fragen(Flüsse) Was ist die Laufzeit der Ford-Fulkerson Methode? Wann hat die Ford-Fulkerson Methode die maximale Laufzeit? Warum liefert die Ford-Fulkerson Methode den maximalen Fluss? Was ist die Laufzeit der Ford-Fulkerson Methode mit Breitensuche? Wie ist die Idee des Min-Cut-Max-Flow Theorems? Wie wird der Schnitt zu dem maximalen Fluss gefunden? Was ist die Idee des Algorithmus von Dinitz? Wie funktioniert die Forward-Propagation? Wie ist die Laufzeit vom Algorithmus von Dinitz? Wie ist die Begründung zur Laufzeit vom Algorithmus von Dinitz?

Verbesserung der Laufzeit (2:79) <> Walter Unger 7..205 7:56 SS204 Z x Fragen(Flüsse) Wie bestimmt man Flüsse mit einem Mindestfluss auf den Kanten? Wie bestimmt man Flüsse mit einem Mindestfluss auf den Kanten, wo aber auch ein leerer Fluss erlaubt ist? Wie ist die Idee der Algorithmen zu kostenminimalen Flüssen? Was ist die Laufzeit der Algorithmen zu kostenminimalen Flüssen? Gebe die Idee zum Beweis der Laufzeit der Algorithmen zu kostenminimalen Flüssen?

Verbesserung der Laufzeit (2:80) <> Walter Unger 7..205 7:56 SS204 Z x Legende n : Nicht relevant g : Grundlagen, die implizit genutzt werden i : Idee des Beweises oder des Vorgehens s : Struktur des Beweises oder des Vorgehens w : Vollständiges Wissen