PPT - Universität Paderborn

Werbung
HEINZ NIXDORF INSTITUT
Universität Paderborn
Algorithmen und Komplexität
Algorithmen für
Peer-to-Peer-Netzwerke
Sommersemester 2004
21.06.2004
10. Vorlesung
Christian Schindelhauer
1
HEINZ NIXDORF INSTITUT
Keine Terminänderung
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
ORGANISATION
Nächste Vorlesung:
Fr. 02.07.2004 9-11 Uhr F0.530
Nächste Übungen:
Mo.
Fr.
Fr.
Heute
25.06.2004
25.06.2004
16 Uhr (C)
9 Uhr (A)
10 Uhr (B)
Algorithmen für Peer-to-PeerNetzwerke
2
HEINZ NIXDORF INSTITUT
Kapitel III
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Algorithmen für Peer-toPeer-Netzwerke
Epidemische
Informationsausbreitung
Algorithmen für Peer-to-PeerNetzwerke
3
HEINZ NIXDORF INSTITUT
Replizierte Datenbanken
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Ausgangssituation
–Knoten sind durch ein Netzwerk verbunden
–Knoten und Kanten können ausfallen
–Knoten sollen lokale Information im Netzwerk
an alle verteilen
–Verbindungsstruktur unklar
 Ziel:
–Gleicher Datenbestand an verschiedenen
Orten
–Datenbestand muß konsistent gehalten
werden
–Verfahren soll dezentral und robust arbeiten,
weil Verbindungen/Rechner unzuverlässig
 Nicht alle lokale Datenbanken (DB) sind allen
bekannt
–z.B. Name-Server im Internet
–z.B. Peer-to-Peer-Netzwerk
Algorithmen für Peer-to-PeerNetzwerke
4
HEINZ NIXDORF INSTITUT
Epidemien in der Wissenschaft
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Hippokrates „Über Epidemien“ (ca 400 v.Chr.)
 John Graunt (1662)
 Louis Pasteur und Robert Koch (19. Jhd.)
 ...


In der Mathematik

Daniel Bernoulli (1760)


Ross, Einfaches Epidemie Model (1911)
 Kermack und McKendrick, Allgemeines Epidemiemodell (1927)
Algorithmen für Peer-to-PeerNetzwerke
5
HEINZ NIXDORF INSTITUT
Replizierte Datenbanken - Alternative Lösungen
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Unicast
– Jede neue Information wird an alle Datenbanken versandt
– Problem:
• nicht alle lokalen Datenbanken sind bekannt oder immer erreichbar
 Anti-Entropy
– Jede lokale DB kontaktiert zufällig andere lokale DB
– Totaler Abgleich des Datenbestands
– Problem: Kommunikationsoverhead
 Epicast
– Informationsverbreitung ähnlich einer Infektion
– Jeder Knoten reicht die Information, wie einen neuen Virus, weiter
• bis sie im Netz bekannt ist
– Vorteil:
• schnell, robust, einfach
– Nachteil:
• großer Nachrichtenoverhead
Algorithmen für Peer-to-PeerNetzwerke
6
HEINZ NIXDORF INSTITUT
Epidemische Algorithmen
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Synonym:
– Gerücht, Virus, Nachricht, Epidemie
 Epicast
– Neue Information wird zum Gerücht
– Solange das Gerücht neu ist, wird es weiterverbreitet
– Ist das Gerücht alt, soll es schon allen bekannt sein
 Epidemischer Algorithmus [Demers et al 87]
– verbreitet Information wie einen Virus
– robuste Alternative zu Broadcast
 Kommunikationsform:
– Random-Call-Modell
 Für die Analyse betrachten wir nur ein Gerücht
– Gelten die Eigenschaften mit hoher Wahrscheinlichkeit, dann gilt es auch für
polynomiell viele Gerüchte
Algorithmen für Peer-to-PeerNetzwerke
7
HEINZ NIXDORF INSTITUT
Anruf-Model (Random Call)
 Kommunikation wird synchronisiert
modelliert in Runden
 In jeder Runde kontaktiert jeder
Teilnehmer einen uniform zufällig
gewählten Teilnehmer
 Man unterscheidet dei
