KÜRZESTE WEGE - Forschungsgruppe Paralleles...
Transcript of KÜRZESTE WEGE - Forschungsgruppe Paralleles...
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
34
KÜRZESTE WEGE
Vorlesung 2
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
35
Kürzeste Wege im Graphen Motivation
! Heute: ! Kürzeste Wege von einem Knoten (SSSP) ! Kürzeste Wege zwischen allen Knotenpaaren (APSP)
! Viele Anwendungen: ! Navigationssysteme ! Oberflächenparameter ! Flugrouten ! Routenlayout ! Logistik, Verkehr ! Routing in Netzwerken
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
36
SSSP: DER ALGORITHMUS VON BELLMAN UND FORD
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
37
Kürzeste Wege
∑=
−=k
iii vvwpw
11 ),()(
! Definition: Sei ein gerichteter und gewichteter Graph G=(V,E) mit der Gewichtsfkt. w: E→R gegeben. Das Gewicht eines Weges p = <v0, v1, …, vk> ist die Summe der Gewichte seiner Kanten:
! Definition: Sei G=(V,E) wie oben. Das Gewicht eines
kürzesten Weges p zwischen u,v aus V ist definiert als:
! Definition: Sei G=(V,E) wie in Def. 1.2. Ein kürzester Weg zwischen u,v aus V ist ein Weg p mit w(p) = δ(u,v).
{ }vupwsonst
p
vu ⎯→⎯∞= :)(min{:),(δ
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
38
Bellman-Ford-Algorithmus
! Eingabe: Gewichteter Graph G=(V, E) mit Kantengewichten w und einem Startknoten s
! Ausgabe: Existenz eines Zyklus negativer Länge oder Länge der kürzesten Wege von s zu allen anderen Knoten
! Graphbasiert: s. Tafel
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
39
Beispiel [Cormen, Leiserson, Rivest, S. 533]
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
40
Algebraischer Bellman-Ford
! Herleitung: s. Tafel ! Eingabe und Ausgabe wie zuvor
Bellman-Ford(A, s) 1. d = ∞ 2. d(s) = 0 3. for k = 1 to N-1 do 4. d = d min.+ A 5. if d ≠ d min.+ A 6. return „negative-weight cycle found“ 7. return d
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
41
Fazit Bellman-Ford
Vorgehensweise: ! Reduzierung aufs Wesentliche (Relaxierung) ! Repräsentation der Datenstrukturen durch Vektoren und
Matrizen ! Halbringnotation für Relaxierung
Bewertung: ! Algebraische Schreibweise kompakter
! Fragen (MG): ! Welche Zeitkomplexität? ! Wie hoch im Vergleich zur graphbasierten Variante?
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
42
ALL-PAIRS SHORTEST PATHS
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
43
All Pairs Shortest Paths (APSP)
! Eingabe: Gewichteter Graph G=(V,E) ! Ausgabe: Für jedes Paar von Knoten u,v aus V die Distanz
von u nach v sowie einen kürzesten Weg
2
1
-1 5 8
4
-4
5
6
7
a
a b c d e f a 0 1 5 5 10 9 b ∞ 0 4 5 10 9 c ∞ -3 0 1 6 5 d ∞ -4 0 0 5 4 e ∞ 5 8 9 0 -1 f ∞ ∞ ∞ ∞ ∞ 0
b c
f
e d
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
44
All Pairs Shortest Paths (APSP)
! Eingabe: Gewichteter Graph G=(V,E) ! Ausgabe: Für jedes Paar von Knoten u,v in V die Distanz
von u nach v sowie einen kürzesten Weg
2 1
-1 5 8
4
-4
5
6
7
a
a b c d e f a 0 1 5 5 10 9 b ∞ 0 4 5 10 9 c ∞ -3 0 1 6 5 d ∞ -4 0 0 5 4 e ∞ 5 8 9 0 -1 f ∞ ∞ ∞ ∞ ∞ 0
b c
f
e d
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
45
Eine einfache Idee Lösung durch wiederholtes Single-source shortest path (SSSP)
! Von jedem Knoten aus SSSP-Problem lösen ! Algorithmen: Dijkstra, Bellman-Ford ! Anwendbarkeit?
Algorithmus Zeitkomplexität bei |V|-maliger Anwendung
Dijkstra (lineares Array) O(|V|³ + |V||E|) Dijkstra (binärer Heap) O(|V||E| log |V|) Dijkstra (Fibonacci-Heap) O(|V|² log |V| + |V||E|) Bellman-Ford O(|V|2 |E|)
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
46
All Pairs Shortest Paths
! Frage (MG): Sehen Sie Alternativen? Lassen sich bereits bekannte Techniken anwenden?
Graphenalgorithmen und lineare Algebra Hand in Hand
• Sei die Länge eines kürzesten i-j-Wegs bestehend
aus höchstens l Kanten.
)(lijd
⎪⎩
⎪⎨
⎧
≥+
≠=∞
==
=−
≤≤− 1 falls}),{min,min(
ji und 0 falls ,jiund 0 falls ,0
)1(1
)1(
)(
lwddll
d
kjliknk
lij
lij
• Matrix D(n) enthält die gesuchte Lösung
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
47
All Pairs Shortest Paths
! Umsetzung der Formel in einen Algorithmus, der wiederholt für fortgesetzte D aufgerufen wird:
Naive-Extend-Shortest-Path(D,W) 1. for iç1 to n do 2. for jç1 to n do 3. d‘ij ç ∞ 4. for k ç1 to n do 5. d‘ij ç min(d‘ij, dik + wkj) 6. return D´
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
48
Graphenalgorithmen und lineare Algebra Hand in Hand
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 0 2 ∞ 5 ∞ ∞
2 ∞ 0 4 ∞ ∞ ∞ 3 ∞ ∞ 0 1 ∞ 7
4 -3 4 6 0 5 ∞
5 ∞ ∞ 8 ∞ 0 -1
6 ∞ ∞ ∞ ∞ ∞ 0
2 1
-1 5 8
4
4
5
6
7
1
2 3
5 4
6
D D´
-3
All Pairs Shortest Paths
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
49
Graphenalgorithmen und lineare Algebra Hand in Hand
1 2 3 4 5 6
1 0 2 6 5 10 ∞
2 3 4 5 6
1 2 3 4 5 6
1 0 2 ∞ 5 ∞ ∞ 2 ∞ 0 4 ∞ ∞ ∞ 3 ∞ ∞ 0 1 ∞ 7
4 -3 4 6 0 5 ∞
5 ∞ ∞ 8 ∞ 0 -1
6 ∞ ∞ ∞ ∞ ∞ 0
2 1
-1 5 8
4
4
5
6
7
1
2 3
5 4
6 -3
All Pairs Shortest Paths
D D´
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
50
Graphenalgorithmen und lineare Algebra Hand in Hand
1 2 3 4 5 6
1 0 2 6 5 10 ∞
2 ∞ 0 4 5 ∞ 11
3 4 5 6
1 2 3 4 5 6
1 0 2 ∞ 5 ∞ ∞ 2 ∞ 0 4 ∞ ∞ ∞ 3 ∞ ∞ 0 1 ∞ 7
4 -3 4 6 0 5 ∞
5 ∞ ∞ 8 ∞ 0 -1
6 ∞ ∞ ∞ ∞ ∞ 0
2 1
-1 5 8
4
4
5
6
7
1
2 3
5 4
6 -3
All Pairs Shortest Paths
D D´
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
51
Graphenalgorithmen und lineare Algebra Hand in Hand
1 2 3 4 5 6
1 0 2 6 5 10 ∞
2 ∞ 0 4 5 ∞ 11
3 -2 5 0 1 6 7
4 5 6
1 2 3 4 5 6
1 0 2 ∞ 5 ∞ ∞
2 ∞ 0 4 ∞ ∞ ∞ 3 ∞ ∞ 0 1 ∞ 7
4 -3 4 6 0 5 ∞
5 ∞ ∞ 8 ∞ 0 -1
6 ∞ ∞ ∞ ∞ ∞ 0
2 1
-1 5 8
4
4
5
6
7
1
2 3
5 4
6 -3
All Pairs Shortest Paths
D D´
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
52
Graphenalgorithmen und lineare Algebra Hand in Hand
1 2 3 4 5 6
1 0 2 6 5 10 ∞
2 ∞ 0 4 5 ∞ 11
3 -2 5 0 1 6 7
4 -3 -1 6 0 5 4
5 6
1 2 3 4 5 6
1 0 2 ∞ 5 ∞ ∞
2 ∞ 0 4 ∞ ∞ ∞ 3 ∞ ∞ 0 1 ∞ 7
4 -3 4 6 0 5
5 ∞ ∞ 8 ∞ 0 -1
6 ∞ ∞ ∞ ∞ ∞ 0
2 1
-1 5 8
4
4
5
6
7
1
2 3
5 4
6 -3
All Pairs Shortest Paths
D D´
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
53
1 2 3 4 5 6
1 0 2 6 5 10 ∞
2 ∞ 0 4 5 ∞ 11
3 -2 5 0 1 6 7
4 -3 -1 6 0 5 4
5 ∞ ∞ 8 9 0 -1
6
1 2 3 4 5 6
1 0 2 ∞ 5 ∞ ∞
2 ∞ 0 4 ∞ ∞ ∞ 3 ∞ ∞ 0 1 ∞ 7
4 -3 4 6 0 5 ∞
5 ∞ ∞ 8 ∞ 0 -1
6 ∞ ∞ ∞ ∞ ∞ 0
2 1
-1 5 8
4
4
5
6
7
1
2 3
5 4
6 -3
All Pairs Shortest Paths
D D´
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
54
1 2 3 4 5 6
1 0 2 6 5 10 ∞
2 ∞ 0 4 5 ∞ 11
3 -2 5 0 1 6 7
4 -3 -1 6 0 5 4
5 ∞ ∞ 8 9 0 -1
6 ∞ ∞ ∞ ∞ ∞ 0
1 2 3 4 5 6
1 0 2 ∞ 5 ∞ ∞
2 ∞ 0 4 ∞ ∞ ∞
3 ∞ ∞ 0 1 ∞ 7
4 -3 4 6 0 5 ∞
5 ∞ ∞ 8 ∞ 0 -1
6 ∞ ∞ ∞ ∞ ∞ 0
2 1
-1 5 8
4
4
5
6
7
1
2 3
5 4
6 -3
All Pairs Shortest Paths
D D´
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
55
All Pairs Shortest Paths Slow-All-Pairs-Shortest-Paths(W) 1. D(1) ← W 2. for m ← 2 to n-1 do 3. D(m) ← Naive-Extend-Shortest-Path(D(m-1),W) 4. return D(n-1)
! Fragen (MG): ! Welche Zeitkomplexität? ! Wie geht es schneller?
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
56 56
All Pairs Shortest Paths
Faster-All-Pairs-Shortest-Paths(W) 1. D(1) ← W 2. m ← 1 3. while m < n-1 do 4. D(2m) ← Extend-Shortest-Path(D(m), D(m)) 5. m ← 2m 6. return D(m)
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
57
Zeitkomplexität
! Die while-Schleife wird O(log n) mal durchlaufen
! Das naive Erweitern der Pfade hat kubischen Aufwand
! Aber: Schnellere Algorithmen zur Multiplikation zweier Matrizen existieren
! Beste bekannte obere Schranke für MM(n): O(n2.373) (Williams, UC Berkeley)
! Beste bekannte untere Schranke für MM(n): O(n2)
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
58
Zusammenfassung APSP
! Man betrachtet kürzeste Wege der Länge höchstens l
! Die Länge l wird schrittweise erhöht, bis n-1 erreicht ist
! Fortgesetztes Quadrieren führt zu logarithmischer Laufzeit der äußeren Schleife
! Gesamtlaufzeit: O(MM(n) log n) ! In der Praxis meist: O(n3 log n) oder O(n2.807 log n)
! Aber: Pfadinformation geht verloren durch Beschleunigung
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
59
MAXIMALE UNABHÄNGIGE MENGEN
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
60
Aufgabe
! Sie richten eine Party aus und wollen Einladungen versenden
! Zu beachten: ! Unter ihren Freunden können sich einige
nicht leiden è „Feinde“ dürfen nicht gleichzeitig eingeladen werden
! Ziel: Möglichst viele Personen einladen
! Frage (MG): Wie modellieren Sie das Problem und wie lösen Sie es?
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
61
Unabhängige Menge im Graphen
! Definition: Sei G = (V, E) ein Graph. Eine unabhängige Menge in G ist eine Menge derart, dass gilt:
! Also: Von keiner Kante sind beide Endknoten in I
! Maximum independent set: Unabhängige Menge mit größtmöglicher Kardinalität in G
! Verwandtes Problem: Minimale Knotenüberdeckung
! Maximal independent set: Unabhängige Menge in G, die nicht erweiterbar ist
! Frage: Komplexität?
Graphenalgorithmen und lineare Algebra Hand in Hand
I ⊆Vu,v∈I ⇒ {u,v}∉V
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
62
Beispiele für unabhängige Mengen
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
63
Ein einfacher Algorithmus
Eingabe: Graph G = (V, E) Ausgabe: Nicht erweiterbare unabhängige Menge I 1. I = , V‘ = V 2. while (V‘ ≠ ) do
a) Wähle beliebiges v in V‘ b) Setze c) Setze
3. return I
! N(v) ist die Nachbarschaft eines Knotens v
Graphenalgorithmen und lineare Algebra Hand in Hand
I = I ∪ vV ' =V '\ (v∪ N(v))
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
64
Beispiel
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
65
Lubys Algorithmus
Eingabe: Graph G = (V, E) Ausgabe: Nicht erweiterbare unabhängige Menge I 1. I = , G‘ = G 2. while (G‘ ist nicht der leere Graph) do
a) Wähle eine zufällige Menge von Knoten S in V(G‘), indem jeder Knoten v unabhängig mit Wkt. 1/(2d(v)) gewählt wird
b) Für jede Kante (u, v) in E(G‘): Falls beide Endpunkte in S sind, dann entferne den Knoten mit kleinerem Grad aus S (Konflikte beliebig auflösen). Diese neue Menge wird S‘ genannt.
c) Setze und . 3. return I
! Die Nachbarschaft einer Knotenmenge ist die Vereinigung der einzelnen Nachbarschaften
Graphenalgorithmen und lineare Algebra Hand in Hand
I = I ∪ S ' G ' = G '\ (S '∪ N(S '))
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
66
Korrektheit
! In jedem Schritt wird die Menge S‘ hinzugefügt ! S‘ ist eine unabhängige Menge ! S‘ ist unabhängig zu I wegen der Löschung von ! => I ist immer eine unabhängige Menge
! I ist nicht erweiterbar (maximal) ! Alle aus G‘ entfernten Knoten sind entweder aus I oder aus N(I)
Graphenalgorithmen und lineare Algebra Hand in Hand
S '∪ N(S ')
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
67
Laufzeit
! Theorem: Die erwartete Anzahl von Runden ist O(log m).
! Sei Gj = (Vj, Ej) der Graph nach Runde j.
! Hauptlemma: Für ein c < 1 gilt: Ex(|Ej| / |Ej-1|) < c |Ej-1|
! Kategorisierung der Knoten v: ! Gut: Mindestens 1/3 der Nachbarn haben niedrigeren Grad als v ! Schlecht: Sonst
! Intuitiv: Ein guter Knoten hat gute Chancen für Aufnahme in I
! Kategorisierung der Kanten e: ! Schlecht: Beide Endpunkte von e sind schlecht ! Gut: Sonst
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
68
Viele gute Kanten
! Definition: Die Nachbarschaft kleineren Grades eines Knotens u in V ist definiert als:
L(u) := {v: v in N(u) ∧ d(v)≤ d(u)}
! Fakt: Ein Knoten u ist gut, falls |L(u)| ≥ d(u) / 3.
! Lemma: Für jeden Knoten u in V gilt: ! Lemma: ! Lemma: Falls v gut ist, dann Pr(v in N(I)) ≥ 1/36. ! Lemma: Mindestens die Hälfte der Kanten sind gut.
! Beweise: siehe Tafel
Graphenalgorithmen und lineare Algebra Hand in Hand
1 Grundlegende Graphenalgorithmen
Das folgende Lemma besagt, dass ein Knoten, der für S gewählt wird, mindestens mitWahrscheinlichkeit 1/2 auch in I aufgenommen wird.
Lemma 5. Für jeden Knoten u 2 V gilt: Pr(u 2 I |u 2 S) � 12 .
Proof. Zum Beweis beschränken wir das Gegenereignis Pr(u /2 I |u 2 S) von oben.Ein Knoten u 2 S wird genau dann nicht in I aufgenommen, wenn ein Nachbar mitmindestens gleich großem Grad in S aufgenommen wird. Daher gilt:
Pr(u /2 I |u 2 S) = Pr(9v 2 N(u), v 2 S, d(v) � d(u) |u 2 S)
X
v2N(u), d(v)�d(u)
Pr(v 2 S |u 2 S) X
v2N(u), d(v)�d(u)
Pr(v 2 S)
X
v2N(u), d(v)�d(u)
1
2d(u) d(u) · 1
2d(u)=
1
2
Lemma 6. Falls u 2 V gut ist, dannX
v2N(u)
1
2d(v)� 1
6
.
Proof.P
v2N(u)1
2d(v) �P
v2L(u)1
2d(v) �d(u)3 · 1
2d(u) =16 .
Aus den beiden vorigen Lemmas lässt sich nun ein weiteres Hilfsresultat folgern.
Lemma 7. 8u 2 V, Pr(u 2 I) � 14d(u) .
Proof. Pr(u 2 I) = Pr(u 2 I |u 2 S) · Pr(u 2 S) � 12 · 1
2d(v) �1
4d(u) .
Lemma 8. Sei e = (u, v) eine gute Kante. Dann gilt Pr(e entfernt) � 1/36.
Proof. Ohne Beschränkung der Allgemeinheit sei u gut. Dann lässt sich Pr(e entfernt)von unten durch Pr(u 2 I [ N(I)) beschränken. Letzteres schätzen wir nun ab. Dazubetrachten wir zwei Fälle. Der erste ist 9v 2 N(u), d(v) � 2. Nach Lemma 7 folgt
Pr(u 2 I [N(I)) � Pr(v 2 I) � 1
4d(v)� 1
8
.
Der zweite Fall ist das Komplement und muss detaillierter untersucht werden. Es giltalso nun für alle v 2 N(u) : d(v) � 3. Nach Lemma 6 gilt
X
v2N(u)
1
2d(v)� 1
6
.
Weil jeder Summand einzeln kleiner als 1/6 ist, lässt sich immer eine Teilmenge A ✓ N(u)derart finden, dass
1
6
X
v2A
1
2d(v) 1
3
.
3
1 Grundlegende Graphenalgorithmen
Das folgende Lemma besagt, dass ein Knoten, der für S gewählt wird, mindestens mitWahrscheinlichkeit 1/2 auch in I aufgenommen wird.
Lemma 5. Für jeden Knoten u 2 V gilt: Pr(u 2 I |u 2 S) � 12 .
Proof. Zum Beweis beschränken wir das Gegenereignis Pr(u /2 I |u 2 S) von oben.Ein Knoten u 2 S wird genau dann nicht in I aufgenommen, wenn ein Nachbar mitmindestens gleich großem Grad in S aufgenommen wird. Daher gilt:
Pr(u /2 I |u 2 S) = Pr(9v 2 N(u), v 2 S, d(v) � d(u) |u 2 S)
X
v2N(u), d(v)�d(u)
Pr(v 2 S |u 2 S) X
v2N(u), d(v)�d(u)
Pr(v 2 S)
X
v2N(u), d(v)�d(u)
1
2d(u) d(u) · 1
2d(u)=
1
2
Lemma 6. Falls u 2 V gut ist, dannX
v2N(u)
1
2d(v)� 1
6
.
Proof.P
v2N(u)1
2d(v) �P
v2L(u)1
2d(v) �d(u)3 · 1
2d(u) =16 .
Aus den beiden vorigen Lemmas lässt sich nun ein weiteres Hilfsresultat folgern.
Lemma 7. 8u 2 V, Pr(u 2 I) � 14d(u) .
Proof. Pr(u 2 I) = Pr(u 2 I |u 2 S) · Pr(u 2 S) � 12 · 1
2d(v) �1
4d(u) .
Lemma 8. Sei e = (u, v) eine gute Kante. Dann gilt Pr(e entfernt) � 1/36.
Proof. Ohne Beschränkung der Allgemeinheit sei u gut. Dann lässt sich Pr(e entfernt)von unten durch Pr(u 2 I [ N(I)) beschränken. Letzteres schätzen wir nun ab. Dazubetrachten wir zwei Fälle. Der erste ist 9v 2 N(u), d(v) � 2. Nach Lemma 7 folgt
Pr(u 2 I [N(I)) � Pr(v 2 I) � 1
4d(v)� 1
8
.
Der zweite Fall ist das Komplement und muss detaillierter untersucht werden. Es giltalso nun für alle v 2 N(u) : d(v) � 3. Nach Lemma 6 gilt
X
v2N(u)
1
2d(v)� 1
6
.
Weil jeder Summand einzeln kleiner als 1/6 ist, lässt sich immer eine Teilmenge A ✓ N(u)derart finden, dass
1
6
X
v2A
1
2d(v) 1
3
.
3
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
69
Hauptlemma
! Hauptlemma (anders ausgedrückt): In jeder Runde wird mindestens jede 72. Kante (im Erwartungswert) entfernt.
! Beweis: siehe Tafel
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
70
Lubys Algorithmus algebraisch
! Siehe Matlab-Code und Übung
Graphenalgorithmen und lineare Algebra Hand in Hand
Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik
71
Zusammenfassung
! Unabhängige Mengen sind in Konfliktgraphen sehr nützlich
! Der triviale Algorithmus ist inhärent sequentiell
! Lubys Algorithmus bietet Vorteile: ! Parallelität: Auswahl der Knoten in jeder Phase ist voneinander
unabhängig ! Laufzeitschranke: O(log n) Phasen (im Erwartungswert) ! Algebraische Implementierung vglw. kurz
! Bessere Analysen sind bekannt: ! In jeder Iteration werden mehr Kanten gelöscht ! Die Laufzeit gilt mit hoher Wahrscheinlichkeit
Graphenalgorithmen und lineare Algebra Hand in Hand