Kapitel 10 Parallele Algorithmen. Bitonisches Sortieren Teilworterkennung Leader election in Ringnetzwerken

Ähnliche Dokumente
Christoph Niederseer, Michaela Mayr, Alexander Aichinger, Fabian Küppers. Wissenschaftl. Arbeitstechniken und Präsentation

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

p max = 4 T = 8 Work = 28 3 I = Work / T = 3,5 2 Cost = p max * T = 32 U = I / p max = 87,5% 1

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

p max = 4 T = 8 Work = 28 3 I = Work / T = 3,5 2 Cost = p max * T = 32 U = I / p max = 87,5% 1

UNABHÄNGIGER LASTEN. Vorlesung 9 BALANCIERUNG DYNAMISCHER. Graphenalgorithmen und lineare Algebra Hand in Hand

verschiedenen Recheneinheiten, die miteinander kommunizieren können

> Parallele Systeme Übung: 4. Übungsblatt Philipp Kegel Wintersemester 2012/2013. Parallele und Verteilte Systeme, Institut für Informatik

Parallele Algorithmen

Komplexität von Algorithmen:

Algorithmen und Datenstrukturen

Beispiel: Quicksort. Theoretische Informatik III (Winter 2018/19) Prof. Dr. Ulrich Hertrampf. quicksort(a 1,...,a n ): IF n 2 THEN

Kapitel 3: Sortierverfahren Gliederung

4 Effizienz und Komplexität 3.1 1

Effiziente Algorithmen (SS2015)

7. Parallele Algorithmen für FPGA-Implementierungen

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

JAVA - Suchen - Sortieren

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung

6. Parallele Algorithmen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Elementare Sortierverfahren

Modul Algorithmik, T-Katalog

Suchen und Sortieren

3.3 Laufzeit von Programmen

Präfix-Summe. Das Schweizer Offiziersmesser der Parallelen Algorithmen. Parallele Rechenmodelle Präfix-Summe Brents Lemma Anwendungen

Kap. 3: Sortieren. 4. VO DAP2 SS April 2009

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Algorithmen und Datenstrukturen 1 VL Übungstest WS November 2008

Inhalt. Organisatorisches. Verteilte Algorithmen Überblick 4. Verteilte Systeme. Formales Modell Algorithmus

Übersicht über Informatik und Softwaresystemtechnik WS 99/00, Prof. Dr. Andreas Schwill

Ein sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an.

Programmieren I. Kapitel 7. Sortieren und Suchen

Kap. 3: Sortieren. Überblick. Unser Sortierproblem. Motivation. Laufzeitmessung. Warum soll ich hier bleiben? Sortierverfahren sind WICHTIG!!!

Übung Algorithmen und Datenstrukturen

Suchen und Sortieren

Algorithmen und Datenstrukturen (für ET/IT)

Informatik II, SS 2018

5. Übungsblatt zu Algorithmen II im WS 2017/2018

5. Bäume und Minimalgerüste

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Suchen und Sortieren

Konvexe Hülle. Konvexe Hülle. Mathematik. Konvexe Hülle: Definition. Mathematik. Konvexe Hülle: Eigenschaften. AK der Algorithmik 5, SS 2005 Hu Bin

Klausur Paralleles Rechnen (Richtwert 60 min) 10. Dez. 2015

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier

4.1 Bäume, Datenstrukturen und Algorithmen. Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als

G. Zachmann Clausthal University, Germany Die wichtigsten Entwurfsverfahren für Algorithmen:

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt

Wir wollen nun die Behauptung beweisen, dass die Laufzeit von SELECT linear ist, also dass T (n) = O(n) gilt.

Am Dienstag, den 15. Dezember, ist Eulenfest. 1/60

Wann sind Codes eindeutig entschlüsselbar?

Algorithmen und Datenstrukturen

Motivation. Überblick. Motivation. Sequentielle Verfahren

Algorithmen & Komplexität

Algorithms & Data Structures 2

Kapitel 1: Schaltfunktionen und ihre Darstellung

Seminar. Algorithmische Geometrie