Kommunikationsmodelle
– Push: Der Anrufer gibt die Information
dem Angerufenen
– Pull: Der Angerufene gibt die
Information dem Anrufer
– Push&Pull: Kombination von Push
und Pull
Push&Pull
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Push
Pull
Algorithmen für Peer-to-PeerNetzwerke
8
Epidemische Algorithmen in Peer-to-PeerNetzwerken
HEINZ NIXDORF INSTITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Epidemische Algorithmen sind älter als Peer-to-Peer-Netzwerke
– 1987 versus 1999
Epidemische Algorithmen brauchen zufällige Adressierung
– Viele Peer-to-Peer-Netzwerke unterstützen dies
– Gnutella
• Random Walk erreicht zufällige Adressierung
– CAN:
• Verwende Sprung zwischen den Realitäten
• Dadurch zufälliger Sprung in O(1) Hops
– CHORD, Koorde, Viceroy
• Zufälliger Sprung in log n Hops
– Pastry, Tapestry
• Zufälliger Sprung in log n Hops
Algorithmen für Peer-to-PeerNetzwerke
9
HEINZ NIXDORF INSTITUT
Push-Modell
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Algorithmen für Peer-to-PeerNetzwerke
10
HEINZ NIXDORF INSTITUT
Push-Modell
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Algorithmen für Peer-to-PeerNetzwerke
11
HEINZ NIXDORF INSTITUT
Push-Modell
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Algorithmen für Peer-to-PeerNetzwerke
12
HEINZ NIXDORF INSTITUT
Push-Modell
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Algorithmen für Peer-to-PeerNetzwerke
13
HEINZ NIXDORF INSTITUT
Push-Modell
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Algorithmen für Peer-to-PeerNetzwerke
14
HEINZ NIXDORF INSTITUT
Push-Modell
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Algorithmen für Peer-to-PeerNetzwerke
15
HEINZ NIXDORF INSTITUT
Push-Modell
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Algorithmen für Peer-to-PeerNetzwerke
16
HEINZ NIXDORF INSTITUT
Push-Modell
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Algorithmen für Peer-to-PeerNetzwerke
17
HEINZ NIXDORF INSTITUT
Notation
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Betrachte eine Nachricht
n:
Anzahl Teilnehmer
I(t):
S(t) = n-I(t)
Menge der informierten/infizierten Knoten
Menge der noch nicht Informierten
i(t) = |I(t)|/n
s(t) =1-i(t)
Relativer Anteil der Informierten
Relativer Anteil der Nicht-Informierten
Algorithmen für Peer-to-PeerNetzwerke
18
HEINZ NIXDORF INSTITUT
Struktur des Anruf-Modells
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Betrachte feste Runde
Ausgrad: immer 1
Eingrad
– 0 mit Wahrscheinlichkeit
– 1 mit Wahrscheinlichkeit
– k mit Wahrscheinlichkeit
Für große n und kleineres k Poisson-Verteilung mit Erwartungswert 1
Algorithmen für Peer-to-PeerNetzwerke
19
HEINZ NIXDORF INSTITUT
Push-Modell: Anfangsphase s(t) = o(1)
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
3 Möglichkeiten in Runde t:
– Ein infomierter Anrufer ruft einen bereits informierten Knoten an, W’keit i(t)
– Ein informierter Anrufer ruft den selben Knoten wie ein anderer Knoten an:
W’keit i(t)
W’keit, dass ein Knoten ohne Erfolg anruft: 2i(t)
W’keit für Infektion eines neuen Knoten, falls i(t)  s(t)/2: 1 – 2i(t)
E[i(t+1)]  i(t) + i(t) (1-2 i(t)) = 2 i(t) – 2i(t)2  2 i(t)
Algorithmen für Peer-to-PeerNetzwerke
20
Push-Modell: Startphase & Exponentielles
Wachstum
HEINZ NIXDORF INSTITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
W’keit für Infektion eines neuen Knoten, falls i(t)  s(t)/2: 1 – 2i(t)
E[i(t+1)]  2 i(t) – 2i(t)2  2 i(t)
1. Startphase: I(t)  2 c (ln n)2
o Varianz von i(t+1) relativ groß
o daher Verdopplung von i(t) erst nach O(1) Runden mit hoher W’keit
2. Exponentielles Wachstum: I(t)  [2 c (ln n)2, n/(log n)]
o (fast) Verdopplung mit hoher W’keit, d.h. 1-O(n-c)
o Beweis durch Chernoff-Schranke:
o Für unabhängige Zufallsvariablen Xi{0,1}
und
mit
Algorithmen für Peer-to-PeerNetzwerke
21
Push-Modell: Startphase & Exponentielles
Wachstum
Beweis durch Chernoff-Schranke:
Für unabhängige Zufallsvariablen Xi{0,1} und
HEINZ NIXDORF INSTITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
mit
Sei  = 1/(ln n) und E[Xm]  2 c (ln n)3
Dann gilt
2 E[Xm] /2  c ln n
Damit ist
Algorithmen für Peer-to-PeerNetzwerke
22
HEINZ NIXDORF INSTITUT
Push-Modell: Startphase & Exponentielles
Wachstum
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
W’keit für Infektion eines neuen Knoten, falls i(t)  s(t)/2: 1 – 2i(t)
 E[i(t+1)]  2 i(t) – 2i(t)2  2 i(t)
