HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 21.05.2004 5. Vorlesung Christian Schindelhauer 1 HEINZ NIXDORF INSTITUT Kapitel III Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer CHORD Algorithmen für Peer-to-PeerNetzwerke 2 HEINZ NIXDORF INSTITUT Brückentagvorlesungsplan Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer IF studenten kommen THEN – Chernoffschranke • mit Beweis – Bälle in Körbe • (ist dann ganz einfach) – CHORD-Wiederholung – Eigenschaften von CHORD • mit Hilfe von Bällen und Körben END IF Algorithmen für Peer-to-PeerNetzwerke 3 HEINZ NIXDORF INSTITUT Markov und Chebyshev Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Stärkere Abschätzung: Chebyshev wenn die Varianz bekannt ist: Algorithmen für Peer-to-PeerNetzwerke 4 HEINZ NIXDORF INSTITUT Chernoff-Schranke Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Bernoulli-Experiment – Entweder 0 mit Wahrscheinlichkeit 1-p – Oder 1 mit Wahrscheindlichkeit p Algorithmen für Peer-to-PeerNetzwerke 5 HEINZ NIXDORF INSTITUT Beweis der 1. Chernoff-Schranke: Der Trick Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Zu zeigen: Für t>0: Markov liefert: Zu tun: geeignete Wahl für t und einsetzen... Algorithmen für Peer-to-PeerNetzwerke 6 Beweis der 1. Chernoff-Schranke Ein Erwartungswert HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Zu zeigen: wobei: Unabhängigkeit der Zufallsvariablen xi Jetzt zu zeigen: Algorithmen für Peer-to-PeerNetzwerke 7 Beweis der 1. Chernoff-Schranke Etwas Algebra HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Zu zeigen: wobei: Jetzt zu zeigen: Algorithmen für Peer-to-PeerNetzwerke 8 Beweis der 1. Chernoff-Schranke 1.Fall c<c2 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Zu zeigen für c>1: Nun ist für c=1: 2 ln(2) > 4/3 Ableitung: – linke Seite: ln(1+c) – rechte Seite: 4/3 Für c>1 ist Steigung der linken Seite größer als die rechten Seite, da • ln(1+c)>ln (2) > 4/3 Also gilt Ungleichung für c>0. Algorithmen für Peer-to-PeerNetzwerke 9 HEINZ NIXDORF INSTITUT Beweis der 1. Chernoff-Schranke 2. Fall c2<c Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Zu zeigen für c< 1: Nun ist für x>0: Daraus folgt Nun erhält man für (1+x) ln(1+x) durch Multiplikation: Nun setzt man für ein (1+c) ln(1+c) und erhält for c(0,1): Algorithmen für Peer-to-PeerNetzwerke 10 HEINZ NIXDORF INSTITUT 2. Chernoff-Schranke Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Bernoulli-Experiment – Entweder 0 mit Wahrscheinlichkeit 1-p – Oder 1 mit Wahrscheindlichkeit p Algorithmen für Peer-to-PeerNetzwerke 11 HEINZ NIXDORF INSTITUT Beweis der 2. Chernoff-Schranke: Der Trick Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Zu zeigen: Für t<0: Markov liefert: Zu tun: geeignete Wahl für t und einsetzen... Algorithmen für Peer-to-PeerNetzwerke 12 Beweis der 2. Chernoff-Schranke Der selbe Erwartungswert HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Zu zeigen: wobei: Unabhängigkeit der Zufallsvariablen xi Jetzt zu zeigen: Algorithmen für Peer-to-PeerNetzwerke 13 Beweis der 2. Chernoff-Schranke Etwas Algebra HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Zu zeigen: wobei: Jetzt zu zeigen: Algorithmen für Peer-to-PeerNetzwerke 14 Beweis der Chernoff-Schranke 2. Teil Was ist (1-c) ln (1-c) - Nachtrag Warum ist HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer ? Für c=0 sind beide Seiten gleich. Die Ableitung der linken Seite ist ln(1-c); die der rechten ist -c Nun ist Daraus folgt und insbesondere die gewünschte Ungleichung. Algorithmen für Peer-to-PeerNetzwerke 15 HEINZ NIXDORF INSTITUT Bälle und Körbe Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Lemma Werden m= k n ln n Bälle zufällig in n Körbe geworfen (für jedes k>0), gilt Folgendes: 1. Für alle c>k ist die Wahrscheinlichkeit, dass mehr als c log n Bälle auf einen Korb fallen ist höchstens O(n-c‘) für ein c‘>0. 2. Für alle c<k ist die Wahrscheinlichkeit, dass in einem Korb weniger als c log n Bälle fallen, ist höchstens O(n-c‘) für ein c‘>0. Beweis: Betrachte einen Korb mit Bernoulli-Experiment: B(k n ln n,1/n) mit Erwartungswert: µ = m/n = k ln n 1. Fall: c>2k 2. Fall: k<c<2k 3. Fall: c<k Algorithmen für Peer-to-PeerNetzwerke 16 HEINZ NIXDORF INSTITUT Bälle und Körbe Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Lemma Werden m Bälle zufällig in n Körbe geworfen. Dann gilt: 1. Die Wahrscheinlichkeit, dass ein (bestimmter) Korb leer bleibt, ist kleiner als e-n/m. 2. Die Wahrscheinlichkeit, dass mehr als k (ln n) + k m/n (ln n) Bälle auf einen bestimmten Korb fallen, ist höchstens O(n-c) für konstante k und c. Beweis: 1. Wahrscheinlichkeit: (1-1/n)m < e-n/m 2. Bernoulli-Ereignis: 1 Ball in einem Korb X: Summe aller m Ballwürfe in einem Korb • Wahrscheinlichkeit: p=1/n • Erwartungswert µ = 1 1. Fall m≥n, c>1: 2. Fall m<n, c>1: Algorithmen für Peer-to-PeerNetzwerke 17 HEINZ NIXDORF INSTITUT Hohe Wahrscheinlichkeit Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Lemma Falls Aussage A(i) für jedes von n Objekten i mit Wahrscheinlichkeit 1-n-c gilt, dann gilt (A(1) und A(2) und ... und A(n)) mit Wahrscheinlichkeit mindestens 1-n-(c-1) Beweis: Für alle i gilt: P[A(i)] ≤ n-c P[ A(1) oder A(2) oder ... A(n) ] ≤ n n-c Somit ist: P[( A(1) oder A(2) oder ... A(n)) ] ≤ 1- n n-c Nach DeMorgan: P[A(1) und A(2) und ... A(n) ] ≤ 1- n n-c Algorithmen für Peer-to-PeerNetzwerke 18 HEINZ NIXDORF INSTITUT Chord als DHT Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer rV(b) = b+1 mod 8 n: Knotenanzahl, Knotenmenge V k: Anzahl Schlüssel, Schlüsselmenge K 5 m: Hashwertlänge: m >> log max{K,N} Zwei Hash-Funktionen bilden auf {0,..,2m-1} ab – rV(b): bildet Peer b zufällig auf {0,..,2m-1} ab – rK(i): bildet Index i zufällig auf {0,..,2m-1} ab Abbildung von i auf einen Peer b = fv(i) – fV(i) := arg minbV (rB(b)-rK(i)) mod 2m 6 5 7 3 rK(i) = 3i-2 mod 8 4 Index 2 2 3 0 6 2 1 0 Algorithmen für Peer-to-PeerNetzwerke 19 HEINZ NIXDORF INSTITUT Eigenschaften der Datenstruktur Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Lemma 1. Der Abstand zweier benachbarter Peers auf dem Ring ist a) im Erwartungswert 2m/n, b) < O((2m/n) log n) (mit hoher W‘keit) und c) > 2m/nc (mit hoher W‘keit) für eine Konstante c>1 2. In einem Intervall des Rings der Länge w 2m/n sind (mit hoher W‘keit) a) O(log n + w log n) Peers, falls w=O(log n) b) O(w) Peers, falls w=Ω(log n) Algorithmen für Peer-to-PeerNetzwerke 20 HEINZ NIXDORF INSTITUT Eigenschaften der Datenstruktur Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Lemma 1. Der Abstand zweier benachbarter Peers auf dem Ring ist a) im Erwartungswert 2m/n, b) < O((2m/n) log n) (mit hoher W‘keit) und c) > 2m/nc (mit hoher W‘keit) für eine Konstante c>1 Beweis 1a) Die Summe aller Abstände ist 2m 1b) Betrachte Intervall auf dem Ring der Länge c ((2m/n) log n) • W‘keit, dass ein Peer dieses Intervall trifft: c (log n)/n • W‘keit, dass n Peers dieses Intervall nicht treffen: • Damit bleibt so ein Intervall nicht leer und der Abstand zweier Peers ist mit hoher W‘keit ≤ 2c (2m/n) log n) 1c) Die W‘keit, dass ein Peer ein Intervall der Größe 2m/nc trifft, ist n-c • Also treffen Peers mit hoher W‘keit nicht in die Nähe eines anderen Peers Algorithmen für Peer-to-PeerNetzwerke 21 HEINZ NIXDORF INSTITUT Eigenschaften der Datenstruktur (Beweis 2) Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Lemma 2. In einem Intervall des Rings der Länge w 2m/n sind (mit hoher W‘keit) a) O(log n + w log n) Peers, falls w=O(log n) b) O(w) Peers, falls w=Ω(log n) Beweis Betrachte Intervall der Länge w 2m/n – Die W’keit, dass ein Peer hineinfällt ist p= w n – Erwartete Anzahl von Peers: p n = w 2a) 1.Fall: p n ≥ 1, c>1 2.Fall: p n < 1, c>1 2b) p n > k ln n, c > 1 Algorithmen für Peer-to-PeerNetzwerke 22 HEINZ NIXDORF INSTITUT Balance in Chord Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer – n: Anzahl der Knoten im P2P-Netzwerk – k: Anzahl der Schlüssel 1 Theorem Elemente werden auf die Peers wie folgt verteilt: – Falls k=O(n log n): In jedem Knoten werden höchstens O(log n + k/n log2 n) Schlüssel gespeichert mit hoher W’keit – Falls k=(n log n): In jedem Knoten werden höchstens O(k/n log n) Schlüssel gespeichert mit hoher W’keit Beweis – Übung – Tipp: Algorithmen für Peer-to-PeerNetzwerke 23 HEINZ NIXDORF INSTITUT Die Datenstruktur von Chord Für jeden Knoten b: – successor: Nachfolger – predecessor: Vorgänger – Für i {0,..,m-1} • Finger[i] := Der Knoten der dem Wert rV(b+2i) folgt Für kleine i werden die FingerEinträge immer gleich – Nur unterschiedliche Fingereinträge werden gespeichert Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer predecessor successor 5 6 finger[0] 5 7 finger[1] 0 finger[2] 4 2 3 2 1 0 Algorithmen für Peer-to-PeerNetzwerke 24 HEINZ NIXDORF INSTITUT Fingeranzahl Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Lemma 1. Der Ausgrad im CHORD-Netzwerk ist O(log n) mit hoher W‘keit 2. Der Eingrad im CHORD-Netzwerk ist O(log2 n) mit hoher W‘keit Beweis 1. Der minimale Abstand zweier Peers ist 2m/nc (mit hoher W‘keit) – Damit ist der Ausgrad beschränkt durch c log n (mit hoher W‘keit) 2. Der maximale Abstand zweier Peers ist O(log n 2m/n) – Jeder Peer, der mit einem seiner Finger auf diese Linie zeigt, erhöht den Eingrad des nachstehenden Peers. – Die Gesamtlänge der Streckenabschnitte, wo solche Peers liegen ist O(log2n 2m/n) b.finger[m] – Damit ist w=O(log2n) a.finger[m-1] b a x y Algorithmen für Peer-to-PeerNetzwerke 25 HEINZ NIXDORF INSTITUT Suchen in Chord Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Theorem Die Suche braucht mit hoher W’keit O(log n) Sprünge Suchalgorithmus für Element s: – Abbruch(b,s): • Knoten b,b’=b.succ gefunden, mit rK(s) [rV(b),rV(b‘)| – Hauptroutine: Starte mit irgendeinem Knoten b while not Abbruch(b,s) do for i=m downto 0 do if rK(s) [rV(b.finger[i]),rV(finger[i+1])] then b ← b.finger[i] fi b.finger[m] od b.finger[m-1] b c x sy Algorithmen für Peer-to-PeerNetzwerke 26 HEINZ NIXDORF INSTITUT Suchen in Chord Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Theorem Die Suche braucht mit hoher W’keit O(log n) Sprünge Beweis: • Mit jedem Sprung wird die Entfernung zum Ziel mindestens halbiert • Zu Beginn ist der Abstand höchstens 2m • Der Mindestabstand zweier benachbarter Peers ist 2m/nc mit hoher W’keit • Damit ist die Laufzeit beschränkt durch c log n b.finger[m] b.finger[m-1] b c x sy Algorithmen für Peer-to-PeerNetzwerke 27 HEINZ NIXDORF INSTITUT Einfügen von Peers Universität Paderborn Algorithmen und Komplexität Christian Schindelhauer Theorem O(log2 n) Nachrichten genügen mit pol. W’keit, um Peers in CHORD aufzunehmen Beweisidee o Zuerst wird Zielgebiet in O(log n) Schritten gesucht o Die ausgehenden Zeiger werden vom Vorgänger und Nachfolger übernommen und angepasst – Die Zeiger müssen jeweils um bis zu O(log n) Schritte entlang des Rings angepasst werden o Der Eingrad des neuen ist mit hoher W’keit O(log2 n) – Zu suchen kostet jeweils O(log n) – Diese sind jeweils in Gruppen von maximal O(log n) benachbart. – Damit fallen nur O(log n) Suchen á Kosten O(log n) an – Die Aktualisierung hat jeweils konstante Kosten Algorithmen für Peer-to-PeerNetzwerke 28 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Vielen Dank Ende der 5. Vorlesung Nächste Vorlesung: Fr. 28.05.2004 Nächste Übung: 6. Übung Mo. 31.05.2004 9-11 Uhr 10,12,16 Uhr (A,B,C) Heinz Nixdorf Institut & Institut für Informatik Universität Paderborn Fürstenallee 11 33102 Paderborn Tel.: 0 52 51/60 66 92 Fax: 0 52 51/62 64 82 E-Mail: [email protected] http://www.upb.de/cs/schindel.html 29