Algorithmik Kap. 2: Laufzeit von Algorithmen

Wahlalgorithmen auf beliebigen Netzstrukturen. Verteilte Algorithmen (VA), WS 2003/04 43

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen

Abschnitt 19: Sortierverfahren

A+D: Bitonisches Sortieren

Algorithmen für Ad-hoc- und Sensornetze

2.1. Konvexe Hülle in 2D

Algorithmen und Datenstrukturen

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben

Algorithmische Techniken für Geometrische Probleme

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

Auswählen nach Rang (Selektion)

Klausur Algorithmentheorie

1.8 Shift-And-Algorithmus

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:

1. Übungsblatt zu Algorithmen II im WS 2011/2012

Abschnitt 7: Komplexität von imperativen Programmen

Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)

Suchen und Sortieren

Isomorphismus. Definition Gruppen-Isomorphismus. Seien (G, +) und (G, ) Gruppen. Die Abbildung f : G G heißt Gruppen-Isomorphismus, falls gilt

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Spezielle Sortierverfahren Autor: Sven Schuierer

Kap. 3: Sortieren (3)

1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen

Datenstrukturen und Algorithmen (SS 2013)

Copyright, Page 1 of 7 Heapsort

Die asymptotische Notation

Präsenzübung Datenstrukturen und Algorithmen SS 2014

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen

2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017

Vorlesung Datenstrukturen

Transkript:

Kapitel 10 Bitonisches Sortieren Teilworterkennung Leader election in Ringnetzwerken

Überblick Situation: weitere Beschleunigung der Prozessorgeschwindigkeit wünschenswert physikalischer Grenzwert "Lichtgeschwindigkeit" bald erreicht Offenbar einzige Lösung: Parallelisierung

Überblick Wunsch: p parallel arbeitende Prozessoren lösen ein Problem p-fach schneller (10 5 bis 10 6 parallele Prozessoren werden angestrebt) Problem Geeignete Parallelisierung eines Problems erfordert neue Algorithmen

Beispiel Addition von Vektoren a=(a 1,...,an) und b=(b1,...,bn) leicht parallelisierbar Berechnung der Potenz x2 beweisbar nicht effizient parallelisierbar k

Sortieren Eingabe: n ganze Zahlen a 1,...,an (o.b.d.a. n Zweierpotenz, sonst ergänze zur nächsten Zweierpotenz um Zahlen ) Ausgabe: aufsteigende Sortierung von a 1,...,an Algorithmus: Bitonisches Sortieren (K.E. Batcher, 1968)

bitonisch Definition: a1,...,an heißt bitonisch, falls a1,...,ai aufsteigend und ai+1,...,an absteigend sortiert ist, oder falls dieser Zustand durch Rundschieben hergestellt werden kann.

bitonisch Beispiele: 7, 12, 13, 16, 29, 17, 12, 1 16, 29, 17, 12, 1, 7, 12, 13 1, 2, 3, 4, 5, 6, 7, 8.

bitonisch Beispiele: 7, 12, 13, 16, 29, 17, 12, 1 16, 29, 17, 12, 1, 7, 12, 13 1, 2, 3, 4, 5, 6, 7, 8.

bitonisch Beispiele: 7, 12, 13, 16, 29, 17, 12, 1 16, 29, 17, 12, 1, 7, 12, 13 1, 2, 3, 4, 5, 6, 7, 8.

bitonisch Beispiele: 7, 12, 13, 16, 29, 17, 12, 1 16, 29, 17, 12, 1, 7, 12, 13 1, 2, 3, 4, 5, 6, 7, 8.

bitonisch Beispiele: 7, 12, 13, 16, 29, 17, 12, 1 16, 29, 17, 12, 1, 7, 12, 13 1, 2, 3, 4, 5, 6, 7, 8.

bitonisch Beispiele: 7, 12, 13, 16, 29, 17, 12, 1 16, 29, 17, 12, 1, 7, 12, 13 1, 2, 3, 4, 5, 6, 7, 8.