3. Zwischenphase I(t)  [n/(log n), n/3]
o Term 2i(t)2  2i(t)/(log n) kann nicht mehr vernachlässigt werden
o Trotzdem mit 2i(t) – 2i(t)2  4/3 i(t) noch exponentielles Wachstum,
aber Basis < 2
4. Sättigung: I(t)  n/3
o W’keit, dass ein Gesunder von I(t) = c n Infizierten nicht kontaktiert wird:
• Damit konstante W’keit für Infektion:  1 – e–1/3 und  1 – e–1
o Daher E[s(t+1)]  e–i(t) s(t)  e–1/3 s(t)
• Gilt mittels Chernoff-Schranke auch mit hoher W’keit
• Exponentielles Schrumpfen der Gesunden
• Basis konvergiert gegen 1/e
Algorithmen für Peer-to-PeerNetzwerke
23
HEINZ NIXDORF INSTITUT
Gerüchteausbreitung: Push
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
1
i(t)
s(t)
Zeit
0
Startphase:
log2 n
i(t)<1/2
Sättigung:
s(t) < 1/2
ln n
Sicherung
c ln n
Algorithmen für Peer-to-PeerNetzwerke
24
HEINZ NIXDORF INSTITUT
Anruf-Model (Random Call)
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Infektionsmodelle:
– Push-Modell:
• Der Anrufer infiziert den Angerufenen
– Pull-Modell:
• Der Angerufene infiziert den Anrufer
– Push&Pull-Modell:
• Beides
Algorithmen für Peer-to-PeerNetzwerke
25
HEINZ NIXDORF INSTITUT
Pull-Modell
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Algorithmen für Peer-to-PeerNetzwerke
26
HEINZ NIXDORF INSTITUT
Pull-Modell
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Algorithmen für Peer-to-PeerNetzwerke
27
HEINZ NIXDORF INSTITUT
Pull-Modell
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Algorithmen für Peer-to-PeerNetzwerke
28
HEINZ NIXDORF INSTITUT
Pull-Modell
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Algorithmen für Peer-to-PeerNetzwerke
29
HEINZ NIXDORF INSTITUT
Pull-Modell
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Algorithmen für Peer-to-PeerNetzwerke
30
HEINZ NIXDORF INSTITUT
Pull-Modell
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Algorithmen für Peer-to-PeerNetzwerke
31
HEINZ NIXDORF INSTITUT
Pull-Modell
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Gegeben: Rel. Anteil s(t) gesunder Knoten und i(t) Infizierter
– W’keit, dass gesunder Knoten einen Infizierten kontaktiert: i(t)
E[s(t+1)] = s(t) – s(t) i(t) = s(t) (1 – i(t)) = s(t)2
E[i(t+1)] = 1-s(t)2 = 1 – (1 – i(t))2 = 2 i(t) – i(t)2  2 i(t)
– Approximation funktioniert nur, falls i(t) klein
 Problem:
– falls i(t)  (log n)2 exponentielles Wachstum nicht sicher
– Bis exponentielles Wachstum sicher startet, dauert es O(log n) Schritte
Aber dann:
– Falls s(t)  1/2: Anteil Gesunder wird in jedem Schritt quadriert,
• d.h. E[s(t+ O(log log n))] = 0,
– Falls i(t)  1/2, dann sind nach O(log log n) Schritten sind alle infiziert
Algorithmen für Peer-to-PeerNetzwerke
32
HEINZ NIXDORF INSTITUT
Gerüchteausbreitung: Pull
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
1
s(t)
i(t)
Zeit
0
Startphase
i(t)<1/2
c ln n + log2n
Sättigung
s(t) < 1/2
log log n
Sicherung
c log log n
Algorithmen für Peer-to-PeerNetzwerke
33
HEINZ NIXDORF INSTITUT
Push&Pull-Modell
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
o Kombiniert Wachstumsverhalten von Push und Pull
1. Startphase: i(t)  2 c (ln n)2
• Push: Verdopplung von i(t) nach O(1) Runden mit hoher W’keit
2. Exponentielles Wachstum: I(t)  [2 c (ln n)2, n/(log n)]
• Push und Pull: (fast) Verdreifachung mit hoher W’keit in jeder Runde,
d.h. i(t+1)  3 (1-1/(log n)) i(t)
3. Zwischenphase I(t)  [n/(log n), n/3]
• Push und Pull: Verlangsamtes exponentielles Wachstum
4. Quadratisches Schrumpfen I(t)  n/3
• durch Pull:
E[s(t+1)]  s(t)2
• Mit Chernoff-Schranke gilt mit hoher W’keit
s(t+1)  2 s(t)2
und damit nach zwei Runden für s(t)  1/21/2
s(t+2)  s(t)2
Algorithmen für Peer-to-PeerNetzwerke
34
HEINZ NIXDORF INSTITUT
Gerüchteausbreitung: Push & Pull
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
1
s(t)
i(t)
Zeit
0
Startphase
log3n
i(t)<1/2
Sättigung
s(t) < 1/2
log log n
Sicherung
c log log n
Algorithmen für Peer-to-PeerNetzwerke
35
HEINZ NIXDORF INSTITUT
Shenkers Min-Counter-Algorithmus
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Einfache Terminierungsstrategie:
– Falls Gerücht älter als maxctr, dann stoppe Weitergabe
 Vorteil:
– Einfaches Verfahren
 Nachteile:
– Wahl von maxctr entscheidend
• Falls maxctr zu niedrig, werden nicht alle Knoten informiert
• Falls maxctr zu hoch, entsteht Nachrichtenoverhead (n maxctr)
– Optimale Wahl bei
• Push-Kommunikation: maxctr = O(log n)
 Nachrichtenmenge: O(n log n)
• Pull-Kommunikation: maxctr = O(log n)
 Nachrichtenmenge: O(n log n)
• Push&Pull-Kommunikation: maxctr = log3n + O(log log n)
 Nachrichtenmenge: O(n log log n)
Algorithmen für Peer-to-PeerNetzwerke
36
HEINZ NIXDORF INSTITUT
Terminierung von Gerüchten
Min-Counter-Algorithmus
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Jeder für sich schätzt ein Gerücht für
– „neu“, „alt“, „sehr alt“, „sehr sehr alt“, „sehr sehr sehr alt“, ... ,
– „sehrmaxctr alt“ = „uralt“ ein.
 Am Anfang ist jedes Gerücht „neu“.
 Gerüchte werden nicht jünger.
 Erfährt jemand ein Gerücht
– zum ersten Mal übernimmt er das Alter.
– zum zweiten Mal oder mehr als zweimal gleichzeitig, setzt er das Alter um eins
höher.
 Solange ein Gerücht nicht „uralt“ ist, erzählt man es weiter.
 Falls ein Gerücht „uralt“ ist, wird es noch maxctr Runden lang in jeder Runde
erzählt und dann vergessen.
Algorithmen für Peer-to-PeerNetzwerke
37
HEINZ NIXDORF INSTITUT
Der Min-Counter-Algorithmus
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Benutzt Kommunikation
– Wird das Gerücht von allen Kontaktpartnern als älter erachtet,
wird der Alter-Zähler erhöht
 Shenkers Min-Counter-Algorithmus für maxctr = O( log log n)
– Jeder Spieler P führt Variable für Gerücht Variable
– A: Spieler P kennt Gerücht P nicht: ctrr(P) initialisiert mit 0
– B: Falls Teilnehmer P hört Gerücht R zum ersten Mal:
ctrR(P)  1
– B: Falls Teilnehmer Q1, Q2, …, Qm Kommunikationspartner von P in dieser Runde
Falls mini(ctrR(Qi)  ctrR(P) dann ctrR(P)  ctrR(P) + 1
– C: Falls ctrR(P)  maxctr erzählte Gerücht für weitere maxctr Runden
danach D: stoppe Weiterübertragung des Gerüchts
Theorem
Der Min-Counter-Algorithmus informiert für Push&Pull-Kommunikation alle
Teilnehmer in log3n + O(log log n) Runden mit W’keit 1nc,
wobei maximal O(n log log n) Gerüchte übertragen werden.
Algorithmen für Peer-to-PeerNetzwerke
38
HEINZ NIXDORF INSTITUT
Der Min-Counter-Algorithmus
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Theorem
Shenkers Min-Counter-Algorithmus
informiert für Push&PullKommunikation alle Teilnehmer mit
W’keit 1nc, wobei maximal
O(n log log n) Nachrichten
übertragen werden.
Algorithmen für Peer-to-PeerNetzwerke
39
HEINZ NIXDORF INSTITUT
Push, Pull und Push&Pull
Verwendet man
...
Operationen
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Push
Pull
Push&Pull
O(log n)
O(log log n)
O(log log n)
O(log n)
O(log n)
log3n +
O(log log n)
O(n log n)
O(n log log n)
O(n log log n)
dann muss man
maxctr auf
...
setzen
und informiert in
...
Runden (Zeit)
alle Knoten mit ...
Nachrichten mit
Wahrscheinlich-keit
1—n —c
Algorithmen für Peer-to-PeerNetzwerke
40
HEINZ NIXDORF INSTITUT
Universität Paderborn
Algorithmen und Komplexität
Vielen Dank
Ende der 10. Vorlesung
Nächste Vorlesung:
Nächste Übung:
heute
Fr.
Mo.
Fr.
Fr.
02.07.2004
21.06.2004
25.06.2004
25.06.2004
9-11 Uhr
16 Uhr (C)
9 Uhr (A)
10 Uhr (B)
41
Herunterladen