mirror of https://github.com/2martens/uni.git
[FGI3] Einleitung der Ausarbeitung geschrieben
Signed-off-by: Jim Martens <github@2martens.de>
This commit is contained in:
parent
448cdda1c0
commit
29ddaea882
|
@ -0,0 +1,200 @@
|
|||
\documentclass[12pt,ngerman,a4paper]{scrartcl}
|
||||
\usepackage{amsfonts}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{amsthm}
|
||||
\usepackage[ngerman]{babel}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[round]{natbib}
|
||||
\usepackage[german=quotes]{csquotes}
|
||||
|
||||
% 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}
|
||||
|
||||
\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}
|
||||
TODO
|
||||
\end{abstract}
|
||||
|
||||
\tableofcontents
|
||||
|
||||
\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.[Quelle] 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.[Quelle] 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.[Quelle] 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
|
||||
selbststabilisierendes Konsensprotokoll.
|
||||
|
||||
\subsection{Aufbau der Arbeit}
|
||||
% auch ohne Subsection aufschreiben, abgetrennt, um es nicht zu vergessen
|
||||
TODO
|
||||
|
||||
% Beginn Hauptinhalt
|
||||
\section{Iterierte Umfärbungen }\label{sec:Iterierte-Umfärbungen}
|
||||
|
||||
Im folgenden betrachten wir Umfärbungen von Tüten sowie deren
|
||||
Iteration. Hierbei ist insbesondere der Grenzwertprozess von
|
||||
Interesse.
|
||||
|
||||
\subsection{Iteration, Stabilisation}
|
||||
Wir nehmen eine vorgegebene Mengen an Farben $C$ an. Der Einfachheit
|
||||
halber identifizieren wir eine Tüte $T$ mit $n$ Gummibären mit dem
|
||||
Intervall $[1, \ldots, n]$.
|
||||
|
||||
\begin{definition}[Färbung]
|
||||
Eine \emph{Färbung} ist eine Abbildung $f: [1, \ldots, n] \to C$.
|
||||
|
||||
Sei $F$ die Menge aller Färbungen
|
||||
\end{definition}
|
||||
|
||||
Ein \emph{Funktional} ist eine Funktion, die Funktionen als Argumente
|
||||
hat, d.h. …
|
||||
|
||||
\begin{definition}[Umfärbung]
|
||||
Eine \emph{Umfärbung} ist eine Funktional $u: F \to F$.
|
||||
\end{definition}
|
||||
|
||||
\begin{definition}
|
||||
Sei die Färbung $f: [1, \ldots, n] \to C$ gegeben.
|
||||
Die Iteration einer Umfärbung $u: F \to F$ ist
|
||||
\begin{equation}
|
||||
\begin{array}{rcl}
|
||||
u^0(f) &:=& f \\
|
||||
u^{n+1}(f) &:=& u(u^{n}(f))
|
||||
\end{array}
|
||||
\end{equation}
|
||||
\end{definition}
|
||||
|
||||
Wir hätten es gerne, dass sich $u^{n}(f)$ für $n \to \infty$
|
||||
stabilisiert.
|
||||
|
||||
\subsection{Ordnungen}
|
||||
In \citep{hans-riegel-1994} findet sich der folgende Satz:
|
||||
|
||||
\begin{theorem}[Hans und Riegel, 1994]
|
||||
Zu jeder wohlgeordneten Menge von Gummibärenfarben ...
|
||||
\end{theorem}
|
||||
|
||||
Historisch betrachtet findet sich der Wohklordnungsbegriff aber
|
||||
bereits schon \citep{riegel-1993} angelegt.
|
||||
|
||||
\subsection{Eindeutigkeit}
|
||||
Es gibt eine Besonderheit des Wohlordnungssatz auf Gummibärenfarben:
|
||||
Der Wohlordnungssatz auf Gummibärenfarben garantiert die
|
||||
Stabiliserung. Er garantiert aber nicht die Eindeutigkeit des
|
||||
Endergebnisses. Das Endergebnis hängt von der Auswahlfunktion $g:
|
||||
\mathbb{N} \to [1, \ldots, k]$ auf dem Umfärbungsensemble ab. Es
|
||||
ergibt sich also sofort die Frage: Für welche Umfärbungsensembles ist
|
||||
auch das Endergebnis eindeutig?
|
||||
|
||||
\section{Verwandte Arbeiten und Ansätze}
|
||||
Wir finden in der Literatur eine Reihe ähnlicher Ansätze, von denen
|
||||
wir einige vorstellen wollen.
|
||||
|
||||
\paragraph{Ondulierten Umfärbung}
|
||||
\paragraph{Iterierte Verfärbung}
|
||||
\paragraph{Gefärbte Iteration}
|
||||
|
||||
\section{Ausblick und Zusammenfassung}
|
||||
|
||||
\subsection{Zusammenfassung}
|
||||
|
||||
\subsection{Ausblick}
|
||||
In dieser Hausarbeit habe ich einiges nur kurz angerissen bzw. ganz
|
||||
weggelassen, weil es den Rahmen des Seminars sprengt.
|
||||
|
||||
Insbesondere habe ich nicht die Theorie der Umfärbung auf unendlich
|
||||
großen Tüten behandelt. Diese Theorie basiert prinzipiell auch auf
|
||||
den hier behandelten Konzepten, wobei daruaf zu achten ist, dass....
|
||||
|
||||
\subsection{Bezug zum M.Sc. Studium}
|
||||
Abschließend möchte ich die Relevanz des Themas für das weitere
|
||||
Studium im Master skizzieren....
|
||||
|
||||
\bibliographystyle{dinat}
|
||||
\bibliography{references}
|
||||
|
||||
\end{document}
|
Loading…
Reference in New Issue