bitonisch Beispiele: 7, 12, 13, 16, 29, 17, 12, 1 16, 29, 17, 12, 1, 7, 12, 13 1, 2, 3, 4, 5, 6, 7, 8.

Idee des Algorithmus Fundamentale Ideen: Rekursion und Divideand-conquer Ist a 1,..., an bereits bitonisch, so mische die beiden Teilfolgen zu einer sortierten Folge: Fertig. Anderenfalls gehe rekursiv vor und versuche den gewünschten Zustand herzustellen, indem die linke Hälfte aufsteigend, die rechte Hälfte absteigend sortiert wird.

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45 21

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45 21 6

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45 21 6

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45 21 6

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45 21 6

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45 21 6

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45 21 6

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45 21 6 2

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45 21 6 2 3

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45 21 6 2 3 17

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45 21 6 2 3 17 22

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45 21 6 2 3 17 22

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45 21 6 2 3 17 22 45

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45 21 6 2 3 17 22 45 21

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45 21 6 2 3 17 22 45 2113

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45 21 6 2 3 17 22 45 2113 6

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45 21 6 2 3 17 22 45 2113 6

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45 21 6 2 3 17 22 45 2113 6

Idee des Algorithmus - Beispiel 22 17 3 2 45 13 21 6 17 22 3 2 13 45 21 6 2 3 17 22 45 2113 6 2 3 6 13 17 2122 45

Mischen einer bitonischen Folge Gegeben a1,a2,...,a2n 1. Schritt: Vergleiche jedes aj, 1 j n, der ersten Hälfte mit korrespondierendem Element aj+n der zweiten Hälfte; vertausche, wenn sie in der falschen Reihenfolge stehen, falls also aj>aj+n ist 2. Schritt: Wende Verfahren rekursiv auf die beiden Hälften an Fertig: Folge sortiert, wenn Verfahren abbricht

Prozessor X Y X':=min(X,Y) Y':=max(X,Y) X,Y,X',Y' IN X' Y'

Prozessornetzwerk - Grundoperationen Grundoperationen: Zusammenführen aller Paare aj und aj+n, 1 j n, Vergleichen ggf. Vertauschen Zurückführen an Plätze j und j+n

Prozessornetzwerk - Architektur bitonischer Mischer für n/2 Zahlen bitonischer Mischer für n/2 Zahlen

shuffle- exchange- Netzwerk Prozessornetzwerk - Architektur bitonischer Mischer für n/2 Zahlen bitonischer Mischer für n/2 Zahlen

Prozessornetzwerk - Architektur shuffle- exchange- Netzwerk shuffling bitonischer Mischer für n/2 Zahlen bitonischer Mischer für n/2 Zahlen

Prozessornetzwerk - Architektur shuffle- exchange- Netzwerk shuffling unshuffling bitonischer Mischer für n/2 Zahlen bitonischer Mischer für n/2 Zahlen

Prozessornetzwerk - Zusammenbau

Prozessornetzwerk - Zusammenbau biton. Mischer für n/2=4 Zahlen

Prozessornetzwerk - Zusammenbau biton. Mischer für n/2=4 Zahlen biton. Mischer für n/2=4 Zahlen

Prozessornetzwerk - Zusammenbau biton. Mischer für n/2=4 Zahlen

Prozessornetzwerk - Zusammenbau

Prozessornetzwerk - Zusammenbau biton. Mischer für n/4=2 Zahlen

Prozessornetzwerk - Zusammenbau

Prozessornetzwerk - Zusammenbau

Prozessornetzwerk - Zusammenbau

Prozessornetzwerk - Zusammenbau

Prozessornetzwerk - Zusammenbau

bitonisches Mischen (n=8) Prozessornetzwerk - Reduktion Effizienz log2 n Shuffle- Exchange-Stufen log2 n Takte log2 n

Sortiernetzwerk Zusammenbau des Sortiernetzwerks Idee: Rekursion 1. Schritt: Mache aus je vier aufeinanderfolgenden Elementen eine bitonische Folge. Ergebnis: n/4 bitonische Folgen der Länge 4. 2. Schritt: Verwende Algorithmus zum bitonischen Mischen und mache aus den n/4 Folgen gleichviele Folgen, die im Wechsel aufsteigend und absteigend sortiert. Ergebnis: n/8 bitonische Folgen der Länge 8. Rekursives Anwenden, bis sortierte Folge vorliegt.

