Kapitel 8 Graphalgorithmen

Werbung
Kapitel 8 Graphalgorithmen
– Kürzeste Wege:
All-pairs shortest paths
– Minimale Spannbäume
396
Kapitel 8.1 All-pairs shortest paths (APSP)
Definition: APSP
Geg.: Adjazenzmatrix eines ungerichteten,
zusammenhängenden Graphen G = (V , E)
Ges.: Darstellung der kürzesten Wege zwischen allen
Knotenpaaren (v , w), v 6= w , aus G
Bemerkung:
– G ungewichtet, d.h. alle Kanten in G haben Gewicht 1
3
– bekannt aus DAP2, Algorithmus mit Laufzeit O |V |
(Dynamische Programmierung)
397
Definition: All-pairs distance APD
Geg.: Adjazenzmatrix eines ungerichteten,
zusammenhängenden Graphen G = (V , E)
Ges.: Distanz der kürzesten Wege zwischen allen
Knotenpaaren (v , w), v 6= w , aus G
Ziel: Las Vegas Algorithmus für APSP mit erwarteter Laufzeit
Coppersmith, Winograd (1990)
O M(|V |) log2 |V |
2,376
O |V |
Laufzeit für Matrixmultiplikation zweier Matrizen der
Dimension |V | × |V |
398
Definition:
Zeugen boolescher Matrixmultiplikation
(boolean product witness matrix BPWM)
Geg.: 2 boolesche Matrizen A, B
Ges.: Zeugenmatrix W für boolesches Matrixprodukt
A · B, d.h. für aik = 1 und bk j = 1 ist k möglicher
Eintrag für wij .
enthält Zeugen, der belegt, dass an Pos (ij)
im Produkt A · B eine 1 stehen muss
Jetzt:
• det. Algorithmus für APD mit
Laufzeit O (M(|V |) log |V |)
• Las Vegas Algorithmus für
BPWM
mit erwarteter
Laufzeit
O M(|V |) log2 |V |



Las Vegas Algorith

mus für APSP mit
erwarteter
Laufzeit


2


O
M(|V
|)
log
|V |

399
Definition:
Sei A die Adjazenzmatrix von G. Mit A∗ bezeichnen wir (hier)
die Adjazenzmatrix von G∗ , der für alle Knoten v 6=w eine
Kante enthält, wenn v und w in G Abstand höchstens 2
zueinander haben.
Mit D bezeichnen wir die Distanzmatrix von G, d.h.
D[i, j] =: dij gibt die Distanz von Knoten i zu Knoten j in G
an. D ∗ bezeichne die Distanzmatrix für G∗ .
APD fragt nach D.
Erinnerung: Durchmesser eines Graphen ist Maximum der
Distanzen über alle Knotenpaare
400
Beispiel:
2
3
1
7
5
4
G
6
Distanzmatrix D
1 2 3 4
1 0 1 2 2
2 1 0 1 1
3 2 1 0 2
4 2 1 2 0
5 3 2 1 1
6 4 3 2 2
7 3 2 1 3
5
3
2
1
1
0
1
2
6
4
3
2
2
1
0
1
Adjazenzmatrix A
1 2 3 4
1 0 1 0 0
2 1 0 1 1
3 0 1 0 0
4 0 1 0 0
5 0 0 1 1
6 0 0 0 0
7 0 0 1 0
5
0
0
1
1
0
1
0
6
0
0
0
0
1
0
1
7
0
0
1
0
0
1
0
7
3
2
1
3
2
1
0
401
Beispiel:
2
3
1
4
7
5
G∗
Adjazenzmatrix A∗
1 2 3 4 5
1 0 1 1 1 0
2 1 0 1 1 1
3 1 1 0 1 1
4 1 1 1 0 1
5 0 1 1 1 0
6 0 0 1 1 1
7 0 1 1 0 1
6
0
0
1
1
1
0
1
7
0
1
1
0
1
1
0
Distanzmatrix D ∗
1 2 3 4
1 0 1 1 1
2 1 0 1 1
3 1 1 0 1
4 1 1 1 0
5 2 1 1 1
6 2 2 1 1
7 2 1 1 2
6
2
2
1
1
1
0
1
7
2
1
1
2
1
1
0
6
5
2
1
1
1
0
1
1
402
Bestimmung von A∗ aus A und A2 :
• Berechne A+A2 .
• Trage im Ergebnis auf Hauptdiagonalen 0en ein.
• Ersetze alle Zahlen in Ergebnismatrix, die größer als 1
sind, durch 1.
Laufzeit: O (M(|V |))
403
Lemma:
Der Durchmesser eines Graphen G ist höchstens 2 gdw. G∗
der vollständige Graph ist. Ist G∗ der vollständige Graph,
dann gilt D = 2A∗ − A.
Beweis:
⇒ Je 2 Knoten durch Kante in G∗ verbunden.
⇐ Kante in G∗ =
ˆ Kante existiert bereits in G
oder beteiligte Knoten haben in G
Abstand höchstens 2
Beobachtung: 2A∗ enthält auf Hauptdiagonalen 0en,
überall sonst 2en
Distanz zwischen 2 Knoten ist 2, wenn es keine Kante
zwischen den beiden gibt. 1 sonst.
Entspricht genau D = 2A∗ − A
404
Ziel: rekursiver Algorithmus zur Bestimmung von D
Lemma 1:
Seien i 6= j Knoten aus G. Es gilt:
a) dij gerade ⇒ dij = 2dij∗
b) dij ungerade ⇒ dij = 2dij∗ − 1
c) dij /2 ≤ dij∗ ≤ (dij + 1)/2
Beweis:
a
⇒c
b
405
Beweis (Fortsetzung):
a) Betrachte einen kürzesten Weg von i nach j in G:
i = v1 , ..., vr = j
ungerade, da Weglänge gerade
In G∗ : i = v1 , v3 , ..., vr = j
Distanz zwischen i
und j in G∗ höchstens
dij /2
Betrachte Weg von i nach j in G∗ :
jede Kante des Weges durch höchstens 2 Kanten in G
ersetzbar
dij ≤ 2dij∗
b) analog
406
Also: Paritäten von dij und D ∗ bekannt
D bekannt
Frage: Wie können Paritäten der dij -Werte bestimmt werden,
ohne dass die dij -Werte bekannt sind?
Beobachtung: Für alle Nachbarknoten k von i gilt:
(i 6= j beliebig, jedoch fest)
dij − 1 ≤ dkj ≤ dij + 1
j
k
i
k
j
i
Es existiert Nachbarknoten k von i mit dkj = dij − 1.
407
Lemma 2:
Seien i 6= j Knoten aus G.
a) dij gerade
⇒ dkj∗ ≥ dij∗ für alle Nachbarknoten k von i
b) dij ungerade ⇒ dkj∗ ≤ dij∗ für alle Nachbarknoten k von i
und es gibt einen Nachbarknoten k von i,
für den dkj∗ < dij∗ ist
408
Lemma 2:
Seien i 6= j Knoten aus G.
a) dij gerade
⇒ dkj∗ ≥ dij∗ für alle Nachbarknoten k von i
b) dij ungerade ⇒ dkj∗ ≤ dij∗ für alle Nachbarknoten k von i
und es gibt einen Nachbarknoten k von i,
für den dkj∗ < dij∗ ist
Beweis:
a) Sei dij = 2x für x ∈ N.
Lemma 1, a)
dij∗ = x
i und k Nachbarknoten
dkj ∈ {2x − 1, 2x, 2x + 1}
dkj∗ ∈ {x, x, x + 1} = {x, x + 1}
dij∗ = x ≤ dkj∗
408
Lemma 2:
Seien i 6= j Knoten aus G.
a) dij gerade
⇒ dkj∗ ≥ dij∗ für alle Nachbarknoten k von i
b) dij ungerade ⇒ dkj∗ ≤ dij∗ für alle Nachbarknoten k von i
und es gibt einen Nachbarknoten k von i,
für den dkj∗ < dij∗ ist
Beweis:
b) Sei dij = 2x + 1 für x ∈ N.
Lemma 1, b)
dij∗ = x + 1
i und k Nachbarknoten
k∗
i
dkj ∈ {2x, 2x + 1, 2x + 2}
dkj∗ ∈ {x, x + 1, x + 1} = {x, x + 1}
dij∗ = x + 1 ≥ dkj∗
j
kürzester Weg von i nach j
dk ∗ j = 2x
dk∗∗ j = x < dij∗
408
Satz:
dij gerade ⇔
P
dkj∗ ≥ |ΓG (i)| · dij∗
k ∈ΓG (i)
Menge der Nachbarknoten von i in G
Beweis:
Folgt aus Lemma 2 durch Aufsummieren der Abstandswerte
aller Nachbarknoten von i.
Beobachtung:
P
dkj∗ für alle i, j
Durch eine Matrixmultiplikation
k ∈ΓG (i)
gleichzeitig berechenbar. Sei S = A · D ∗ .
|V |
P
P
aik · dkj∗ = sij .
dkj∗ =
Es gilt
k ∈ΓG (i)
k =1
409
Algorithmus: APD
1) Berechne Z = A2 und A∗ = A + Z .
Setze die Hauptdiagonale von A∗ auf 0 und Einträge
größer als 1 auf 1.
2) Falls a∗ij = 1 für alle i 6= j, return 2A∗ − A.
< G∗ ist vollständiger Graph.>
3) Berechne D ∗ := APD(A∗ )
4) Berechne S = A · D ∗
5) Konstruiere
D wie folgt:
falls sij ≥ dij∗ · zii
2dij∗
dij =
2dij∗ − 1 falls sij < dij∗ · zii
6) return D
410
Beobachtung:
zii =
ˆ Grad von Knoten i
zii = |ΓG (i)|
Satz:
Algorithmus APD berechnet Distanzmatrix eines
zusammenhängenden, ungerichteten Graphen, in dem jede
Kante Gewicht 1 hat, in Laufzeit O (M(|V |) log |V |)
Beweis:
Graph G zusammenhängend
Durchmesser dm(G) höchstens |V | − 1
dm(G∗ ) ≤ ⌈dm(G)/2⌉
Laufzeit T (|V |, dm) ≤ T (|V |,⌈dm/2⌉) + cM(|V |),
c>0
2
sowie T (|V |, 2) = O |V | = O (M(|V |))
411
Nächstes Ziel:Algorithmus für BPWM mit erwarteter
Laufzeit O M(n) log2 n für Matrizen
der Dimension n × n
Geg.: 2 boolesche Matrizen A und B der Dimension n × n
Sei P = A · B ihr boolesches Matrizenprodukt.
Definition:
Ein Zeuge für pij ist ein Index k ∈ {1, ..., n} mit aik = bkj = 1.
Eine Zeugenmatrix W für eine boolesche Produktmatrix P
enthält für alle i, j einen Zeugen k für pij , wenn dieser
existiert, ansonsten gilt wij = 0.
Ges.: Zeugenmatrix W bzgl. A und B
Beobachtung: C = A · B (ganzzahlige Matrizenmultiplikation)
enthält #Zeugen für P
412
Beobachtung:
• Für jeden Eintrag in P gibt es höchstens n Zeugen.
3
Laufzeit O n für BPMW
Durchprobieren
• A = B und A Adjazenzmatrix von G
pij = 1, wenn Pfad der Länge 2 von Knoten i zum
Knoten j existiert
Zeuge k für pij =
ˆ Knoten auf Pfad der Länge 2 von
Knoten i zum Knoten j
k
i
j
Zeuge für pij
cij enthält #Zeugen für pij
Oft: cij > 1
Zunächst: Lösung für cij = 1, d.h. eindeutiger Zeuge für pij
413
Annahme:
alle Zeugen sind eindeutig für P = A · B
 mit âik = k · aik für alle i und k
