\documentclass[12pt,ngerman,a4paper]{scrartcl} \usepackage{amsfonts} \usepackage{amsmath} \usepackage{amsthm} \usepackage[ngerman]{babel} \usepackage[utf8]{inputenc} \usepackage{textcomp} \usepackage[T1]{fontenc} \usepackage[ backend=biber, bibstyle=ieee, citestyle=ieee ]{biblatex} %\usepackage[round]{natbib} \usepackage[german=quotes]{csquotes} \addbibresource{literature.bib} % mathematical environments \theoremstyle{plain} \newtheorem{theorem}{Theorem} \newtheorem{lemma}[theorem]{Lemma} \newtheorem{corollary}[theorem]{Corollary} \newtheorem{observation}[theorem]{Observation} \newtheorem{claim}[theorem]{Claim} \theoremstyle{definition} \newtheorem{definition}{Definition} \theoremstyle{remark} \newtheorem*{remark}{Remark} \setlength{\parindent}{0em} \setlength{\parskip}{1.2ex plus 0.5ex minus 0.5ex} \MakeOuterQuote{"} % title & author \title{Stabilizing consensus with the power of two choices} %\subtitle{Eine informelle Einführung in die Iterationstheorie} \author{Jim Martens} \subject{\small Hausarbeit im Modul FGI-3, WS 2016/2017\\ Fachbereich Informatik, Universität Hamburg } \date{\today} \begin{document} \maketitle \begin{abstract} In dieser Arbeit wird die Lösung des Konsensproblems mittels des Medianverfahrens, wie von Doerr et al\cite{Doerr2011} beschrieben, aufgezeigt. Ebenfalls wird ein Teil des Beweises von Doerr et al erläutert und an vielen Stellen um die im Original fehlenden Rechenwege ergänzt. \end{abstract} \tableofcontents \newpage \section{Einleitung} Als Konsens wird eine Lösung beschrieben, auf die sich alle Beteiligten einigen können. Mit einem Konsensproblem wird eine Situation beschrieben, in der das Erreichen eines Konsens das Ziel ist. Ein Problem ist es, weil das Erreichen dieses Konsens in diesen Fällen nicht offenkundig und/oder trivial, sondern oftmals schwierig ist. Eine Lösung eines solchen Problems ist dann beispielsweise ein Algorithmus, der in einer solchen Situation einen Konsens herbeiführt. Dabei gibt es viele solche Konsensprobleme im Alltag, sowohl zwischen Menschen als auch unter Einbindung von Technologie. Die menschlichen Probleme sind mittels theoretischer Betrachtungen nur schwer zu lösen, da dort auch unlogische Aspekte eine Rolle spielen. Für die technischen Probleme ist eine theoretische Betrachtung allerdings sehr wohl von Interesse und Bedeutung. Ein typisches Beispiel von einem Konsensproblem ist die Synchronisation von verteilten Prozessen, wie sie beispielsweise bei einem Multiplayerspiel über das Internet auftreten können. Dort muss der Zustand der Welt zwischen den Geräten synchronisiert werden, denn die Berechnung der Welt findet in aller Regel aus Performancegründen auf den einzelnen Geräten statt. Es gibt also $n$ verschiedene Weltzustände und natürlich sollen alle Geräte den gleichen benutzen, damit zum Beispiel Schüsse in allen Zuständen zur gleichen Zeit und in die gleiche Richtung gehen und auch das Gleiche treffen. Im Fall von Multiplayerspielen oder vergleichbaren Szenarien ist die Lösung oftmals die Ernennung eines "Leaders", der meistens auf Seiten des Servers ist und somit unter Kontrolle der Spieleentwickler oder unter allen Prozessen gewählt wird. Dessen Zustand wäre dann der Maßstab für alle anderen Prozesse, welche ihren eigenen Wert von diesem "Leader" kopieren würden. Wenn jedoch Prozesse manipuliert werden können, dann könnten im Falle einer freien Wahl des "Leaders" auch jener und damit alle Prozesse manipuliert werden. Daher ist die Lösung in diesem Fall erheblich schwieriger. Für den Fall, dass Nachrichten asynchron ausgetauscht werden, Prozesse nicht mit einer einheitlichen Uhr laufen und willkürlich unterschiedliche Geschwindigkeiten haben und ein Prozess zu jeder beliebigen Zeit einen Crash erleben kann, wurde gezeigt, dass die Lösung des Problems unmöglich ist.\cite{Fischer1985} Aber auch wenn alle Prozesse synchron Nachrichten austauschen, die gleiche Uhr und Geschwindigkeit benutzen, ist es unmöglich, wenn mindestens ein Drittel aller Prozesse sogenannte byzantinische Fehler haben können.\cite{Fischer1986} Dies gilt beides jedoch nur für deterministische Algorithmen. Als byzantinische Fehler werden solche bezeichnet, bei denen nicht klar ist, ob ein Fehler eingetreten ist. Es basiert auf dem Gedankenexperiment, dass es zwei byzantinische Armeen gibt, die sich nicht gegenseitig sehen oder hören können, aber über einen gemeinsamen Zeitpunkt zum Angriff austauschen müssen. Zwischen beiden Armeen befindet sich jedoch der Feind, sodass alle Botschaften zwischen den Armeen abgefangen oder manipuliert werden können. Keine der beiden Armeen kann daher wissen, ob die andere Seite nun eine Uhrzeit bestätigt hat. Ein alleiniger Angriff würde die Vernichtung der jeweils angreifenden Armee zur Folge haben. Es gibt randomisierte Algorithmen, die im asynchronen Fall das Problem mit einer Wahrscheinlichkeit nahezu 1 lösen können.\cite{Aspnes2003} Auf spezifische Ansätze mit randomisierten Algorithmen wird jedoch später näher eingegangen. In dieser Hausarbeit wird näher eine gewisse Abwandlung des Konsensproblems behandelt, die des stabilisierenden Konsensproblems. Der Unterschied ist, dass einzelne Prozesse nicht länger einen finalen Wert erreichen müssen. Wichtig ist allein, dass alle Prozesse schließlich einen gemeinsamen Wert haben, ohne dies notwendigerweise zu wissen, und diesen dann behalten. Aufgrund dieser Abwandlung ist der Startzustand der Prozesse egal. Die gesuchte Lösung ist also ein sich selbst stabilisierendes Konsensprotokoll. Im weiteren Verlauf dieser Arbeit wird zunächst der Algorithmus vorgestellt, welcher das soeben erwähnte Konsensprotokoll erfüllt. Daran anschließend werden die asymptotischen Laufzeiten präsentiert. %TODO weiter fortführen % Beginn Hauptinhalt \section{Selbststabilisierender Konsens} Dieser Abschnitt wird sich mit einer Lösung zum Erreichen eines sich selbst stabilisierenden Konsenses beschäftigen. \subsection{Modell} Es kann angenommen werden, dass es $n$ Prozesse gibt, von denen in einem anonymen Netzwerk jeder Prozess mit allen anderen Prozessen verbunden ist. Es sind keine einzigartigen Prozess IDs bekannt. Stattdessen hat jeder Prozess seine eigene Numerierungstabelle für die anderen Prozesse. Der Einfachheit halber sei jedoch angenommen, dass die Prozesse insgesamt von 1 bis $n$ numeriert sind. Zu Beginn hat jeder Prozess einen Wert $v_i \in \mathrm{N}$. Am Ende sollen alle Prozesse einen gemeinsamen und stabilen Wert $v$ aus der initialen Wertemenge haben. Es kann angenommen werden, dass die Zeit in synchronisierten Runden abläuft. In jeder Runde kann jeder Prozess mit maximal einer logarithmischen Anzahl an Prozessen kommunizieren, maximal eine logarithmische Menge an Informationen austauschen und ein paar lokale Berechnungen vornehmen, um die erhaltenen Informationen zu verarbeiten. Sollte ein Prozess von mehr als einer logarithmischen Menge an anderen Prozessen kontaktiert werden, so werden nur logarithmisch viele Anfragen verarbeitet, während die anderen schlichtweg unbeantwortet bleiben. Die Selektion der verarbeiteten Anfragen kann durch einen Gegner beeinflusst werden. Wenn es keinen Gegner gibt, dann lässt sich das Konsensproblem relativ einfach mit der Minimum-Regel lösen: Jeder Prozess $i$ kontaktiert in einem Zeitschritt einen zufälligen Prozess $j$ und setzt seinen Wert auf das Ergebnis von der Operation $min(v_i, v_j)$. Mit einer hohen Wahrscheinlichkeit hätten somit alle Prozesse den gleichen Wert nach $O(\log n)$ Zeitschritten. Sollten Prozesse jedoch korrumpiert werden können, ist es signifikant schwerer einen gemeinsamen Wert zu finden und dort zu bleiben. Vom folgenden Gegnermodell kann ausgegangen werden: Ein $T$-starker Gegner kennt die gesamte Historie des Protokolls (sprich: welche Prozesse wann welche Werte hatten). Zu Beginn jedes Zeitschritts kann der Gegner die Werte von bis zu $T$ Prozessen willkürlich ändern unter der einzigen Bedingung, dass der neue Wert Teil der initialen Wertemenge ist. Dieser Gegner sorgt nun jedoch dafür, dass kein Zustand mit Sicherheit mehr erreicht werden kann, ab dem alle Prozesse einen gemeinsamen Wert haben. Daher ist eine Anpassung der Zielbedingung erforderlich. Für das Erreichen des Konsenses ist es nur noch nötig, dass es einen Zeitschritt $t$ und einen Wert $v \in \{v_1,...,v_n\}$ gibt, sodass für alle Zeitschritte nach $t$ gilt: Alle Prozesse bis auf $T$ haben den Wert $v$. Solch ein Zustand wird fast stabiler Konsens genannt. Die Herausforderung ist nun ein Protokoll zu finden, für das die Zahl $T$ möglichst hoch sein kann und ein solcher Konsens dennoch mit hoher Wahrscheinlichkeit erreicht werden kann. Die Minimumregel funktioniert mit einem solchen Gegner nicht mehr. Angenommen es gibt nur zwei Werte, 2 und 4. Maximal $T$ Prozesse haben den Wert 2. Dann kann der Gegner den Wert all dieser Prozesse auf 4 ändern und kein Prozess würde den Wert ändern. Dieser Zustand kann für einen beliebig langen Zeitraum aufrecht erhalten werden. Es ist aber kein fast stabiler Konsens, da der Gegner immer noch irgendwann mindestens einen Prozess auf 2 setzen kann, sodass schließlich alle Prozesse bei 2 ankommen und ein Konsens erreicht ist. Da dieser Konsens vom Gegner jedoch beliebig lange verzögert werden kann, ist in keiner zeitlichen Schranke gewährleistet, dass ein Konsens erreicht wird. Es bedarf also einer anderen Lösung. Das Konzept der Wahl eines Anführers unter den Prozessen, an dem sich dann alle anderen Prozesse orientieren, funktioniert jedoch auch nicht. Denn der Gegner kann schlichtweg nach der Wahl des Anführers diesen Anführer korrumpieren und somit alle anderen Prozesse ebenfalls. Entgegen der Vermutung gibt es in der Tat ein einfaches Protokoll, welches eine begrenzte Laufzeit hat, für große $T$ funktioniert und mit jedem Startzustand ans Ziel kommt. \subsection{Protokoll} Die Medianregel ist ein Protokoll welches zugleich einfach ist und die im vorigen Abschnitt geschilderte Problematik auflöst. In jedem Zeitschritt wählt jeder Prozess $i$ zufällig und gleichverteilt zwei weitere Prozesse $j$ und $k$ aus, wobei der Prozess $i$ dabei auch sich selbst auswählen kann. Der Wert von $i$ wird dann durch den Median der drei Werte $v_i, v_j, v_k$ ersetzt. Für die Werte 1, 42, 100 wäre dann der Median 42. Klassische Strategien von Gegnern wie das Vertauschen von Werten oder das Verstecken von Werten für einen unbegrenzten Zeitraum (wie im Beispiel mit der Minimumregel angewendet) funktionieren mit der Medianregel nicht, welche trotz entsprechender Störung innerhalb kurzer Zeit zu einem Konsens konvergiert. Doerr et al\cite{Doerr2011} haben folgende Ergebnisse für den worst-case gezeigt. \begin{tabular}{c|c|c} Eingabe & mit Gegner & ohne Gegner\\ \hline worst-case 2 Werte & \(O(\log n)\) & \(O(\log n)\) \\ \hline worst-case m Werte & \(O(\log m \log \log n + \log n)\) & \(O(\log n)\) \end{tabular} Diese Ergebnisse basieren auf den zugrundeliegenden Theoremen, welche hier ohne Beweis vorgestellt werden sollen. Dabei bedeutet "mit hoher Wahrscheinlichkeit" stets eine Wahrscheinlichkeit von $1 - n^{-c}$ für eine Konstante $c > 1$. Die drei folgenden Theoreme wurden der Version des Papers, wie sie von Dagstuhl abrufbar ist\cite{Doerr2010}, entnommen. Dies geschah vor dem Hintergrund, dass sie im Grunde das Gleiche aussagen, wie jene in der ansonsten verwendeten Paperversion\cite{Doerr2011}, allerdings besser verständlich formuliert sind. \begin{theorem} Für jeden Startzustand gilt, dass die Medianregel ohne Gegner mit hoher Wahrscheinlichkeit einen stabilen Konsens nach $O(\log n)$ Zeitschritten erreicht. \end{theorem} Dieses Theorem zeigt, dass die Medianregel im Fall ohne Gegner gleich gut wie die Minimumregel ist. Das ist auch das Erste, was gezeigt werden muss: Dass dieses Protokoll nicht schlechter als die als "schlecht" befundene Lösung ist. \begin{theorem} Für jeden Startzustand und eine konstante Zahl an unterschiedlichen Werten erreicht die Medianregel mit einem beliebigen T-starken Gegner mit $T \leq \sqrt{n}$ mit hoher Wahrscheinlichkeit einen fast stabilen Konsens nach $O(\log n)$ Zeitschritten. \end{theorem} Dieses zweite Theorem besagt, dass die Medianregel das Problem löst, welches die Minimumregel nicht zu lösen imstande war, solange der Gegner nicht zu mächtig ist. Diese Einschränkung ist jedoch nicht extra vorteilhaft gewählt, sondern erlaubt dem Gegner gerade so viel Macht, dass das Protokoll noch zu einem Ergebnis kommt. Wenn stattdessen $T = \Omega(\sqrt{n})$ gelten würde, dann könnte Medianregel mit hoher Wahrscheinlichkeit keinen fast stabilen Konsens mehr erreichen, da der Gegner für eine mindestens polynomiell lange Zeit zwei gleichgroße Gruppen an Prozessen mit jeweils gleichen Werten in perfekter Balance halten könnte. \begin{theorem} Für jeden Startzustand mit $m$ unterschiedlichen Werten und einem beliebigen T-starken Gegner mit $T \leq \sqrt{n}$ erreicht die Medianregel mit hoher Wahrscheinlichkeit einen fast stabilen Konsens nach $O(\log m \cdot \log \log n + \log n)$ Zeitschritten. \end{theorem} Der Unterschied zwischen Theorem 2 und 3 ist die Anzahl an unterschiedlichen Werten. Theorem 3 deckt den allgemeineren Teil mit einer beliebigen Anzahl an unterschiedlichen Werten ab. Somit sind auch die theoretischen Fundamente für die vier in der Tabelle sichtbaren Ergebnisse gelegt. Theorem 1 liefert die Ergebnisse für die Fälle ohne Gegner. Theorem 2 liefert den Wert für den Fall mit nur 2 vorhandenen Werten und Theorem 3 liefert das Ergebnis für den Fall mit $m$ verschiedenen Werten. Damit ist unter Annahme der Korrektheit der Theoreme gezeigt, dass die Medianregel eindeutig besser ist als die Minimumregel und die aufgestellten Erfordernisse lösen kann. Doerr et al gehen noch auf einen average-case ein, der in dieser Ausarbeitung jedoch keine weitere Beachtung finden soll. \subsection{Beweis} An dieser Stelle könnte man aufhören. Allerdings geht es auch darum zu verstehen, warum diese Theoreme gelten bzw. die Beweise zu verstehen. Zum Zwecke der Beweisführung wird die Notation angepasst. Statt von Prozessen und Werten wird von Bällen und Eimern (engl.: balls and bins) geredet. Das ist nicht eine willkürliche Entscheidung von Doerr et al, weil sie gerade Lust auf eine Änderung der Begrifflichkeit hatten. Stattdessen gibt es eine tiefergehende theoretische Erwägung für die andere Notation. Denn das in Englisch balls-into-bins genannte Problem ist gut erprobt für Beweise, sodass auf vorhandene Erkenntnisse und Beweisstrukturen zurückgegriffen werden kann. Die Grobstruktur des Beweises für die drei Theoreme ist relativ einfach. Zunächst wird der Fall mit nur 2 Werten gezeigt. Anschließend wird der Fall für beliebig viele Werte darauf zurückgeführt. Für den Fall von nur 2 Werten bzw. Eimern, gilt eine weitere Sache. In diesem Fall ist die Anwendung des Median gleichbedeutend mit der Mehrheitsregel. Die Mehrheitsregel besagt, dass der neue Eimer des aktuell betrachteten Balls derjenige wird, in dem die Mehrheit der drei dafür relevanten Bälle liegt. Diese drei Bälle setzen sich zusammen aus dem aktuell betrachteten Ball und zwei zufällig gewählten Bällen, wobei auch der betrachtete Ball gezogen werden kann. Bevor mit dem eigentlichen Beweis angefangen wird, folgt noch ein weiteres Theorem. \begin{theorem} Für jeden Startzustand mit zwei möglichen Werten (bzw. Eimern) reichen mit hoher Wahrscheinlichkeit $O(\log n)$ Zeitschritte unter Anwendung der Mehrheitsregel (Medianregel) aus, um bei einem $\sqrt{n}$-starken Gegner einen fast stabilen Konsens zu erreichen. \end{theorem} Bei genauerer Betrachtung entspricht dieses Theorem nahezu Theorem 2, nur dass hier explizit von zwei möglichen Werten statt von einer konstanten Menge an möglichen Werten die Rede ist. Der folgende Beweis hat zum Ziel dieses Theorem zu beweisen. Zu Beginn des Beweises werden ein paar Notationen bzw. Variablen eingeführt, die dann im weiteren Verlauf verwendet werden. Mit $L_t$ wird die Anzahl an Bällen im linken Eimer am Ende von Zeitschritt $t$ bezeichnet. $R_t$ ist entsprechend das Gleiche für den rechten Eimer. Mit $X_t = min(L_t, R_t)$ wird die geringere Anzahl an Bällen bezeichnet. $Y_t = max(L_t, R_t)$ bezeichnet entsprechend die höhere Anzahl an Bällen. Wenn der linke Eimer also 10 und der rechte Eimer 20 Bälle hat, wäre $L_t = 10$, $R_t = 20$, $X_t = 10$ und $Y_t = 20$. Hätte der linke Eimer 20 Bälle und rechte nur 10, dann wären die Werte von $L_t$ und $R_t$ vertauscht, die Werte von $X_t$ und $Y_t$ blieben jedoch identisch. Der Einfachheit halber wird nur der Beweis für eine gerade Gesamtanzahl an Bällen ($n$) gezeigt. Laut Doerr et al verläuft der Beweis für ungerade $n$ gleichermaßen. Außerdem wird noch ein Ungleichgewicht $\Delta_t = \frac{(Y_t - X_t)}{2}$ definiert. Mit $\overset{\sim}{\Delta_t}$ und $\overset{\sim}{X_t}$ werden die entsprechenden Werte beschrieben, bevor der Gegner am Ende eines Zeitschritts die Bälle in andere Eimer werfen kann. Basierend auf dem Ungleichgewicht, welches immer ein positiver Integer ist, werden die bereits angesprochenen drei Fälle unterschieden. \textbf{Fall 1: \(\Delta_t \geq \frac{n}{4}\)} Diese Bedingung bedeutet, dass ein Eimer signifikant mehr Bälle enthält als der andere. Die Belegung der Eimer mit dem geringst möglichen Ungleichgewicht (möglichst nah an $\frac{n}{4}$ dran) wäre die Folgende: Der eine Eimer enthält $\frac{3}{4}$ Bälle und der andere $\frac{1}{4}$. Das entspräche der Untergrenze dieses Falls. Der Beweis dieses Falls wird mit einem Lemma begonnen. \begin{lemma} Wenn es einen Zeitschritt $t_0$ mit $\Delta_{t_0} \geq \frac{n}{4}$ gibt, dann gibt es einen Zeitschritt $t_1 = t_0 + O(\log \log n)$ in welchem mit hoher Wahrscheinlichkeit ohne ein Gegner ein stabiler Konsens und mit einem beliebigen $\sqrt{n}$-starken Gegner ein fast stabiler Konsens erreicht wird. \end{lemma} Dieses Lemma besagt, dass wenn die Bedingung für den Eintritt in diesen Fall in einem Zeitschritt gegeben ist, nach $O(\log \log n)$ Schritten ein Zeitschritt erreicht wird, in dem ein stabiler bzw. fast stabiler Konsens vorhanden ist. Es wird ohne Einschränkung der Allgemeinheit für den Beweis angenommen, dass im linken Eimer weniger Bälle sind, das also $L_t = X_t$ und $R_t = Y_t$ gelten. Außerdem gilt aufgrund der Fallbedingung $X_t \leq \frac{n}{4}$. Als Zeitschritt $t_0$ aus dem Lemma wird der Einfachheit halber der initiale Zeitschritt $0$ angenommen. Für jeden Zeitschritt $t$ sei $p_t = \frac{L_t}{n}$ definiert. Der Beweis wird zunächst für den Fall ohne Gegner geführt. Zuerst wird der Erwartungswert für die Anzahl an Bällen im linken Eimer in Abhängigkeit zur Zeit berechnet. Dieser Erwartungswert alleine sagt jedoch noch recht wenig darüber aus, wie sich die einzelnen Ballmengen zu diesem Wert verhalten. Wenn es nur Ausreißer nach unten und oben gibt (minimal bzw. maximal mögliche Anzahl pro Schritt), dann käme beim Erwartungswert immer noch der Mittelwert heraus, nur wäre der nicht repräsentativ für die tatsächlichen Mengen an Bällen im linken Eimer. Daher wird mittels einer Chernoff-Schranke gezeigt, wie wahrscheinlich es ist, in einem Zeitschritt von dem Erwartungswert um mehr als dessen Hälfte abzuweichen. Das Ergebnis dieser Berechnung ist, dass die Wahrscheinlichkeit davon sehr gering ist, wenn im vorigen Schritt mindestens $O(\sqrt{n \log n})$ Bälle im linken Eimer waren. Somit kann gesagt werden, dass mit einer hohen Wahrscheinlichkeit der Erwartungswert auch tatsächlich die einzelnen Werte repräsentiert. Um zu zeigen, dass tatsächlich $\log \log n$ Schritte nötig sind, bis nur noch $O(\sqrt{n \log n})$ Bälle im linken Eimer vorhanden sind, werden die folgenden mathematischen Berechnungen herangezogen, die im Paper leider nicht ausgeführt werden. \begin{alignat*}{2} E[L_t] &\leq& \; 3 \cdot \frac{L_{t-1}^2}{n} \\ \intertext{Teilen durch $n$, Benutzen der Linearität des Erwartungswerts} \frac{E[L_t]}{n} = E[p_t] &\leq& \; 3 \cdot p_{t-1}^2 = 3 \cdot \frac{L_{t-1}^2}{n^2} \\ \intertext{Entsprechend der obigen Ausführungen gilt $p_0 = \frac{1}{4}$. Als nächstes gilt es zu berechnen, welchen Wert $p_t$ hat, wenn $L_t \leq O(\sqrt{n \log n})$ gilt. Unter Anwendung der gleichen Umformung ergibt sich Folgendes.} L_t &\leq& O\left(\sqrt{n \log n}\right) \\ \frac{L_t}{n} = p_t &\leq& \; O\left(\frac{\sqrt{n}}{n} \cdot \sqrt{\log n} \right) = O\left(\frac{\sqrt{n \log n}}{n} \right) \\ &\leq& \; O\left( \frac{\sqrt{n}}{\sqrt{n} \cdot \sqrt{n}} \cdot \sqrt{\log n} \right) \\ &\leq& \; O\left( \frac{\sqrt{\log n}}{\sqrt{n}} \right) \\ \intertext{Aufgrund der obigen Beobachtungen zum Erwartungswert von $p_t$ ist der nachfolgende Wert immer das Quadrat des vorherigen multipliziert mit einer Konstanten. Daraus folgt Nachstehendes.} p_t &=& O\left(\left(\frac{1}{4}\right)^{2^t}\right) \\ \intertext{Die Einbeziehung des vorherigen Ergebnisses für $p_t$ führt zu Folgendem.} p_t = O\left(\left(\frac{1}{4}\right)^{2^t}\right) &\leq& O\left( \frac{\sqrt{\log n}}{\sqrt{n}} \right) \\ \intertext{Umstellen nach $t$} 2^t &\leq& O\left(\log \left(\frac{\sqrt{\log n}}{\sqrt{n}} \right)\right) \\ t &\leq& O\left(\log \log \left(\frac{\sqrt{\log n}}{\sqrt{n}}\right) \right) \\ &\leq& O\left(\log \log \left(\sqrt{n^{-1}\log n}\right) \right) \\ \intertext{Es bleibt nur noch Folgendes zu zeigen.} \sqrt{n^{-1} \log n} &\leq& n \\ n^{-1} \log n &\leq& n^2 \\ \log n &\leq& n^3 \end{alignat*} An diesem Punkt kann aufgehört werden, da offenkundig ist, dass auch diese letzte Ungleichung gilt. Damit ist gezeigt, dass $\log \log n$ Schritte benötigt werden, bis nur noch $O(\sqrt{n \log n})$ Bälle im linken Eimer vorhanden sind. Im Anschluss an diese Feststellung wird im Paper gezeigt, dass ab dem Zeitschritt $t$ mit maximal $O(\sqrt{n \log n})$ Bällen im linken Eimer, die Wahrscheinlichkeit nach dem nächsten Schritt mindestens $O(\log n)$ Bälle zu haben, sehr gering ist. Schließlich wird mit der Markovungleichung gezeigt, dass sobald die Anzahl maximal $O(\log n)$ Bälle beträgt, es sehr unwahrscheinlich ist, nach einem Schritt noch Bälle im linken Eimer zu haben. Zusammengefasst ergeben sich also $\log \log n + 1 + 1$ Schritte, um nach Erreichen der Fallbedingung alle Bälle im rechten Eimer zu haben, was dann den Konsens beschreibt. \textbf{Fall 2: $c \sqrt{n \ln n} \leq \Delta_t < \frac{n}{4}$ für genügend großes $c$} Auch in diesem Fall wird mit einem Lemma begonnen. \begin{lemma} Wenn es einen Zeitschritt $t_0$ mit $c\sqrt{n \ln n} \leq \Delta_{t_0} < \frac{n}{4}$ für eine genügend große Konstante $c$ gibt, dann gibt es mit hoher Wahrscheinlichkeit für einen beliebigen $\sqrt{n}$-starken Gegner einen Zeitschritt $t_1 = t_0 + O(\log n)$ mit $\Delta_{t_1} \geq \frac{n}{4}$. \end{lemma} Dieses Lemma sagt im Kern aus, dass sobald die Fallbedingung zutrifft, es $O(\log n)$ Schritte bedarf, um die Bedingung von Fall 1 zu erfüllen. Der anschließende Beweis zeigt dann auch dieses Lemma. Es fällt auf, dass als Untergrenze für das Ungleichgewicht (modifiziert durch eine Konstante) der gleiche Wert genommen wird, der in Fall 1 für die Ballmenge im linken Eimer nach $O(\log \log n)$ Schritten festgestellt wurde. Inwieweit dort ein Zusammenhang besteht, ist jedoch aus dem Paper heraus nicht ersichtlich. Eingangs wird eine einfache mathematische Umformung und Ersetzung gemacht, welche $X_t = \frac{n}{2} - \Delta_t$ ergibt. Desweiteren wird $\delta_t = \frac{\Delta_t}{n}$ eingeführt und mit $\delta_t \in \left[\frac{c\sqrt{\ln n}}{\sqrt{n}}, \frac{1}{4} \right]$ definiert. $\delta_t$ entspricht dem relativen Ungleichgewicht, wohingegen $\Delta_t$ das absolute Ungleichgewicht darstellt. Die Unter- und Obergrenzen des Werteintervalls entsprechen den Unter- und Obergrenzen von Fall 2. Die Obergrenze des Intervalls kann eigentlich gar nicht erreicht werden, da laut Fallbedingung $\frac{n}{4}$ echt größer ist als jeder mögliche Wert von $\Delta_t$. Somit müsste es ein nach oben offenes Intervall sein. Im Anschluss wird die Wahrscheinlichkeit dafür angegeben, dass ein Ball, der zum Zeitpunkt $t$ im kleineren Eimer ist, dort auch einen Schritt später noch ist. Dabei wird nur das Ergebnis ($\frac{3}{4} - \delta_t - \delta_t^2$), nicht aber die Herleitung gezeigt. Diese mathematische Herleitung soll hier zum Verständnis einmal gezeigt werden. Dafür ist es wichtig, die Funktionsweise des Algorithmus vor Augen zu haben. Ein Ball im kleineren (angenommen der linke) Eimer bleibt dort, wenn einer der beiden zufällig gezogenen Bälle ebenfalls im linken Eimer ist. \begin{alignat*}{2} \intertext{Addition der Wahrscheinlichkeit 2 Bälle aus dem linken Eimer zu ziehen mit Wahrscheinlichkeit einen Ball aus dem linken und einen aus dem rechten Eimer zu ziehen.} P[\text{Ball im kleineren Eimer bleibt dort}] &= \left(\frac{X_t}{n}\right)^2 + 2 \cdot \left( \frac{X_t}{n} \cdot \frac{n - X_t}{n} \right) \\ &= \frac{X_t^2}{n^2} + 2 \cdot \left( \frac{nX_t - X_t^2}{n^2} \right) \\ &= \frac{2nX_t - X_t^2}{n^2} \\ \intertext{$X_t$ durch $\frac{n}{2} - \Delta_t$ ersetzen} &= \frac{2n(\frac{n}{2} - \Delta_t) - (\frac{n}{2} - \Delta_t)^2}{n^2} \\ &= \frac{n^2 - 2n\Delta_t - (\frac{n^2}{4} - n\Delta_t + \Delta_t^2)}{n^2} \\ &= \frac{n^2 - 2n\Delta_t - \frac{n^2}{4} + n\Delta_t - \Delta_t^2}{n^2} \\ &= \frac{n^2 - \frac{n^2}{4} - n\Delta_t - \Delta_t^2}{n^2} \\ &= \frac{n^2}{n^2} - \frac{\frac{n^2}{4}}{n^2} - \frac{n\Delta_t}{n^2} - \frac{\Delta_t^2}{n^2} \\ &= 1 - \frac{1}{4} - \frac{\Delta_t}{n} - \left(\frac{\Delta_t}{n}\right)^2 \\ \intertext{Anwenden der Definition von $\delta_t$} &= \frac{3}{4} - \delta_t - \delta_t^2 \end{alignat*} Wie zu sehen ist, kommt am Ende das im Paper als Wahrscheinlichkeit angegebene Ergebnis heraus. Die Berechnung der Wahrscheinlichkeit dafür, dass ein Ball von dem größeren Eimer in den kleineren wechselt kann ähnlich berechnet werden und beträgt $\frac{1}{4} - \delta_t + \delta_t^2$. Es sei erinnert daran, dass $\overset{\sim}{X}_{t+1}$ die Anzahl an Bällen im kleineren Eimer am Ende von Schritt $t+1$ bezeichnet, bevor der Gegner aktiv wird. Mithilfe der Linearität der Erwartung (engl.: Linearity of expectation) wird der Erwartungswert für eben dieses $\overset{\sim}{X}_{t+1}$ berechnet. Dieser beträgt $(1 - \frac{\delta_t}{2})X_t$. Anschließend wird unter Berücksichtigung der Tatsache, dass die Auswahl der Bälle unabhängig voneinander geschieht, mittels Chernoff-Schranken gezeigt, dass die Wahrscheinlichkeit, dass $\overset{\sim}{X}_{t+1}$ mindestens $(1 - \frac{\delta_t}{4})X_t$ groß ist, sehr gering ist. Der Gegner kann bis zu $\sqrt{n}$ Bälle manipulieren. Demnach gilt mit hoher Wahrscheinlichkeit $X_{t+1} \leq (1 - \frac{\delta_t}{4})X_t + \sqrt{n}$. Einfache Ersetzung ergibt $\frac{n}{2} - \Delta_{t+1} \leq (1 - \frac{\delta_t}{4}) \cdot (\frac{n}{2} - \Delta_t) + \sqrt{n}$. Dies gilt weiterhin mit hoher Wahrscheinlichkeit. Für eine Ersetzung im weiteren Verlauf wird $\sqrt{n}$ abgeschätzt werden müssen. Dies lässt sich durch folgende Umformung erreichen. \begin{alignat*}{2} c \sqrt{n \log n} = \sqrt{n} \cdot c \sqrt{\log n} &\leq& \Delta_t \\ \sqrt{n} &\leq& \frac{\Delta_t}{c \sqrt{\log n}} \leq \frac{\Delta_t}{c \cdot 1} \end{alignat*} Mittels mathematischer Umformungen werden $\Delta_{t+1}$ auf die rechte Seite und alles andere auf die linke Seite gebracht. \begin{alignat*}{2} \frac{n}{2} - \Delta_{t+1} &\leq& \left(1 - \frac{\delta_t}{4} \right) \cdot \left(\frac{n}{2} - \Delta_t \right) + \sqrt{n} \\ \frac{n}{2} &\leq& \left(1 - \frac{\delta_t}{4} \right) \cdot \left(\frac{n}{2} - \Delta_t \right) + \sqrt{n} + \Delta_{t+1} \\ \intertext{Ausmultiplizieren} \frac{n}{2} &\leq& \frac{n}{2} - \frac{\delta_t n}{8} - \Delta_t + \frac{\delta_t \Delta_t}{4} + \sqrt{n} + \Delta_{t+1} \\ \intertext{Definition von $\delta_t$, zusammenfassen} \frac{n}{2} &\leq& \frac{n}{2} - \frac{\Delta_t}{8} - \Delta_t + \frac{\delta_t \Delta_t}{4} + \sqrt{n} + \Delta_{t+1} \\ \intertext{auf die andere Seite bringen} \Delta_t + \frac{\Delta_t}{8} - \frac{\delta_t \Delta_t}{4} -\sqrt{n} &\leq& \Delta_{t+1} \\ \intertext{Laut Definition gilt $\delta_t \leq \frac{1}{4}$. Daher kann $\delta_t$ mit $\frac{1}{4}$ abgeschätzt werden. $\sqrt{n}$ kann entsprechend oben genannter Umformung durch $\frac{\Delta_t}{c}$ abgeschätzt werden. $c$ kann auf $32$ gesetzt werden. Damit ergibt sich folgender Zustand.} \Delta_t + \frac{\Delta_t}{8} - \frac{\Delta_t}{16} -\frac{\Delta_t}{32} &\leq& \Delta_{t+1} \\ \intertext{Auf gleichen Nenner bringen} \Delta_t + \frac{4 \Delta_t}{32} - \frac{2 \Delta_t}{32} -\frac{\Delta_t}{32} &\leq& \Delta_{t+1} \\ \Delta_t + \frac{\Delta_t}{32} &\leq& \Delta_{t+1} \\ \intertext{Ausklammern} \left(1 + \frac{1}{32} \right)\Delta_t &\leq& \Delta_{t+1} \\ \end{alignat*} Das Ergebnis dieser Umformungen gilt weiterhin mit hoher Wahrscheinlichkeit und zeigt, dass das Ungleichgewicht von Schritt zu Schritt größer wird. Somit ist offenbar, dass irgendwann die obere Grenze dieses Falls erreicht sein wird. Basierend darauf kann jetzt mittels mathematischer Berechnungen gezeigt werden, dass es in der Tat $O(\log n)$ Runden bedarf, bis in den ersten Fall gewechselt werden kann. Unter Anwendung der Fallbedingung ergibt sich Folgendes. \begin{alignat*}{2} \Delta_0 &\geq& c\sqrt{n \ln n} \\ \intertext{Daraus folgt unter Verwendung des vorherigen Ergebnisses:} \left(1 + \frac{1}{32} \right)^{t} \cdot c\sqrt{n \ln n} &\leq& \frac{n}{4} \\ \left(1 + \frac{1}{32} \right)^{t} &\leq& \frac{1}{4c} \cdot \frac{\sqrt{n}}{\sqrt{\ln n}} \\ \intertext{Logarithmus anwenden} t &\leq& \; O\left(\log \left( \frac{\sqrt{n}}{\sqrt{\ln n}} \right) \right) \\ \intertext{Es bleibt noch Folgendes zu zeigen.} \frac{\sqrt{n}}{\sqrt{\ln n}} &\leq& n \\ \frac{n}{\ln n} &\leq& n^2 \\ \frac{1}{\ln n} &\leq& n \end{alignat*} Die letzte Ungleichung gilt offenbar. Damit ist gezeigt, dass tatsächlich nach $O(\log n)$ Runden in den ersten Fall gewechselt werden kann. Es ist nicht ersichtlich, weswegen im Paper der sog. "union bound" angewendet wird statt dieser einleuchtenden mathematischen Herleitung. Auf den dritten Fall wird hier nicht mehr eingegangen, da dieser deutlich komplexer ist und den Umfang dieser Seminarausarbeitung sprengen würde. \section{Verwandte Arbeiten und Ansätze} Ben-Or\cite{Ben-Or1983} hat das erste Protokoll entworfen, welches mittels eines randomisierten Algorithmus das Konsensproblem löst. Spätere Literatur baut auf dieser Arbeit auf und erweitert sie maßgeblich in zwei Richtungen. Eine Richtung beschäftigt sich mit Protokollen, die Nachrichtenweitergabe nutzen (engl.: message passing), und konzentriert sich auf das Lösen des Problems mittels kryptographischer Technologien oder privaten Kanälen mit einer linearen Grenze an fehlerhaften Prozessen (inklusive byzantinische Fehler). Die andere Richtung beschäftigt sich mit "shared memory" und benutzt die zugrundeliegende Zuverlässigkeit eines solchen "shared memory" Systems, um das Konsensproblem in dem "wait-free" Fall zu lösen. Dabei gibt es keine Grenze für die Anzahl an Prozessen, die versagen (engl.: fail) dürfen, aber ein Versagen kann nur aufgrund eines Crashs eintreten. Für die Richtung der Nachrichtenweitergabe sei exemplarisch Rabin\cite{Rabin1983} erwähnt, der zeigte, dass -- vereinfacht gesagt -- sich das Problem der byzantinischen Armeen durch eine für beide Armeen sichtbare Münze erwartbar in konstanter Zeit lösen lässt. Für die "shared memory" Richtung sei exemplarisch die Arbeit von Chor, Israeli und Li\cite{Chor1994} erwähnt, in der das erste Protokoll unter Verwendung von randomisierten Algorithmen vorgestellt wurde, welches "shared memory" benutzt und das Konsensproblem löst. \section{Zusammenfassung} Zum Abschluss der Arbeit wird diese zusammengefasst und der Bezug zum Masterstudium aufgezeigt. \subsection{Zusammenfassung} Das untersuchte Paper von Doerr et al\cite{Doerr2011} liefert ein zentrales Resultat für den Bereich der Konsensprobleme. Das Medianverfahren ist für die Lösung des eingangs beschriebenen Problems gut geeignet und zudem leicht verständlich. Der Beweis der aufgestellten Theoreme erfolgt in einer nachvollziehbaren und aufeinander aufbauenden Weise. In dieser Arbeit wurde der Versuch unternommen die ersten beiden Fälle des Beweises für den Fall von zwei Werten zu erläutern und den Ablauf des Beweises verständlich zu machen. Dabei ist aufgefallen, dass an etlichen Stellen der Rechenweg bzw. allgemeiner der Weg zum Ergebnis im zugrundeliegenden Paper nicht erwähnt oder nur sehr vage beschrieben wurde. Diese Zwischenschritte wurden in dieser Arbeit bestmöglich nachvollzogen, sodass der Beweis auch für Personen verständlich ist, die sich nicht im Bereich der Algorithmik bzw. spezifischer der randomisierten Algorithmen heimisch fühlen. Allerdings ist auch klar, dass diese Arbeit nur einen kleinen Bruchteil des Papers bzw. des Beweises erklärt. Offen bleibt der dritte Fall, sowie der gesamte Fall von mehr als zwei Werten. Ebenfalls wurde der Bereich zu einem "average case" ausgespart. Ingesamt lässt sich die Einschätzung geben, dass viele Paper, die zum Teil wichtige Erkenntnisse beschreiben, durch eine Erläuterung des Rechenweges -- notfalls im Anhang -- deutlich verständlicher würden. \subsection{Bezug zum M.Sc. Studium} Als allgemeine Erkenntnis für das Studium lässt sich entnehmen, dass jedwede Annahmen zu erklären und explizit zu machen sind. Man kann sich nie darauf verlassen, dass nur Menschen die eigenen Texte lesen, die genau wissen, was womit gemeint oder angedeutet ist. Daher sollte ein Text stets so geschrieben werden, dass auch jemand, der sich mit der spezifischen Fachmaterie noch nie oder nur rudimentär auseinandergesetzt hat, dem Text folgen und ihn verstehen kann. \newpage \printbibliography \end{document}