Sortiernetzwerk - vollständig (n=16)

Sortiernetzwerk - vollständig (n=16)

hier liegen 4 bitonische Folgen der Länge 4 vor Sortiernetzwerk - vollständig (n=16)

hier liegen 4 bitonische Folgen der Länge 4 vor Sortiernetzwerk - vollständig (n=16) hier liegen 2 bitonische Folgen der Länge 8 vor

hier liegen 4 bitonische Folgen der Länge 4 vor Sortiernetzwerk - vollständig (n=16) hier liegen 2 bitonische Folgen der Länge 8 vor hier liegt 1 bitonische Folgen der Länge 16 vor

Sortiernetzwerk - Effizienz

Sortiernetzwerk - Effizienz

Sortiernetzwerk - Effizienz Mischen: log2 n Takte

Sortiernetzwerk - Effizienz n/4 bitonische Folgen der Länge 4: 1 Takt Mischen: log2 n Takte

Sortiernetzwerk - Effizienz n/4 bitonische Folgen der Länge 4: 1 Takt n/8 bitonische Folgen der Länge 8: 2 Takte Mischen: log2 n Takte

Sortiernetzwerk - Effizienz n/4 bitonische Folgen der Länge 4: 1 Takt n/8 bitonische Folgen der Länge 8: 2 Takte n/16 bitonische Folgen der Länge 16: 3 Takte Mischen: log2 n Takte

Sortiernetzwerk - Effizienz Algorithmusteil letzter Schritt: Mischen einer bitonischen Folge Takte O(log2n) Herstellen einer bitonischen Folge 1. Schritt: Erzeuge n/4 bitonische Folgen der Länge 4 1 2. Schritt: Erzeuge n/8 bitonische Folgen der Länge 8 2 3. Schritt: Erzeuge n/16 bitonische Folgen der Länge 16... k. Schritt: Erzeuge n/2 k+1 bitonische Folgen der Länge 2 k+1... 3 k Summe T(n)

Sortiernetzwerk - Effizienz T(n) = 1+2+3+...+(log2n-1)+log2n = 1/2(log2n)(log2n+1) 1/2(log2n) 2 =O((log2n) 2 ). Anzahl Prozessoren:O(n(log2n) 2 ). Aber: n Prozessoren reichen, wenn man Output-Leitungen auf Input schaltet. Problem: wie realisiert man dynamisch die Shuffle-Vernetzung?

Sortiernetzwerk - Effizienzvergleich Effizienz von parallelen Algorithmen bewertet man in Relation zu den sequentiellen: Sequentieller Fall mit einem Prozessor: Beste Laufzeit f(n) Paralleler Fall mit p Prozessoren: Laufzeit g(n) Erwartete Laufzeit f(n)/p Speed-up f(n)/g(n) paralleler Algorithmus optimal, wenn f(n)/p, d.h. Speed-up von p erreicht wird

Sortiernetzwerk - Speed-up/Effizienz T p(n): Laufzeit eines Algorithmus, der zur Ausführung p Prozessoren benötigt Speed-up Sp(n)= T1(n)/Tp(n) Offenbar: 1 Sp(n) p Effizienz Ep(n)=Sp(n)/p (Quotient aus erreichtem und theoretisch möglichem Speed-up) Offenbar: 1/p Ep(n) 1. Ep(n)=1, dann Algorithmus optimal.

Sortiernetzwerk - Effizienzvergleich Anwendung auf Sortieren: Sequentieller Fall mit einem Prozessor: Schnellstes Sortierverfahren: Speed-up: O(n log2 n) O((n log2 n)/(log2 n) 2 )=O(n/log2 n) Effizienz: O((n/log 2 n)/n)=o(1/log2 n) Sortiernetzwerk nicht optimal!

