Algorithm Engineering

Werbung
Algorithm Engineering
– Eine Einführung –
Vorlesung für BSc-Studierende der Informatik und Mathematik
Anand Srivastav
Lasse Kliemann
Sommersemester 2015
Inhaltsverzeichnis
1 Das Algorithm Engineering Konzept
5
2 Graphen
9
3 Minimal Spannende Bäume
15
4 Bipartites Matching
19
4.1
Bipartite Graphen
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
4.2
Matchingberechnung über augmentierende Pfade . . . . . . . . . . . . . .
20
4.3
Matching-Heuristiken . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
4.4
Generatoren für bipartite Graphen . . . . . . . . . . . . . . . . . . . . .
24
4.4.1
Gpn1 , n2 , pq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
4.4.2
Seil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
4.4.3
HiLo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
4.4.4
RBG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
4.5
Der Satz von Hall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
4.6
A Faster Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
5 Streaming-Algorithmen
37
5.1
Das Semi-Streaming-Modell . . . . . . . . . . . . . . . . . . . . . . . . .
37
5.2
Approximations-Theorie für Matching . . . . . . . . . . . . . . . . . . . .
40
5.3
Beschreibung des DAP-Approximationsalgorithm . . . . . . . . . . . . .
43
5.4
Analyse: Approximationsratio . . . . . . . . . . . . . . . . . . . . . . . .
49
5.5
Analyse: Pass-Garantie und Speicherbedarf . . . . . . . . . . . . . . . . .
52
3
Inhaltsverzeichnis
6 Lineare Programmierung – Dualitätssatz
4
55
6.1
Polyeder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
6.2
Farkas Lemma
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
6.3
Der Dualitätssatz der Linearen Programmierung . . . . . . . . . . . . . .
65
Kapitel 1
Das Algorithm Engineering Konzept
Eines der fundamentalen Konzepte der Informatik ist der Entwurf und die Analyse von
Algorithmen. Heutzutage sind effiziente Algorithmen Herzstücke von weltweit genutzten
Anwendungssystemen, beispielsweise der Suchmaschine Google. Der wirtschaftliche Erfolg
von Google hängt an der hohen Akkuranz und Effizienz der verwendeten Algorithmen.
Eine neue Herausforderung ist die Verarbeitung von extrem großen Dateienmengen in
algorithmischen Fragenstellungen: die Big Data Problematik. Big Data tritt mannigfach
auf: in wirtschaftlichen Anwendungen (z. B. Cloud Computing), in wissenschaftlichen
Fragen, wie in der Lebenswissenschaften, wo man versucht das Erbgut (DNA) von
Organismen zu entschlüsseln, der Elementarteilchenphysik, der Astronomie und den
großen Netzwerken, wie dem Internet und sozialen Netzwerken, wie Facebook und
Twitter. Wirtschaftlicher Erfolg und wissenschaftlicher Fortschritt hängen mehr denn je
vom Entwurf effizienter Algorithmen ab. Dies stellt den Entwurf von Algorithmen vor
bisher ungekannte Probleme, denn es ist oftmals nicht möglich die Eingabedaten in dem
Hauptspeicher (RAM) des Computers zu halten, schlicht, weil die Datenmenge viel zu
groß ist (Terrabyte oder Petabyte Bereich).
Traditionell hat sich die theoretische Informatik mit dem Entwurf und der Analyse von
effizienten Algorithmen befasst. Dabei sind viele Probleme NP-schwer, so dass effiziente
Algorithmen unter der Vermutung P ‰ N P ohnehin nicht entworfen werden können. Die
Algorithmentheorie hat sich daher in den letzten 30 Jahren auf die effiziente Lösung von
Teilproblemen oder den Entwurf von approximativ-optimalen Algorithmen konzentriert.
Dabei wurde schon jede polynomielle Laufzeit als effizient angesehen. Oftmals sind die
Algorithmen, die so analysiert wurden, sehr komplex und wurden auch aus diesem Grund
nie implementiert und an relevanten Instanzen getestet. Das hat bei vielen Problemen
dazu geführt, dass der algorithmische Fortschritt stagniert: man kennt zwar die bislang
bewiesenen Performance-Garantien, aber kommt nicht darüber hinaus.
Andererseits werden Algorithmen in der Praxis eingesetzt, auch wenn ihre theoretische
Performance (z. B. Approximationsverhalten oder Laufzeit) bisher nicht beweisbar ist. Dieser Ansatz ist nicht nur in der Industrie, sondern auch in experimentellen Wissenschaften,
beispielsweise der Physik, etabliert und erfolgreich. Leider sind beide Herangehensweisen,
5
Kapitel 1. Das Algorithm Engineering Konzept
die theoretische Analyse einerseits und der Einsatz von hocheffizienten Heuristiken in der
Praxis andererseits, bislang unzureichend sowohl von der agierenden Personen, aber vor
allem wissenschaftlich unzureichend vernetzt gewesen.
Umgekehrt darf man hoffen, dass eine enge Wechselwirkung beider Ansätze sowohl zum
theoretisch-wissenschaftlichen Fortschritt als auch zum Praxiserfolg und zur Ausdehnung
der Reichweite algorithmischer Anwendungen führen wird. Das Algorithmen Engineering
setzt hier an. Es ist ein neues Konzept für den Entwurf, die Analyse und den praktischen
Einsatz von Algorithmen, der die Interaktion dieser Paradigmen wissenschaftlich fundiert,
integriert und in sich aufhebt.
Im AE wird der Algorithmus als ein Objekt betrachtet, das durch wissenschaftlich fundierte Experimente behandelt und validiert werden kann. Dies kann man durchaus in
Analogie zu der Methodik den experimentellen Naturwissenschaften sehen, wo Naturgesetze durch geeignete Experimente validiert werden und gleichzeitig der Modellcharakter
der Gesetze als Hypothese erscheint, die durch neue Erkenntnisse falsifiziert werden
kann.
So werden auch bei der experimentellen Untersuchung von Algorithmen im Algorithmen
Engineering falsifizierbare Hypothesen für interessierenden Eigenschaften von Algorithmen
aufgestellt. In der Untersuchung werden diese entweder durch Gegenbeispiele widerlegt
oder im besten Fall bewiesen.
Dies ist allerdings nur ein Pfad des Algorithmen Engineering. Die Frage der Praktikabilität,
des Einsatzes geeigneter Hardware, aber auch das Benchmarking gehören ebenfalls in die
umfassende Sichtweise, die das AE fordert. Insgesamt kann dieses intergrativ-interaktive
Konzept des Algorithmen Engineering durch den folgenden Designkreislauf dargestellt
werden.
6
Abbildung 1.1. Zwei Sichtweisen der Algorithmik: Links: traditionell. Rechts: AE = Algorithmik
als von falsifizierbaren Hypothesen getriebener Kreislauf aus Entwurf, Analyse, Implementierung
und experimenteller Bewertung
In diese Vorlesung werden wir eine Einführung in das Algorithmen Engineering geben und Aspekte der AE-Designkreislaufs an Beispielen demonstrieren. Der Schwerpunkt liegt auf der Wechselwirkung von Theorie, Implementierung und Experimenten.
7
Kapitel 2
Graphen
Wir vereinbaren folgende Bezeichnungen.
Ź N “ {1, 2, 3, . . .}, N0 :“ N Y {0}, für n P N setzen wir rns :“ {a P N ; a ď n}.
Ź Für eine Menge M bezeichne PpM
q :“ {T ; T Ď M } die Potenzmenge von M . Für
M
eine Menge M und n P N0 sei n :“ {T Ď M ; |T | “ n} die Menge der n-elementigen
Teilmengen von M . Ist M endlich, so gilt
M
n
!
!
|M |
|M |!
.
“
“
n
n!p|M | ´ nq!
Ź Sei k P N und seien f, g : Nk Ñ Rě0 Abbildungen. Wir schreiben
f pnq “ Opgpnqq, falls es c1 , c2 P Rą0 gibt, so dass für alle n P N gilt:
f pnq ď c1 gpnq ` c2 ,
f pnq “ Ωpgpnqq, falls gpnq “ Opf pnqq,
f pnq “ Θpgpnqq, falls f pnq “ Opgpnqq und f pnq “ Ωpgpnqq,
f pnq nÑ8
f pnq “ opgpnqq, falls
ÝÑ 0.
gpnq
Beispiel 2.1. Für f : N Ñ Rě0 , n ÞÑ 170n2 ` 13n ´ 21, g : N Ñ Rě0 , n ÞÑ n2 und
h : N Ñ Rě0 , n ÞÑ log2 n gilt: f pnq “ Opgpnqq, hpnq “ Opgpnqq, gpnq “ Θpf pnqq,
hpnq “ opgpnqq, hpnq “ Θpln nq.
Definition 2.2 (Graphen).
(i) Ein Hypergraph oder Mengensystem ist ein Tupel H “ pV, Eq, bestehend aus einer
endlichen Menge V , der Knotenmenge und der Menge der Hyperkanten E Ď PpV q.
(ii) Ein einfacher Graph ist ein Hypergraph, in dem alle Hyperkanten die Kardinalität
genau zwei haben.
Wir notieren Graphen in der Regel durch das Tupel G “ pV, Eq,
wobei E Ă V2 . Eine Kante e hat die Form e “ {v, w}, v, w P V . Für einen
Graphen G bezeichnet V pGq die Menge seiner Knoten und EpGq die Menge seiner
Kanten.
9
Kapitel 2. Graphen
~ besteht aus einer endlichen Knotenmenge V und
(iii) Ein gerichteter Graph G “ pV, Eq
~ Ď V ˆ V . Dabei interpretieren wir für eine Kante pv, wq P E
~
einer Kantenmenge E
den Knoten v als Anfangs- und w als Endpunkt der Kante pv, wq. Man zeichnet
pv, wq oft als Vektorpfeil mit Anfangspunkt v und Spitze w ein.
Beispiel 2.3.
(i) Hypergraph
H “ p{1, 2, 3, 4, 5}, {{1, 2}, {1, 3, 5}, {2, 3, 4}}q
(ii) (einfacher) Graph
G “ p{1, 2, 3, 4, 5}, {{1, 2}, {1, 3}, {2, 4}, {3, 4}, {3, 5}, {4, 5}}q
10
(iii) gerichteter Graph
G “ p{1, 2, 3, 4, 5}, {p1, 2q, p2, 1q, p3, 5q, p4, 5q}q
Vereinbarung. Wenn im folgenden von einem Graphen die Rede ist – ohne nähere Angaben,
zu welcher Klasse er gehört, so ist stets ein einfacher Graph mit n Knoten und m Kanten
gemeint.
Sei G “ pV, Eq ein Graph und n :“ |V | ą 0.
Ź Zwei Knoten v, w P V heißen benachbart, falls {v, w} P E. Für v P V sei
Γpvq :“ {w P V ; {v, w} P E}
die Nachbarschaft von v und degpvq :“ |Γpvq| der Grad von v.
Ź Für V 1 Ď V sei ΓpV 1 q :“ ⋃vPV 1 Γpvq die Nachbarschaft von V 1 .
Ź Gibt es r P N mit degpvq “ r für alle v P V , so heißt G r-regulär. Ein Graph
G1 “ pV 1 ,E 1q heißt Teilgraph von G, falls V 1 Ď V und E 1 Ď E. Gilt zusätzlich
1
E 1 “ E X V2 , so heißt G1 induzierter Teilgraph von G, und wir schreiben: G1 “ G|V 1 .
Beispiele.
11
Kapitel 2. Graphen
Ź Für V 1 Ď V und E 1 Ď E sei
!
V zV 1
q und G ´ E 1 :“ pV, EzE 1 q.
G ´ V :“ pV zV , E X
2
1
1
Für v P V schreiben wir statt G ´ {v} auch G ´ v, und analog für e P E statt G ´ {e}
auch G ´ e.
Ź G heißt vollständiger Graph. wenn E “ V2 und wir schreiben: G “ Kn . G heißt leerer
Graph, wenn E “ H. Ein vollständiger Teilgraph heißt Clique, ein leerer induzierter
Teilgraph heißt unabhängige Menge.
~ ein
Ź Das Komplement von G ist der Graph Ḡ :“ Kn ´ E. Sei G P {pV, Eq, pV, Eq}
einfacher oder gerichteter Graph und seien v, w P V . Ein Subgraph P heißt Weg von
u nach v in G, kurz u-v-Weg, wenn V pP q “ {v1 , . . . , vk } und für alle i P rk ´ 1s gilt:
~ P heißt geschlossen, falls v1 “ vk . Einen Weg P
{vi , vi`1 } P E (bzw. pvi , vi`1 q P E).
notieren wir auch durch P “ v1 , . . . , vk .
Ź Ist P “ v1 , . . . , vk ein Weg, so heißt |P | :“ k ´ 1 die Länge des Weges P .
Ź Sind P1 “ v1 , . . . , vk und P2 “ w1 , . . . , wl zwei Wege mit vk “ w1 , so bezeichne P1 ˝ P2
den Weg
v1 , . . . , vk , w2 , . . . , wl .
Ź Ein Pfad ist ein Weg P mit |P | “ |V pP q| ´ 1, d.h. alle Knoten auf P sind verschieden.
Achtung: Die Bezeichnung kommt aus der englischsprachigen Literatur, hier wird ein
Pfad meist als “path” bezeichnet, während ein Weg “walk” genannt wird.
Ź Ein Weg P “ v1 , . . . , vk , v1 heißt Kreis, falls |P | ě 3 und v1 . . . , vk ein Pfad ist. G
heißt kreisfrei, wenn es keinen Kreis in G gibt.
Ź Ein Graph G heißt zusammenhängend, wenn für alle v, w P V ein Weg von v nach w
existiert. Ein zusammenhängender induzierter Teilgraph von G, der in keinem anderen
12
zusammenhängenden Teilgraphen von G echt enthalten ist, heißt Zusammenhangskomponente von G. G heißt Baum, wenn G kreisfrei und zusammenhängend ist. G
heißt Wald, wenn G kreisfrei ist.
Satz 2.4. Sei G “ pV, Eq ein Baum, n :“ |V |, m :“ |E|. Dann gilt m “ n ´ 1.
Satz 2.5. Für einen Graph G sind folgende Aussagen äquivalent:
(a) G ist ein Baum.
(b) G ist ein minimaler zusammenhängender Graph.
(c) G ist ein maximaler kreisfreier Graph.
Beweis. (a) ùñ (b). Da G kreisfrei ist, zerstört die Entnahme einer Kante den Zusammenhang.
(b) ùñ (c). Seien u, v P V . Da G zusammenhängend ist, gibt es einen Weg von u nach v.
Fügt man die Kante {u, v} ein, so bildet sie zusammen mit dem Weg einen Kreis.
(c) ùñ (a). Angenommen, G ist nicht zusammenhängend. Wähle zwei Zusammenhangskomponenten K1 und K2 . Zwischen diesen kann eine Kante eingefügt werden, ohne dass
ein Kreis entsteht. Dies ist ein Widerspruch zu (c).
Definition 2.6. Sei G “ pV, Eq ein zusammenhängender Graph. Ein Baum T “ pV, F q mit
F Ď E heißt Gerüst oder aufspannender Baum von G.
Satz 2.7. Jeder zusammenhängende Graph enthält einen aufspannenden Baum.
Betrachte den folgenden Algorithmus.
Algorithm 1: Aufspannender Baum
Eingabe: Graph G “ pV, Eq, E “ {e1 , . . . , em }.
Ausgabe: Ein aufspannender Baum von G.
1
2
3
4
T Ð pV, Hq;
für i Ð 1 bis m tue
wenn T ` ei kreisfrei dann
T Ð T ` ei ;
Ergebnis: T ;
Der Beweis von Satz 2.7 ist eine Übungsaufgabe.
13
Kapitel 3
Minimal Spannende Bäume
Lemma 3.1. Sei G “ pV, Eq ein Graph. Folgende Aussagen sind äquivalent.
(a) G ist ein Baum.
(b) Zwischen je zwei Knoten von G existiert genau ein Pfad.
(c) G ist zusammenhängend und |E| “ |V | ´ 1.
Problem 3.2 (Minimal aufspannender Baum (MST)).
Eingabe Zusammenhängender Graph G “ pV, Eq, Kantengewichtsfunktion c : E Ñ Q.
Aufgabe Finde einen aufspannenden Baum T “ pV, F q von G mit minimalem Gewicht,
d.h. mit cpF q “ min {cpF 1 q ; T 1 “ pV, F 1 q ist Baum }.
Algorithm 2: MST (Kruskal)
Eingabe: G “ pV, Eq mit n :“ |V |, m :“ |E|, c : E Ñ Q.
1
2
3
4
5
T Ð pV, Hq;
Sortiere die Kanten nach Gewicht: cpe1 q ď cpe2 q ď . . . ď cpem q;
für i Ð 1 bis m tue
wenn T ` ei kreisfrei dann
T Ð T ` ei ;
Ergebnis: T ;
Beispiel 3.3. Wir wenden den Kruskal-Algorithmus auf folgenden Graphen an.
15
Kapitel 3. Minimal Spannende Bäume
Ein möglicher Ablauf des Algorithmus sieht dann so aus.
Satz 3.4 (Kruskal, 1956). Der Kruskal-Algorithmus findet einen MST in Zeit Opmnq.
Beweis. Sei T “ pV, F q die Ausgabe des Algorithmus. Angenommen, T ist nicht zusammenhängend. Dann gibt es zwei Zusammenhangskomponenten und eine Kante e1 P EzF ,
die diese verbindet. Sei e P EzF die leichteste Verbindungskante der beiden Zusammenhangskomponenten. Dann ist T ` e kreisfrei und folglich e P F im Widerspruch zur
Wahl von e. Somit ist T zusammenhängend. Nach Konstruktion ist T auch kreisfrei und
enthält alle Knoten von G, also ist T ein Gerüst von G. Angenommen, es gibt einen MST
T ˚ “ pV, F ˚ q mit cpF ˚ q ă cpF q. Für alle i P rn ´ 1s sei fi P F diejenige Kante, die der
Algorithmus als i-te hinzugefügt hat. Wir können T ˚ so wählen, dass der kleinste Index
k P rn ´ 1s mit fk R F ˚ maximal ist. T ˚ ` fk besitzt einen Kreis K. Dieser enthält eine
Kante g mit g R F . Wegen g P F ˚ und {f1 , . . . , fk´1 } P F ˚ ist pV, {f1 , . . . , fk´1 }} Y {g}q
kreisfrei. Da g R F gilt, folgt cpgq ě cpfk q. Dann aber ist T 1 “ pV, F 1 q :“ T ˚ ` fk ´ g
ein Gerüst von G mit cpF 1 q “ cpF ˚ q ` cpfk q ´ cpgq ď cpF ˚ q, d.h. T 1 ist ein MST mit
{f1 , . . . , fk } P F 1 im Widerspruch zur Wahl von T ˚ .
Zur Laufzeit: Die Eingabelänge ist Ωpm ` nq. Das Sortieren der Kanten lässt sich in Zeit
Opm log mq erledigen. Mit Breitensuche ist der Test auf Kreisfreiheit in Zeit Opnq
möglich, also ist die Gesamtlaufzeit Opmnq.
Bemerkung 3.5. Durch eine geschicktere Implementierung lässt sich die Laufzeit des
Kruskal-Algorithmus auf Opm log nq verringern (siehe B. Korte, J. Vygen, Combinatorial
Optimization, Seite 120).
16
Algorithm 3: MST (Prim)
Eingabe: G “ pV, Eq mit n :“ |V |, m :“ |E|, c : E Ñ Q.
1
2
3
4
Wähle v P V und setze T Ð p{v}, Hq;
solange V pT q ­“ V tue
Wähle e P E mit minimalem Gewicht unter allen Kanten mit |e X V pT q| “ 1;
T Ð T ` e;
Ergebnis: T ;
Beispiel 3.6. Mit dem Graphen aus Beispiel 3.3 als Eingabe kann der Prim-Algorithmus
wie in Abbildung 3.1 dargestellt arbeiten.
Abbildung 3.1. Beispiel für den Prim-Algorithmus.
Satz 3.7 (Jarnik, 1930; Prim, 1957). Der Prim-Algorithmus bestimmt einen MST in Zeit
Opn2 q – bei Verwendung geeigneter Datenstrukturen („Fibonacci-Heaps“, siehe M.L.
Fredman, R.E. Tarjan, Fibonacci heaps and their uses in improvemed network optimization
problems, Journal of the ACM 34 (1987), Seite 596–615) sogar in Zeit Opm ` n log nq.
Der nachfolgende Algorithmus braucht die komplette Struktur des Eingangsgraphen zur
Laufzeit nicht zu kennen, denn er muss jede Kante nur einmal betrachten.
Algorithm 4: MST-Online
Eingabe: zusammenhängender Graph G “ pV, Eq
Ausgabe: minimal spannender Baum T in G
1 T :“ pV, Hq;
2 für e P EpGq tue
3
T :“ T ` e;
4
wenn ein Kreis K in T existiert dann
5
wähle a P arg maxaPEpKq wpaq;
6
T :“ T ´ a;
Ergebnis: T ;
17
Kapitel 3. Minimal Spannende Bäume
Proposition 3.8. Sei G ein Graph und T ein spannender Baum von G. Sei e P EpT q in
einem Kreis K in G enthalten. Dann findet man eine Kante e1 P EpKq, derart dass
T ´ e ` e1 zusammenhängend ist.
Beweis. T ´ e besteht aus zwei Zusammenhangskomponenten V1 , V2 Ď V pGq mit V pGq “
V1 ŸV2 . Da K sowohl V1 als auch V2 besucht, gibt es mindestens zwei Kanten in K, die
einen Knoten in V1 und den anderen Knoten in V2 haben. Eine dieser Kanten ist e, die
andere Kante kann als e1 gewählt werden.
Theorem 3.9. Algorithmus 4 arbeitet korrekt.
Beweis. Sei T ˚ die Menge aller minimal spannenden Bäume, die eine maximale Anzahl
von Kanten mit T gemeinsam haben, das heißt T ˚ ist die Menge aller Lösungen der
folgenden Optimierungsaufgabe:
max: |EpT ˚ q X EpT q|
N.B: T ˚ ist minimaler Spannbaum von G
Falls T P T ˚ , so sind wir fertig. Angenommen, T R T ˚ , also EpT ˚ qzEpT q ‰ H für
alle T ˚ P T ˚ . Wir bezeichnen mit a1 , . . . , ak die in Zeile 6 des Algorithmus entfernten
Kanten, entsprechend der Reihenfolge ihrer Betrachtung. Insbesondere entstehen nach
der Entfernung von ak keine Kreise mehr in T . Ferner ist {a1 , . . . , ak }ŸEpT q “ EpGq.
Unter allen Bäumen in T ˚ wählen wir einen Baum T ˚ aus, der ai P EpT ˚ q für den
größtmöglichen Index i erfüllt. Sei K derjenige Kreis mit ai P EpKq, der dazu führte,
dass ai nicht in T ist. Dann ist wpeq ď wpai q für alle e P EpKq. Mit Proposition 3.8
existiert e1 P EpKq, derart dass T 1 :“ T ˚ ´ ai ` e1 ein Spannbaum ist, der wegen
wpe1 q ď wpai q sogar ein minimaler Spannbaum ist.
Ist nun e1 P EpT q, so hat T 1 eine Kante mehr mit T gemeinsam als T ˚ (da ai R EpT q), im
Widerspruch zur Definition von T ˚ . Wir wissen also, e1 R EpT q und T 1 P T ˚ . Nun hatte
der Kreis K aber die Entfernung der Kante ai verursacht, sodass K und insbesondere e1
zum Zeitpunkt, als ai entfernt wurde, in T enthalten waren. Da die Kante e1 am Ende
aber nicht mehr in T enthalten ist, muss sie später entfernt worden sein, das heißt e1 “ aj
für ein j ą i. Dies ist ein Widerspruch zur Wahl von T ˚ und ai .
18
Kapitel 4
Bipartites Matching
4.1. Bipartite Graphen
Definition 4.1. Ein Graph G “ pV, Eq heißt bipartit, wenn es V1 , V2 Ď V gibt mit V1 X V2 “
H, V1 Y V2 “ V und E Ď {{v1 , v2 } ; v1 P V1 , v2 P V2 }. In diesem Fall heißt pV1 , V2 q eine
Bipartition von G und wir schreiben G “ pV1 ẎV2 , Eq.
Satz 4.2 (König, 1916). Ein Graph G ist genau dann bipartit, wenn G keinen geschlossenen
Pfad ungerader Länge enthält.
Beweis. „ñ“: Sei G “ pV1 ẎV2 , Eq bipartit und sei P “ pu1 , . . . , uk , u1 q ein geschlossener
Pfad in G. Wie dürfen annehmen, dass u1 P V1 gilt. Dann ist u2 P V2 , u3 P V1 und so
weiter, d.h. ui ist genau dann in V1 , wenn i P rks ungerade ist. Wegen {u1 , uk } P E ist
uk P V2 , und folglich ist |P | “ k gerade.
„ð“: Sei nun G “ pV, Eq nicht bipartit. Wir dürfen annehmen, dass G zusammenhängend
ist. Sei v0 P V . Wir betrachten kürzeste Wege bezüglich der Kantengewichtsfunktion
c : E Ñ {1} und setzen V1 :“ {v P V ; dG pv0 , vq ungerade} und V2 :“ V zV1 . Da G nicht
bipartit ist, gibt es eine Kante {a, b} in G|V1 oder G|V2 . Dann ist dG pv0 , aq ` dG pv0 , bq
gerade, und für kürzeste Wege P1 P {v0 Ñ a}G , P2 P {b Ñ v0 }G gilt: P1 ˝ pa, bq ˝ P2 ist
ein geschlossener Pfad ungerade Länge.
Problem 4.3 (Bipartition).
Eingabe: Zusammenhängender Graph G “ pV, Eq
Aufgabe: Finde eine Bipartition pV1 , V2 q von G oder einen geschlossenen Pfad ungerader
Länge.
Satz 4.4. Der Algorithmus 5 Bipartition löst das Problem Bipartition in Zeit Opm`nq.
19
Kapitel 4. Bipartites Matching
Algorithm 5: Bipartition
Eingabe: G “ pV, Eq mit n :“ |V |, m :“ |E|.
1
2
3
4
5
6
7
Wähle v0 P V ;
Führe Breitensuche mit folgender Modifikation durch: Der Startknoten wird mit 1 markiert. Jeder
unmarkierte Nachbar eines mit i markierten Knotens wird mit i ` 1 markiert. Außerdem wird für
jeden Knoten v der benachbarte Vorgängerknoten als ppvq abgespeichert;
V1 Ð {v P V ; v hat ungerade Markierung};
V2 Ð V zV1 ;
für alle {a, b} “ e P E tue
wenn e Ď V1 oder e Ď V2 dann
gib pv0 , . . . , ppppaqq, ppaq, a, b, ppbq, ppppbqq, . . . , v0 q aus und halte;
Ergebnis: pV1 , V2 q
4.2. Matchingberechnung über augmentierende Pfade
Definition 4.5. Sei G “ pV, Eq ein Graph.
(i) Eine Menge M Ď E heißt Matching (Paarung), wenn für alle e1 ­“ e2 P M gilt:
e1 X e2 “ H.
(ii) Ein Matching M Ď E heißt (kardinalitäts-)maximal, wenn für jedes Matching
M 1 Ď E gilt: |M 1 | ď |M |. Die Mächtigkeit eines maximalen Matchings in G
bezeichnen wir mit νpGq.
(iii) Ein Matching M Ď E heißt perfekt (1-Faktor), wenn |M | “ |V |{2 gilt.
Problem 4.6 (Maximales Matching).
Eingabe: Graph G “ pV, Eq.
Aufgabe: Finde ein maximales Matching in G.
Definition 4.7. Sei G “ pV, Eq ein Graph und M Ď E.
(i) Ein Knoten v P V wird von M überdeckt, wenn es e P M gibt mit v P e.
(ii) Ein Pfad in G heißt M -alternierend, wenn er abwechselnd Kanten aus M und EzM
durchläuft (oder Länge 1 hat).
(iii) Ein M -alternierender Pfad heißt M -augmentierender Pfad, wenn seine Endknoten
nicht von M überdeckt werden.
20
4.2. Matchingberechnung über augmentierende Pfade
Satz 4.8 (Berge, 1957). Sei G “ pV, Eq ein Graph und M Ď E ein Matching in G. M ist
genau dann maximal, wenn G keinen M -augmentierenden Pfad enthält.
Beweis. „ñ“: Sei M maximal. Angenommen, es gibt einen M -augmentierenden Pfad P
in G. Dann ist M 1 :“ pM zEpP qq Y pEpP qzM q ein Matching mit |M 1 | “ |M | ` 1.
„ð“: Sei M ein Matching, so dass G keinen M -augmentierenden Pfad enthält und sei M 1
ein maximales Matching. Wir betrachten den Teilgraphen H :“ p⋃pM Y M 1 q, M Y M 1 q.
Alle Knoten in H haben Grad höchstens 2. Daher besteht H aus Kreisen und Wegen.
Jeder Kreis enthält ebensoviele Kanten aus M wie aus M 1 . Die Wege sind M - und
M 1 -alternierend und haben gerade Länge, da es weder M - noch M 1 -augmentierende
Pfade gibt. Also enthalten auch die Wege ebensoviele Kanten aus M wie aus M 1 . Es
folgt: |M | “ |M 1 |.
Definition 4.9. Seien A und B Mengen. Dann ist A∆B :“ pAzBqYpBzAq die symmetrische
Differenz von A und B.
Algorithm 6: Bipartites maximales Matching
Eingabe: G “ pV1 ẎV2 , Eq.
1
2
3
M Ð H;
solange es existiert ein M -augmentierender Pfad P in G tue
M Ð M ∆EpP q;
Ergebnis: M
Satz 4.10. Der Algorithmus 6 Bipartites maximales Matching lässt sich so implementieren, dass er in Zeit Opmnq das Problem Maximales Matching in bipartiten
Graphen löst.
Beweis. Die Korrektheit folgt aus dem Satz von Berge. Schritt 2 implementieren wir
mittels wie folgt modifizierter Tiefensuche: Wir betrachten für jeden Knoten zwei Adjazenzlisten ΓM und ΓEzM , wobei für alle v P V die Liste ΓM pvq alle Nachbarn w mit
{v, w} P M enthalte und ΓEzM pvq die Liste der Nachbarn w mit {v, w} P EzM sei.
In jeder Iteration von 2 wählen wir einen unmarkierten, nicht durch M überdeckten
Startknoten v1 und markieren ihn mit 1. Für mit 1 markierte Knoten werden nur
Nachbarn aus ΓEzM betrachtet und mit 2 markiert. Für mit 2 markierte Knoten werden nur Nachbarn aus ΓM betrachtet und mit 1 markiert. Für jeden Knoten v wird
ein Vorgängerknoten als ppvq abgespeichert. Die Suche bricht ab, sowie ein nicht von
M überdeckter Knoten w mit 2 markiert wurde, mit dem M -augmentierender Pfad
P :“ pw, ppwq, ppppwqq, . . . , v1 q als Suchergebnis. Sind alle von v1 erreichbaren Knoten
21
Kapitel 4. Bipartites Matching
markiert, ohne dass ein M -augmentierender Pfad gefunden wurde, so wird ein neuer unmarkierter, nicht von M überdeckter Startknoten v1 gewählt. Der Algorithmus terminiert,
wenn alle Knoten markiert sind. ΓM und ΓEzM lassen sich in Zeit Opmq erzeugen. Die
Suche hat ebenfalls Laufzeit Opmq. Da jeder Knoten höchstens einmal als Startknoten
einer Suche betrachtet wird, ist die Gesamtlaufzeit Opmnq. Es bleibt zu zeigen, dass
die modifizierte Tiefensuche stets einen M -augmentierenden Pfad findet, wenn ein solcher existiert. Angenommen, die Tiefensuche betrachtet überhaupt keinen Anfangsknoten
eines M -augmentierenden Pfades als Startknoten, obwohl ein solcher Anfangsknoten
v1 existiert. Dann wird v1 von der Tiefensuche markiert, und zwar auf dem Pfad von
einem nicht von M überdeckten Startknoten v0 aus. Da v1 nicht von M -Uberdeckt wird,
ist dieser Pfad ein M -augmentierender Pfad im Widerspruch zur Annahme. Sei nun
v1 der erste Knoten, den die modifizierte Tiefensuche als Startknoten betrachtet, für
den ein M -augmentierender P “ pv1 , . . . , vk q existiert. Zu dem Zeitpunkt, an dem v1
Startknoten wird, ist kein Knoten auf P markiert, denn wäre vi von einem Startknoten
v0 aus markiert worden, so gäbe es einen M -alternierenden Weg P 1 von v0 nach vk oder
nach v1 mit nicht-überdeckten Endknoten. Da G bipartit ist, enthielte P 1 nur gerade
Kreise, so dass durch Weglassen der Kreiskanten ein M -augmentierender Pfad entstünde.
Sei i P rks der größte Index, so dass vi von der Tiefensuche mit Startknoten v1 markiert
wird. Offenbar ist vi ­“ v1 . Angenommen, vi ­“ vk . Sei P1 “ pv1 “ v11 , v21 , . . . , vl1 “ vi q der
alternierende Pfad von v1 nach vi , den die Tiefensuche findet, und P2 P {v1 Ñ vi }G der
Teilpfad von P .
1. Fall: {vi´1 , vi } P M . Dann gilt {vi , vi`1 } P EzM . Da die Tiefensuche vi`1 nicht als
1
Nachbarn von vi betrachtet, obwohl vi`1 unmarkiert ist, gilt {vl´1
, vl1 } P EzM . Dann
aber ist |P1 | ungerade und |P2 | gerade, und folglich enthält G einen geschlossenen Weg
ungerader Länge, im Widerspruch zur Wahl von G als bipartit.
1
2. Fall: {vi´1 , vi } P EzM . Dann folgt analog {vl´1
, vl1 } P M , d.h. |P1 | ist gerade und |P2 |
ungerade, im Widerspruch zur Wahl von G als bipartit.
Somit gilt vi “ vk , und die Tiefensuche findet einen M -augmentierenden Pfad.
4.3. Matching-Heuristiken
Matching-Heuristiken werden seit über 30 Jahren studiert. Wir geben hier zwei der
bekanntesten Heuristiken an. Obwohl wir uns ausschließlich auf bipartite Graphen konzentrieren, eignen sich diese Heuristiken ebenfalls für allgemeine Graphen.
22
4.3. Matching-Heuristiken
Einfacher Greedy-Algorithmus Die wahrscheinlich einfachste und meistverwendete Regel
für die Auswahl der Kanten ist der einfache Greedy-Algorithmus: Für jeden Knoten finde
einen ungepaarten Nachbarn und füge die jeweilige Kante zum Matching hinzu. Falls alle
Nachbarn gepaart sind, belasse den Knoten ungepaart. Auch wenn die Approximationsratio für den einfachen Greedy-Algorithmus nur 12 ist, generiert er gewöhnlich Lösungen im
9
Bereich von mindestens 10
des Optimums [Möhrig und Müller-Hannemann 1995; Magun
1998], wie Untersuchungen gezeigt haben. Seine Worst-Case-Laufzeit ist Opmq und die
erwartete Laufzeit ist Opnq, wenn Knoten in zufälliger Reihenfolge ausgewählt werden.
Algorithm 7: Greedy Bipartite Matching
Eingabe: G “ pV, Eq mit n :“ |V |, m :“ |E|.
1
2
3
4
5
6
7
M “ H, W “ H;
solange W ‰ V tue
Wähle einen zufälligen Knoten u P V zW ;
W “ W Y {u};
wenn v P Γpuq X pV zW q existiert dann
M “ M Y {{u, v}};
W “ W Y v;
Ergebnis: M
Anspruchsvollere Ansätze nutzen die Tatsache, dass die Wahrscheinlichkeit, einen Knoten
so zu paaren, dass einer seiner Nachbarn nicht mehr gepaart werden kann, im Allgemeinen
geringer ist, wenn Knoten bevorzugt mit Nachbarn niedrigen Grades gepaart werden.
Diese Beobachtung führt zur Familie der grad-basierten Heuristiken, die als Mindegree
bezeichnet werden. Ihr Grundkonzept ist wie folgt:
Der Algorithmus bestimmt den Grad jedes Knotens und wählt dann in jeder Iteration
einen Knoten minimalen Grades und einen ungepaarten Nachbarn, mit dem er gematched
wird. Die resultierende Matching-Kante und ihre Knoten werden aus dem Graphen
entfernt, wodurch sich der Grad ihrer Nachbarn um je eins verringert. Hierdurch ändert
sich möglicherweise die Reihenfolge, in der die weiteren Knoten ausgewählt werden.
Dieser Vorgang wird so lange wiederholt, bis kein weiterer Knoten gematched werden
kann. Ein naheliegender Ansatz zur Implementierung ist die Verwendung einer Vorrangwarteschlange (engl. Priority Queue) zur „Buchführung“ über die Knoten niedrigsten
Grades.
In Abhängigkeit davon, ob der jeweilige Nachbar zufällig auswählt wird oder ebenfalls
hinsichtlich des minimalen Grades, sprechen wir von einseitigem Mindegree oder doppel-
23
Kapitel 4. Bipartites Matching
seitigem Mindegree. Möglich sind viele Varianten dieses Schemas.
Algorithm 8: Dynamic Mindegree
Eingabe: G “ pV, Eq mit n :“ |V |, m :“ |E|.
1
2
3
4
5
6
M “ H;
solange V ‰ H tue
Entferne alle isolierten Knoten aus V ;
Wähle ein u P V mit minimalem Grad in G und ein v P Γpuq;
M “ M Y {{u, v}};
G “ G ´ u ´ v;
Ergebnis: M
4.4. Generatoren für bipartite Graphen
4.4.1. Gpn1 , n2 , pq
Parameter: n1 , n2 P N und p P r0, 1s.
Der Generator Gpn1 , n2 , pq erzeugt einen Graphen G “ pA Y B, Eq mit |A| “ n1 und
|B| “ n2 . Dabei wird E generiert, indem jede Kante des vollständigen bipartiten Graphen
Kn1 ,n2 unabhängig mit Wahrscheinlichkeit p gezogen wird.
4.4.2. Seil
Parameter: l, k P N und p P r0, 1s.
Es sei n :“ lk und A und B seien zwei Mengen der Kardinalität jeweils n, dieses
sind die beiden Knotenmengen des bipartiten Graphen. Wir permutieren die Knoten
zufällig A “ {a0 , . . . , an´1 } und B “ {b0 , . . . , bn´1 }. Dann definieren wir die Gruppen
Ai :“ {aj ; ki ď j ă k pi ` 1q} und B i :“ {bj ; ki ď j ă k pi ` 1q} für jedes 0 ď i ă l.
Dies gibt also jeweils (in A und in B) l Gruppen von jeweils k Knoten.
Kanten werden wie folgt gezogen. Für jedes 0 ď i ă l fügen wir zwischen Ai und B i
ein perfektes Matching ein. Für jedes 1 ď i ă l fügen wir zwischen Ai und B i´1 jede
mögliche Kante unabhängig mit Wahrscheinlichkeit p ein.
24
4.4. Generatoren für bipartite Graphen
Für l “ 5 und k “ 4 sieht das zum Beispiel so aus wir in der folgenden Abbildung.
So ein Graph hat offenbar genau ein perfektes Matching.
4.4.3. HiLo
Parameter: l, k, d P N mit d ď k
Es sei n :“ lk und A und B seien zwei Mengen der Kardinalität jeweils n. Wir definieren
l
l
Gruppen pAi qi“1 und pB i qi“1 genau wie beim Seil. Führe Bezeichnungen für die Knoten
in den einzelnen Gruppen ein, nämlich Ai “ {ai0 , . . . , aik´1 } und B i “ {bi0 , . . . , bik´1 } für
jedes 0 ď i ă l.
Kanten werden wie folgt gezogen. Für jedes 0 ď i ă l und jedes 0 ď j ă k und jedes
0 ď p ă d mit 0 ď j ´ p fügen wir zwischen aij und bij´p eine Kante ein, und falls i ` 1 ă l
i
i
so auch zwischen aij und bi`1
j´p . Das heißt, aj wird mit seinem „direkten Gegenüber“ bj
verbunden, sowie mit den d ´ 1 davor liegenden Knoten in B i ; und dann dasselbe noch
mit B i`1 anstelle von B i , vorausgesetzt wir sind noch nicht bei der letzten Gruppe
angekommen.
Offenbar hat so ein Graph ein perfektes Matching. Übungsaufgabe: dieses ist sogar
eindeutig.
Für l “ 4 und k “ 5 und d “ 2 sieht das genau so aus wie in der folgenden Abbildung,
wobei die obere Reihe die Knoten von A darstellen und die untere Reihe die von
B.
25
Kapitel 4. Bipartites Matching
4.4.4. RBG
Parameter: l, k P N und p P r0, 1s
Es sei n :“ lk und A und B seien zwei Mengen der Kardinalität jeweils n. Wir definieren
l
l
Gruppen pAi qi“1 und pB i qi“1 genau wie beim Seil und bei HiLo.
Für jedes 0 ď i ă l und jedes j P {i ´ 1, i, i ` 1} (wobei die Arithmetik modulo l ist, also
insbesondere ´1 “ l ´ 1 und l “ 0) und jeden Knoten v P Ai und jeden Knoten w P B j
fügen wir die Kante {v, w} unabhängig mit Wahrscheinlichkeit p ein.
Für l “ 4 und k “ 5 und p “ 0.2 könnte das so aussehen wie in der folgenden Abbildung,
wobei die obere Reihe die Knoten von A darstellen und die untere Reihe die von
B.
4.5. Der Satz von Hall
Satz 4.11 (Hall 1935;Heiratssatz). Sei G “ pV, Eq ein bipartiter Graph mit Bipartition
V “ S Y T , S X T “ H. Es gilt νpGq “ |S| genau dann, wenn |N pAq| ě |A| für alle
A Ď S.
26
4.5. Der Satz von Hall
Abbildung 4.1. Ein bipartiter Graph mit Partitionsmengen S und T .
In der klassischen Anschauung ist S eine Menge von Jungen, T eine Menge von Mädchen
und Kanten stehen für gegenseitige Sympathie. „Vollständige Heirat“ ist möglich, wenn
jedem s P S ein t P T zugeordnet werden kann.
Der Heiratssatz ist ein Struktursatz. Leider ist es nur in 2|S| Zeit möglich, alle Teilmengen
A Ď S auf die Hall-Bedingung|N pAq| ě |A| zu testen.
Beweis. (Satz 4.11)
Wir benutzen Induktion nach |S|.
Induktionsanfang: |S| “ 1. Hier gibt es wegen |N pSq| ě |S| “ 1 einen t P T , das mit dem
Knoten s P S gematcht werden kann und die Behauptung gilt.
Induktionsschluß: Sei |S| ě 2 and wir nehmen an, daß die Behauptung für Graphen mit
Bipartitions-menge der Kardinalität höchstens |S| ´ 1 gilt.
Ź Fall: |N pAq| ě |A| ` 1 für alle A Ď S, A ‰ S. Sei {a, b} P E beliebig gewählt und
betrachte G1 :“ Gz{a, b}. Für jedes A Ď Sz{a} gilt nun.
|NG1 pAq| ě |NG pAq| ´ 1 ě |S| ` 1 ´ 1 “ |S|
Damit besitzt G1 ein Matching M von S nach T und |M | “ |S| ´ 1 nach Induktionsvoraussetzung. Nun füge man die Kante {a, b} zu M hinzu und erhalte so ein
Matching M 1 mit |M 1 | “ |S| ´ 1 ` 1 “ |S|.
27
Kapitel 4. Bipartites Matching
Ź Fall: Es gibt ein A1 Ď S, A1 ‰ S, A1 ‰ H mit |N pA1 q| “ |A1 |. Sei G1 der Graph auf der
Knotenmenge A1 Y N pA1 q. Diese erfüllt die Hall-Bedingung und da |A1 | ă |S|, besitzt
er nach Induktionsvoraussetzung ein Matching M von A1 nach N pA1 q mit |M | “ |A1 |.
Sei G2 “ GzG1 . G2 erfüllt ebenfalls die Hall-Bedingung.
Nehmen wir für einen moment an, daß dies nicht der Fall ist. Dann gibt es A Ď SzV pG1 q
und NG2 pAq ă |A|. Somit
|NG pA Y A1 q| ď |NG pAq| ` |NG pA1 q|
“ |NG2 pAq| ` |NG pA1 q|
ă |A| ` |A1 |
“ |A Y A1 |,
ein Widerspruch zu Hall-Bedingung für G.
Also enthält G ´ G2 ein Matching F mit |F | “ |SzA1 | “ |S| ´ |A|. Die Mengen M und
F sind nach Konstruktion disjunkt Ferner gilt.
|M Y F | “ |A1 | ` |S| ´ |A1 | “ |S|,
also wird S nach T gematcht.
Korollar 4.12 („Heiratssatz“, Frobenius, 1917). Sei G “ pS ẎT, Eq ein bipartiter Graph.
Genau dann hat G ein perfektes Matching, wenn |S| “ |T | und |ΓpHq| ě |H| für alle
H Ď S.
Wie sieht νpGq in einem allgemeinen bipartiten Graphen G “ pS ŸT, Eq aus ?
Das Problem ist, daß die Hallbedingung |N pAq| ě |A| für gewisse A Ď S verletzt sein kann.
Eine Menge A Ď S mit |A| ą |N pAq| kann nicht vollständig gematcht werden. Die in
diesem Sinn nicht matchbaren Knoten definieren den Matchingdefekt.
Definition 4.13. Sei G “ pS ŸT, Eq ein bipartiter Graph. Der Matchingdefekt von G ist
defpGq :“ max{|A| ´ |N pAq| : A Ď S}.
Korollar 4.14. (Defektversion des Heiratssatzes) Sei G “ pS ŸT, Eq ein bipartiter Graph.
Dann gilt
νpGq “ |S| ´ defpGq.
28
4.5. Der Satz von Hall
Beweis. Sei A Ď S mit |A| ´ |N pAq| “ defpGq. Sei maximales Matching. Es gilt: |A X
⋃ M | “ |NM pAq Ď |N pAq|, folglich
νpGq “ |M | “ |S X ⋃ M | “ |pSzAq X ⋃ M | ` |A X ⋃ M |
ď |SzA| ` |N pAq| “ |S| ´ |A| ` |N pAq| “ S ´ defpGq.
Sei D eine neue Knotenmenge mit |D| “ defpGq. Setze G1 “ pS ŸpT Y Dq, E Y {{s, d}; s P
S, d P D}q. Dann gilt für A Ď S:
|NG1 pAq| “ |NG pAq Y D|
“ |NG pAq| ` defpGq
“ |NG pAq| ` max
e ´ |N
|A|
G
e A
e
pAq|;
Ď S|
ě |NG pAq| ` |A| ´ |NG pAq|
“ |A|.
Also erfüllt G1 die Heiratsbedingung, und es existiert ein Matching M in G1 mit |S| “ |M |.
f “ M X E. Dann gilt |M
f | ě |M | ´ |D| “ |S| ´ defpGq und somit auch νpGq ě
Sei M
|S| ´ defpGq.
Ein Vertex-Cover (oder Knotenüberdeckung) in einem Graphen G “ pV, Eq ist eine
Teilmenge W Ď V , in der all Kanten sind. τ pGq ist die Größe eines Vertex-Cover
minimaler Kardinalität. Es gilt νpGq ď τ pGq für jeden Graphen G.
Satz 4.15. (Dualitätssatz für Bipartites Matching / Vertex-Cover) Ist G bipartit, so gilt
νpGq “ τ pGq.
Beweis. Sei A Ď S mit defpGq “ |A| ´ |N pAq|. W :“ pSzAq Y N pAq ist ein Vertex-Cover
von G, da es keine Kanten zwischen A und T zN pAq gibt. Es folgt:
τ pGq ď |W |
“ |S| ´ |A| ` |N pAq|
“ |S| ´ defpGq
“ νpGq pKorollar 4.14q
29
Kapitel 4. Bipartites Matching
4.6. A Faster Algorithm
The main advantage of Algorithmus 6 is being simple. This can be an advantage not only
from a theoretical but also from a practical point of view, since implementations can
also be kept simple. However, it is worth studying a more complex version that allows
√
an Op nmq bound to be proven on the running time. It is the algorithm by Hopcroft
and Karp from 1973 [HK73]. The basic idea is to augment the matching along multiple
pairwise vertex-disjoint augmenting paths at once, and to only use shortest augmenting
paths. Two paths P1 and P2 are called vertex-disjoint if V pP1 q X V pP2 q “ H. Instead
of „pairwise vertex-disjoint“ we will simply write „disjoint“ in the following. Denote
shortestpM q the length of a shortest M -augmenting path.
Fix a matching M and consider a modified BFS starting at freepAq in G, where freepAq
denotes the vertices in A which are not covered by M . The modified BFS builds a layered
structure as follows:
Ź layer 0 consists of freepAq;
Ź layer 1 consists of all the vertices in B that are reachable in one step from freepAq
(via a non-matching edge), they are at distance 1 from freepAq;
Ź layer 2 consists of all the vertices in A that are reachable in one step from layer 1 via
a matching edge, they are at distance 2 from freepAq;
Ź layer 3 consists of all the vertices in B that are reachable in one step from layer 2 via
a non-matching edge, they are at distance 3 from freepAq;
Ź and so on.
The first layer containing a free vertex of B, say layer number `, marks the length of
a shortest augmenting path, so shortestpM q “ `. All shortest augmenting paths run
between layer 0 and layer `. We forget everything beyond layer `. We also remove any
edges that point ‘backward’, i. e., running from layer j to layer i with i ă j – those cannot
be part of a shortest augmenting path. Denote the resulting layered graph by LayM . We
use LayM to find an inclusion-maximal set of disjoint shortest augmenting paths. We use
the procedure given in Algorithmus 9 auf der nächsten Seite for it.
This algorithm just keeps exploring until it finds its goal (a free vertex from B) or it
cannot go any further without stepping onto a vertex already visited. The set of visited
vertices is kept in X. Whenever a new vertex w is visited, the vertex v we are coming from
is memorized as its predecessor predpwq. The predecessor relation helps backtracking
when we cannot go further, this happens in line 11. It also helps to actually deliver the
30
4.6. A Faster Algorithm
Algorithm 9: (Special) DFS
Input: Layered graph as described above, a P freepAq.
Output: A set of visited vertices and possibly an augmenting path.
1
2
3
4
5
6
7
8
9
10
11
12
13
X Ð {a};
predpaq Ð nil;
v Ð a;
repeat
while Dw P N pvqzX do
X Ð X Y {w};
predpwq Ð v;
if w P freepBq then return X and pw, predpwq, predppredpwqq, . . . , aq;
;
v Ð w;
v Ð predpvq;
until v “ nil;
return X;
augmenting path found, if any, in line 8. The set of all visited vertices is returned in order
that it can subsequently be removed from LayM : they have either shown not to lead to a
vertex from freepBq, or they are part of the augmenting path just found and so cannot be
used for other augmenting paths, since we want them vertex-disjoint.
We invoke the algorithm on each a P freepAq. After each invocation, all vertices in X and
their incident edges are removed from LayM . A possibly returned augmenting path is
stored. When all vertices in freepAq have been treated, the matching is improved using
all the found augmenting paths. This is feasible due to their disjointness – augmenting a
matching along a single path P affects only the vertices and edges of P (all those vertices
become covered, matching edges become non-matching edges, and non-matching edges
become matching edges). Everything from the construction of LayM , multiple invocations
of Algorithmus 9, and finally the improvement of M is called a phase. Recall that during
one phase, only shortest augmenting paths are found and used for the improvement due
to the structure of the layered graph. After one phase the next phase starts, with the
construction of a new layered graph. When no augmenting paths are detected anymore,
we are done. The total of all executions of Algorithmus 9 in one phase takes up Opmq
time. So the running time of the matching algorithm is that times the number of phases.
We summarize in Algorithmus 10.
It may be plausible that this treatment of multiple paths makes the algorithm faster.
√
But can we prove it? We have to show that the number of phases is Op nq. This is
31
Kapitel 4. Bipartites Matching
Algorithm 10: Hopcroft and Karp
Input: Bipartite graph G “ pA, B, Eq.
Output: Maximum matching.
1
2
3
4
5
6
7
8
9
10
11
12
M Ð inclusion-maximal matching;
construct LayM using BFS;
while augmenting paths are left do
A Ð H;
foreach a P freepAq do
conduct DFS starting at vertex a (Algorithmus 9);
remove X and all incident edges from the layered graph;
if DFS found an augmenting path P then A Ð A Y {P };
;
M Ð M 4 ⋃P PA EpP q;
construct LayM using BFS;
return M ;
accomplished in the following series of lemmas. First we show that the repeated use
of Algorithmus 9 yields an inclusion-maximal set A of shortest disjoint augmenting
paths, i. e., any shortest augmenting path not in A must cross one of the paths in A
(Lemma 4.17). Then we show that elimination of a shortest augmenting path P , i. e., going
from matching M to M 1 :“ M 4EpP q, cannot create a new augmenting path shorter than
P (Lemma 4.18). Using those two lemmas, we show that after each phase, the length of a
shortest augmenting path grows by at least 2, i. e., shortestpM q`2 ď shortestpM 1 q, where
M 1 is the matching after augmentation along all the paths in A (Korollar 4.19). This alone
does not improve upon the trivial Opnq bound on the number of phases. However, we also
show that a large distance to the optimum demands for a large number of augmenting
paths. Precisely, we show that there always exists a set of |M ˚ | ´ |M | disjoint augmenting
paths (Lemma 4.20), with M ˚ denoting a maximum matching. In other words, there is
always the theoretical possibility of choosing a set of disjoint augmenting paths so that
we reach the optimum in just one augmentation step. We do not know how to do this
efficiently, but we can use this result for another purpose:
√
Theorem 4.16. The algorithm by Hopcroft and Karp needs at most Op nq phases.
√
Beweis. Let M ˚ denote a maximum matching. After 2n phases, by Korollar 4.19 we
√
have shortestpM q ě n. Hence those k :“ |M ˚ | ´ |M | disjoint augmenting paths that
√
√
are still left by Lemma 4.20 cover a number of k n vertices at least – hence k ď n.
√
Since the matching grows by at least 1 in each phase, there are at most n more phases
32
4.6. A Faster Algorithm
v
w
x
y
(a) Assume v, w, x, and y being M -free. Then P “ pv, . . . , wq is M -augmenting, but P 1 “
px, . . . , yq is not.
v
w
x
y
(b) Augmenting along P yields the matching drawn. Now, P 1 is M augmenting of length 5,
shorter than P , which has length 7.
Abbildung 4.2. How shorter augmenting paths can emerge when we do not augment along shortest
augmenting paths.
required.
We prove the required lemmas.
Lemma 4.17. Repeated application of DFS yields an inclusion-maximal set of disjoint
augmenting paths.
Beweis. Exercise.
For the next lemma, we first provide some intuition. The question is what new augmenting
paths can emerge when an augmenting path is eliminated (i. e., when we augment the
matching along it). In Abbildung 4.2 we see that new augmenting paths can emerge,
and they can even be shorter than the one that is being eliminated. However, the next
lemma shows that this cannot happen when the augmenting path eliminated is a shortest
one.
Lemma 4.18. Let M be a matching in a graph, not necessarily bipartite. Let P be a
shortest M -augmenting path. Denote M 1 :“ M 4EpP q the augmented matching and P 1
an M 1 -augmenting path (if there exists any). Then
|P 1 | ě |P | ` 2 |EpP q X EpP 1 q| .
In particular, there does not emerge an augmenting path shorter than P by augmenting M .
33
Kapitel 4. Bipartites Matching
Beweis. If P and P 1 do not share any vertices, then P 1 is already an M -augmenting path
and so plenP 1 ě shortestpM q “ plenP . The lemma follows.
Now let P and P 1 share at least one vertex. The M 1 -free vertices of P 1 are not on P , since
all vertices on P are M 1 -covered. So P 1 enters P and leaves P again, prossibly multiple
times. Since all vertices on P are covered by M 1 , the path P 1 enters P via a non-M 1 edge.
Then it must traverse an M 1 edge, since it’s an alternating path, and that M 1 edge can
only be along P . So P and P 1 do never cross in a single vertex, but for each crossing
share at least one edge (from M 1 ). Consider the subgraph D :“ EpP q4EpP 1 q. By what
we have just established, its maximum degree is at most 2, so D consists of paths and
cycles.
We claim that D contains two disjoint M -augmenting paths. With respect to M , the
endpoints of both P and of P 1 are free (they are the only M -free vertices in D). The
endpoints of P are not located on P 1 , and the endpoints of P 1 are not located on P .
Hence we have four path-ends in D with an M -free vertex each. The claim follows
when we show that any component of D being a path of positive length must have
M -free vertices at both its ends. Let Q “ pw, u, . . .q be such a component of D and
consider one of its endpoints, say w. If w is not M -free, it is an inner vertex of P or
of P 1 . W.l.o.g. assume the former,1 so we have P “ p. . . , e1 , w, e2 , . . .q. Since Q cannot
be extended beyond w, one of e1 , e2 is not in the symmetric difference, so it is also on
P 1 , say e1 P EpP q X EpP 1 q. Since w cannot be an endpoint of P 1 , there is a third edge
e such that P 1 “ p. . . , e1 , w, e1 , . . .q. Since e2 P D, we have e1 ‰ e2 . Since Q cannot be
extended beyond w, we have e1 R D, i. e., e1 P EpP q X EpP 1 q. Now we have three distinct
edges indicent in w that all belong to P . This is impossible since P is a path.
Next we show that any path in D is M -alternating. Let Q “ p. . . , u, v, w, . . .q be a path
in D. If both {u, v}, {v, w} P EpP q, we are done since P was chosen M -alternating. If
both {u, v}, {v, w} R EpP q, we are also done since P 1 is M -alternating outside of P . Thus
v is a junction between P and P 1 , say {u, v} P EpP qzEpP 1 q and {v, w} P EpP 1 qzEpP q.
Recall that when P and P 1 meet, they do so at an inner vertex and then share at least
one edge, namely from M 1 . Writing P “ p. . . , u, v, x, . . .q that edge is {v, x} P M 1 . Since
M 1 was obtained from M by augmenting along P , it follows {u, v} P M . Recall also that
the edges by which P 1 enters or leaves P are not in M 1 , so they are also not in M since
M and M 1 coincide outside of P . It follows {v, w} R M .
In total we have gained that there are two disjoint M -augmenting paths Q and Q1 in D.
Clearly plenQ, plenQ1 ě shortestpM q “ plenP . By disjointness, 2 plenP ď |D|. It follows
The situation is not completely symmetric in P and P 1 since P is M -augmenting while P 1 is not.
However, for the arguments in this paragraph, we will only need that P and P 1 are two paths with the
only M -free vertices being their endpoints.
1
34
4.6. A Faster Algorithm
by the definition of the symmetric difference:
plenP ` plenP 1 “ |D| ` 2 |EpP q X EpP 1 q| ě 2 plenP ` 2 |EpP q X EpP 1 q| .
Subtracting plenP from both sides yields the lemma.
Korollar 4.19. Let M be a matching in a graph, not necessarily bipartite. Let A be
an inclusion-maximal set of shortest disjoint M -augmenting paths. Denote M 1 :“
M 4 ⋃P PA EpP q the augmented matching. Then shortestpM q ` 2 ď shortestpM 1 q.
Beweis. Let P 1 be a shortest M 1 -augmenting path. If P 1 does not share a vertex with
any of the paths in A, then clearly plenP 1 ą shortestpM q, since otherwise P 1 P A. Since
augmenting paths have odd length, it follows plenP 1 ě shortestpM q ` 2.
Now let P 1 share at least one vertex with at least one path in A. We arbitrarily pick one
such path P̃ P A. Denote
f :“ M 4 ⋃ EpP q .
M
P PA
P ‰P̃
f -augmenting path, since by Lemma 4.18 (applied inductively)
Then P̃ is a shortest M
no shorter augmenting paths emerge. Augmenting along P̃ yields M 1 . Since P and
P̃ share a vertex, also |EpP q X EpP̃ q| ě 1. By Lemma 4.18 it follows |P 1 | ě |P̃ | `
2 |EpP̃ q X EpP 1 q| ě |P̃ | ` 2 “ shortestpM q ` 2.
Lemma 4.20. Let M be a matching in a graph, not necessarily bipartite. Let M ˚ denote
a maximum matching. Then there is a set of exactly |M ˚ | ´ |M | disjoint M -augmenting
paths.
Beweis. Exercise.
35
Kapitel 5
Streaming-Algorithmen
5.1. Das Semi-Streaming-Modell
Traditionell wird vorausgesetzt, dass der wahlfreie Zugriff auf Problem-Instanzen (hier Graphen) billig ist. Beispielsweise sind folgende Annahmen typisch, wobei ∆ :“ maxvPV degpvq
der Maximalgrad im Graphen ist:
•
Bei Verwendung einer Adjazenzmatrix kann in Zeit Op1q getestet werden, ob zwei
Knoten adjazent sind, und die Nachbarschaft eines Knotens kann in Zeit Opnq eingesammelt werden.
•
Bei Verwendung von Adjazenzlisten, kann die Adjazenz zweier Knoten in Zeit Op∆q
überprüft werden, und die Nachbarschaft eines Knotens v kann in Zeit Opdegpvqq
durchlaufen werden.
So stützen sich zum Beispiel auch die BFS- und DFS-basierten Techniken, von denen
in den Algorithmen der vorherigen Kapitel intensiv Gebrauch gemacht wurde, auf diese
Annahmen. Die Annahmen bleiben allerdings nicht mehr realistisch, wenn die Eingabe
sehr groß wird, möglicherweise größer als der auf der verwendeten Maschine verfügbare
Arbeitsspeicher. Große Datenmengen verlangen nach einem anderen Modell für den Zugriff.
Eine populäre Klasse solcher Modelle ist das Streaming-Modell. In einem StreamingModell kommt die Eingabe als eine Folge von Objekten, z.B. Zahlen, oder Zahlenpaare (als
Representanten für Kanten eines Graphen). Eine solche Folge von Objekten wird Stream
genannt. Ein Algorithmus kann einen Stream einmal oder mehrfach anfordern, wobei
die Objekte dem Algorithmus jeweils eines nach dem anderen presentiert werden. Das
einmalige Betrachten des Streams wird als Pass bzw. Passieren der Eingabe bezeichnet.
Über die Betrachtungsreihenfolge der Objekte wird hierbei keine Annahme gemacht,
und oft werden Algorithmen so entworfen, dass die Reihenfolge sich von Pass zu Pass
beliebig ändern darf. Ein Pass wird als teuer angenommen, sodass ein Limit bezüglich
der Anzahl der Pässe, die sogenannte Pass-Garantie, eine wichtige Charakteristik eines
Streaming-Algorithmus ist. Dabei ist es ein allgemeiner Konsens, dass die Pass-Garantie
37
Kapitel 5. Streaming-Algorithmen
zwar unabhängig von der Eingabegröße sein soll, aber von Approximationsparametern
abhängen darf.
Die ersten Streaming-Algorithmen wurden in den späten 1970er Jahren entwickelt (siehe
z.B. [MP80; FM85]), und eine der einflussreichsten Arbeiten wurde 1996 von Alon
et al. [AMS99] publiziert. Der Begriff „Streaming“ wurde kurz darauf von Henzinger
et al. [HRR00] geprägt.
Neben der Pass-Garantie ist der benötigte Arbeitsspeicherbedarf eines Algorithmus eine
weitere wichtige Charakteristik. Für eine zweckdienliche Verwendung eines StreamingAlgorithmen sollte der Arbeitsspeicher deutlich kleiner sein als die Größe der Eingabe.
Andererseits muss der Arbeitsspeicher groß genug sein, um etwas Sinnvolles tun zu
können. Für Graphenprobleme enthält der Stream die Kanten des Graphen, also eine
Folge e1 , . . . , eN , wobei jedes ei ein Zahlenpaar (interpretiert als ungeordnetes Paar) aus
{1, . . . , n} ist, mit n als Anzahl der Knoten. Feigenbaum et al. [FKM+04] hat gezeigt, dass
Oppoly log nq Bits1 nicht ausreichen, um festzustellen, ob zwischen zwei gegebenen Knoten
ein Pfad der Länge 2 existiert, (d.h. ob sie disjunkte Nachbarschaften haben), sofern die
Anzahl der Pässe nicht von der Eingabegröße abhängen darf. Das Argument basiert auf
der Tatsache, dass die Disjunktheit von Mengen in einer n-elementigen Basismenge eine
Kommunikations-Komplexität von Ωpnq Bits [KS92] hat. Hingegen würde ein ppnq-Pass
Streaming-Algorithmus mit Oppoly log nq Bits Arbeitsspeicher, sagen wir Oplogc nq für
ein c ą 0, die Lösung des Problems mit nur Opppnq ¨ logc nq Bits für die Kommunikation
erlauben. Es ist daher keine Pass-Garantie ppnq “ opn{ logc nq möglich, und insbesondere
nicht ppnq “ Op1q. Folglich macht Speicher logarithmischer Größe wenig Sinn, wenn es
um Graphenprobleme geht.
Kurz vor der Arbeit von Feigenbaum et al. [FKM+04] hat Muthukrishnan im Jahre 2003
das Semi-Streaming-Modell [Mut05], vorgeschlagen, in dem der Arbeitsspeicher durch
Opn ¨ poly log nq Bits beschränkt ist, was bedeutet, dass wir eine (in n) lineare Anzahl von
Kanten zur Zeit speichern können.2 In diesem Modell werden in der Arbeit [FKM+04]
´1
viele Graphenprobleme untersucht, insbesondere wird ein Semi-Streaming p 23 ´ εq Approximationsalgorithmus, 0 ă ε ă 31 , für das Problem des kardinalitäts-maximalen
Matchings in bipartiten Graphen vorgeschlagen, der eine Pass-Garantie von Opε´1 log ε´1 q
hat. Obwohl diese Schranke beachtlich ist, kann eine 2-Approximation, die nicht all zu
´1
weit von p 23 ´ εq « 32 entfernt ist, in nur einem Pass berechnet werden, nämlich ein
inklusions-maximales Matching.
Mit poly x bezeichnen wir ein Polynom in x, eine andere Möglichkeit, dies zu notieren, ist xOp1q .
Das Attribut „Semi“ wurde gewählt, da der Begriff „Streaming-Modell“ im Allgemeinen mit logarithmischen Speicher verbunden ist. Das Semi-Streaming-Model liegt „zwischen“ logarithmischem
and quadratischem Speicher, wobei letzteres äquivalent zum RAM-Modell ist, da ein Graph mit Opn2 q
Speicherkapaziät auskommt.
1
2
38
5.1. Das Semi-Streaming-Modell
Die exakten Algorihtmen der vorherigen Kapitel können nicht direkt im Streaming-Modell
angewendet werden. Wenn die Reihenfolge der Kanten ungünstig ist, kann die Zahl der
Pässe, die für eine Breitensuche benötigt werden, der Anzahl der Schichten entsprechen.
Um dies einzusehen betrachten wir einen Graphen, der ein Pfad pv0 , e1 , v1 , . . . , eN , vN q ist.
Die Reihenfolge im Stream sei eN , eN ´1 , . . . , e1 , aber der Startknoten der Breitensuche
sei v0 . Dann gibt es N ` 1 Schichten, und das Auffinden jeder Schicht benötigt einen
eigenen Pass.
Im nächsten Abschnitt werden wir sehen, dass es genügt, augmentierende Pfade der
Länge Opε´1 q zu betrachten, um eine 1 ` ε-Approximation für ein kardinalitätsmaximales Matching zu erhalten. Eine Breitensuche kann dann beim Erreichen dieser Tiefe
beendet werden. Wir benötigen dann allerdings noch eine Schranke für die Anzahl der
Vergrößerungs-Schritte (für den Basis-Algorithmus), aber sogar für Hopcroft-Karp kennen
√
wir nur die von der Größe der Eingabe abhängige Schranke Op nq bzgl. der Anzahl der
Phasen.
Unter der Voraussetzung, dass wir die Anzahl der im Hopcroft-Karp-Algorithmus benötigten Phasen auf Oppoly ε´1 q reduzieren können, bleibt noch das Problem, die Tiefensuche
so zu realisieren, dass diese wenig Pässe benötigt. Die bahnbrechende Idee hierzu stammt
von McGregor [McG05]. Er schlägt eine Kombination aus Breiten- und Tiefensuche
vor, bei der in Abhängigkeit davon, welche Kante gerade aus dem Datenstrom eingeht,
entschieden wird, ob man in die Breite oder in die Tiefe geht. Basierend auf dieser Technik
hat McGregor einen randomisierten 1 ` ε-Approximationsalgorithmus für allgemeine
Graphen angegeben, dessen Pass-Garantie allerdings exponentiell von ε abhängt. Eggert
et al. [EKM+12] haben gezeigt, dass diese Abhängigkeit sogar für bipartite Graphen
´1
bestehen bleibt, genauer wurde eine untere Schranke von Ωpε´pε q q für die Anzahl der
vom Algorithmus von McGregor benötigten Pässe in bibartiten Graphen bewiesen. Dies
liegt im Wesentlichen an der randomisierten Arbeitsweise des Algorithmus, die eine große
Anzahl an Iterationen voraussetzt, um eine hinreichende Erfolgswahrscheinlichkeit zu
erreichen. Durch Verwendung des sogenannten Positionsgrenzen-Konzepts haben Eggert
et al. [EKM+12] eine neue Kombination aus Breiten- und Tiefensuche für den bipartiten
Fall entwickelt, der eine Pass-Garantie von Opε´5 q gestattet. Im nächsten Abschnitt
stellen wir diesen Algorithmus im Detail vor.
Bibliographisches. Eine verbesserte Version des in [EKM+12] presentierten Algorithmus,
der in Experimenten deutlich weniger Pässe benötigt, wird in [Kli11] vorgeschlagen.
Ein anderer Forschungsansatz beschäftigt sich mit der Entwicklung von Algorithmen,
die auf linearer Programmierung (siehe Kapitel 6) basieren. Er wurde von Ahn und
Guha [AG13] für eine Reihe von matching-artigen Graphenproblemen verfolgt. Für das
bipartite Matching-Problem wird ein Algorithmus mit Pass-Garantie Opε´2 log log ε´1 q
39
Kapitel 5. Streaming-Algorithmen
vorgestellt (wobei der Arbeitsspeicherbedarf von der Anzahl der Pässe abhängig ist).
Konrad et al. [KMM12] haben Algorithmen für das bipartite Matchingproblem angegeben, die mit einem oder zwei Pässen auskommen. Deren Approximationsgüte liegt
geringfügig unterhalb des Faktors 2, der durch ein inklusions-maximales Matching garantiert wird. Für weitere Arbeiten zu Graphen-Streams (Zusammenhang, Spannbäume,
gewichtete Matchings, Schnitte) verweisen wir auf Zelke [Zel09]. Eine weitere wichtige
Technik für Graphen-Streams, die hier nicht betrachtet wird, ist das Ausdünnen (englisch
sparsification). Einen Einstieg hierzu findet man z.B. in [KL13].
5.2. Approximations-Theorie für Matching
Da Breitensuche auf gesamten Graphen zu viele Pässe erfordern kann, beschränken
wir uns bei der Suche nach augmentierenden Pfaden auf Längen, die von der Größe
der Eingabedaten anhängt. Hierzu stellen wir in diesem Abschnitt eine allgemeine
Herangehensweise vor.
Sei λ P N. Ein Pfad heißt λ-Pfad wenn seine Länge (also die Anzahl seiner Kanten) maximal 2λ`1 ist. Sei M ein Matching. Eine inklusions-maximale Menge disjunkter augmentierender λ-Pfade heißt λ-DAP-Menge, wobei inklusions-maximal bedeutet, dass wir keinen
weiteren augmentierenden λ-Pfad hinzufügen können, ohne die Disjunktheit zu zerstören.
Sei δ P r0, 1s. Ein pλ, δq-DAP-Approximationsalgorithmus liefert zu einem Matching M
stets eine Menge A disjunkter augmentierender λ-Pfade, derart dass es eine λ-DAP-Menge
Y mit |Y| ď |A| ` δ |M | gibt. Sei DAP ein pλ, δq-DAP-Approximationsalgorithmus. Unser
Streaming-Allgorithmus verwendet die folgende Schleife:
Algorithm 11: Hauptschleife
1 M :“ ein inklusion-maximales Matching;
2 repeat
3
c :“ |M |;
4
A :“ DAPpM q;
5
augmentiere M mittels A;
6 until |A| ď δc;
Wenn diese Schleife terminiert, gibt es offensichtlich eine λ-DAP-Menge Y mit |Y| ď |A|`
δ |M | ď δ |M | ` δ |M | “ 2δ |M |, wobei M das Matching vor der letzten Augmentierung
ist. Sei k P N. Diese Konstante kontrolliert die Approximation, k1 spielt die Rolle von ε
40
5.2. Approximations-Theorie für Matching
des vorangegangenen Abschnitts. Es sei ferner k ď λ und
λ´k`1
δpλq :“
ą0 .
2kλ pλ ` 2q
Die folgenden zwei Lemmas zeigen eine Approximationsgarantie von 1 `
schleife für δ “ δpλq.
(5.1)
1
k
der Haupt-
Lemma 5.1. Seien M ein inklusions-maximales Matching und M ˚ ein kardinalitätsmaximales Matching. Sei D :“ M 4M ˚ und für alle i P N0 sei Di die Menge aller
Zusammenhangskomponenten von D, die i Kanten aus M und i ` 1 Kanten aus M ˚
i|
enthalten. Für jedes i P N definiere αi :“ |D
P r0, 1s.
|M |
Es gelte
Pλ
i“1
αi ď
λ´k`1
kλ
für ein λ. Dann ist M eine p1 ` k1 q-Approximation.
P
Beweis. Wir beginnen mit einer oberen Schranke für iěλ`1 αi , also die Summe aller αi ,
P
die nicht in der Summe λi“1 αi vorkommen. Offenbar ist α0 “ 0, denn D0 “ H, da M
P
inklusions-maximal ist. Es stehen maximal |M | ´ λi“1 |Di | Kanten aus M zur Verfügung,
die in Zusammenhangskomponenten Di , i ě λ ` 1, vorkommen können. Andererseits
benötigt jede Zusammenhangskomponente eines solchen Di mindestens λ ` 1 Kanten aus
M . Damit gilt
λ
1
1 X
1
“ |M|
´
αi
αi |M| “
|Di | ď |M| ´
|Di |
λ`1
λ ` 1 λ ` 1 i“1
i“1
iěλ`1
iěλ`1
X
also
λ
X
X
X
iěλ`1
αi ď
!
!
λ
1 X
1
´
αi .
λ ` 1 λ ` 1 i“1
,
(5.2)
Als nächstes setzen wir |M ˚ | und |M | in Beziehung. Die Zusammenhangskomponenten
von D können wir unterteilen in jene, die eine Kante mehr aus M ˚ als aus M enthalten
(diese befinden sich alle in D :“ ⋃iě1 Di , beachte, dass D0 “ H), jene die gleich viele
Kanten aus M ˚ und M enthalten und jene, die eine Kante weniger aus M ˚ als aus M
enthalten. Letztere treten nicht in Erscheinung, da sie M ˚ -augmentierende Pfade wären.
Für jede Zusammenhangskomponente in D füge eine beliebige Kante aus M ˚ in eine
Menge X ein und setze M 1 :“ M ˚ zX. Wir haben
M 1 “ M ˚ zX “ (pM ˚ X M q Ÿ pM ˚ X Dq)zX “ pM ˚ X M q Ÿ pM 1 X Dq
und M “ pM X M ˚ q Ÿ pM X Dq “ pM ˚ X M q Ÿ pM X Dq .
Es gibt eine Bijektion von M 1 nach M :
•
auf M ˚ X M wähle die identische Abbildung; diese ist offenbar injektiv und trifft ganz
M˚ X M,
41
Kapitel 5. Streaming-Algorithmen
•
auf M 1 X D wählen wir innerhalb jeder Zusammenhangskomponente eine Bijektion
(nach Entfernung von X hat jede Zusammenhangskomponente genauso viele Kanten
aus M ˚ wie aus M ). Diese Abbildung ist injektiv und trifft ganz M X D.
Es folgt:
|M ˚ | “ |M 1 | ` |X| “ |M| ` |X| “ |M| `
X
|Di | “ |M| `
iPN
“ |M| 1 `
λ
X
i“1
X
αi |M|
iPN
!
αi `
X
αi
iěλ`1
λ
X
λ
1
1 X
ď |M| 1 `
αi `
´
αi
λ ` 1 λ ` 1 i“1
i“1
λ
λ X
1
`
αi
“ |M| 1 `
λ ` 1 λ ` 1 i“1
!
wegen (5.2)
!
Durch Einsetzen der vorausgesetzten Schranke an die Summe erhalten wir hiermit
λ´k`1
k`λ´k`1
1
1
`
“ |M| 1 `
ď |M| 1 `
.
|M ˚ | ď |M| 1 `
λ`1
pλ ` 1q k
pλ ` 1q k
k
Lemma 5.2. Sei M ein inklusions-maximales Matching. Sei Y eine λ-DAP-Menge, sodass
|Y| ď 2δ |M | gilt mit δ “ δpλq. Dann ist M eine 1 ` k1 -Approximation.
Beweis. Sei M ˚ ein optimales Matching. Sei X eine kardinalitäts-maximale Menge dis1
junkter augmentierender λ-Pfade (für M ). Dann ist |Y| ě λ`2
|X |, denn jeder Pfad P P Y
kann mit höchstens λ ` 2 Pfaden aus X inzidieren, da P zwei freie Knoten und maximal
λ Kanten aus M enthält. Es folgt |X | ď pλ ` 2q |Y| ď 2 pλ ` 2q δ |M | “ λ´k`1
|M |.
kλ
Sei D :“ M 4M ˚ und Di , αi für jedes i P N definiert wie in Lemma 5.1, und sei
Z :“ ⋃λi“1 Di . Dann ergibt Z eine Menge |Z| disjunkter M -augmentierender λ-Pfade,
P
sodass |Z| ď |X |. Somit ist λi“1 αi |M | “ |Z| ď |X | ď λ´k`1
|M |. Lemma 5.1 garantiert
kλ
1
nun, dass M eine p1 ` k q-Approximation ist.
Welche Werte sind wünschenswert für λ? Je länger die Pfade sind, desto teurer ist
vermutlich ihre Konstruktion, ein Grund für kleines λ. Andererseits wünschen wir uns
für eine schnelle
√ Terminierung ein großes δ. Die Funktion λ ÞÑ δpλq steigt an bis
λ “ k ´ 1 ` k 2 ´ 1 ď 2k ´ 1 ist und fällt danach ab. Da wir nur ganzzahlige Werte
für λ verwenden, ist der größte zu betrachtende Wert λ “ 2k ´ 1. Der kleinste Wert ist
λ “ k. Den Bereich dazwischen parametrisieren wir wie folgt:
λpγq :“ dk p1 ` γqe ´ 1 für alle γ P [1{k, 1] .
42
(5.3)
5.3. Beschreibung des DAP-Approximationsalgorithm
Betrachte das Setting λ :“ λpγq und δ :“ δpλq. Eine Erhöhung des γ-Wertes erhöht
sowohl die Pfadlänge als auch δ, was bedeutet, dass wir uns mit einer weniger guten
Approximation durch den DAP-Algorithmus zufrieden geben und zugleich die Bedingung
für die Beendigung der Hauptschleife lockern. Der γ-Wert steuert also einen Kompromiss
zwischen Pfadlänge und Halte-Kriterium. In der Praxis sollte daher mit verschiedenen
γ-Werten experimentiert werden.
5.3. Beschreibung des DAP-Approximationsalgorithm
Im vorigen Abschnitt haben wir ein algorithmisches Gerüst geschaffen, aber es fehlt
uns noch ein pλ, δq-DAP-Approximationsalgorithmus als der wesentliche Bestandteil.
Einen solchen geben wir in diesem Abschnitt an. Er basiert auf der Arbeit [EKM+12]
und hat eine Pass-Garantie von Opk 5 q. Algorithmus 12 gibt die genaue Beschreibung
des Algorithmus. Der Zustand der Schleife, die in Zeile 4 beginnt ist (im Wesentlichen)
gegeben durch:
•
für jede Matching-Kante m P M eine Positionsgrenze `pmq P {1, . . . , k ` 1},
•
die verbleibenden Knoten in V 1 ,
•
für jedes α P freepAq einen λ-Pfad P pαq “ pα, . . .q, der konstruierter Pfad genannt
wird,
•
eine boolesche Variable stuckα , die als Indikator dafür benutzt wird, ob P pαq am Ende
einer Sackgasse angelangt ist und Backtracking notwendig ist.
Die Menge der konstruierten Pfade wird in unvollständige Pfade I und augmentierende
Pfade A partitioniert. Die Menge I besteht aus M -alternierenden Pfaden, die (noch) nicht
zu M -augmentierenden Pfaden vervollständigt werden konnten. Die Menge A besteht aus
M -augmentierenden Pfaden. Sie ist das Resultat des DAP-Approximationsalgorithmus bei
dessen Terminierung. Sobald ein unvollständiger Pfad zu einem M -augmentierenden Pfad
vervollständigt wird, wird dieser von I nach A verschoben und im weiteren Verlauf des Algorithmus nicht wieder angerührt. Seine Knoten weren dabei aus V 1 gelöscht. Zur Laufzeit
des Algorithmus gelten für die konstruierten Pfade einige Invarianten:
•
Je zwei konstruierte Pfade sind disjunkt.
•
Alle konstruierten Pfade sind M -alternierend.
•
Die Knoten der Pfade liegen abwechselnd in A und B.
•
Unvollständige Pfade enden mit einem Knoten in A, und wenn sie positive Länge
haben, so enden sie mit einer Matching-Kante.
43
Kapitel 5. Streaming-Algorithmen
Algorithm 12: Positionbegrenzungs-Algorithmus für die DAP-Approximation
Input: Parameter λ P N und δ ą 0, inklusions-maximales Matching M
Output: Eine Menge A von M -augmentierenden λ-Pfaden
1 foreach m P M do `pmq :“ λ ` 1;
1
2 A :“ H; I :“ H; V :“ A Y B;
3 foreach α P freepAq do P pαq :“ pαq; I :“ I Y {P pαq};
4 repeat
5
foreach α P freepAq do stuckα :“ true;
6
foreach e “ {a, b} P E do
/* nimm an, dass a P A, b P B */
7
if a, b P V 1 und DP pα˚ q “ pα˚ , . . . , aq P I then
/* Position der mutmaßlichen neuen Matching-Kante:
8
9
10
11
12
13
14
15
16
17
18
19
20
21
*/
|P pα˚ q|
2
i :“
` 1;
if b ist freier Knoten then
P pα˚ q :“ pα˚ , . . . , a, e, bq;
A :“ A Y {P pα˚ q};
/* speichere */
˚
I :“ Iz{P pα q};
V 1 :“ V 1 zV pP pα˚ qq;
else
if i ă `pmq mit m “ {b, Mb } then
if b ist in keinem unvollständigen Pfad then
P pα˚ q :“ pα˚ , . . . , a, e, b, m, Mb q;
stuckα˚ :“ false;
`pmq :“ i;
else
sei α̃ so, dass P pα̃q “ pα̃, . . . , ã, ẽ, b, m, Mb , . . .q P I;
/* schiebe rechten Zweig von b von P pα̃q nach P pα˚ q:
*/
P pα̃q :“ pα̃, . . . , ãq;
P pα˚ q :“ pα˚ , . . . , a, e, b, m, Mb , . . .q;
stuckα̃ :“ false;
stuckα˚ :“ false;
passe `-Werte auf den neuen Kanten von P pα˚ q an;
22
23
24
25
26
Ią0 “ {P P I ; |P | ą 0}
if |Ią0 | ď δ |M | then return A;
foreach P pα1 q P Ią0 mit stuckα1 “ true do
entferne die letzten zwei Kanten von P pα1 q;
/* beachte, dass
27
28
29
30
44
until endlos;
*/
/* Backtracking */
5.3. Beschreibung des DAP-Approximationsalgorithm
Wir stellen uns vor, dass die konstruierten Pfade von links nach rechts verlaufen. In
jedem unvollständigen Pfad schließt sich somit rechts von jedem Knoten aus B eine
Matchingkante an. Wenn eine Matching-Kante m in einem unvollständigen Pfad P
enthalten ist, ist ihre Positionsgrenze `pmq gerade so, dass m in P genau die `pmq-te
Matching-Kante von links ist, insgesamt also die 2 `pmq-te Kante.
Die Positionsgrenzen werden für alle m P M als `pmq :“ λ ` 1 initialisiert (was für Kanten
innerhalb eines konstruierten Pfades ein nicht erreichbarer Wert ist), und die konstruierten
Pfade sind zu Beginn P pαq :“ pαq für alle α P freepAq, haben also alle Länge 0. Während
eines Passes über die Eingabe versucht der Algorithmus die konstruierten Pfade zu
verlängern. Ein Lauf durch die „foreach“-Schleife von Zeile 6 bis Zeile 26 bedeutet einen
Pass über die Eingabe.
Wir erklären zunächst, was während eines Passes mit jeder Kante geschieht. Die aktuelle
Kante zwischen zwei verbliebenen Knoten sei e “ {a, b}, a P A, b P B. Wir testen, ob
wir e zur Erweiterung eines unvollständigen Pfades benutzen können und wollen. Ein
Pfad P pα˚ q kann nur dann Verlängert werden, wenn er a als Endknoten hat, also falls
P pα˚ q “ pα˚ , . . . , aq. Da alle Pfade paarweise disjunkt sind, kann es höchstens einen
Pfad geben, der dies erfüllt. Gibt es keinen solchen Pfad, so verwerfen wir e und setzen
den Pass mit der nächsten Kante fort. Ansonsten sei P pα˚ q “ pα˚ , . . . , aq der gefundene
Pfad. Wir unterscheiden die folgenden beiden Fälle.
Der erste Fall ist, dass b ein freier Knoten ist. Dann haben wir einen M -augmentierenen
Pfad gefunden, nämlich P :“ pα˚ , . . . , a, e, bq. Wir setzen A :“ A Y {P }, I :“ Iz{P pα˚ q}
und aktualisieren die Menge der verbliebenen Knoten V 1 . Da unsere ApproximationsTheorie auf inklusions-maximalen Mengen M -augmentierender Pfade basiert, ist plausibel,
dass wir mit der erstbesten Möglichkeit, einen unvollständigen Pfad zu einem augmentierenden Pfad zu vervollständigen, nichts verkehrt machen können.
Für den zweiten Fall, dass b gematched ist, sei m :“ {b, Mb } P M . Wir prüfen, ob wir
unterhalb der Positionsgrenze von m bleiben. Trifft dies zu, so setzen wir stuckα˚ :“ false,
da P pα˚ q verlängert werden wird. 3 Es sind hier zwei Unterfälle zu betrachten. Falls
m auf keinem unvolständigen Pfad liegt (es ist dann auch in keinem konstruierten
Pfad enthalten), setzen wir P pα˚ q :“ pα˚ , . . . , a, e, b, m, Mb q und `pmq :“ i. Wir erweitern den unvollständigen Pfad also rechts um e und die Matching-Kante m und aktualisieren die Positionsgrenze von m entsprechend. Falls m bereits in einem anderen
unvollständigen Pfad P pα̃q “ pα̃, . . . , ã, ẽ, b, m, Mb , . . .q enthalten ist (die Reihenfolge
ist p. . . , b, m, Mb , . . .q, da b P B, Mb P A und stets e ‰ ẽ gilt), verschieben wir b
Vor jedem Pass setzen wir stuckα :“ true für alle α. Ein Pfadende wird nur dann nicht als Sackgasse
betrachtet, wenn es modifiziert wird. Wir erklären die Bedeutung der „stuck“-Indikatoren später
detailierter.
3
45
Kapitel 5. Streaming-Algorithmen
samt der rechten Fortsetzung P pα̃q nach P pα˚ q, d.h. wir setzen P pα̃q :“ pα̃, . . . , ãq und
P pα˚ q :“ pα˚ , . . . , a, e, b, m, Mb , . . .q.
Weil sich P pα̃q hierbei ändert, muss zuätzlich stuckα̃ :“ false gesetzt werden, da es nun
eine mögliche Verlängerung von P pα̃q um eine im aktuellen Pass bereits betrachtete
Kante e P E geben könnte.
Wir setzen `pmq :“ i und aktualisieren auch die Positionsgrenzen jeder Matching-Kante,
die auf dem soeben verschobenen Teilpfad rechts von m liegt, d.h. für die nächste
Matching-Kante m1 setzen wir `pm1 q :“ i ` 1, und so weiter.
Nach jedem Pass wird getestet, ob wir mit einem weiteren Pass fortfahren oder mit
der Rückgabe A zur Hauptschleife zurückkehren. Wir sind fertig, wenn |Ią0 | ď δ |M |.
Später werden wir zeigen, dass der Algorithmus nicht mehr als |Ią0 | zusätzliche M augmentierende Pfade finden kann.
Unmittelbar nach dem Test findet, falls nötig, in Zeilen 28 und 29 das Backtracking
statt. Backtracking wird auf jeden Pfad P pαq angewendet, der in seiner aktuellen Form
in der nächsten Iteration nicht weiter wachsen könnte. Dies ist der Fall, wenn das
Ende von P pαq im vorangegangenen Pass nicht modifiziert wurde, was durch seinen
Indikator stuckα angezeigt wird. Beim Backtracking entfernen wir die letzten beiden
Kanten jedes unvollständigen Pfades Ią0 , der entsprechend gekennzeichnet ist, d.h. für alle
α P freepAq mit P pαq P Ią0 und stuckα “ true und aktuellem P pαq “ pα, . . . , a, e, b, m, a1 q
setzen wir P pαq :“ pα, . . . , aq. Wir dürfen das an dieser Stelle tun, da alle zulässigen
Pfaderweiterungen schon ausprobiert wurden. Die entfernten Kanten werden aufgrund
ihrer Positionsgrenzen nicht noch einmal an dieser Position von P pαq eingefügt werden.
Dadurch eröffnet sich für andere Kanten die Möglichkeit in einem der weiteren Pässe
eingefügt zu werden.
Anschaulich liegen am Anfang alle Matching-Kanten auf der rechten Seite an Position
λ ` 1. Dies ist keine Position, die sich innerhalb eines konstruierten Pfades befinden kann.
Danach wandern Matching-Kanten nach links. Jedesmal, wenn eine Matching-Kante m
in einen kostruierten Pfad eigefügt wird, wandert sie um mindestens eine Position nach
links, einhergehend mit einer Reduzierung ihrer Positionsgrenze `pmq. Wird eine Kante
durch Backtracking entfernt, so ändert sich ihre Positionsgrenze nicht, sodass sie an jeder
Position, die weiter links als ihre letzte Position liegt, wieder eingefügt werden kann.
Insbesondere wird keine Positionsgrenze im Verlauf des Algorithmus größer. Wenn eine
Matching-Kante auf der linken Seite angekommen ist, ihre Positionsgrenze also auf 1
gefallen ist, und danach durch Backtracking entfernt wird, wird sie nicht wieder in einen
konstruierten Pfad eingesetzt werden. Befindet sich eine Kante in einem konstruierten
46
5.3. Beschreibung des DAP-Approximationsalgorithm
Pfad, so ist Backtracking in Zeile 29 die einzige Möglichkeit, sie wieder außerhalb aller
konstruierten Pfade zu bringen.
Wir schließen den Abschnitt mit einer graphischen Demonstration möglicher Operationen
des DAP-Approximationsalgorithmus für λ “ k “ 7. Die konstruierten Pfade werden
von links nach rechts gezeichnet. In der folgenden Skizze sind fünf konstruierte Pfade
positiver Länge und ein konstuierter Pfad der Länge 0 eingezeichnet. Wenn die hereinkommende gepunktete Kante einen freien Knoten (auf der rechten Seite) hat, wird der
vierte Pfad von oben zu einem augmentierenden Pfad vervollständigt und sofort in A
gespeichert:
i“4
k`1“8
Wenn hingegen der zweite Endknoten der gepunkteten Kante gematched ist, wir also
eine Matching-Kante m haben, wird geprüft, ob m zur Verlängerung des konstruierten
Pfades verwendet werden kann. Da wir es mit Position i “ 4 zu tun haben, wird
geprüft, ob 4 ă `pmq gilt. Ist dies der Fall, wird der Pfad um die gepunktete Kante
und die Matching-Kante m erweitert und die Positionsgrenze von m zu `pmq :“ 4
aktualisiert:
m
i“4
k`1“8
Sollte m bisher keinem konstruierten Pfad angehören, geschieht an dieser Stelle weiter
nichts. Als Nächstes betrachten wir den Fall, dass die eingehende Kante das Ende des
47
Kapitel 5. Streaming-Algorithmen
vierten konstruierten Pfades mit einer Matching-Kante verbindet, die sich innerhalb des
ersten konstruierten Pfades befindet.
m1
m2
m3
k`1“8
i“4
Hier wird geprüft, ob wir m1 und die Fortsetzung des Pfades rechts davon (mit den
Matching-Kanten m2 und m3 ) benutzen können, um den vierten Pfad zu erweitern. Dazu
ist nur die Positionsgrenze von m1 relevant. Wir prüfen 4 ă `pm1 q, was wegen `pm1 q “ 5
erfüllt ist. Somit wird m1 samt der rechten Pfadfortsetzung vom ersten konstruierten
Pfad zum vierten konstruierten Pfad verschoben und die Positionsgrenzen entsprechend
aktualisiert durch `pm1 q :“ 4 und `pm2 q :“ 5 und `pm3 q :“ 6:
m1
i“4
m2
m3
k`1“8
Wenn nun eine der gepunkteten Kanten in der folgenden Skizze herein kommt, passiert
nichts, weil die Positionsgrenzen von m und m1 zu klein sind, nämlich `pmq “ 2 und
`pm1 q “ 4, aber für eine Verschiebung echt größer als 4 sein müssten:
48
5.4. Analyse: Approximationsratio
m1
m
i“4
k`1“8
Die folgende Situation kann wegen der Bipartitheit des Graphen nicht entstehen:
i“4
k`1“8
5.4. Analyse: Approximationsratio
Wir zeigen in zwei Schritten, dass Algorithmus 12 ein pλ, δq-DAP-Approximationsalgorithmus ist. Zuerst zeigen wir, dass eine Verschärfung des Abbruchkriteriums dazu führt,
dass er eine λ-DAP-Menge findet. Danach beweisen wir, dass wir mit dem eigentlichen
Abbruchkriterium nur δ |M | weitere M -augmentierende Pfade verfehlen. Die beiden Eigenschaften ergeben die Definition eines pλ, δq-DAP-Approximationsalgorithmus. Schließlich
benutzen wir Lemma 5.2, um die Approximationsgüte zu beweisen.
Wir beginnen mit einer einfachen Proposition, die wir an zwei Stellen benutzen werden.
Proposition 5.3. Wenn ein unvollständiger Pfad nach einem Pass Länge 0 hat, so hatte er
bereits vor dem Pass Länge 0.
49
Kapitel 5. Streaming-Algorithmen
Beweis. Wir müssen lediglich nachweisen, dass keine der in einem Pass ausgeführten
Operationen die Länge eines Pfades auf 0 reduzieren kann. Pfade werden nur in Zeile 22
reduziert, wenn wir von pα̃, . . . , ã, ẽ, b, m, Mb , . . .q zu pα̃, . . . , ãq übergehen. Der Test in
Zeile 15 stellt 2 ď `pmq sicher, sodass der neue Pfad nicht Länge 0 haben kann.
Lemma 5.4. Wenn die Bedingung „|Ią0 | ď δ |M |“ in Zeile 27 durch „|Ią0 | “ 0“ ersetzt
wird, findet der Algorithmus eine λ-DAP-Menge.
Beweis. Sei die Abbruchbedingung in Zeile 27 also „|Ią0 | “ 0“. Betrachte den Zeitpunkt,
zu dem diese Bedingung erreicht ist und der Algorithmus terminiert. Wir nehmen an, dass
dann ein augmentierender Pfad pα, e1 , v1 , m1 , . . . , mr , v2r , er`1 , βq in G mit 1 ď r ď k,
ej R M für alle 1 ď j ď r ` 1, mj P M für alle 1 ď j ď r sowie α P freepAq und
β P freepBq existiert, der zu allen Pfaden in A disjunkt ist. Wir werden zeigen, dass diese
Annahme zu einem Widerspruch führt.
Wir werden per Induktion über j von j “ r hinab bis 1 zeigen, dass `pmj q ą j für
alle 1 ď j ď r gilt. Insbesondere ist `pm1 q dann immer größer als 1, da die Werte der
Positionsgrenzen nicht ansteigen. Wir können dann wie folgt schließen: Zu Beginn des
Algorithmus wird der freie Knoten α zum Startknoten eines unvollständigen Pfades
erklärt. Da α am Ende in keinem M -augmentierenden Pfad aus A enthalten ist, bleibt
sein Pfad die ganze Zeit über unvollständig. Wenn am Ende die Abbruchbedingung erfüllt
ist, gibt es keine unvollständigen Pfade positiver Länge mehr, d.h. alle verbliebenen
unvollständigen Pfade bestehen aus nur einem Knoten. Der Pfad P pαq ist einer davon.
Wegen Proposition 5.3 muss P pαq schon zu Beginn des Passes Länge 0 gehabt haben. Es
sind jedoch die Kante e1 , die α als Endknoten hat, sowie m1 immer in GrV 1 s. Somit tritt
α in irgendeinem Pass als Knoten a auf mit einem b, sodass a, b P V 1 und {b, Mb } “ m1 .
Wegen `pm1 q ą 1 wird die Bedingung in Zeile 15 wahr, was dazu führt, dass e1 und m1
hinter α hinzugefügt werden. Sie verbleiben dann dort bis zum Ende des Passes. Dies
ist ein Widerspruch dazu, dass nach diesem Pass keine unvollständigen Pfade positiver
Länge übrig sind und beweist somit das Lemma.
Wir beginnen die Induktion bei j “ r. Angenommen, `pmr q ď r ă λ ` 1. Das bedeutet, dass mr zunächst in einen unvollständigen Pfad eingefügt und anschließend durch
Backtracking wieder entfernt worden sein muss, da mr am Ende in keinem Pfad aus Ią0
(diese Menge ist am Ende leer) und auch in keinem Pfad aus A enthalten ist. Wenn
mr durch Backtracking entfernt worden ist, muss sie direkt nach einem Pass das Ende
eines unvollständigen Pfades P pα1 q gewesen sein, der eine Sackgasse war. Das Steckenbleiben in einer Sackgasse bedeutet aber, dass im vorherigen Pass keine Änderungen an
P pα1 q vorgenommen wurden. Somit hatte P pα1 q die Form pα1 , . . . , mr , v2r q während des
gesamten Passes. Dann aber wäre P pα1 q wegen er`1 “ {v2r , β} P E in jenem Pass zu
pα1 , . . . mr , v2r , er`1 , βq vervollständigt worden, ein Widerspruch.
50
5.4. Analyse: Approximationsratio
Für den Induktionsschritt sei 1 ď j ă r und es gelte, dass `pmj 1 q ą j 1 for all j ă j 1 . Wir
argumentieren ähnlich wie eben. Angenommen, `pmj q ď j ă λ ` 1. Dann wurde mj in
einen unvollständigen Pfad eingefügt und durch Backtracking wieder entfernt. Während
eines Passes direkt vor einer Entfernung muss mj ständig das Ende eines unvollständigen
Pfades gewesen sein. Wegen `pmj q ď j muss mj irgendwann höchstens an Position j
eines unvollständigen Pfad gelegen haben. Wir betrachten nun einen Pass, während
dessen mj dauerhaft am Ende eines unvollständigen Pfades liegt und `pmj q ď j gilt.
Wenn eine Matching-Kante m am Ende dieses Pfades eingefügt werden soll, wird geprüft,
ob `pmq ą `pmj q ` 1 ist. Letzteres ist insbesondere erfüllt, falls `pmq ą j ` 1 ist. Die
Matching-Kante mj`1 ist am Ende des Algorithmus in keinem Pfad aus A enthalten.
Also ist mj`1 während des Passes entweder in einem unvollständigen Pfad oder in gar
keinem konstruiertem Pfad enthalten. Nach Induktionsvoraussetzung ist `pmj`1 q ą j ` 1.
Somit werden ej`1 und mj`1 im Laufe des Passes hinter mj eingefügt im Widerspruch
dazu, dass mj während des gesamten Passes das Pfadende bildet.
Lemma 5.5. Sei r ě 0. Falls Algorithmus 12 mit |Ią0 | “ 0 statt |Ią0 | ď r terminiert, so
findet er maximal r weitere disjunkte M -augmentierende λ-Pfade.
Beweis. Es genügt zu zeigen, dass ein unvollständiger Pfad der irgendwann in Zeile 27
Länge 0 hat, im weiteren Verlauf des Algorithmus nicht mehr wächst.
Sei also P pαq ein Pfad der in Zeile 27 Länge 0 hat, d.h. P pαq “ pαq. Mit Proposition 5.3
hatte dieser Pfad bereits vor dem vorherigen Pass Länge 0. Der Algorithmus konnte den
Pfad also während dieses Passes nicht verlängern, d.h. es gab keine Kante e “ {α, b} P E
mit `p{b, Mb }q ě 2. Weil die Positionsgrenzen im Laufe des Algorithmus nicht ansteigen,
wird es bis zur Terminierung keine solche Kante e P E mehr geben, sodass der Pfad
P pαq “ pαq bleibt.
Korollar 5.6. Algorithmus 12 ist ein pλ, δq-DAP-Approximationsalgorithmus, d.h. wenn
die Ausgabe A ist, so existiert eine inklusions-maximale Menge Y disjunkter M -augmentierender λ-Pfade mit |Y| ď |A| ` δ |M |.
Beweis. Wende Lemma 5.5 mit r :“ δ |M | an und wähle Y als die Menge der M augmentierender Pfade, die mit der Abbruchbedingung „|Ią0 | “ 0“ konstruiert worden
wäre.
51
Kapitel 5. Streaming-Algorithmen
5.5. Analyse: Pass-Garantie und Speicherbedarf
Lemma 5.7. Algorithmus 12 benötigt höchstens 2λδ ´1 ` 1 Pässe.
Beweis. Sei Π die Menge aller Pässe ohne dem letzten Pass, nach welchem die Bedingung
in Zeile 27 erfüllt ist und der Algorithmus terminiert. Für alle π P Π sei ipπq die Anzahl
der Ausführungen von Zeile 19 während π, apπq die Anzahl der Ausführungen von Zeile 26
während π, und bpπq die Anzahl der Ausführungen von Zeile 29 direkt nach π. Wir zählen
also die Ereignisse, in denen eine Matching-Kante in einen Pfad eingefügt wird, die zuvor
noch nicht Teil eines Pfades war, oder die Positionsgrenzen eines verschobenen rechten
Pfadendes angepasst werden, oder eine Matching-Kante durch Backtracking aus einem
Pfad entfernt wird.
Jede Positionsgrenze `pmq, m P M wird durch `pmq “ λ ` 1 initialisiert. Somit kann
`pmq im Laufe des Algorithmus höchstens λ mal verkleinert werden. Insgesamt wird also
höchstens λ |M | mal eine Positionsgrenze verkleinert. Dies passiert jeweils in Zeile 19
X
oder Zeile 26. Es folgt
(ipπq ` apπq) ď λ |M| .
(5.4)
πPΠ
Fixiere nun einen Pass π P Π. Weil der Algorithmus nicht direkt nach π terminiert,
gilt |Ią0 | ą δ |M | in Zeile 27. Das nächste Backtracking wird auf alle Pfade in Ią0
angewendet, die als Sackgasse gekennzeichnet sind. Da direkt vor jedem Pass alle Pfade
als Sackgasse gekennzeichnet werden, sind die einzigen Pfade, auf die kein Backtracking
angewendet wird, jene für die Zeile 18, Zeile 24 oder Zeile 25 während π ausgeführt wurde.
Die Zahl der nicht als Sackgasse markierten Pfade hängt von ipπq und apπq ab. In jeder
Ausführung von Zeile 19 wird maximal ein Pfad zusätzlich als nicht stecken geblieben
gekenzeichnet, und in jeder Ausführung von Zeile 26 geschieht dies für höchstens zwei
weitere Pfade. Mit
U pπq :“ {P pαq P Ią0 ; stuckα “ false direkt nach π}
folgt |U pπq| ď ipπq ` 2apπq und damit
δ |M| ă |Ią0 | “ bpπq ` |U pπq| ď bpπq ` ipπq ` 2apπq .
(5.5)
Wir summieren nun über alle π P Π. Eine Kante muss in irgendeinen Pfad eingefügt
P
worden sein, bevor sie durch Backtracking entfernt werden kann. Somit ist πPΠ bpπq ď
P
πPΠ ipπq. Es folgt:
(5.5)
|Π| δ |M| ď
X
πPΠ
52
pbpπq ` ipπq ` 2apπqq ď 2
X
(5.4)
pipπq ` apπqq ď 2λ |M| ,
πPΠ
5.5. Analyse: Pass-Garantie und Speicherbedarf
also |Π| ď 2λδ ´1 . Da Π den letzten Pass nicht enthält, muss für die Abschätzung der
Anzahl aller Pässe 1 addiert werden.
Mit Hilfe des Lemmas können wir nun die behauptete Schranke von Opk 5 q Pässen
beweisen. Genaugenommen zeigen wir ein allgemeineres Ergebnis. Wir erinnern uns
an die verschiedenen Möglichkeiten, λ in Abhängigkeit von γ in (5.3) zu wählen. Wir
bestimmen γ mittels γ̃ P r0, 1s durch γ “ k ´γ̃ .
Theorem 5.8. Algorithmus 11 (die Hauptschleife) mit Algorithmus 12 als DAP-Approximationsalgorithmus benötigt Opk 5`2γ̃ q Pässe, wenn λ “ λpk ´γ̃ q mit γ̃ P r0, 1s und
δ “ δpλq.
Beweis. Die Hauptschleife (Algorithmus 11) beginnt mit einem inklusions-maximalen
Matching M “: M0 . In jeder Iteration, außer ggf. der letzten, wächst das Matching
um mindestens δ |M0 |. Da M0 als inklusions-maximales Matching eine 12 -Approximation
ist, kann es insgesamt um nicht mehr als |M0 | wachsen. Es gibt also maximal δ ´1 ` 1
Iterationen. Mit Lemma 5.7 braucht jede Iteration höchstens 2λδ ´1 ` 1 Pässe. Nun ist
einerseits λ “ dk p1 ` k ´γ̃ qe´1 ď 2k und andererseits λ´k`1 “ dk p1 ` k ´γ̃ qe´k ě k 1´γ̃ ,
also
2kλ pλ ` 2q
δ ´1 “
ď 2k γ̃ λ pλ ` 2q “ O(k 2`γ̃ ) .
λ´k`1
Es folgt als obere Schranke für die Anzahl aller Pässe:
(δ ´1 ` 1) (2λδ ´1 ` 1) “ O(k 2`γ̃ ) ¨ O(λk 2`γ̃ ) “ O(k 5`2γ̃ ) .
Theorem 5.9. Algorithmus 11 mit Algorithmus 12 als DAP-Approximationsalgorithmus
hat einen Speicherbedarf von Opn log nq Bits, ist also ein Semi-Streaming-Algorithmus.
Beweis. Um eine Kante zu speichern, müssen wir ihre Endknoten speichern, also zwei
Zahlen in {1, . . . , n}, d.h. wir brauchen dazu Oplog nq Bits. Alle zwischenzeitlichen
Matchings M haben jeweils Opnq Kanten. Alle konstruierten Pfade, die gleichzeitig
gespeichert werden müssen, sind disjunkt und haben damit insgesamt Opnq Kanten.
Wir brauchen also Speicher für Opnq Kanten, also Opn log nq Bits. Zudem müssen die
Positionsgrenzen gespeichert werden, also Op|M |q “ Opnq Zahlen aus {1, . . . , λ ` 1}, d.h.
insgesamt Opn log λq Bits. Wir dürfen λ “ Opnq annehmen, da durch größere λ keine
Verbesserungen erzielt werden können (es gibt keine augmentierenden Pfade mit mehr als
n Knoten). Offenbar können alle weiteren Informationen, wie die Menge der verbliebenen
Knoten V 1 und die Positionen i durch Opnq Zahlen aus {1, . . . , n} und damit durch
Opn log nq Bits dargestellt werden.
53
Kapitel 6
Lineare Programmierung – Dualitätssatz
6.1. Polyeder
Polyeder sind fundamentale geometrische Objekte, deren Studium eine reiche und lebendige mathematische Theorie hervorgebracht hat. Eine Möglichkeit, Polyeder im Rn einzuführen besteht darin, sie als Durchschnitt von endlich vielen Halbräumen zu definieren. Daher
beschreiben Polyeder nichts anderes als Systeme von Ungleichungen.
Ein grundlegendes Problem der Kombinatorischen Optimierung ist die Maximierung oder
Minimierung von linearen oder nicht-linearen Zielfunktionen über einem Polyeder. Wir
beschränken uns in dieser Vorlesung auf lineare Zielfunktionen.
Dies wirft unmittelbar die Frage auf, ob es etwa ausgezeichnete Bereiche von Polyedern
gibt, auf denen die Optima angenommen werden, in Analogie zu dem in der Analysis bekannten Maximierungsprinzip, nach dem eine stetige lineare Funktion über einer kompakten Menge ihr Maximum auf dem Rand des Kompaktums annimmt.
In diesem Kapitel werden wir extremale Bereiche von Polyedern untersuchen, die für die
Optimierung von Bedeutung sind.
Eine Menge K Ď Rn heißt konvex, wenn für alle x, y P K und λ P r0, 1s gilt λx`p1´λqy P
K. Dies bedeutet, dass die Strecke
L “ {λx ` p1 ´ λqy ; λ P r0, 1s}
ganz in K liegt.
Ein Vektor x P Rn ist konvexe Kombination der Vektoren y1 , . . . , yr , falls Zahlen
P
P
λ1 , . . . , λr P r0, 1s mit ri“1 λi “ 1 existieren, derart dass x “ ri“1 λi yi gilt. Der Vektor x heißt strikte konvexe Kombination, falls zusätzlich yi ‰ x für alle i P 1, . . . , r
gilt.
55
Kapitel 6. Lineare Programmierung – Dualitätssatz
Die konvexe Hülle copKq einer Menge K Ď Rn ist der Durchschnitt aller konvexen
Mengen, die K enthalten, also
copKq “
\
K̂
K̂ĚK,K̂konvex
Bemerkung: Die konvexe Hülle copKq einer Menge K Ď Rn besteht aus allen Vektoren,
die eine konvexe Kombination von Vektoren aus K sind.
Für konvexe Mengen können wir die Extremalpunkte oder Ecken definieren:
Definition 6.1. Sei K Ď Rm konvex. x P K heißt Extremalpunkt oder Ecke von K, falls
aus der Darstellung x “ λy ` p1 ´ λqz mit y, z P K, λ P p0, 1q folgt x “ y “ z. Die Menge
der Extremalpunkte von K wird mit expKq bezeichnet.
Sei a P Rn \{0} und c P R. Eine Hyperebene in Rn ist eine Menge der Form H “
P
{x P Rn ; aT x :“ ni“1 ai xi “ c}.
Ein Halbraum ist eine Menge der Form H “ {x P Rn ; aT x ě c}.
Definition 6.2. Ein Polyeder in Rn ist der Durchschnitt endlich vieler Halbräume in Rn .
Ein Polytop ist ein beschränktes Polyeder.
Ein allgemeines Polyeder P in Rn ist daher eine Menge der Form P “ {x P Rn ; Ax ď b}
wobei A P Rmˆn und b P Rm .
Halbräume sind konvex, daher sind auch Polyeder als endliche Durchschnitte von Halbräumen konvex.
Sei S Ď Rn . Ein Vektor x P Rn ist affine Kombination von Vektoren x1 , . . . , xk Ď Rn ,
P
P
falls λ1 , . . . , λk P R existieren mit ki“1 λi “ 1 und x “ ki“1 λi xi .
Die affine Hülle affpSq von S ist die Menge aller Vektoren, die affine Kombinationen von
Vektoren aus S sind.
S heißt affiner Raum, falls affpSq “ S gilt. Weiter heißt S affin unabhängig, wenn kein
Element aus S affine Kombination von Vektoren aus S ist. Der affine Rang arangpSq von
S ist die Kardinalität einer größten in S enthaltenen, affin unabhängigen Menge, und die
Dimension dimpSq von S ist definiert als dimpSq “ arangpSq´1. S heißt voll-dimensional,
falls dimpSq “ n.
Definition 6.3. Sei P “ {x P Rn ; Ax ď b} ein nicht-leeres Polyeder, a P Rn und b0 P R.
(i) Eine Ungleichung aT x ď b0 heißt gültig für P , falls P Ď {x ; aT x ď b0 }.
(ii) Für eine gültige Ungleichung aT x ď b0 heißt F “ {x P P ; aT x “ b0 } eine Seite
von P . F heißt echt, falls F ‰ H und F ‰ P gilt.
56
6.1. Polyeder
(iii) Eine Seite F heißt Facette, falls dimpF q “ dimpP q ´ 1.
(iv) Eine Ecke von P ist eine Seite der Dimension 0.
Wir benötigen etwas affine Algebra. Im Folgenden sei P stets ein Polyeder P “
{x P Rn ; Ax ď b} mit A P Rmˆn , b P Rm und n ď m . Sei weiter I “ {1, ¨ ¨ ¨ , m}
und I “ :“ {i P I ; aTi x “ bi für alle x P P } die Menge der Ungleichungen, die für alle
Punkte aus P mit Gleichheit erfüllt sind und I ă :“ I\I “ . Sei A“ :“ pai qiPI “ bzw.
b“ :“ pbi qiPI “ die entsprechende Untermatrix von A bzw. der entsprechende Teilvektor
von b. Mit P “ bezeichnen wir das Polyeder
P “ “ {x P P ; Ax “ b}.
Es ist nützlich, innere Punkte im algebraischen Sinn von dem Begriff des inneren Punktes
im topologischen Sinn zu unterscheiden.
Definition 6.4.
Ax ă b.
(i) x P P heißt innerer Punkt von P (im topologischen Sinn), falls
(ii) x P P heißt algebraisch innerer Punkt von P , falls pai qT x ă bi für alle i P I ă .
Proposition 6.5.
(i) Jedes nicht-leere Polyeder besitzt einen algebraisch-inneren Punkt.
(ii) a1 , . . . , ak P Rn sind genau dann affin unabhängig, wenn a2 ´ a1 , . . . , ak ´ a1 linear
unabhängig sind.
Beweis. piq Ist I ă “ H , so sind alle Punkte algebraisch-innere Punkte. Ist I ă ­“ H, so
P
gibt es für jedes i P I ă ein xi P P mit ai xi ă bi . Sei x̂ :“ |I1ă | iPI ă xi . Offenbar gilt x̂ P P
und x̂ ist algebraisch-innerer Punkt.
piiq Übungsaufgabe.
Satz 6.6. Sei P ein nicht-leeres Polyeder.
(i) dimP “ ` rangpAq “ n.
(ii) dimP ` rangpA“ , b“ q “ n.
(iii) P ist genau dann volldimensional, wenn P einen inneren Punkt im topologischen
Sinn enthält.
57
Kapitel 6. Lineare Programmierung – Dualitätssatz
Beweis. piq P “ ist ein affiner Unterraum und arangpP “ q “ dimpKerpAqq ` 1. Mit dem
Rangsatz der Linearen Algebra folgt
dimpP “ q “ arangpP “ q ´ 1 “ dimpKerpAqq “ n ´ rangpAq.
piiq Sei rangpA“ , b“ q “ n ´ k, 0 ď k ď n. Wir können rangpA“ , b“ q “ rangpA“ q
annehmen. Es gibt x1 , . . . , xk`1 affin unabhängigie Vektoren in KerpA“ q. Sei x˚ P P
ein algebraisch innerer Punkt von P . Für hinreichend kleines ą 0 sind x˚ ` xi affin
unabhängige Vektoren in P , also dimpP q ě k und dimpP q ` rangpA“ , b“ q ě n. Wir sind
fertig, wenn wir dimpP q ď k zeigen können.
Angenommen dimpP q ě k ` 1. Seien x1 , . . . , xk`l , l ě 2, affin unabhängige Vektoren in P .
Per Definition ist xi P {A“ x “ b“ }, also dim{A“ x “ b“ } ě k ` 1 und mit piq angewandt
auf das Polyeder Q “ {A“ x “ b“ } gilt rangpA“ q “ n ´ dimQ “ n ´ dim{A“ x “ b“ } ď
n ´ k ´ 1 ă n ´ k im Widerspruch zu rangpA“ q “ n ´ k.
piiiq folgt sofort aus piiq.
Die Anzahl verschiedener Seiten eines Polyeders ist endlich, denn eine Seite lässt sich als
Teilsystem der Ungleichungen, die das Polyeder definieren, charakterisieren.
Ein zentrales Problem in der Geometrie und Analysis ist die Charakterisierung der
Extremalpunkte einer konvexen Menge K in einem topologischen Vektorraum. Diese
Frage wird im allgemeinen durch den berühmten Satz von Krein-Milman beantwortet.
Dieser Satz kann so formuliert werden:
Sei K Ď Rn , K ‰ H konvex und kompakt. Dann gilt expKq ‰ H und K “ copexpKqq,
d.h. die Menge K ist die konvexe Hülle ihrer Extremalpunkte.
Beim Satz von Krein-Milman ist die Kompaktheit gefordert, insbesondere die Beschränktheit der Menge. Auf beliebige Polyeder, die nicht notwendig beschränkt sind, ist dieser Satz
nicht anwendbar. Hier lassen sich die Ecken aber mit Hilfe algebraischer Eigenschaften
der zugrundeliegenden Matrizen charakterisieren.
Im folgenden sei A P Rmˆn und b P Rm .
Satz 6.7. Es sei A P Rmˆn mit rangpAq “ n ď m, b P Rm und P “ {x P Rn ; Ax ď b}.
Für alle x P P sind äquivalent:
(i) x P expP q.
58
6.1. Polyeder
(ii) Es gibt n linear unabhängige Zeilenvektoren ai von A mit ai x “ bi für alle i.
Insbesondere ist x eindeutig bestimmte Lösung eines Teilsystems Ax x “ bx , wobei
Ax aus den Zeilenvektoren ai besteht und bx der Vektor mit den entsprechenden
Komponenten von b ist.
(iii) {x} ist eine null-dimensionale Seite von P .
Beweis. piq ñ piiq : Sei x P expP q. Dann gibt es mindestens einen Zeilenvektor ai von A
mit ai x “ bi , denn andernfalls wäre Ax ă b, d.h. x liegt im Innern von P und es gäbe
eine Kugel B pxq, die ganz im Innern von P liegt. Dann wäre x aber kein Extremalpunkt.
Sei Ax die Matrix, deren Zeilenvektoren gerade die ai mit ai x “ bi sind und sei bx der
Vektor mit den entsprechenden Komponenten von b.
Annahme: rangpAx q ď n ´ 1. Sei x0 P KerpAx qz{0} und γ P R. y “ x ´ γx0 und
z “ x ` γx0 . Für hinreichend kleine γ ą 0 gilt y, z P P . Ferner haben wir die Darstellung
x “ 12 y ` 21 z im Widerspruch zu x P expP q.
piiq ñ piiiq : Sei F “ {y P P ; Ax y “ bx }. Mit Satz 6.6 gilt dimpF q “ n ´ rangpAx q,
also dimpF q “ 0, denn sonst wäre rangpAx q ď n ´ 1 im Widerspruch zur Voraussetzung
(ii). piiiq ñ piq : Nach Voraussetzung ist {x} eine Seite von P , d.h. es gibt eine gültige
Ungleichung cJ x1 ď c mit F “ {x1 P P ; cJ x1 “ c} “ {x}. Wäre x eine konvexe
Kombination von Vektoren y, z P P , so hätten wir c “ cJ x “ cJ y “ cJ z, also y, z P F
und x “ y “ z.
Ein allgemeines Polyeder muss überhaupt keine Ecken besitzen. Eine geometrischanschauliche Charakterisierung, wann Ecken existieren, gibt der folgende Satz.
Satz 6.8. Sei P “ {x P Rn ; Ax ď b} ein nicht-leeres Polyeder. P enthält eine Gerade
genau dann, wenn expP q “ H.
Beweis. Wir beweisen nur Ñ. Für Ð siehe Chvatal: Linear Programming.
Sei x˚ ` tw, t P R eine Gerade in P . Dann gilt Ax˚ ď b und Aw “ 0. Angenommen
x P expP q. Nach Satz 6.7 ist dann x eine eindeutige Lösung eines Teilsystems Ax x “ bx .
Wegen Aw “ 0 ist aber auch x ` w eine Lösung dieses Teilsystems. Widerspruch zur
Eindeutigkeit der Lösung.
Sei im folgenden P “ {x P Rn ; Ax “ b, x ě 0} mit A P Rmˆn und b P Rm .
Für x P P sei
Zpxq :“ {j; j P {1, . . . , n}, xj ą 0}
Spxq :“ {aj ; aj Spaltenvektor von A, j P ZpXq}
59
Kapitel 6. Lineare Programmierung – Dualitätssatz
Dann ist
b “ Ax “
x j aj .
X
jPZpxq
Satz 6.9. Ist P wie oben und P ‰ H, so ist expP q ‰ H.
Beweis. Sei x P P so gewählt, dass Zpxq minimal ist.
Annahme: x R expP q.
Dann existieren y, z P P, x ‰ y, λ P p0, 1q mit x “ λy ` p1 ´ λqz. Für j R Zpxq gilt
P
P
yj “ zj “ 0. Also ist b “ Ay “ jPZpxq yj aj und b “ Az “ jPZpxq zj aj und damit
P
0 “ jPZpxq pyj ´ zj qaj . Da y ‰ z existiert k P Zpxq mit yk ‰ zk . Sei vj :“ yj ´ zj für alle
j P {1, . . . , n}. Sei ρ :“ min{ |vxjj | ; j P Zpxq, vj ‰ 0} “ |vxkk| für ein k P Zpxq.
Sei O.B.d.A. vk ą 0 (sonst vertausche Rollen von y und z).
x ´ ρvj , j P Zpxq
Sei xj ˚ :“ { j
für j “ 1, . . . , n.
0
sonst,
Es folgt
x˚j “ xj ´ xvkk vj ě 0 für j P Zpxq und x˚k “ xk ´ ρvk “ xk ´ xvkk vk “ 0.
Somit ist Zpx˚ q Ă Zpxq sowie
Ax˚ “
n
X
aj x˚j
j“1
X
“
aj x j ´ ρ
jPZpxq
X
“
“
X
aj pyj ´ zj q
jPZpxq
aj x j
jPZpxq
n
X
j
a xj
j“1
“ b
Damit ist x˚ P P . Widerspruch zur Minimalität von Zpxq.
Für Ecken ist die Menge der Spaltenvektoren mit Indizes aus der Spaltenmenge unabhängig. Es gilt sogar
Satz 6.10. x P expP q genau dann, wenn die Spaltenvektoren apjq , j P Zpxq linear unabhängig sind.
Beweis. ñ: (Kontraposition) Sei Spxq linear abhängig, d.h. jPZpxq αj apjq “ 0 mit αj ˚ ‰ 0
für ein j ˚ P Zpxq. Da xj ą 0 für alle j P Zpxq, gibt es ρ P Rz{0} mit xj ´ ραj ą 0 und
xj ` ραj ą 0 für alle j P Zpxq. Seien y, z P Rn definiert durch
P
60
6.2. Farkas Lemma


xj ` ραj , j P Zpxq
yj :“
 0
sonst,
zj :“


xj ´ ραj , j P Zpxq
 0
sonst.
Dann gilt y, z P P und x “ 12 y ` 12 z, also x R expP q.
ð: (Kontraposition) Sei nun x R expP q. Dann existieren y, z P P , y ‰ z, λ P p0, 1q mit
x “ λy ` p1 ´ λqz. Sei α “ y ´ z. Dann ist αj “ 0 für alle j R ZpXq. Weiterhin existiert
P
ein j ˚ P Zpxq mit aj ˚ ‰ 0, da y ‰ z. Dann ist jPZpXq αj apjq “ 0 und α ‰ 0, also ist S
linear abhängig.
6.2. Farkas Lemma
Im folgenden sei A P Rmˆn und b P Rm z{0}.
Satz 6.11. Genau eine der beiden Möglichkeiten trifft zu:
(i) Ax “ b, x P Rn ist lösbar
(ii) AT y “ 0, bT y “ ´1, y P Rm ist lösbar.
Beweis. Wären piq und piiq gleichzeitig wahr mit Lösungen x P Rn und y P Rm , so
hätten wir einen Widerspruch:
0 “ xT AT y “ pAxqT y “ bT y “ ´1.
Wir zeigen, dass piiq gilt, falls piq nicht zutrifft.
Sei A1 “ pA|bq die erweiterte Matrix, c “ p0, . . . , 0, ´1qT P Rn`1 , U “ ha1 , . . . , an i und
U 1 “ ha11 , .. . , a1m i. 
Ist Ax “ b nicht lösbar, dann ist b R U, also rangpA1 q “ rangpAq ` 1.
A1 c 
Sei A2 “ 
. Es ist rangpA2 q “ rangpA1 q und somit c P U 1 . c P U 1 ist äquivalent
0
zu piiq.
Satz 6.11 hat eine unmittelbar einleuchtende geometrische Interpretation. Liegt b nicht in
U, so gibt es einen Vektor y, der auf U senkrecht steht und mit b einen stumpfen Winkel
bildet.
Die Verallgemeinerung des Satzes 6.11 auf Ungleichungssysteme ist das Lemma von
Farkas.
Satz 6.12. (Farkas-Lemma I) Genau eine der beiden Möglichkeiten trifft zu:
61
Kapitel 6. Lineare Programmierung – Dualitätssatz
(i) Ax “ b, x ě 0, x P Rn ist lösbar,
(ii) AT y ě 0, bT y ă 0, y P Rm ist lösbar.
Beweis. Zunächst einmal sind piq und piiq Alternativen: Die Annahme, dass x P Rn
Lösung von piq und y P Rm Lösung von piiq ist, führt zum Widerspruch:
0 ď xT AT y “ pAxqT y “ bT y ă 0.
Wir zeigen nun, dass aus
lösbar.
piq die Aussage piiq folgt. Sei also Ax “ b, x ě 0, x P Rn nicht
Fall a: Ax “ b ist nicht lösbar. Mit Satz 6.11 trifft dann piiq zu.
Fall b: Ax “ b ist lösbar, aber x 0.
Durch Induktion nach n weisen wir nach, dass piiq gilt.
Induktionsanfang n “ 1: Sei x P R eine Lösung von Ax “ b, x 0. Dann gilt x ă 0. Mit
y :“ ´b erhalten wir
1
AT y “ ´ bT b ą 0 und bT y “ ´bT b ă 0,
x
und y löst piiq.
Induktionsschluss. Sei n P N, n ě 2. Die Behauptung sei für alle k ď n ´ 1 richtig. Sei
A1 :“ pa1 , . . . , an´1 q. Nach Voraussetzung ist A1 x “ b, x ě 0 in Rn´1 nicht lösbar. Sonst
ließe sich Ax̃ “ b, x̃ ě 0 im Rn durch x̃ :“ px, 0q lösen. Damit ist entweder schon A1 x “ b
nicht lösbar oder A1 x “ b ist lösbar, aber besitzt keine nichtnegative Lösung. Im ersten
Fall garantiert uns Satz 6.11, im zweiten Fall die Induktionsannahme die Lösbarkeit von
A1 T y ě 0, bT y ă 0. Sei v P Rm eine solche Lösung, also
T
A1 v ě 0 und bT v ă 0.
Es gilt
(6.1)
A1 T v
A v“
ě 0,
pan qT v
!
T
falls pan qT v ě 0. In diesem Fall sind wir fertig.
Wir nehmen an, dass pan qT v ă 0 und definieren Vektoren ā1 , . . . , ān´1 , b̄ durch
āi :“ αi an ´ αn ai
b̄ :“ βan ´ αn b
i “ 1, . . . , n ´ 1
wobei αi “ pai qT v für i “ 1, . . . , n und β :“ bT v. Sei Ā “ pā1 , . . . , ān´1 q. Betrachte das
System
Āx “ b̄, x ě 0, x P Rn´1 .
(6.2)
62
6.2. Farkas Lemma
Fall 1: (6.2) ist lösbar. Dann gilt für eine Lösung x ě 0 von (6.2)
βan ´ αn b “ b̄ “ Āx “
n´1
X
xi āi “
i“1
also

b“
n´1
X
xi pαi an ´ αn ai q,
i“1

n´1
X
X
1 n´1
β
´
x i α i  an `
xi ai “ Ax˚
αn αn i“1
i“1
mit x˚i “ xi für i “ 1, . . . , n ´ 1 und x˚n “
β
αn
´
1
αn
Pn´1
i“1
xi α i .
Nach Wahl von x ist xi ě 0 für alle i “ 1, . . . , n ´ 1. Wegen (6.1) ist αi ě 0 für alle
i “ 1, ¨ ¨ ¨ , n ´ 1, also xi αi ě 0 für alle i “ 1, . . . , n ´ 1. Ferner gilt β ă 0 und αn ă 0,
also auch xn ě 0. Damit ist x˚ aber eine nicht-negative Lösung von piq im Widerspruch
zur Voraussetzung, dass Ax “ b keine nichtnegative Lösung besitzt.
Fall 2: (6.2) ist nicht lösbar.
Mit Induktion ist ĀT y ě 0, b̄T y ă 0 lösbar. Sei w P Rm eine solche Lösung. Setze
y “ ppan qT wqv ´ ppan qT vqw.
Dann gilt

T

1
 a y 


..


.
AT y “ 





T
an´1 y 

pan qT y
ě 0,
denn
pan qT y “ pan qT wppan qT vq ´ pan qT vppan qT wq “ 0
und
pai qT y “ ppan qT wqppai qT vq ´ ppan qT vqppai qT wq “ āi w ě 0.
Ferner
T
bT y “ ppan qT wqpbT vq ´ ppan qT vqpbT wq “ b̄T w ă 0,
also ist y eine Lösung von piiq und wir sind fertig.
Nun lässt sich die folgende Alternative für Ungleichungssysteme aufstellen.
Satz 6.13. (Farkas-Lemma II) Genau eine der folgenden Möglichkeiten trifft zu:
(i) Ax ď b, x ě 0, x P Rn ist lösbar,
(ii) AT y ě 0, y ě 0, bT y ă 0, y P Rm ist lösbar.
Beweis. Gleichzeitig sind piq und piiq nicht lösbar, denn andernfalls ergibt sich der
Widerspruch
0 ď xT AT y “ pAxqT y “ bT y ă 0.
63
Kapitel 6. Lineare Programmierung – Dualitätssatz
Angenommen, piq besitzt keine Lösung. Dann hat auch das System
Ax ` z “ b, x ě 0, z ě 0
(6.3)
keine Lösung und umgekehrt. Sei Em die Einheitsmatrix in Rm und B “ pA|Em q. (6.3)
ist genau dann nicht lösbar, wenn Bw “ b, w ě 0 nicht lösbar ist. Mit dem Lemma von
Farkas (Satz 6.12) existiert y P Rm mit AT y ě 0, Em y “ y ě 0 und bT y ă 0.
Für gemischte Gleichungs- und Ungleichungssysteme haben wir:
Satz 6.14. (Farkas-Lemma III) Es sei A P Rmˆn und b P Rm . Genau eine der Alternativen
trifft zu:
(i) Ax ď b, x P Rn ist lösbar.
(ii) AT y “ 0, bJ y ă 0, y ě 0, y P Rm ist lösbar.
Beweis: Sei A1 :“ rEn A ´ As. Dann gilt A1 x1 “ b, x1 P Rn , x1 ě 0 genau dann, wenn
Ax ď b, x P Rn . Aus dem Farkas-Lemma II folgt die Behauptung.
Satz 6.15. (Farkas-Lemma IV) Sei Ax ď b, x P Rn lösbar und sei δ P R. Jede Lösung x
von Ax ď b erfüllt cT x ď δ genau dann, wenn es einen Vektor y P Rm , y ě 0 gibt mit
y T A “ cT und y T b ď δ.
Beweis. ð: Sei x eine Lösung von Ax ď b, und sei y P Rm , y ě 0 mit y T A “ cT und
y T b ď δ. Dann ist cT x “ py T Aqx ď y T b ď δ.
ñ: Annahme: y T A “ cT , y T b ď δ, y ě 0 ist nicht lösbar. Dies ist äquivalent dazu, dass
!
das System
A
b
py T λq
“ pcT δq, py T λq ě p0 0q
0 1
keine Lösung hat. Mit dem Farkas-Lemma II existiert ein Vektor
! !
!
!
dass
A b z
0
z
T
ě
, pc δq
ă 0.
0 1 µ
0
µ
Insbesondere ist µ ě 0.
Fall 1: µ “ 0. Dann gilt Az ě 0 und cT z ă 0.
Sei x˚ eine Lösung von Ax ď b. Ist γ ą 0 groß genug, so gilt
Apx˚ ´ γzq ď b und cT px˚ ´ γzq ą δ.
Im Widerspruch zur Voraussetzung “Ax ď b impliziert cT x ď δ”.
64
z
µ
, z P Rm , µ P R , so
6.3. Der Dualitätssatz der Linearen Programmierung
Fall 2: µ ą 0. Dann gilt Az ` µb ě 0, cT z ` µδ ă 0.
Mit x “ ´ µ1 z haben wir
Ax ď b und cT x ą δ,
wiederum im Widerspruch zur Voraussetzung.
6.3. Der Dualitätssatz der Linearen Programmierung
Jeden Tag werden heutzutage in der Industrie Optimierungsprobleme gelöst, die sich als
ein lineares Programm darstellen lassen. Inzwischen ist die Erstellung von Algorithmen zur
Lösung von linearen Programmen soweit fortgeschritten, dass selbst Programme mit tausenden von Variablen in nur wenigen Minuten gelöst werden können.
Das breitgefächerte Spektrum der Anwendungen der linearen Programmierung entspricht
ihrer Bedeutung in der Praxis. Aber auch in der mathematischen Theoriebildung fällt der
linearen Programmierung eine wichtige Rolle zu. So gehört der Hauptsatz der linearen
Programmierung zu den klassischen, fundamentalen Sätzen der Mathematik, während
der algorithmische Aspekt der linearen Programmierung ganz wesentlich zur Entwicklung
und Spannung der modernen Algorithmentheorie beigetragen hat:
Auf der einen Seite der im Worst-Case exponentielle aber in der Praxis unschlagbare
Simplexalgorithmus von Dantzig und auf der anderen Seite die theoretisch polynomielle Ellipsoidmethode (Khachiyan, Shor), die allerdings in der Praxis zu langsam
ist.
In diesem Kapitel werden wir einen grundlegenden Aspekt der linearen Programmierung
vorstellen: den Haupt- oder Dualitätssatz der linearen Programmierung.
Gegeben sei eine Matrix A P Rmˆn mit Zeilenvektoren a1 , . . . , am und Spaltenvektoren
ap1q , . . . , apnq , Vektoren b P Rm und c P Rn . Sei pI, I C q eine Partition der Zeilenindizes
{1, . . . , m} und pJ, J C q eine Partition der Spaltenindizes {1, . . . , n}. Die Variablen xj ,
j P J C , heißen unbeschränkte Variable.
65
Kapitel 6. Lineare Programmierung – Dualitätssatz
Definition 6.16. (Lineares Programm) Die drei Versionen eines linearen Programms sind:
Maximierungsproblem Minimierungsproblem
(i) Allgemeinform
max cT x
aTi x “ bi ,
aTi x ď bi ,
xj ě 0,
xj P R,
x P Rn
i
i
j
j
P
P
P
P
I
IC
J
JC
min cT x
aTi x “ bi ,
aTi x ě bi ,
xj ě 0,
xj P R,
x P Rn
(ii) Standardform
max cT x
Ax ď b
xě0
min cT x
Ax ě b
xě0
(iii) Kanonische Form
max cT x
Ax “ b
xě0
min cT x
Ax “ b
xě0
i
i
j
j
P
P
P
P
I
IC
J
JC
Die verschiedenen Formen der linearen Programmierung sind äquivalent, d.h. die eine Form kann in die andere transformiert werden, so dass die Lösungen die gleichen
bleiben.
Satz 6.17. Allgemeine- Standard- und kanonische Form der linearen Programmierung
sind äquivalent.
Beweis. Wir führen den Beweis für das Minimierungsproblem; das Maximierungsproblem
wird analog behandelt.
Wir zeigen zunächst: Allgemeine Form ðñ Standardform.
Da die Standardform eine spezielle Instanz der allgemeinen Form ist, müssen wir nur
zeigen, dass die allgemeine Form sich in die Standardform überführen lässt. Dazu führen
wir die folgende Transformation aus.
a) Für jede Variable xj , j P J C , in der allgemeinen Form führen wir zwei Variable
´
`
´
x`
j , xj ě 0 ein und ersetzen xj durch xj ´ xj “ 0.
b) Jede Gleichheitsbedingung aTi x “ bi in der allgemeinen Form wird durch zwei
Ungleichungen aTi x ě bi und p´aTi qx ě ´bi ersetzt.
Allgemeine Form ðñ kanonische Form.
c) Unbeschränkte Variablen in der allgemeinen Form werden wie in aq durch nichtnegative Variablen ersetzt.
66
6.3. Der Dualitätssatz der Linearen Programmierung
d) Ungleichungen in der allgemeinen Form werden mit Hilfe sogenannter Schlupfvariablen
in Gleichungen überführt: Eine Ungleichung aTi x ě bi wird durch
aTi x ´ si “ bi , si ě 0
ersetzt si heißt Schlupfvariable.
Beispiele:
1. Job-Zuordnungsproblem (Fraktionale Version)
Gegeben sind n Jobs und n Prozessoren. Jeder Prozessor bearbeitet einen Job, jeder
Job muss bearbeitet werden. Die Bearbeitungszeit für Job i auf Prozessor j ist wij 0.
min
n
X
xij wij
i,j“1
n
X
i“1
n
X
j“1
xij “ 1 @j“1,...,n
xij “ 1 @i“1,...,n
0 ď xij ď 1.
2. Matching/Überdeckungs-Problem
Gegeben sei ein bipartiter Graph G “ pS ŸT, Eq. Sei A “ paij q 1ďiďm die Inzidenzmatrix
1ďjďn
von G.
Maximum Matching Problem
max
Pm
i“1
xi
Ax ď 1
xi “ 0, 1 @i“1,...,m
Minimum Vertex-Cover Problem
min
Pn
j“1
yj
AT y ě 1
yj “ 0, 1 @j“1,...,n
Die zugehörigen linearen Programme entstehen aus der Relaxierung xi P r0, 1s bzw.
yj P r0, 1s für alle i bzw. j.
Sei νpGq die Kardinalität eines maximalen Matching und τ pGq die Kardinalität einer
minimalen Knotenüberdeckung. νpGq heißt Matchingzahl und τ pGq ist die Überdeckungszahl. Mit ν ˚ pGq bzw. τ ˚ pGq bezeichnet man die Optima der LP-Relaxierung des
Matching bzw des Vertex-Cover Problems. ν ˚ pGq heißt die fraktionale Matchingzahl
und τ ˚ pGq ist die fraktionale Überdeckungszahl.
Für eine Matrix A seien ap1q , . . . , apnq die Spalten- und a1 , . . . , am die Zeilenvektoren von
A.
67
Kapitel 6. Lineare Programmierung – Dualitätssatz
Definition 6.18. (Duales Programm) Sei pP q die Maximierungsversion des allgemeinen
linearen Programms, das wir als primales Programm bezeichnen. Die duale Form pP ˚ q
von pP q, kurz Dual von pP q, ist wie folgt definiert:
PrimalpP q :
max cT x
aTi x “ bi , i P I
aTi x ď bi , i P I C
xj ě 0, j P J
xj P R, j P J C
DualpP ˚ q :
min y T b
yi P R, i P I
yi ě 0, i P I C
y T apjq ě cj , j P J
y T apjq “ cj , j P J C
mit x, c P Rn und y, b P Rm .
Die Dualität ist reflexiv:
Satz 6.19. pP ˚˚ q “ pP q. Das Dual eines Duals ist das primale Programm.
Beweis: Übungsaufgabe.
Die duale Zielfunktion ist eine obere Schranke für die primale Zielfunktion auf zulässigen
Punkten.
Satz 6.20. (Schwacher Dualitätssatz) Sei x P Rn bzw. y P Rm zulässig für pP q bzw. pP ˚ q.
Dann gilt cT x ď bT y.
Beweis: Übungsaufgabe.
Korollar 6.21. Seien x, y primal/dual zulässig mit cT x “ y T b. Dann sind x und y jeweils
optimale Lösungen.
Beweis. Seien x˚ , y ˚ optimale primale/duale Lösungen. Dann gilt:
cT x ˚ ě cT x “ y T b ě y ˚ T b ě cT x ˚ ,
wobei die letzte Ungleichung aus dem schwachen Dualitätssatz (Satz 6.20) folgt. Also
cT x˚ “ cT x “ y T b “ y ˚ T b.
Aus dem schwachen Dualitätssatz folgt unmittelbar
Korollar 6.22. Sei G ein Graph. Es gilt νpGq ď τ pGq.
Beweis: Der Einfachheit halber betrachten wir in diesem Kapitel lineare Programme in
Standardform:
68
6.3. Der Dualitätssatz der Linearen Programmierung
DualpP ˚ q :
min y T b
AT y ě c
y ě 0, y P Rm
PrimalpP q :
max cT x
A0 ď b
x ě 0, x P Rn
Es sei OPTpP q bzw. OPTpP ˚ q der Wert einer optimalen Lösung von pP q bzw. pP ˚ q.
Wir nehmen an, dass b und c keine Nullvektoren sind. Der Dualitätssatz der linearen
Programmierung besagt, dass OPTpP q “ OPTpP ˚ q gilt, wenn eines der Optima endlich
ist. Dieses Resultat kann man auch als Min-Max-Theorem auffassen. Man spricht auch
von starker Dualität. Ein kombinatorisches Beispiel für starke Dualität ist die Identität
νpGq “ τ pGq für bipartite Graphen.
Satz 6.23. Dualitätssatz der linearen Programmierung Es sei pP q das primale und pP ˚ q
das duale Standardprogramm:
pP ˚ q :
min bT y
AT y ě c
y ě 0, y P Rm
pP q :
max cT x
Ax ď b
x ě 0, x P Rn
(i) Haben pP q und pP ˚ q zulässige Lösungen, so haben sie auch optimale Lösungen
und es gilt
OPTpP q “ OPTpP ˚ q.
(ii) Ist pP q oder pP ˚ q nicht lösbar, so besitzt weder pP q noch pP ˚ q eine optimale Lösung
mit endlichem Wert.
Beweis. piq pP q und pP ˚ q seien zulässig lösbar. Nach dem schwachen Dualitätssatz reicht
es aus zu zeigen, dass es zulässige Lösungen x und y gibt mit cT x ě bT y. Dies ist
äquivalent dazu, dass das System






A
0
b




x
T 
 0


ď  ´c 
´A 

,
y
T
T
´c
b
0


 x ě0
y
(6.4)
eine Lösung besitzt.
Falls (6.4) nicht lösbar ist, gibt es mit dem Farkas-Lemma II (Satz 6.13) Vektoren z P Rm ,
w P Rn , sowie α P R mit z ě 0, w ě 0, α ě 0, so dass
AT z ě αc, Aw ď αb, bT z ă cT w.
(6.5)
69
Kapitel 6. Lineare Programmierung – Dualitätssatz
Es gilt α ą 0, denn α “ 0 führt zu einem Widerspruch: Seien x0 , y0 zulässige Lösungen
von pP q und pP ˚ q, die nach Voraussetzung existieren. Aus (6.5) folgt:
0 ď xT0 AT z “ pAx0 qT z ď bT z ă cT w ď pAT y0 qT w “ y0T Aw ď 0,
d.h. 0 ă 0, Widerspruch Sei x “ α´1 w und y “ α´1 z. Dann gilt
Ax ď b, AT y ě c, x ě 0, y ě 0,
d.h. x, y sind zulässig für pP q bzw. pP ˚ q. Mit dem schwachen Dualitätssatz (Satz 6.20)
erhält man
cT w “ αpcT xq ď αpbT yq “ bT z
im Widerspruch zu (6.5). Also ist (6.4) lösbar und piq ist bewiesen.
piiq Wenn pP q keine zulässige Lösung besitzt, dann gibt es auch keine primal-endliche
Lösung mit endlichem Wert. Mit dem Farkas-Lemma II (Satz 6.13) existiert w P Rm
mit AT w ě 0, w ě 0, bT w ă 0. Falls pP ˚ q eine zulässige Lösung y0 besitzt, so ist auch
y0 ` λw zulässig für pP ˚ q für jedes λ ě 0. Für die Zielfunktion gilt
bT py0 ` λwq “ bT y0 ` λpbT wq,
also limλÑ8 bT py0 ` λwq “ ´8, da bT w ă 0. Daher besitzt pP ˚ q keine optimale Lösung
mit endlichem Wert.
Analog zeigt man, dass pP q nicht optimal lösbar ist, falls pP ˚ q keine zulässige Lösung
besitzt.
Ein starkes Kriterium um die Optimalität von Lösungen zu verifizieren ist der Satz vom
komplementären Schlupf.
Satz 6.24. Seien pP q und pP ˚ q wie in Definition 6.18 und sei x˚ P Rn , y ˚ P Rm ein
primal/dual zulässiges Paar. x˚ und y ˚ sind optimale Lösungen genau dann, wenn die
folgenden Bedingungen erfüllt sind:
(i) x˚j py T aj ´ cj q “ 0 für alle j “ 1, . . . , n,
(ii) yi˚ pbi ´ aTi xq “ 0 für alle i “ 1, . . . , m.
Bemerkung: Beachte, dass si :“ bi ´ aTi x die primale und tj :“ y T aj ´ cj die duale
Schlupfvariable ist. Dies motiviert den Namen des Satzes.
Beweis. O.B.d.A. sei I “ {1, . . . , k}, J “ {1, . . . , l}. Nach Definition gilt
x˚j py ˚ T aj ´ cj q ě 0 und yi˚ pbi ´ aTi x˚ q ě 0
für alle i, j. Sei
t :“
n
X
j“1
70
x˚j py ˚ T aj ´ cj q `
m
X
i“1
yi˚ pbi ´ aTi x˚ q.
6.3. Der Dualitätssatz der Linearen Programmierung
Da alle Summanden nicht-negativ sind, ist t “ 0 genau dann, wenn piq und piiq gelten.
Wir zeigen nun, dass t “ 0 genau dann gilt, wenn x˚ und y ˚ optimale primale/duale
Lösungen sind.
Umformen ergibt
t“´
n
X
x˚j cj `
j“1
m
X
yi˚ bi `
i“1
n
X
x˚j y ˚ T aj ´
j“1
|
m
X
yi˚ aTi x˚ ,
i“1
{z
“hx,Ayi´hy,AT xi“0.
}
also t “ y ˚ T b ´ cT x˚ . Nach Korollar 6.21 impliziert t “ 0, dass x˚ und y ˚ optimal sind,
während der Dualitätssatz die Umkehrung zeigt.
Satz 6.24 besagt für primal/dual optimale Lösungen:
Ź Ist eine primale (duale) Variable nicht Null, dann ist die entsprechende duale (primale)
Nebenbedingung eine Gleichung.
Sei pP q das Minimierungsproblem in der kanonischen Form
max cT x
Ax “ b, x ě 0.
Sei P “ {x P Rn ; Ax “ b, x ě 0} und Popt die Menge der optimalen Lösungen für pP q.
Popt ist offensichtlich konvex und abgeschlossen und besitzt die wichtige Eigenschaft, dass
auch gewisse Ecken von P Optimallösungen sind, falls pP q überhaupt endliches Optimum
besitzt.
Satz 6.25.
(i) expPopt q “ expP q X Popt
(ii) Popt ‰ H ñ expPopt q ‰ H.
Beweis. piq Für leeres Popt ist die Aussage klar. Offenbar gilt expP q X Popt Ď expPopt q.
Sei nun x P expPopt q und seien y, z P P , λ P r0, 1s mit x “ λy ` p1 ´ λqz. Sei w der Wert
einer optimalen Lösung von pP q.
Dann gilt w “ cT x “ λcT y `p1´λqcT z, und weil w ď cT y, w ď cT z, folgt w “ cT y “ cT z,
d.h. y, z P Popt , x “ y “ z und x P expP q, also expPopt q Ď expP q X Popt .
T
piiq Sei Popt ‰ H. Sei pP 1 q das Programm pP q ergänzt um die Gleichung
c x “ w und
sei P 1 “ P X {cT x “ w}. Damit gilt P 1 “ Popt “ {x P Rn ; cAT x “ wb , x ě 0}, und
mit Satz—– folgt expP q ‰ H.
71
Kapitel 6. Lineare Programmierung – Dualitätssatz
Korollar 6.26. Sei pP q das primale Maximierungsproblem
n
o
max cT x; Ax ď b, x ě 0, x P Rn .
Für die primal/duale Lösung gilt
Dual pP ˚ q
Primal
pP q
Optimal
Nicht-zulässig
Unbeschränkt
Optimal
`
´
´
Nichtzulässig
´
`
`
Unbeschränkt
´
`
´
„`“ “
b möglich
„´“ “
b nicht möglich
Beweis. 1. Optimal/Optimal
Diese Kombination ist nach dem Dualitätssat durchaus möglich.
2. Optimal/Nichtzulässig
Diese Kombination ist nach dem Dualitätssat nicht möglich.
3. Optimal/Unbeschränkt
Auch diese Kombination ist nicht möglich, da der Wert einer primal-optimalen Lösung
eine untere Schranke für die duale Zielfunktion ist (schwacher Dualitätssatz).
4. Nichtzulässig/Optimal
siehe 2.
5. Nichtzulässig/Nichtzulässig
Diese Kombination ist durchaus möglich.
6. Nichtzulässig/Unbeschränkt
Nach dem Dualitätssatz gilt dies immer.
7. Unbeschränkt/Optimal
siehe 3.
8. Unbeschränkt/Nichtzulässig
siehe 6.
9. Unbeschränkt/Unbeschränkt
Diese Kombination ist wegen des Dualitätssatzes, Teil piq icht möglich.
72
6.3. Der Dualitätssatz der Linearen Programmierung
Im Bezug auf die Existenz von Basislösungen können wir folgendes sagen:
Satz 6.27. Jedes LP-Problem in Standartform hat die folgenden Eigenschaften:
(i) Existiert keine optimale Lösung, dann ist das Programm entweder nicht-zulässig
oder die Zielfunktion ist unbeschränkt.
(ii) Besitzt es eine zulässige Lösung, dann existiert auch eine zulässige Basislösung.
(iii) Besitzt es eine optimale Lösung, dann besitzt es auch eine optimale Basislösung.
Beweis. piq Dualitätssatz (6.23).
piiq Sei pP q das LP-Problem in Standartform. Durch Einführung von Schlupfvariablen
können wir pP q in die kanonische Form pP 1 q bringen. Da pP q zulässig lösbar ist, ist pP 1 q
zulässig lösbar und besitzt nach Satz 6.9 eine Ecke und diese definiert eine Ecke von pP q.
Eine Ecke von pP q korrespondiert nach Satz 6.10 zu einer Basis.
piiiq Sei pP q das Minimierungsproblem, o.E. sei pP q in kanonischer Form gegeben. Hat
pP q eine optimale Lösung, so existiert auch nach Satz 6.25 eine optimale Ecke, die nach
Satz 6.10 eine Basislösung darstellt. Ist pP q ein Maximierungsproblem, so überführen
wir es in die kanonische Form pP 1 q und fassen es als Minimierungsproblem auf. Mit pP q
hat auch pP 1 q eine optimale Lösung und mit dem obigen Fall sind wir fertig.
73
Literatur
[AG13]
Kook Jin Ahn und Sudipto Guha. „Linear programming in the semistreaming model with application to the maximum matching problem“.
In: Information and Computation 222 (2013), S. 59–79. Conference version
at ICALP 2011.
[AMS99]
Noga Alon, Yossi Matias und Mario Szegedy. „The space complexity of
approximating the frequency moments“. In: Journal of Computer and System
Sciences 58 (1999), S. 137–147. Conference version at STOC 1996.
[EKM+12] Sebastian Eggert, Lasse Kliemann, Peter Munstermann und Anand Srivastav.
„Bipartite matching in the semi-streaming model“. In: Algorithmica 63
(2012), S. 490–508. doi: 10.1007/s00453- 011- 9556- 8. Conference version at ESA
2009.
[FKM+04]
Joan Feigenbaum, Sampath Kannan, Andrew McGregor, Siddharth Suri
und Jian Zhang. „On graph problems in a semi-streaming model“. In:
Proceedings of the 31st International Colloquium on Automata, Languages
and Programming, Turku, Finland, July 2004 (ICALP 2004). 2004, S. 531–
543. doi: 10.1007/978-3-540-27836-8_46.
[FM85]
Philippe Flajolet und G. Nigel Martin. „Probabilistic counting algorithms
for data base applications“. In: Journal of Computer and System Sciences
31.2 (1985), S. 182–209.
[HK73]
John E. Hopcroft und Richard M. Karp. „An n5{2 algorithm for maximum
matchings in bipartite graphs“. In: SIAM Journal on Computing 2.4 (1973),
S. 225–231. doi: 10.1137/0202019.
[HRR00]
Monika R. Henzinger, Prabhakar Raghavan und Sridhar Rajagopalan.
„‚Computing on Data Streams‘“. In: External Memory Algorithms. Bd. 50.
DIMACS Series in Discrete Mathematics and Theoretical Computer Science.
2000, S. 107–118. Preliminary version in 1998.
[KL13]
Jonathan Kelner und Alex Levin. „Spectral sparsification in the semistreaming setting“. In: Theory of Computing Systems 53.2 (2013), S. 243–
262. Conference version at STACS 2011.
75
Literatur
[Kli11]
Lasse Kliemann. „Matching in bipartite graph streams in a small number
of passes (extended abstract)“. In: Proceedings of the 10th International
Symposium on Experimental and Efficient Algorithms, Kolimpari, Chania,
Crete, Greece, May 2011 (SEA 2011). Hrsg. von Panos M. Pardalos und
Steffen Rebennack. Lecture Notes in Computer Science 6630. 2011, S. 254–
266. doi: 10.1007/978-3-642-20662-7_22.
[KMM12]
Christian Konrad, Frédéric Magniez und Claire Mathieu. „Maximum matching in semi-streaming in few passes“. In: Proceedings of the International
Workshop on Approximation Algorithms for Combinatorial Optimization
Problems and Randomization and Computation, Berkeley, CA, USA, August
2005 (APPROX RANDOM 2005). 2012, S. 231–242.
[KS92]
Bala Kalyansundaram und Georg Schnitger. „The probabilistic communication complexity of set intersection“. In: SIAM Journal on Discrete
Mathematics 5 (1992), S. 545–557. Conference version at the 2nd Structure
in Complexity Theory Conference 1987.
[McG05]
Andrew McGregor. „Finding graph matchings in data streams“. In: Proceedings of the International Workshop on Approximation Algorithms for
Combinatorial Optimization Problems and Randomization and Computation, Berkeley, CA, USA, August 2005 (APPROX RANDOM 2005). 2005,
S. 170–181. doi: 10.1007/11538462_15.
[MP80]
J. Ian Munro und Mike Paterson. „Selection and sorting with limited
storage“. In: Theoretical Computer Science 12 (1980), S. 315–323. Conference
version at FOCS 1978.
[Mut05]
Muthu Muthukrishnan. „Data streams: algorithms and applications“. In:
Foundations and Trends in Theoretical Computer Science 1.2 (2005), 67
pages. url: http://algo.research.googlepages.com/eight.ps. Preliminary version
available since 2003.
[Zel09]
Mariano Zelke. „‚Algorithms for Streaming Graphs‘“. Diss. MathematischNaturwissenschaftliche Fakultät II, Humboldt-Universität zu Berlin, 2009.
url: http://www.tks.informatik.uni-frankfurt.de/getpdf?id=561.
76
Herunterladen