KÜRZESTE WEGE - Forschungsgruppe Paralleles...

38
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

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