Sortiernetzwerk - Effizienzvergleich M. Ajtai, J. Komlós, E. Szemerédi (Ungarn, USA, 1983): paralleler Algorithmus mit n Prozessoren und O(log2 n) Takten Sehr aufwendiger Beweis! sehr große Konstanten (versteckt in Groß-O)

Teilworterkennung Gesucht: paralleler Algorithmus, der testet, ob ein eingegebenes Wort w ein bestimmtes Teilwort t enthält hier: w beliebig, t=t 1t2t3 (Länge 3)

Teilworterkennung - Prozessortyp x y' x' y ti x'=x y'=y (x=ti)

Teilworterkennung - Prozessornetz xn...x2x1 true t3 t2 t1

Teilworterkennung - Prozessornetz xn...x2x1 true t3 t2 t1 liegen dauerhaft an

Teilworterkennung - Prozessornetz xn...x2x1 true t3 t2 t1 im Abstand von 2 Takten liegen dauerhaft an

Teilworterkennung - Prozessornetz ab a b a b true a b a

Teilworterkennung - Prozessornetz ab a b a false b false false true a b a 1. Takt

Teilworterkennung - Prozessornetz ab a b a false false b false true a b a 2. Takt

Teilworterkennung - Prozessornetz ab a b false a false false b true a b a 3. Takt

Teilworterkennung - Prozessornetz ab a b false false a false b true a b a 4. Takt

Teilworterkennung - Prozessornetz ab a false b false false a true a b a 5. Takt

Teilworterkennung - Prozessornetz ab a false false b true a true a b a 6. Takt

Teilworterkennung - Prozessornetz ab false a true false b true a b a 7. Takt

Teilworterkennung - Prozessornetz ab true false a false b true a b a erstmalig aba in Eingabe erkannt 8. Takt

Teilworterkennung - Effizienzvergleich Sequentieller Fall mit einem Prozessor: T1(n)=3n Paralleler Fall mit drei Prozessoren: T3(n)=2n-1 Speed-up: S3(n)=3n/(2n-1) 3/2 Effizienz: E3(n)=S3(n)/3 1/2 Teilworterkennung nicht optimal.

Leader election in Netzen Motivation automatischer Neustart eines Rechnernetzes Bestimmung eines ausgezeichneten Rechners für erste Verwaltungaufgaben Bestimmen eines neuen Leaders nach Ausfall des alten Erzeugung eines Token in Tokennetzwerken Varianten: Uniformität Anonymität Synchronität Direktionalität von Kanten Netztopologien (hier nur Ringe)

Leader election in Netzen Sensornetze Motivation

Leader election in Netzen Sensornetze Motivation

Leader election in Netzen Sensornetze Motivation

Leader election in Netzen Sensornetze Motivation

Leader election in Netzen Sensornetze Motivation

Leader election in Netzen Sensornetze Motivation wo seid ihr?

Leader election in Netzen Sensornetze Motivation

Leader election in Netzen Sensornetze hier brennts. Hört mich einer? Motivation

Leader election in Netzen Sensornetze Motivation

Leader election in Netzen Sensornetze Motivation wieviele sind wir eigentlich?

Leader election in Netzen Sensornetze Motivation

Leader election in Netzen Sensornetze Motivation

Leader election in Netzen im Ring Algorithmus [Franklin 1982]: je Rechner eindeutige Identifikation (id) anfangs alle Rechner aktiv (=weiß, schwarz=passiv). Programm für jeden Rechner: sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader.

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,2

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,2 0,1

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,2 0,1 2,3

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,2 0,1 2,3 1,9

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,2 0,1 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 7,9 5,2 0,1 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 7,9 2,3 1,9 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 5,6 0,7 7,9 5,2 0,1 7,9 2,3 1,9 7,2 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,6 9,2 7,9 5,2 0,1 7,9 2,3 1,9 7,2 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,6 9,2 7,9 5,2 0,1 7,9 2,3 1,9 7,2 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,6 9,2 7,9 5,2 0,1 7,9 2,3 1,9 7,2 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,6 9,2 7,9 5,2 0,1 7,9 2,3 9,9 1,9 7,2 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,6 9,2 7,9 5,2 0,1 7,9 2,3 9,9 1,9 7,2 3,6