A
W = Â · B
Denn:
aik = 1 und bk j = 1
und für alle l 6= k : ail = 0 oder blj = 0
wij = k · aik · bk j
=k
aik = 1 und bk j = 1
k Zeuge für pij
k Zeuge für pij
wij = k
Problem: im Allgemeinen Zeugen nicht eindeutig
414
Idee: Randomisierung einsetzen,
um für ausreichend große Anzahl von Einträgen in P
eindeutige Zeugen zu erhalten
• Betrachte pij
Sei w #Zeugen für pij .
Annahme w ≥ 2 (sonst Zeuge für pij eindeutig, wenn er
existiert)
• Sei r ∈ N mit n/2 ≤ w · r ≤ n
• Behauptung:
Wähle zufällig gleichverteilt eine Menge R ⊆ {1, ..., n}
mit Kardinalität r .
Mit großer“ Wkeit enthält R genau einen Zeugen für pij .
”
415
Lemma:
Eine Urne enthält n Bälle, von denen w weiß und n − w
schwarz sind. Es werden zufällig gleichverteilt r Bälle
gezogen (ohne Zurücklegen), wobei gilt: n/2 ≤ w · r ≤ n.
Die Wkeit, dass genau ein weißer Ball gezogen worden ist,
ist mindestens 21e .
416
• Annahme: R enthält genau einen Zeugen für pij
• R dargestellt als Vektor der Länge n mit Rk = 1 ⇔ k ∈ R
(Rk = 0 sonst)
• A
B
AR mit aRik = kRk aik
B R mit bkjR = Rk bkj
• Betrachte AR · B R .
Beobachtung: Spalten l in AR und Zeilen l ′ in B R mit
l, l ′ ∈
/ R enthalten nur 0en.
• Behauptung: Existiert eindeutiger Zeuge für pij in R,
steht dieser an Position (i, j) des Produktes
AR · B R .
417
(Voraus.: pij hat eindeutigen Zeugen)
Beweis:
• k eindeutiger Zeuge für pij in R
aRik = k und bkj = 1
und für alle l 6= k : aRil = 0 oder bljR = 0
ganzzahliges Matrixprodukt AR · B R enthält an
Position (i, j) k
• An Position (i, j) in AR B R steht k
aRik = k und bkj = 1
aik = 1 und bkj = 1
k eindeutiger Zeuge für pij
418
Beobachtung:
AR · B R enthält für alle pij , die genau einen Zeugen in R
haben, diesen Zeugen an Position (i, j).
• Zufällig gleichverteilt gewählte Menge R mit r
Elementen enthält mit konstanter Wkeit genau einen
Zeugen für pij , wenn #Zeugen für pij zwischen n/2 · 1/r
und n · 1/r liegt.
• O (log n) zufällig unabhängige Wiederholungen für Wahl
von R
Wkeit, dass für ein pij mit Zeugenanzahl zwischen
n/2 · 1/r und n · 1/r in keiner Runde genau ein
Zeuge ausgewählt wird, höchstens 1/n
419
• Verschiedene Werte für #Zeugen berücksichtigen:
vollständige Abdeckung “ der Werte für #Zeugen, wenn
”
r alle Werte 2t für t = 0, ..., ⌊log n⌋ durchläuft
n
16
···
n
8
n
4
n
2
n
420
Algorithmus: BPWM
Eingabe: 2 boolesche n × n Matrizen A und B
Ausgabe: Zeugenmatrix W für boolesche Matrix P = A · B
1) W ← −A · B
2) for t = 0, ..., ⌊log n⌋ do
2.1) r ← 2t
2.2) repeat ⌈3, 77 log n⌉ mal
2.2.1) Wähle zufällig gleichverteilt R ⊆ {1, ..., n} mit | R |= r .
2.2.2) Berechne AR und B R .
2.2.3) Z ← AR B R
2.2.4) Für alle (i, j) do
if wij < 0 and zij ist Zeuge für pij then wij ← zij
3) Für alle (i, j) do
if wij < 0 then suche Zeuge für wij durch Durchprobieren aller
Möglichkeiten
421
Satz:
Algorithmus BPMW ist ein Las Vegas Algorithmus
für das
Problem BPMW, der erwartete Laufzeit O M(n) log2 n hat.
Beweis:
• Es werden nur Zeugen für Positionen (i, j) gesucht, für
die Zeugen existieren.
• Durchprobieren in Schritt 3 sichert, dass für alle pij > 0
Zeuge gefunden wird.
Laufzeit: Schritt 1 O (M(n))
Schritt 2 O M(n) log2 n
422
Beweis (Fortsetzung):
Schritt 3 Wkeit, dass für pij > 0 kein Zeuge in Schritt 2
gefunden wird, höchstens 1/n
erwartete Anzahl von Positionen (i, j) mit
pij > 0, für die in Schritt 2 kein Zeuge
gefunden wird, höchstens 1/n · n2 = n
Durchprobieren aller Zeugen für eine Position (i, j)
in Zeit O (n) möglich
erwartete Laufzeit in Schritt 3 O n
2
423
(∗) Betrachte pij mit pij > 0.
Sei w #Zeugen für pij .
Es existiert ein Wert für r mit n/2 · 1/r ≤ w ≤ n · 1/r .
Lemma
Folie 416
Wkeit, dass zufällig gleichverteilt gewählte
Menge R mit |R| = r nicht genau einen Zeugen
1
für pij enthält, ist höchstens 1 − 2e
Wkeit, dass in allen ⌈3, 77 log n⌉ Runden
kein R gewählt wird, das genau einen Zeugen
1 ⌈3,77 log n⌉
für pij enthält, ist höchstens (1 − 2e
)
< n1
424
Nächstes Ziel: Algorithmus
fürAPSP mit erwarteter Laufzeit
O M(n) log2 n für Graphen mit |V | = n.
Explizite Darstellung aller kürzesten Wege für alle
Knotenpaare i 6= j kann Laufzeit Ω(n3 ) benötigen (wann?).
Hier: implizite Darstellung aller kürzesten Wege mittels
Nachfolgermatrix
Definition:
Eine Nachfolgermatrix S für einen Graphen G mit n Knoten
ist eine Matrix der Dimension n × n, die für alle Knotenpaare
i 6= j an Position (i, j) den Index k des ersten Knotens auf
einem kürzesten Wege von i nach j enthält.
i
k
j
425
Beobachtung:
Mit Hilfe von S kann ein kürzester Weg von einem Knoten i
zu einem Knoten j proportional zur Länge dieses Weges
konstruiert werden.
Vorüberlegung:
sij = k , wenn aik = 1, dij = d und dk j = d − 1
aus
Adjazenzmatrix
A von G
aus
Distanzmatrix
D von G
D → B d mit bkdj = 1 ⇔ dk j = d − 1
O (n 2 )
für A und B d
: −(
Problem: n Werte für d möglich
BMPW
426
Bekannt: Für alle Knotenpaare i 6= j und jeden Nachbarknoten
k von i gilt dij − 1 ≤ dkj ≤ dij + 1
Jeder Nachbarknoten k von i mit dkj = dij − 1
gültiger Eintrag für Position (i, j) der
Nachfolgermatrix S.
Knoten k mit aik = 1 und dkj ≡ dij − 1 mod 3
gültiger Kandidat für sij
Sei D s , s ∈ {0, 1, 2}, die boolesche n × n Matrix mit
dkjs = 1⇔ dkj + 1 ≡ s mod 3.
Nachfolgermatrix S wird berechnet durch Suchen von
Zeugen für Matrizenprodukt A · D s , s ∈ {0, 1, 2}
427
Algorithmus: APSP
Eingabe: Adjazenzmatrix A für Graphen G mit n Knoten
Ausgabe: Nachfolgermatrix S für G
1) Berechne Distanzmatrix D = APD(A).
2) for s = 0, 1, 2 do
2.1) Berechne boolesche Matrix D s mit
dkjs = 1 ⇔ dkj + 1 ≡ s mod 3.
2.2) Berechne Zeugenmatrix W s = BPWM(A, D s ).
d mod 3
3) Berechne Nachfolgermatrix S mit sij = wij ij
.
428
Satz:
Algorithmus APSP ist ein Las Vegas Algorithmus
für das
Problem APSP mit erwarteter Laufzeit O M(n) log2 n ,
wobei n die Anzahl Knoten des zugrundeliegenden Graphen
bezeichnet.
429
Exkurs Prinzip der verzögerten Entscheidungen
Gegeben: Algorithmus A
Aufgabe: Verhalten auf zufälligen Eingaben untersuchen
(A arbeitet für feste Eingabe deterministisch)
Lösungsversuch: Eingabe x = (x1 , x2 , ..., xn ) vorweg
vollständig auswürfeln, anschließend
deterministische Laufzeit auf dieser Eingabe
analysieren
nicht immer elegante Analyse möglich
Jetzt: Jeder Teil der Eingabe wird einzeln ausgewürfelt
(wenn er gebraucht wird)
Algorithmus Alazy
In beiden Fällen gleiche Wkeitsverteilung
Alazy anstelle von A analysieren
430
Beispiel:
Kartenspiel mit 52 Karten, jeweils 13 ♦, ♥, ♠, ♣
Mischen, gleichmäßig auf vier Stapel verteilen:
♦
♥
♠
♣
Karten
aller Farben
Erste Karte vom Stapel ♦ ziehen,
nächste Karte vom Stapel mit Farbe dieser Karte usw.
Spiel endet, wenn Zugriff auf leeren Stapel erfolgt.
Alle Karten weggenommen
gewonnen
431
Beobachtung:
Spiel endet immer mit (versuchtem) Zugriff auf ♦-Stapel
(anderer Stapel leer =
ˆ 13 Karten dieser Farbe gesehen
kein weiterer Zugriff auf diesen Stapel möglich)
Frage: Gewinnwkeit ?
Alle 52 Karten vorab zufällig erzeugen
keine elegante
Analyse
Methode der verzögerten Entscheidung:
Farbe einer Karte erst bei Ziehung erzeugen
13. ♦-Karte letzte Karte
gewonnen
Wkeit: 1/4
432
Stabile Heiraten
Gegeben: n Männer und n Frauen,
Permutationen π1 ,..., πn , σ1 ,..., σn ∈ Sn
πi gibt Reihenfolge
der Männer an, wie
sie von Frau i bevorzugt werden
σj gibt Reihenfolge
der Frauen an, wie
sie von Mann j bevorzugt werden
Gesucht: stabiles“ Matching zwischen Männern und Frauen
”
S
ai = {1, 2, ..., n}
(1, a1 ), (2, a2 ), ..., (n, an ),
1≤i≤n
keine zwei Paare (i1 , j1 ) und (i2 , j2 ) mit Eigenschaft
i1 bevorzugt j2 vor j1 und j2 bevorzugt i1 vor i2
433
Anwendung: z.B. Verteilung von Medizinstudierenden auf
Praktikumsplätze in den USA
Beispiel:
A:abcd
a:ABCD
B:bacd
b:DCBA
C:ad cb
c:ABCD
D:d cab
d :CDAB
• (A, a) (B, b) (C, c) (D, d) nicht stabil, denn C bevorzugt
d vor c und d bevorzugt C vor D.
• stabiles Matching: (A, a) (B, b) (C, d) (D, c)
Vorsicht: Im Allgemeinen löst lokaler greedy-Ansatz nicht
das Problem.
434
Algorithmus: Proposal
Idee: greedy-Ansatz, Paare jedoch zunächst nur vorläufig
verbinden;
Instabilitäten
Entscheidungen rückgängig machen
Solange noch ein unverheirateter Mann M existiert
– wählt M unter allen Frauen, die noch keinen
(∗)
Heiratsantrag von ihm erhalten haben, die ihm
sympathischste Frau F aus
– M macht F einen Heiratsantrag
– Falls F unverheiratet
F akzeptiert Heiratsantrag
– Falls F verheiratet und M ihrem aktuellen Mann
gegenüber bevorzugt
F akzeptiert Heiratsantrag und lässt sich
von ihrem aktuellen Mann scheiden
435
Beispiel:
A:abcd
a:ABCD
1)
2)
3)
4)
5)
6)
B:bacd
b:DCBA
C:ad cb
c:ABCD
A macht a einen Heiratsantrag
C macht a einen Heiratsantrag
C macht d einen Heiratsantrag
D macht d einen Heiratsantrag
D macht c einen Heiratsantrag
B macht b einen Heiratsantrag
D:d cab
d :CDAB
(A, a)
a lehnt ab
(C, d)
d lehnt ab
(D, c)
(B, b)
436
Satz:
Algorithmus Proposal bestimmt für jede Eingabe
π1 , ..., πn , σ1 , ..., σn ein stabiles Matching
Beweis und Analyse von: Proposal
• Proposal arbeitet deterministisch
• Für unverheirateten Mann M existiert immer eine Frau,
der er noch keinen Heiratsantrag gemacht hat. (∗)
Denn: − Alle Frauen bleiben verheiratet, wenn sie
einmal geheiratet haben.
− Alle Frauen haben bereits Heiratsantrag von M
abgelehnt
n Frauen verheiratet
n Männer verheiratet
437
Beweis (Fortsetzung): Proposal
2
• worst case Laufzeit: O n
in jedem Durchlauf: ein Antrag
eine Frau wird als mögliche
Kandidatin eines Mannes
gestrichen
maximal n2 Durchläufe
• Korrektheit:
Annahme: Es gibt instabile Paare (X , x) und (Y , y )
X macht y eher Antrag als x
1.Fall: y hat Antrag von X abgelehnt
y war mit Mann verheiratet, den sie lieber
mag als X
y ist mit Mann verheiratet, den sie lieber
mag als X
438
Beweis (Fortsetzung): Proposal
2.Fall: y hat Antrag von X angenommen
y hat später neu geheiratet
y mag Y lieber als X
average case Analyse
Ziel: Bestimmung der durchschnittlichen Anzahl
Heiratsanträge
Analyse für zufällige Eingabe π1 , ..., πn , σ1 , ..., σn ,
die gemäß Gleichverteilung ausgewählt wird
Prinzip der verzögerten Entscheidung:
Reihenfolge wählen, wenn sie relevant ist,
d.h. immer wenn Mann Heiratsantrag macht,
wählt er unter verbliebenen Frauen die ihm Sympathischste
aus
439
Weitere Vereinfachung der Analyse:
Algorithmus: Amnesie
Mann wählt Frau, der er den Antrag macht, aus allen Frauen
aus
höchstens mehr Schritte
Pr (Amnesie macht mindestens T Anträge)
≥ Pr (modifizierter Algo macht mindestens T Anträge)
Prinzip der verzögerten
Entscheidung
= Pr (Proposal macht mindestens T Anträge)
Erwartete Laufzeit von Amnesie mindestens so groß
wie die von Proposal
440
Beobachtung:
Zufallsexperiment endet, wenn jede Frau mindestens einmal
gefragt worden ist.
Denn: Erhält Frau einen Heiratsantrag,
ist sie anschließend auf jeden Fall verheiratet
(und bleibt es).
n Frauen verheiratet
n Männer verheiratet
Coupon-Sammler-Problem (Folien 245-248)
erwartete Laufzeit O (n log n)
Wkeit, dass Anzahl Anträge größer ist als βn ln n,
β>1
höchstens n−(β−1)
o(1)
441
Kapitel 8.2 Minimale Spannbäume
Definition: Minimum Spanning Forest (MSF )
Geg.: ungerichteter, nicht notwendigerweise
zusammenhängender Graph G = (V , E) mit
Gewichtsfunktion ω : E → R
Gesucht: Spannbäume mit minimalem Gewicht
für jede Zusammenhangskomponente von G
Hier: alle Kantengewichte verschieden (keine Einschränkung)
minimaler Spannbaum / minimaler Spannwald
eindeutig
keine isolierten Knoten
442
Erinnerung: DAP 2
Kruskals Algorithmus O (m log m)
Primes Algorithmus O (n log n + m)
(Unterschied wie Bildung eines Kreises vermieden wird)
Offen: Existiert deterministischer Algorithmus mit
linearer Laufzeit?
Hier: randomisierter Algorithmus mit
erwarteter linearer Laufzeit
443
Algorithmus von Borůvka
Für Knoten v ∈ V sei ev unter allen zu v inzidenten Kanten
diejenige mit kleinstem Gewicht, also
ω(ev ) = min{ω(e) | e = (v , w ) ∈ E}
Sei EV Menge der leichtesten“Kanten:
”
EV = {ev | v ∈ V }
Lemma:
MSF von G = (V , E) enthält alle Kanten aus EV .
444
Beweis:
Sei T ein MSF mit Kantenmenge ET und ev ∈ EV mit ev ∈ET .
(V , ET ∪ {ev }) enthält Kreis mit zwei Kanten
ev = (v , u), (v , w )
ω(ev ) < ω(v , w ) nach Definition ev
Einfügen von ev und Löschen von (v , w )
führt zu Spannwald mit geringerem Gewicht.
445
Algorithmus: Borůvka-Phase (1)
Eingabe: Graph G = (V , E) mit Kantengewichtung
ω:E →R
Ausgabe: Graph G′ und Kantenmenge EV
Graph der aus G entsteht,
wenn Kanten aus EV kontrahiert werden
1) Bestimme Menge EV der leichtesten Kanten ev für alle
Knoten v ∈ V .
446
Algorithmus: Borůvka-Phase (2)
2) Berechne G′ := G/EV , d.h. kontrahiere alle Kanten aus
EV in G.
a
d
a
d
e
b
f
g
c
e
b
f
g
c
∈ EV
eliminiere Schleifen
eliminiere alle parallelen Kanten bis auf die leichteste
7
3
3
4
3) Gib G′ und EV zurück.
447
Beobachtung:
Borůvka-Phase kann mit Laufzeit O (n + m) implementiert
werden.
Schritt 1 mittels Durchlauf durch die Adjazenzlisten realisierbar. Anschließend in Schritt 2 Zusammenhangskomponenten von (V , EV ) bestimmen.
Lemma:
Für jeden ungerichteten Graphen G und jeden MSF
F ′ = (V ′ , EF′ ) von G′ = G/EV ist F = (V , EF′′ ∪ EV ) ein MSF
von G, wobei EF′′ die Teilmenge der Kanten in G ist, welche
zu EF′ korrespondieren.
448
Beweis:
• Kanten aus EV Teilmenge der Kanten des MSFs
• MSF F ′′ von G
Spannwald F ′′ /EV von G′
ω(F ′′ /EV ) ≥ ω(F ′ ) für MSF F ′
von G′
• EF′′ Teilmenge der Kanten in G, welche zur
Kantenmenge von F ′ korrespondiert, also
ω(F ′ ) = ω((V , EF′′ ))
P
P
′
′′
ω(F ) +
ω(e)= ω((V , EF )) +
ω(e)
e∈EV
e∈EV
X
ω(e)
≤ ω(F ′′ /EV ) +
|
{z
e∈EV
ω(F ′′ )
(V , EF′′ ∪EV ) Spannwald von G
}
(V , EF′′ ∪EV )
MSF von G
gilt, denn zyklenfrei und
aufspannend
449
Beobachtung:
(V , EV ) enthält keine isolierten Knoten und von jedem
Knoten aus V geht mindestens eine Kante aus
→ (V , EV ) enthält höchstens n/2
Zusammenhangskomponenten
→ G′ = G/EV enthält höchtstens n/2 Knoten
Algorithmus mit Laufzeit O ((n + m) log n) für MSF
450
Schwere Kanten
Definition: MSF-Verifikationsproblem
Geg.: ungerichteter Graph G = (V , E) mit Gewichtsfunktion
ω : E → R und aufspannender Wald F von G
Frage: Ist F ein MSF für G?
Bekannt: Algorithmus mit Laufzeit O (n + m)
Komlós (1985), King (1997), Hagerup (2009)
Jetzt: Kriterium, wie man erkennen kann, ob aufspannender
Wald minimal ist
451
F aufspannender Wald von G = (V , E)
Kanten aus F
u
PF (u, v )
ωF (u, v ) :=
v
⇔ u und v liegen in
Zusammenhangskomponente von F

