mirror of
https://github.com/2martens/uni.git
synced 2026-05-06 11:26:25 +02:00
646 lines
34 KiB
TeX
646 lines
34 KiB
TeX
\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}
|