Leader election in Netzen im Ring - Beispiel sende beiden Nachbarn deine Information id empfange id1 und id2 von beiden Nachbarn falls id1>id oder id2>id dann werde passiv falls id1,id2<id dann alles nochmal (nächste Runde) falls id1=id2=id dann erkläre dich zum Leader 0,7 5,6 9,2 7,9 5,2 0,1 7,9 2,3 9,9 1,9 7,2 3,6

Leader election in Netzen Aufwand Rechenaufwand Ring mit n Rechnern => mind. n /2 Rechner haben Nachbarn mit größerer id je Runde wird mind. die Hälfte der noch aktiven Rechner passiv max. log n Runden nur noch ein Rechner aktiv Kommunikationsaufwand je Runde sendet jeder Rechner 2 Nachrichten mit je log n Bits, insgesamt also O(n (log n) 2 ) Bits

Leader election in Netzen anonyme Netze - kontrollierter Zufall Problem es gibt keinen Leader-election Algorithmus für synchrone anonyme Rechnernetzringe Grund: nach jeder Runde sind alle Prozessoren im selben Zustand Folge der Symmetrie Lösung - Symmetry breaking kontrollierter Zufall löst die Symmetrie auf

Leader election in Netzen Algorithmus mit kontrolliertem Zufall Programm für jeden Rechner: var s: list of {1,...,K} wiederhole solange bis eine id in s eindeutig ist s:= id sei zufällige Zahl aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn Rechner mit größter eindeutiger id wird Leader.

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 7

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 7 1

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 7 1 0

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 7 1 0 2

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 7 1 0 2 1

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 7 1 7 0 2 1

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 7 2 1 7 0 2 1

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 7 7 2 1 7 0 2 1

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 8

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 8 4

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 8 4 12

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 8 4 12 10

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 8 4 12 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 8 4 3 12 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 1 8 4 3 12 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 1 8 4 4 3 12 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 1 8 4 4 8 3 12 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 1 8 4 4 8 3 4 12 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 1 8 4 4 8 3 4 12 12 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 1 8 4 4 8 3 4 12 12 10 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 1 8 4 4 8 3 3 4 12 12 10 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 1 8 4 3 4 8 3 3 4 12 12 10 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 1 8 1 4 3 4 8 3 3 4 12 12 10 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 1 8 1 4 3 4 8 4 3 3 4 12 12 10 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 1 8 1 4 3 4 8 4 4 8 3 3 12 12 10 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 1 8 1 4 3 4 8 12 4 4 8 4 12 3 3 10 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 1 8 1 4 3 4 8 12 4 4 8 4 12 3 3 12 10 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 1 8 1 4 3 4 8 12 4 4 8 4 12 10 3 3 12 10 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 1 8 1 4 3 3 4 8 12 4 4 8 4 12 10 3 3 12 10 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 1 1 8 3 4 3 3 4 8 12 4 4 8 4 12 10 3 3 12 10 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 1 3 1 8 4 1 3 3 4 8 12 4 4 8 4 12 10 3 3 12 10 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 1 3 1 8 4 1 3 3 4 8 12 4 4 8 4 12 10 3 3 12 10 Nach 8 Runden wird Rechner 12 Leader 10 3

Leader election in Netzen im Ring - Beispiel var s: list of {1,...,K} wiederhole bis eine id in s eindeutig s:= id zufällig aus {1,...K} wiederhole n-mal füge id zu s hinzu sende id an linken Nachbarn empfange id vom rechten Nachbarn 4 1 3 1 8 4 1 3 3 4 8 12 4 4 8 4 12 10 3 3 12 10 Nach 8 Runden wird Rechner 12 Leader 10 3

Leader election in Netzen mit Zufall - Aufwand Rechenaufwand wiederhole bis eine id in s eindeutig entscheidet über Laufzeit des Algorithmus Wahrscheinlichkeit geht gegen 1. Kommunikationsaufwand wie oben, abhängig von der Zahl der Runden