From: Florian Forster Date: Mon, 13 Dec 2010 14:35:56 +0000 (+0100) Subject: Abschnitt "Markov-Kette": Angefangen. X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=10f7e26bc636055d9594e7bff4e62d3d93fbd6c9;p=diplomarbeit.git Abschnitt "Markov-Kette": Angefangen. --- diff --git a/diplomarbeit.tex b/diplomarbeit.tex index e17b6a4..14d0e09 100644 --- a/diplomarbeit.tex +++ b/diplomarbeit.tex @@ -780,14 +780,57 @@ acht Eingängen. Es besteht aus 19~Komparatoren in 6~Schichten.} \item Wie gut die Netzwerke werden, hängt stark vom verwendeten \em{Mischer} ab. \end{itemize} -\subsection{Vom evolutionären Algorithmus zu einer Markov-Kette} +\section{Markov-Kette} + +Der evolutionäre Algorithmus aus dem vorherigen Abschnitt verwendete immer +zwei zufällige Sortiernetzwerke („Individuen“) aus einer Population. Da die +beiden „Eltern“ zufällig und unabhängig voneinander ausgewählt werden, kann es +vorkommen, dass das selbe Sortiernetzwerk zweimal verwendet und mit sich +selbst kombiniert wird. + +Macht man diesen Spezialfall zum Regelfall, indem man \emph{immer} das +aktuelle Netzwerk mit sich selbst kombiniert und anschließend die Hälfte aller +Leitungen eliminiert, lassen sich einige interessante Beobachtungen anstellen. +Netzwerke, die aus einem Netzwerk $S_0$ durch die beschriebene Kombination von +$S_0$ mit sich selbst und anschließendem Eliminieren der Hälfte der Leitungen +hervorgehen können, heißen \emph{Nachfolger} von $S_0$. + +Beim beschriebenen Vorgehen kann man die Sortiernetzwerke als Knoten in einem +gerichteten Graphen betrachten. Zwei Knoten $V_0$ und $V_1$, die zwei +Sortiernetzwerke $S_0$ und $S_1$ repräsentieren, sind genau dann mit einer +Kante ${E_{0,1} = (V_0, V_1)}$ verbunden, wenn $S_1$ ein \emph{Nachfolger} von $S_0$ +ist, das heißt dass man $S_1$ durch die Rekombination von $S_0$ mit sich +selbst erzeugen kann. + +Der Algorithmus {\sc SN-Markov} legt auf diesem Graph einen zufälligen Weg +(englisch: \textit{random walk}) zurück. Er startet auf einem gegebenen +Sortiernetzwerk. Um von einem Sortiernetzwerk zum Nächsten zu gelangen +rekombiniert er das aktuelle Sortiernetzwerk mit sich selbst und erhält so +einen zufälligen Nachfolger. \begin{itemize} -\item Kombiniere immer das aktuelle Netzwerk mit sich selbst. -\item Kann die Mindestgüte immernoch erreicht werden? ({\em Ich denke schon.}) -\item Anzahl der erreichbaren Sortiernetzwerke. + \item $n \leftarrow \mathrm{Input}$ + \item \texttt{while} \textit{true} + \begin{itemize} + \item $n \leftarrow \operatorname{recombine} (n, n)$ + \end{itemize} \end{itemize} +\begin{itemize} + \item Beste erreichte Netzwerke (gleich zu \emph{OE-Mergesort}). + \item Anzahl der erreichbaren Sortiernetzwerke. + \item Anzahl der Komparatoren und Anzahl der Schichten der durchlaufenen + Netzwerke. (Abbildung~\ref{fig:markov-comparators-16}) +\end{itemize} + +\begin{figure} + \begin{center} + \includegraphics[viewport=0 0 360 216,width=15cm]{images/markov-comparators-16.pdf} + \end{center} + \caption{Anzahl der Komparatoren von Sortiernetzwerken (mit 16~Leitungen), die von {\sc SN-Markov} durchlaufen wurden.} + \label{fig:markov-comparators-16} +\end{figure} + %\input{shmoo-aequivalenz.tex} \section{Optimierung der Schnitte}