HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 02.07.2004 11. Vorlesung Christian Schindelhauer 1 HEINZ NIXDORF INSTITUT ORGANISATION Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Abschlussveranstaltung: Terminvorschläge: Freitag Freitag Dienstag Mögliche Veranstaltungsform: 1. Barbecue/Grillen 2. Fußball 3. Basketball 4. Kegeln/Bowlen 5. Wandern 11. Radtour 13. Kino 30.07. 10-15 Uhr 30.07. 19-23 Uhr 03.08. 20-24 Uhr 6. Fahrt mit Almetalbahn 01.08. 7. Freibadbesuch 8. Paintball 9. Kartbahn 10. Wasserski 12. Bungee-Springen 14. ... Algorithmen für Peer-to-PeerNetzwerke 2 ORGANISATION HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Mündliche Prüfung: Termine: 13.-17.09.2004 (10-17 Uhr) 04.-08.10.2004 (10-17 Uhr) Angebot: Öffentliche mündliche Prüfung am 30.07.2004 09:00 Uhr mit einem freiwilligen Teilnehmer (als Abschluss der Vorlesung) Algorithmen für Peer-to-PeerNetzwerke 3 HEINZ NIXDORF INSTITUT Kapitel III Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Algorithmen für Peer-toPeer-Netzwerke Epidemische Informationsausbreitung und Datenaggregation Algorithmen für Peer-to-PeerNetzwerke 4 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 5 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 6 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 7 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 8 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 9 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 10 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) 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 11 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 12 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 13 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 14 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 15 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 16 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 O(ln n) + log2n Sättigung s(t) < 1/2 log log n Sicherung O(log log n) Algorithmen für Peer-to-PeerNetzwerke 17 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 18 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 19 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 20 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 21 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 1nc, wobei maximal O(n log log n) Gerüchte übertragen werden. Algorithmen für Peer-to-PeerNetzwerke 22 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 1nc, wobei maximal O(n log log n) Nachrichten übertragen werden. Algorithmen für Peer-to-PeerNetzwerke 23 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 24 HEINZ NIXDORF INSTITUT Wie gut sind O(n log log n) Nachrichten? Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Theorem Solange die Namen der Peers nicht verwendet werden, benötigt man im Random-Call-Modell 1. mindestens Ω(log n) Runden und 2. mindestens Ω(n log log n) Nachrichten o Sind die Namen verfügbar, kann man in O(n) Nachrichten die Information verteilen o Lösung: o Verwende Verbindungen nur, wenn ein Baum addressiert wird Algorithmen für Peer-to-PeerNetzwerke 25 HEINZ NIXDORF INSTITUT Anwendung von epidemischer Informationsausbreitung Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Datenaggregation Alberto Montresor Márk Jelasity Ozalp Babaoglu Universität Bologna 2003 Algorithmen für Peer-to-PeerNetzwerke 26 HEINZ NIXDORF INSTITUT Zählen als Beispiel Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Wie kann man die Anzahl der Teilnehmer bestimmen? 1. Ansatz – Setze Zähler auf 1 und gib diese Information den Nachbarn weiter – Dieser erhöht den Zähler um 1 und gibt sie wieder weiter Problem: – Funktioniert nur mit Ring, benötigt Zeit n-1 2. Ansatz – Epidemische Verbreitung einer Liste, in die sich jeder Teilnehmer einträgt – Laufzeit O(log n) – Nachricht O(n log log n) mit Push/Pull – Nachteil: Nachrichtenlänge O(n) – Eigenliche Nachrichtenmenge: n2 log log n Algorithmen für Peer-to-PeerNetzwerke 27 HEINZ NIXDORF INSTITUT 3. Ansatz für Zählen Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer In Chord-Datenstruktur – Betrachte Abstand zu den nächsten O(log n) Nachbarn auf den Ring – Abweichung um Faktor 1-c mit Faktor n-c – Distanz1/n kann mit O(log n) Samples hinreichend genau bestimmt werden Funktioniert nur für solche P2P-Netzwerke Kann man auch exakt zählen mit Hilfe von Push & Pull ? Algorithmen für Peer-to-PeerNetzwerke 28 Datenaggregation: Zählen [Jelaisty, Montresor `03] HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Betrachte folgenden Prozess Initalisierung: – Ein Teilnehmer startet den Zählvorgang und setzt seine Variable s1=1 Verbreitung: – Jeder Teilnehmer i , der von einem zählenden Peer j zum ersten Mal kontaktiert wird, setzt si = 0 Ausgleich: – Kontaktiert Peer i den Peer j setzen beide: • si = (si+sj)/2 • sj = (si+sj)/2 Algorithmen für Peer-to-PeerNetzwerke 29 HEINZ NIXDORF INSTITUT Der Average-Algorithmus Eingabe: s1,...,sn –lokal an den Peers vorhanden Ausgabe: –wird an allen Peers approximiert Kommunikationsmodell –wird durch getPair() festgelegt –In der Regeln kommen alle Peers gleichwahrscheinlich vor –In jeder Runde wird ein Peer ausgewählt Algorithmus (eine Runde): –loop n do • (i,j) = getPair() • si = (si+sj)/2 • sj = (si+sj)/2 –od Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Theorem: Nach O(log n) Runden gilt für alle Peers i mit hoher Wahrscheinlichkeit. wenn getPair dem Push oder PullKommunikationsmodell folgt Algorithmen für Peer-to-PeerNetzwerke 30 HEINZ NIXDORF INSTITUT Beweisidee: Datenaggregation Zählen Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Betrachte empirisches Mittel und empirische Varianz Betrachte den Konvergenzfaktor definiert als Dann kann gezeigt werden For t = Ω(log n) gilt dann Daraus folgt und Algorithmen für Peer-to-PeerNetzwerke 31 HEINZ NIXDORF INSTITUT Simulation Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Ein Knoten wurde mit 100.000 initialisiert Alle anderen Knoten mit 0 Kommunikationsnetzwerk mit 20 Nachbarn einmalig uniform gewählt Zur Anzeige wird der QuickTime™ Dekompressor „TIFF (LZW)“ benötigt. Algorithmen für Peer-to-PeerNetzwerke 32 HEINZ NIXDORF INSTITUT Netzwerkabschätzung von dynamischen Netzwerken Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Zählprozess wird immer wieder neu gestartet Schnelle Approximation wird durch Simulationsergebnisse nahegelegt Zur Anzeige wird der QuickTime™ Dekompressor „TIFF (LZW)“ benötigt. Algorithmen für Peer-to-PeerNetzwerke 33 HEINZ NIXDORF INSTITUT Peer-Ausfälle Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Im schlimmsten Fall, fallen die Peers zu Beginn aus. Angenommen pfn Knoten fallen gleichverteilt durch einen Zufallsprozess aus Sei mf das Mittel von si Theorem Mit zunehmender Teilnehmerzahl, nimmt der Einfluss der ausfallenden Peers ab (bei gleicher Ausfallwahrscheinlichkeit). Algorithmen für Peer-to-PeerNetzwerke 34 HEINZ NIXDORF INSTITUT Weitere Aggregations-Funktionen Min – f(x,y) = min (x,y) – Berechnet Minimum Max – f(x,y) = max(x,y) – Berechnet größtes Element Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Summe – Verwende Average mit Initialisierung der Summanden, Ergebnis sei s – Verwende Average zum Zählen von n – Ausgabe: n s Geometrisches Mittel – Verwende in Average: Analyse analog zu Rumor Spreading – Minimum ist das Gerücht – Kombination mit Terminierungsmechanismum Produkt: – Kombination aus Geometrisches Mittel g und Anzahl der Peers • gn Algorithmen für Peer-to-PeerNetzwerke 35 HEINZ NIXDORF INSTITUT Datenaggregation Funktioniert auf jeder zusammenhängenden Netzwerktopologie – und nicht nur im Random-Call-Modell – dort aber mit logarithmischer Konvergenzzeit Konvergenz ist stark abhängig von der Netzwerkstruktur – für statische Netzwerk Analyse mit Markov-Prozessen möglich (für Average) Polynomielle Laufzeit auf – Ring – Gitter Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Logarithmische Konvergenz im –Baum –Hyperwürfel –De-Brujin-Netzwerke –Butterfly-Netzwerke –CAN mit mehreren Realitäten Offene Fragen: –Welche Funktionen sind für Datenaggregation geeignet –Läßt sich der Unterschied von Pushund Pull nachweisen? Algorithmen für Peer-to-PeerNetzwerke 36 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Vielen Dank Ende der 11. Vorlesung Nächste Vorlesung: Nächste Übung: Fr. 09.07.2004 9-11 Uhr Mo. 05.07.2004 10/11/16 Uhr (A/B/C) 37