max{ω(e) | e liegt auf PF (u, v )}, falls PF (u, v )




existiert








eindeutig,
wenn existent
∞,
sonst
452
Definition:
Sei F aufspannender Wald von G = (V , E).
Kante (u, v ) ∈ E heißt F -schwer, wenn ω(u, v ) > ωF (u, v )
gilt, ansonsten heißt (u, v ) F -leicht.
Beobachtung:
• Alle Kanten in F sind F -leicht.
• Kante (u, v ) ∈ E ist F -schwer, wenn alle Kanten auf
Weg PF (u, v ) in F ein kleineres Gewicht als ω(u, v )
haben.
453
Lemma:
Sei F ein (beliebiger) aufspannender Wald von G = (V , E)
und (u, v ) ∈ E eine F -schwere Kante. Dann ist (u, v ) keine
Kante im MSF von G.
Beweis:
Annahme: Sei F ′ = (V , E ′ ) MSF für G und (u, v ) ∈ E ′ .
• Es gibt Pfad PF (u, v ) in F dessen Kanten alle leichter
als ω(u, v ) sind.
• Es gibt Kante e auf PF (u, v ), so dass
F ′′ = (V , (E ′ \(u, v )) ∪ e) zyklenfrei.
F ′′ aufspannender Wald
• ω(F ′′ ) < ω(F ′ )
454
Lemma:
Sei F = (V , EF ) ein aufspannender Wald von G = (V , E). F
ist genau dann MSF von G, wenn EF alle F -leichten Kanten
von E enthält.
Beweis:
⇒ F MSF von G
EF enthält keine F -schweren Kanten.
Annahme: Es gibt F -leichte Kante e = (u, v ) in E\EF .
F ′ = (V , (EF \e′ ) ∪ e) ist zyklenfrei für alle e′ auf
PF (u, v ) in F
F ′ aufspannender Wald
Sei e′′ Kante mit maximalem Gewicht auf PF (u, v )
F ′′ = (V , (EF \e′′ ) ∪ e) hat geringeres
Gewicht als F .
⇐ F -schwere Kanten führen zu keiner Verbesserung
F ist MSF von G.
455
Verifikationsalgorithmus für MSF :
Enthält F alle F -leichten Kanten des gegebenen Graphen?
Satz:
Sei G ungerichteter Graph mit Gewichtsfunktion ω und F
aufspannender Wald von G.
Es gibt einen deterministischen Algorithmus, der in Laufzeit
O (n + m) alle F -schweren Kanten in G findet.
456
Negative Binomialverteilung
Definition:
Sei p die Wkeit, dass bei einem Münzwurf Kopf, und 1 − p
die Wkeit, dass bei einem Münzwurf Zahl erscheint.
Sei X eine Zufallsvariable, welche angibt, wie oft die Münze
geworfen werden muss, bis r Mal das Ergebnis Kopf kommt,
dann ist X negativ binomialverteilt mit den Parametern r und
p.
Satz:
Sei X negativ binomialverteilt mit den Parametern
r und p.
−1
pr (1 − p)k −r
Dann gilt für alle k ≥ r : Pr (X = k ) = kr −1
E[X ] = pr und V (X ) = r (1−p)
p2
457
Zufällige Stichproben für die MST -Berechnung
Idee: Randomisierung nutzen, um Kanten zu finden, die auf
keinen Fall im MSF enthalten sind
Lemma:
Sei G = (V , E) ungerichteter Graph mit Gewichtsfunktion
ω : E → R, n Knoten und m Kanten. Teilgraph G(p) entsteht
aus G indem jede Kante von G unabhängig mit
Wahrscheinlichkeit p, 0 < p < 1, in die Kantenmenge von
G(p) aufgenommen wird. Sei F MSF in G(p) und X Anzahl
von F -leichten Kanten in G. Dann wird X stochastisch
dominiert von einer Zufallsvariablen mit negativer
Binomialverteilung zu den Parametern n und p.
Insbesondere gilt E[X ] ≤ pn .
458
Beweis:
Unerwünschte Abhängigkeiten innerhalb Analyse vermeiden
Prinzip der verzögerten Entscheidung
Jede Kante wird unabhängig von allen anderen Kanten in
G(p) aufgenommen.
Reihenfolge in der Kanten
betrachtet werden beliebig
Idee: G(p) und F gleichzeitig konstruieren
Kanten werden nach aufsteigendem Gewicht
betrachtet:
ω(e1 ) < ω(e2 ) < ... < ω(em )
– mit Wkeit p wird ei in G(p) aufgenommen
– ei wird in F aufgenommen,
wenn ei im bereits vorhandenen Teilwald
verschiedene ZKs verbindet
459
Beweis (Fortsetzung):
1. G0 (p) = (V , E0 ) := (V , ∅) und F0 = (V , ∅)
2. for i = 1 to m
3.
wirf gewichtete Münze mit Kopfwkeit p
if Münze zeigt Kopf then
4.
5.
Gi (p) = (V , Ei ) mit Ei := Ei−1 ∪ {ei }
6.
if ei schließt keinen Kreis in Fi−1 then
′
7.
Fi = (V , Ei′ ) mit Ei′ := Ei−1
∪ {ei }
8.
else
9.
Fi = (V , Ei′ ) := Fi−1
10.
end if
11. else
12.
Gi (p) = (V , Ei ) := Gi−1 (p) und Fi = (V , Ei′ ) := Fi−1
13. end if
14. end for
15. G(p) := Gm (p) und F := Fm
460
Beweis (Fortsetzung):
Beobachtung:
• Kanten in aufsteigender Reihenfolge
F Wald der von Kruskals
Algorithmus generiert wird
F MSF von G(p)
• ei Fi -leicht ⇔ ei verbindet verschiedene ZKs in Fi−1
⇒v
in F
ei
u
i −1
v
und alle Kanten auf diesem Weg haben
geringeres Gewicht als ei
u
Fi − 1
⇐ es gibt nur einen Weg, nämlich ei selbst X
• ei nicht in Fi (jedoch in Gi (p))
ei Fi -schwer
Fi Teilgraph von F
−−−−−−−−−−−−→ F -schwer
• ei Fi -leicht
ei F -leicht, denn ω(ei ) < ω(ej ), i < j
461
Beweis (Fortsetzung):
Ziel: # F -leichter Kanten in G bestimmen
Idee: Entscheidungskriterien bzgl. Aufnahme von ei
in F umdrehen
ei schließt keinen Kreis in Fi −1
nein
ja
Münze zeigt Kopf
nein
weiter“
”
ja
ei in Gi (p)
aufnehmen
Münze zeigt Kopf
nein
weiter“
”
ja
ei in Gi (p)
aufnehmen
Fi = (V , Ei′) mit Ei′ := Ei′−1 ∪ {ei }
462
Beweis (Fortsetzung):
Beobachtung:
l # Kanten in F , l ≤ n − 1
# F -leichte Kanten =
ˆ # Münzwürfe bis l-mal Kopf
l hängt vom Zufallsexperiment ab,
Prozess stoppt, wenn alle Kanten betrachtet worden sind
Jetzt: Modifikation solange Münze werfen bis (n − 1)-mal
Kopf
höchstens mehr Münzwürfe
Z =
ˆ # Münzwürfe
Pr(X > k ) ≤ Pr(Z > k )
Z dominiert X stochastisch
E[Z ] ≥ E[X ] (Folie 256)
463
Beweis (Fortsetzung):
Z Zufallsvariable, die angibt, wie oft Münze mit Wkeit p für
Kopf geworfen werden muss bis
(n − 1)-mal Kopf erscheint
Z negativ binomialverteilt mit Parameter n − 1
und p
n
E[X ] ≤ E[Z ] ≤ n−1
<
p
p
464
Algorithmus: Random-Sample-MSF
Eingabe: ungerichteter Graph G = (V , E) mit
Gewichtsfunktion ω : E → R
Ausgabe: MSF für G
1) Führe drei Borůvka-Phasen durch.
Sei C Menge der kontrahierten Kanten und G′ der
resultierende Graph.
2) Konstruiere zufälligen Graphen G′ (p) mit p = 21 .
3) Berechne rekursiv MSF F für G′ (p).
4) Berechne alle F -schweren Kanten in G′ und lösche
diese aus G′ . Sei G′′ der resultierende Graph.
5) Berechne rekursiv MSF T für G′′ .
6) Gib C und Kanten von T zurück.
465
Satz:
Algorithmus Random-Sample-MSF hat eine erwartete
Laufzeit von O (n + m).
Beweis:
Rekursionsbaum für Random-Sample-MSF
G mit n Knoten, m Kanten
Rekursionstiefe
Zeile 5
Zeile 3
O (log n)
höchstens
n/8 Knoten,
m1 Kanten
Zeile 3
höchstens
n/82 Knoten
höchstens
n/8 Knoten,
m2 Kanten
Zeile 5
höchstens
n/82 Knoten
466
Beweis (Fortsetzung):
Beobachtung:
• Zeitbedarf für Abarbeitung jedes Knotens im
Rekursionsbaum linear in Anzahl der Knoten und
Kanten im jeweiligen Teilgraphen
reicht z.z. dass erwartete Anzahl der Knoten
und Kanten aller Teilgraphen
O (n + m)
• Isolierte Knoten benötigen keine weiteren
Berechnungsschritte.
Annahme, dass sie bei jedem rekursiven Aufruf
bereits aus jeweiligem Teilgraphen gelöscht wurden
Knotenanzahl beschränkt durch:
log
∞
P
Pn d
d
n4−d = 4/3 · n
2 n/8 <
d=0
d=0
# Knoten auf Ebene d im Rekursionsbaum
467
Beweis (Fortsetzung):
Kantenanzahl:
Dekomposition des Rekursionsbaums in linke Pfade
X # Kanten in einem Teilproblem
Y # Kanten im linken Teilproblem
E[Y | X = k ] ≤ k /2 für alle k ∈ N
E[Y ] ≤ E[X ]/2
jede Kante wird
entweder bei den drei
Borůvka-Phasen
gelöscht (Schritt 1)
oder nur mit Wkeit 12
übernommen
(Schritt 2)
erwartete Gesamtzahl aller Kanten
im linken Pfad nach unten höchstens
∞
P
k /2i = 2k (wobei k # Kanten im Ausgangsknoten
i=0
des linken Pfades)
468
Beweis (Fortsetzung):
– erwartete Anzahl
Kanten im linken
”
Wurzel-Blatt-Pfad“
höchstens 2m
– erwartete Anzahl Kanten in roten Teilgraphen höchstens
doppelt so groß wie Knotenanzahl
höchstens 2 · 43 n
(Lemma Folie 458)
– ... in linken Pfaden“ mit rotem Startproblem höchstens
4 ”
4 · 3n
469
Beweis (Fortsetzung):
Insgesamt: O (n) Knoten und O (n + m) Kanten
im Erwartungswert
≤2·m
Kanten
≤ 2 · 4/3 · n
Kanten
≤ 4 · 4/3 · n
Kanten
470
Satz:
Algorithmus Random-Sample-MSF benötigt mit Wkeit
1 − e−Ω(m) nur O (n + m) Schritte.
Beweis:
z.z. Mit Wkeit 1 − e−Ω(m) enthalten alle Teilprobleme
des Rekursionsbaums zusammen O (m) Kanten.
• rechte Teilprobleme:
Erinnerung: (Folie 462)
ei schließt keinen Kreis in Fi −1
ja
enthält F -leichte Kanten
des
Vorgängergra”
phen“
Münze zeigt Kopf
ja
ei in Gi (p) und Fi aufnehmen
471
Beweis (Fortsetzung):
ei Kante eines Waldes
Wald enthält höchstens |V | − 1 Kanten
# Waldkanten in rechten Teilproblemen
kleiner als Knotenanzahl in rechten Teilproblemen
log
∞
P
Pn d n
n4−d = n/3
2 8d <
d=1
d=1
Beobachtung:
Für jede leichte Kante ist Münze geworfen worden
Zufallsvariable, die Anzahl leichter Kanten angibt,
wird stochastisch dominiert von Zufallsvariable, die
negativ binomialverteilt ist mit Parameter n/3 und 21
472
Beweis (Fortsetzung):
Erwartungswert für Anzahl leichter Kanten
nach oben durch 2 · n/3 beschränkt
Erinnerung:
Für Zufallsvariable X mit X = X1 + X2 + · · · + Xn für
n unabhängige Indikatorvariablen Xi mit Pr(Xi ) = pi ,
1 ≤ i ≤ n und 0 ≤ pi ≤ 1, und Erwartungswert E[X ] gilt:
Pr(X ≥ R) ≤ 2−R für R ≥ 5 · E[X ]
Wkeit, dass in den rechten Teilproblemen“ mindestens
”
(log e) · (5 · 2/3 · n + m) Kanten vorkommen, höchstens
e−(10/3·n+m)
473
Beweis (Fortsetzung):
• linke Teilprobleme:
enthält Kante des Vorgängergraphen“
”
1
mit Wkeit 2
(Borůvka-Phasen werden
nicht berücksichtigt)
– Kante im Wurzelproblem oder einem rechten
Teilproblem erzeugt Sequenz von Kantenkopien in
linken Teilproblemen, wobei jede Kopie durch
unabhängigen Münzwurf erzeugt wird (mit Resultat
Kopf“)
”
– Sequenz der Kopien endet, wenn Resultat Zahl“
”
erscheint
# Ergebnis Zahl entspricht # Sequenzen, also # Kanten
im Wurzelproblem und in allen rechten Teilproblemen
474
Beweis (Fortsetzung):
Anzahl Kanten in linken Teilproblemen entspricht Anzahl
Kopfergebnisse
Anzahl Kopfergebnisse höchstens Anzahl aller
Münzwürfe in linken Teilproblemen
Sei m′ Anzahl Kanten im Wurzelproblem oder einem rechten
Teilproblem. Sei X Zufallsvariable, die Anzahl aller
Münzwürfe angibt.
X negativ binomialverteilt mit Parameter m′ und
1
′
E[X
]
=
2
·
m
2
Wkeit, dass in linken Teilproblemen (inklusive
Wurzelproblem) mindestens (log e) · 10 · m′ Kanten
−10m′
vorkommen, höchstens e
475
Beweis (Fortsetzung):
Wkeit, dass in rechten Teilproblemen und im
Wurzelknoten mindestens
(log e)(10/3 · n + m) + m Kanten vorkommen
|
{z
}
m′
oder in linken Teilproblemen mindestens
(log e)10 · m′ Kanten vorkommen,
−10·m′
−(10/3·n+m)
= e−Ω(m)
+e
ist höchstens e
Mit Wkeit 1 − e−Ω(m) benötigt Algorithmus
Random-Sample-MSF nur O (n + m) Schritte X
Bemerkung:
Mit weiteren Chernoff-Schranken ist eine feinere Analyse
möglich.
476
Kapitel 9 Approximationsalgorithmen
Hier: approximative Algorithmen zur
Bestimmung von Lösungen mit beweisbarer Qualität
für NP-harte Optimierungsprobleme
– Verdrahtungsproblem
– MAXSAT
– HITTING SET
477
Kapitel 9.1 Verdrahtungsproblem
Beispiel:
2
3
3
1
Netz =Teilmenge
b
der Gatter
die verbunden werden
sollen
Hier: Netze der Kardinalität 2
2
2
Grenze
1
1
3
A
B
C
Randbedingung:
# Drähte, die durch horizontale bzw.
vertikale Grenze verlaufen,
durch Parameter ω beschränkt
Globale Verdrahtung:
Für jedes Netz Gatter angeben,
über die die Drähte verlaufen.
Hier: Drähte dürfen auf dem
Weg vom Start- zum
Zielknoten nur
einmal abbiegen
478
• Gegeben: Netze über n Gatter und ω
Frage: Gibt es globale Verdrahtung mit Parameter ω?
• Gegeben: Netze über n Gatter
Gesucht: Minimales ω, so dass es globale Verdrahtung mit
Parameter ω gibt
Beobachtung:
Drähte dürfen nur einmal abbiegen
höchstens 2 Wahlmöglichkeiten
479
Variablen hi und vi für Netz i:
(hi , vi ) = (1, 0) =
b Startort wird zunächst
horizontal verlassen
(hi , vi ) = (0, 1) =
b ... zunächst vertikal verlassen
Tb,hor := {i | Draht zu Netz i verläuft durch b, wenn hi = 1}
Tb,ver := {i | Draht zu Netz i verläuft durch b, wenn vi = 1}
Beispiel:
2
3
3
1
b = AB3
2
Tb,hor = {1}
2
Tb,ver = {2}
1
min ω
1
3
A
B
C
∀i : hi , vi ∈ {0, 1} und
hi + vi = 1
NP-hart
∀b :
P
i∈Tb,hor
hi +
P
i∈Tb,ver
vi ≤ ω
480
Exkurs Lineare Programme (LP)
Lineare Zielfunktion c(x1 , ..., xn ) := c1 x1 + · · · + cn xn
Aufgabe: Zielfunktion minimieren unter Randbedingung,
dass (x1 , ..., xn ) Reihe linearer Bedingungen erfüllt:
reelle
Koeffizienten
a11 x1 + · · · + a1n xn ≤ d1
a21 x1 + · · · + a2n xn ≤ d2
..
..
.
.
am1 x1 + · · · + amn xn ≤ dm
Bekannt: LP ∈ P
Lösung copt und zugehörige Belegung der
Variablen x1 , ..., xn
481
Relaxation: ∀i : hi , vi ∈ [0, 1]
Lineares Programm, das effizient lösbar ist
Lösungen ω LP , hiLP , viLP
Offensichtlich: ω LP ≤ ωopt
Idee: hiLP , viLP
Runden
hi , vi mit hi , vi ∈ {0, 1}
Frage: Wie wird gerundet?
Wie gut ist die erhaltene Lösung?
482
Randomisiertes Runden
Gegeben: Variablen x1 , ..., xT ∈ [0, 1]
Setze xi∗ := 1 mit Wahrscheinlichkeit xi und
xi∗ := 0 mit Wahrscheinlichkeit 1 − xi für 1 ≤ i ≤ T
Offensichtlich: E[xi∗ ] = xi für 1 ≤ i ≤ T
Deterministisches Runden
Setze xi∗ := 1, wenn xi ≥ 12 und
xi∗ := 0 sonst für 1 ≤ i ≤ T
483
hiLP , viLP Randomisiertes
hi , vi
Runden
mit (hi , vi ) := (1, 0) mit Wahrscheinlichkeit hiLP und
(hi , vi ) := (0, 1) sonst
Frage: Wie gut ist die erhaltene Lösung?
Definition:
∗
∗
∆
(µ,
ε
)sei das kleinste δ > 0, so dass
eδ
(1+δ)1+δ
(
µ
≤ ε∗
Folie 354)
484
Satz:
Sei 0 < ε < 1. Mit Wkeit mindestens 1 − ε liefert
Randomisiertes Runden mit der Lösung des LPs eine
globale Verdrahtung, für deren Parameter ω gilt
ε
)
ω ≤ ωopt (1 + δ) mit δ := ∆+ (ωopt , 2n
Beweis:
ω(b) =
P
hi +
i∈Tb,hor
E[ω(b)] =
P
P
i∈Tb,ver
E[hi ] +
i∈Tb,hor
=
P
i∈Tb,hor
vi
P
E[vi ]
i∈Tb,ver
hiLP
+
P
i∈Tb,ver
viLP ≤ ω LP ≤ ωopt
485
Beobachtung:
hi , vi Zufallsvariablen mit Werten aus {0, 1}
hi , hi ′ unabhängig für i 6= i ′ , analog vi , vi ′
i kann nicht in Tb,hor und in Tb,ver liegen
ω(b) Summe unabhängiger Zufallsvariablen mit
Werten aus {0, 1}
Pr(ω(b) ≥ (1 + δ)ωopt )≤
eδ
(1+δ)1+δ
ωopt
Chernoff-Schranke
Folie 354 i)
ε
Wähle δ := ∆∗ (ωopt , 2n
)
Pr(ω(b) ≥ (1 + δ)ωopt ) ≤
ε
2n
486
Frage: # Grenzen ?
√
√
2( n − 1) n < 2n
union bound
Wahrscheinlichkeit, dass für mindestens eine
Grenze b ω(b) ≥ ωopt (1 + δ) gilt,
durch ε beschränkt
487
Satz:
Deterministisches Runden liefert eine globale Verdrahtung
mit Parameter ω ≤ 2 · ωopt
Beweis:
hi ≤ 2hiLP , denn hiLP <
vi ≤ 2viLP
P
i∈Tb,hor
hiLP
+
P
i∈Tb,ver
1
2
viLP
hi = 0
≤ω
LP
P
i∈Tb,hor
hi +
P
i∈Tb,ver
vi ≤ 2ω LP
≤ 2ωopt
488
Kapitel 9.2 MAXSAT
m Klauseln C1 , ..., Cm
n Variablen X1 , ..., Xn
Gegeben: Konjunktive Form F , wobei jede Klausel
reduziert“ ist, d.h. keine Klausel stellt die konstante
”
1-Funktion dar und Literale kommen in keiner Klausel
mehrfach vor
Aufgabe: Finde Variablenbelegung, die möglichst viele
Klauseln erfüllt.
Variante: MAX -k -SAT
Jede Klausel enthält genau k Literale
Bekannt: MAX -k -SAT für k ≥ 2 NP-hart
489
Lemma 1:
Seien a1 , ..., ak ≥ 0. Dann gilt:
a1 · ... · ak ≤
a1 +···+ak k
k
(Geometrisches Mittel nicht größer als arithmetisches Mittel)
Lemma 2:
Sei x ∈ [0, 1]. Dann gilt für k ∈ N:
1 − (1 − xk )k ≥ (1 − (1 − k1 )k ) · x
490
Ein einfacher randomisierter Algorithmus
Algorithmus:
Setze jede Variable zufällig unabhängig mit
Wahrscheinlichkeit 12 auf 1, sonst auf 0.
Behauptung: Erwartete Anzahl erfüllter Klauseln
für die durch den obigen Algorithmus
generierte Variablenbelegung ist (1 −
(MAX -k -SAT )
1
)
2k
·m
491
Beweis:
Indikatorvariable Xi mit
1, wenn Klausel Ci erfüllt
Xi =
0, sonst
2k −1
2k
Pr(Xi = 1) =
= 1 − 21k
m
m
P
P
X =
Xi und E[X ] = E[ Xi ] = (1 −
i=1
i=1
1
)
2k
·m
Linearität des Erwartungswertes
# erfüllter Klauseln
492
z1 , ..., zm Indikatorvariablen, die angeben, ob die
zugehörigen Klauseln erfüllt sind
Zielfunktion: max z1 + · · · + zm
Nebenbedingungen:
y1 , ..., yn , z1 , ..., zm ∈ {0, 1}
P
P
yi +
(1 − yi ) ≥ zj für 1 ≤ j ≤ m
i|xi ∈Cj
i|xi ∈Cj
=
b zj = 1
mindestens ein erfülltes Literal in Cj
maximaler Wert der Zielfunktion entspricht
maximaler Anzahl gleichzeitig erfüllbarer
Klauseln
493
Algorithmus:
Relaxation y1 , ..., yn , z1 , ..., zm ∈ [0, 1]
optimale Lösung y1LP , ..., ynLP , z1LP , ..., zmLP
Randomisiertes Runden: xi mit Wkeit yiLP auf 1
mit Wkeit 1 − yiLP auf 0
setzen
Satz:
Sei opt maximale Anzahl an gleichzeitig erfüllbaren
Klauseln. Die erwartete Anzahl erfüllter Klauseln des obigen
Algorithmus ist mindestens (1 − (1 − k1 )k )opt ≥ (1 − e1 )opt .
494
Wesentliche Idee: opt ≤
m
P
i=1
ziLP
Lemma:
Sei y1LP , ..., ynLP , z1LP , ..., zmLP eine Lösung des reduzierten
Problems. Die Wkeit, dass die j-te Klausel beim
Randomisierten Runden erfüllt wird, ist mindestens
(1 − (1 − k1 )k ) · zjLP ≥ (1 − e1 ) · zjLP .
Beweis:
Betrachte o.B.d.A. Klausel Cj = x1 ∨ · · · ∨ xk .
• Wkeit, dass Cj beim Randomisierten Runden erfüllt
wird,
k
Q
1 − (1 − yiLP )
• y1LP + · · ·
i=1
+ ykLP
≥ zjLP
(1 − y1LP ) + · · · + (1 − ykLP ) ≤ k − zjLP
495
Beweis (Fortsetzung):
(1 − y1LP ) + · · · + (1 − ykLP ) ≤ k − zjLP
Lemma 1
Folie 490
−−−−−−−→
k
Q
i=1
(1 −
yiLP )
≤
k −zjLP
k
k
k
k
Y
LP
k −zj
LP
(1 − yi ) ≥ 1 −
1−
k
|
i=1
{z
}
Wkeit,
dass Cj erfüllt ist
Lemma 2
Folie 490
≥
1 k LP
(1 − (1 − ) )zj
|
{z k }
≥1− 1e
Xj Indikatorvariable, die angibt, ob Cj erfüllt ist
E[Xj ] ≥ (1 − e1 )zjLP
496
Beweis (Fortsetzung):
X = X1 + · · · + Xm
Erinnerung: E[Xj ] ≥ (1 − e1 )zjLP
# gleichzeitig
erfüllter Klauseln
E[X ] =
m
P
j=1
E[Xj ] ≥ (1 − e1 )
m
P
j=1
zjLP ≥ (1 − e1 )opt
Erwartete Anzahl erfüllter Klauseln mindestens
• (1 − 21k )m
(einfacher Algo)
• (1 − (1 − k1 )k )opt
(Randomisiertes Runden)
k
1
2
3
4
5
1 − (1 − k1 )k
1
0,75
0,704
0,684
0,672
1 − 21k
0,5
0,75
0,875
0,938
0,969
497
Idee: Kombiniere beide Algorithmen,
d.h. starte beide Algorithmen nacheinander
und gib das bessere Ergebnis aus
Algorithmus MIX (auch für MAXSAT )
Satz:
Erwartete Anzahl erfüllter Klauseln ist für MIX
mindestens 43 opt .
Beweis:
Hier: Algo 1 =
b einfacher Algo
Algo 2 =
b Algo mittels Randomisierten Rundens
Algo 3 : MIX
498
Beweis (Fortsetzung):
ni Zufallsvariable für Anzahl erfüllter Klauseln
in Lösung von Algorithmus i, i ∈ {1, 2, 3}
n3 = max{n1 , n2 } ≥
n1 +n2
2
lc =
b Länge Klausel C
m
m
P
P
E[n1 ] = (1 − 2−lcj ) ≥ (1 − 2−lcj )zjLP
E[n2 ] ≥
E[n3 ] ≥
j=1
m
P
j=1
1
2
j=1
(1 − (1 −
m
P
1 lcj
) )
lcj
· zjLP
((1 − 2−lcj ) + (1 − (1 −
j=1
1 lcj
LP
)
))z
j
lcj
!
499
Beweis (Fortsetzung):
Beobachtung:
k ≥ 2:
(1 −
1
)
2k
+
(1 − (1 − k1 )k ) ≥
3
2
k = 2:
3
4
+
3
4
=
3
2
k ≥ 3:
7
8
+
(1 − e1 )
≥
3
2
E[n3 ] ≥
1
2
=
3
4
·
m
P
3
j=1
m
P
j=1
≥ 43 opt
2
· zjLP
zjLP
500
Kapitel 9.3 HITTING SET
Definition:
Eingabe: Teilmengen S1 , ..., Sm ⊆ {1, 2, ..., n}
Ausgabe: T ⊆ {1, 2, ..., n} heißt Hitting Set für S1 , ..., Sm ,
wenn T ∩ Si 6= ∅ für alle i = 1, 2, ..., m.
Gesucht ist ein Hitting Set minimaler Kardinalität.
Beispiel:
• T = {1, 2, ..., n} ist ein Hitting Set
• n=9
S1 = {1, 3, 5, 7} S2 = {2, 4, 5, 8} S3 = {3, 4, 6, 9}
T = {1, 4} Hitting Set minimaler Kardinalität
501
Behauptung:
Gegeben sei eine Eingabe für das Problem HITTING SET.
Mittels des Randomisierten Rundens kann ein Hitting Set T
gefunden werden mit | T |≤ 4(ln m + O (1))copt , wobei copt
die minimale Kardinalität eines Hitting Set für die gegebene
Eingabe bezeichnet.
Beweis:
min
n
P
xi
i=1
∀i : xi ∈ {0, 1}
P
xi ≥ 1
∀j :
i∈Sj
Relaxation ∀i : xi ∈ [0, 1]
optimale Lösung des LPs
Zielfktwert c LP sowie
Variablenbelegung x1LP , ..., xnLP
502
c LP = x1LP + · · · + xnLP und c LP ≤ copt
Randomisiertes Runden
E [| T |] = c LP
o.B.d.A. Sj = {1, ..., k }
Pr(Sj ∩ T = ∅) = (1−x1LP ) · · · · · (1 − xkLP )
mit Wkeit x1LP
wird Element 1
in T aufgenommen
Nebenbedingung
P
i∈Sj
xi ≥ 1
Lemma1
x1LP + · · · + xkLP ≥ 1
(1 − x1LP ) + · · · + (1 − xkLP ) ≤ k − 1
−−−−−→ (1 − x1LP ) · ... · (1 − xkLP ) ≤ e−1
Folie 490
503
union
bound
−−−−→ Wkeit, dass es eine Menge Si , 1 ≤ i ≤ m, gibt,
die von T nicht abgedeckt“ wird,
”
höchstens m · e−1
: −(
für m ≥ e
Idee: Löse das LP und führe t mal
unabhängig voneinander Randomisiertes Runden durch
t Mengen T1 , ..., Tt mit E[|Ti |] = c LP für 1 ≤ i ≤ t
t
S
Ti
T :=
i=1
E[|T |] = E[|T1 ∪ ... ∪ Tt |] ≤ t · c LP ≤ t · copt
und Pr(Sj ∩ T = ∅) ≤ e−t
504
Wähle t = ln m + ln 4
Pr(|T | ≥ 4 · t · copt ∨ ∃i : Si ∩ T = ∅)
union
bound
≤ Pr(|T | ≥ 4 · t · copt ) + Pr(∃i : Si ∩ T = ∅)
≤ 14 + me−(ln m+ln 4) = 12
MarkoffUngleichung
Mit Wahrscheinlichkeit mindestens 12 wird mit Hilfe der
Methode des Randomisierten Rundens ein Hitting Set
generiert, das höchstens um den Faktor 4(ln m + ln 4)
größer ist als eins minimaler Kardinalität.
505
Herunterladen