Abschnitt "Markov-Kette": Angefangen.
[diplomarbeit.git] / diplomarbeit.tex
index a861992..14d0e09 100644 (file)
@@ -472,10 +472,49 @@ Abbildung~\ref{fig:odd_even_mergesort_08} zeigt das Netzwerk für $8$~Eingänge.
 
 \section{Transformation von Sortiernetzwerken}
 
-\begin{itemize}
-\item Komprimieren (Alle Komparatoren so früh wie möglich anwenden).
-\item Normalisieren (Transformation zu Standard-Sortiernetzwerken).
-\end{itemize}
+\subsection{Komprimieren}
+
+\todo{Aus theoretischer Sicht eigentlich eine Trivialität. Rausschmeißen?}
+
+Komparatoren, die unterschiedliche Leitungen miteinander vergleichen, können
+gleichzeitig ausgewertet werden, wie bereits in
+Abschnitt~\ref{sect:einleitung_sortiernetzwerke} beschrieben. Unter
+\emph{Komprimieren} wird eine (Neu-)Gruppierung in die kleinstmögliche Anzahl
+von \emph{Schichten} verstanden.
+
+Diese Anzahl ist insbesondere beim automatisierten Bewerten von
+Komparatornetzwerken interessant. \dots
+
+\subsection{Normalisieren}
+
+\begin{figure}
+  \centering
+  \subfigure[$S(8)$ (nach Konstruktion)]{\input{images/batcher-8-nonstd.tex}\label{fig:bitonic-nonstd}}
+  \subfigure[$S(8)$ (normalisiert)]{\input{images/batcher-8-std.tex}\label{fig:bitonic-std}}
+  \caption{Jedes Sortiernetzwerk kann in ein Standard-Sortiernetzwerk
+  transformiert werden. Gezeigt ist das bitone Sortiernetzwerk nach der
+  intuitiven Konstruktion und die normalisierte Variante.}
+  \label{fig:beispiel_normalisieren}
+\end{figure}
+
+Ein \emph{Standard-Sortiernetzwerk} oder \emph{normalisiertes Sortiernetzwerk}
+ist ein Sortiernetzwerk, dessen Komparatoren alle in die selbe Richtung
+zeigen. Jedes Sortiernetzwerk kann in eine normaliesierte Variante
+transformiert werden. Dazu gibt beispielsweise \emph{Knuth} (\todo{Verweis})
+einen Algorithmus an.
+
+Abbildung~\ref{fig:beispiel_normalisieren} zeigt das das
+bitone Sortiernetzwerk in zwei Varianten. Abbildung~\ref{fig:bitonic-nonstd}
+zeigt das Netzwerk nach der Konstruktionsvorschrift, siehe auch
+Abbildung~\ref{fig:bitonic-merge-normal}: In den ersten drei Schichten werden
+die unter und die obere Hälfte gegenläufig sortiert. Das heißt dass nach drei
+Schritten die eine Hälfte auf- und die andere Hälfte absteigend sortiert ist. 
+In den Schichten~4 bis~6 folgt der bitone Mischer entsprechend der rekursiven
+Definition.
+
+In Abbildung~\ref{fig:bitonic-std} ist die normalisierte Version des bitonen
+Mergesort-Netzwerks zu sehen. Alle Komparatoren zeigen hier in die gleiche
+Richtung.
 
 \subsection{Zwei Netzwerke kombinieren}
 
@@ -487,24 +526,25 @@ Abbildung~\ref{fig:odd_even_mergesort_08} zeigt das Netzwerk für $8$~Eingänge.
 
 \subsection{Leitungen entfernen}\label{sect:leitungen_entfernen}
 
+Im vorherigen Abschnitt haben wir gesehen, dass es mithilfe von
+\emph{Mischern} möglich ist, aus zwei Sortiernetzwerken mit je $n$~Eingängen
+ein neues Sortiernetzwerk mit $2n$~Eingängen zu erzeugen. Für einen
+beabsichtigen \emph{evolutionären Algorithmus} ist es jedoch notwendig, dass
+sich die Anzahl der Eingänge nicht verändert. Das heißt, dass wir wieder ein
+Sortiernetzwerk mit $n$~Eingängen erhalten müssen.
+
 Man kann ein gegebenes Sortiernetzwerk mit $n$~Eingängen auf ein
 Sortiernetzwerk mit $(n-1)$~Leitungen verkleinern, indem man eine Leitung
-entfernt. Zunächst wird angenommen, dass das Minimum oder das Maximum an einem
-der Eingänge anliegt. Der Weg durch das Netzwerk zum entsprechenden Ausgang
-ist dadurch fest vorgegeben, insbesondere welche Komparatoren dafür sorgen,
-dass die Leitung gewechselt wird und welche nicht.
+„eliminiert“. Dazu nehmen wir an, dass das Minimum oder das Maximum an einem
+bestimmten Eingang anliegt. Der Weg, den das Minimum beziehungsweise das Maxim
+durch das Sortiernetzwerk nimmt, ist eindeutig bestimmt und endet an einem der
+„Ränder“, also auf der Leitung mit dem höchsten oder dem niedrigsten Index.
+Insbesondere ist bekannt, welche Komparatoren „berührt“ werden und welche
+dafür sorgen, dass der Wert die Leitung gewechselt, da das Minimum jeden
+Vergleich „verliert“ und das Maximum jeden Vergleich „gewinnt“. Die
 Abbildung~\ref{fig:oe-transposition-cut0} zeigt den Weg eines Maximums durch
 das {\em Odd-Even-Transpositionsort-Netzwerk}.
 
-Im nächsten Schritt werden alle beteiligten Komparatoren gelöscht bzw.
-ersetzt: Komparatoren, die {\em nicht} zu einem Wechsel der Leitung geführt
-haben, werden ersatzlos gelöscht. Diese Komparatoren sind in
-Abbildung~\ref{fig:oe-transposition-cut0} grün markiert. Die Komparatoren, die
-zum Wechsel der Leitung geführt haben, werden durch sich kreuzende Leitungen
-ersetzt. Das Resultat zeigt Abbildung~\ref{fig:oe-transposition-cut1}. Wenn
-man die Maximum-Leitung entfernt (Abbildung~\ref{fig:oe-transposition-cut2}),
-erhält man ein Sortiernetzwerk für $(n-1)$~Leitungen.
-
 \begin{figure}
   \centering
   \subfigure[foo]{\input{images/oe-transposition-cut0.tex}\label{fig:oe-transposition-cut0}}
@@ -519,6 +559,31 @@ erhält man ein Sortiernetzwerk für $(n-1)$~Leitungen.
   letzten Abbildung ist $\textrm{OET}(7)$ markiert.}
 \end{figure}
 
+Im nächsten Schritt werden alle beteiligten Komparatoren gelöscht bzw.
+ersetzt: Komparatoren, die {\em nicht} zu einem Wechsel der Leitung geführt
+haben, werden ersatzlos gelöscht. Diese Komparatoren sind in
+Abbildung~\ref{fig:oe-transposition-cut0} grün markiert. Die Komparatoren, die
+zum Wechsel der Leitung geführt haben, werden durch sich kreuzende Leitungen
+ersetzt. Das Resultat ist eine Leitung, auf der das Minimum beziehungsweise
+das Maximum angenommen wird, die an unterster oder oberster Stelle endet und
+auf die keine Komparatoren mehr berührt
+(Abbildung~\ref{fig:oe-transposition-cut1}).
+
+Die Werte auf den verbleibenden $(n-1)$~Leitungen müssen vom restlichen
+Komparatornetzwerk immernoch sortiert werden: Wir haben lediglich die Position
+des Minimums oder des Maximums angenommen. Ein Sortiernetzwerk muss die
+Eingabe sortieren, egal auf welcher Leitung das Minimum~/ das Maximum liegt.
+Wir haben lediglich angefangen, das Sortiernetzwerk unter diese Annahme
+auszuwerten -- über die verbleibenden Eingänge haben wir keine Aussage
+getroffen. Entsprechend müssen die verbleibenden Ausgänge eine sortierte Liste
+mit $(n-1)$~Elementen darstellen.
+
+Wenn wir die Minimum- beziehungsweise Maximum-Leitung entfernen
+(Abbildung~\ref{fig:oe-transposition-cut2}), bleibt das Sortiernetzwerk für
+$(n-1)$~Leitungen übrig. Je nachdem, ob auf einer Leitung ein Minimum oder ein
+Maximum angenommen wird, bezeichnen wir das eliminieren einer Leitung als
+\emph{Minimum-Schnitt} beziehungsweise \emph{Maximum-Schnitt}.
+
 Die letzte Abbildung, \ref{fig:oe-transposition-cut3}, zeigt das
 Sortiernetzwerk wieder mit den üblichen geraden Leitungen und die rot
 markierten Komparatoren wurden verschoben, so dass sich eine kompaktere
@@ -527,9 +592,58 @@ Darstellung ergibt. Ausserdem ist das
 zusätzliche Komparator vor dem $\textrm{OET}(7)$ hat keinen Einfluss auf die
 Ausgabe und kann entfernt werden.
 
+Der Eliminierungsschritt kann iterativ angewandt werden, um aus einem
+Sortiernetzwerk mit $n$~Ein\-gängen Sortiernetzwerke mit $n-1$, $n-2$,
+$n-3$,~\dots Eingängen zu erzeugen. Insbesondere können wir auf diese Art und
+Weise einen Sortiernetzwerk mit $2n$~Eingängen wieder auf ein Sortiernetzwerk
+mit $n$~Eingängen reduzieren.
+
+Bei einem Sortiernetzwerk mit $n$~Eingängen gibt es $2n$~Möglichkeiten eine
+Leitung zu entfernen: Auf jeder der $n$~Leitungen kann sowohl das Minimum als
+auch das Maximum angenommen werden. Wendet man das Verfahren iterativ an, um
+ein $n$-Sortiernetzwerk auf ein $m$-Sortiernetzwerk zu reduzieren, ergeben
+sich insgesamt
+\begin{displaymath}
+  \prod_{i=n}^{m+1} 2i = 2^{n-m} \frac{n!}{m!}
+  \quad (n > m)
+\end{displaymath}
+Möglichkeiten. Diese Möglichkeiten sind nicht alle unterschiedlich. Legt man
+beispielsweise das Minimum auf die unterste Leitung und das Maximum auf die
+oberste Leitung eines Standard-Sortiernetzwerks, führen beide Reihenfolgen zum
+selben Ergebnis.
+
+\textit{Moritz Mühlenthaler} zeigt in seiner Arbeit (\todo{Referenz}), dass
+es möglich ist, mehrere Eingänge gleichzeitig mit Minimum beziehungsweise
+Maximum vorzubelegen. Dadurch wird die Anzahl der möglichen Schnitte
+reduziert, die Menge der erreichbaren Sortiernetzwerke bleibt aber
+unverändert. Die Anzahl der möglichen „Schnittmuster“ setzt sich zusammen aus
+der Anzahl von Möglichkeiten, $n-m$~Leitungen aus $n$ Leitungen auszuwählen,
+und die möglichen Minimum-~/ Maximum-Muster. Damit ergibt sich folgende
+Formel:
+\begin{displaymath}
+  2^{n-m} \cdot \left( \begin{array}{c} n \\ n-m \end{array} \right)
+  = 2^{n-m} \cdot \frac{n!}{(n-m)! m!}
+  = 2^{n-m} \cdot \frac{n!}{m!} \cdot \frac{1}{(n-m)!}
+  \quad (n > m)
+\end{displaymath}
+
+Die Anzahl der möglichen Schnitte wird mit der Anzahl der zu entfernenden
+Leitungen sehr schnell sehr groß. Um ein Sortiernetzwerk mit 32~Eingängen auf
+ein Sortiernetzwerk mit 16~Eingängen zu reduzieren sind 16~Schnitte notwendig,
+für die es bereits etwa ${3,939 \cdot 10^{13}}$ Möglichkeiten gibt. Ein
+Ausprobieren aller Möglichkeiten ist für große Netzwerke nicht oder nur unter
+erheblichem Ressourcenaufwand möglich.
+
+Das Programm {\sc SN-Evolution-Cut} implementiert einen evolutionären
+Algorithmus, der zu einem gegebenen Sortiernetzwerk und einer gewünschten
+Leitungszahl ein Schnittmuster sucht, dass ein Sortiernetzwerk mit einer
+möglichst geringen Anzahl von Komparatoren und Schichten ergibt. Zur Bewertung
+von Sortiernetzwerken siehe auch Abschnitt~\ref{sect:bewertung}.
+
 \begin{itemize}
-\item Min-Richtung
-\item Max-Richtung
+  \item Beispiel: Moritz und Rolfs Optimierung für Bitonic-Sort.
+  \item Wie gut kann man durch wegschneiden werden?
+  \item Wieviele Schnitte ergeben das selbe Netzwerk?
 \end{itemize}
 
 \section{Der evolutionäre Ansatz}
@@ -537,7 +651,7 @@ Ausgabe und kann entfernt werden.
 Um einen evolutionären Algorithmus für Sortiernetzwerke zu entwickeln, werden
 die vorgestellten Methoden kombiniert.
 
-\subsection{Bewertungsfunktion}
+\subsection{Bewertungsfunktion}\label{sect:bewertung}
 
 Um Sortiernetzwerke überhaupt optimieren zu können, muss zunächst die
 {\em Güte} eines Netzwerkes definiert werden. Prinzipiell gibt es zwei Ziele,
@@ -659,240 +773,6 @@ acht Eingängen. Es besteht aus 19~Komparatoren in 6~Schichten.}
 \label{fig:10-e2-1239014566}
 \end{figure}
 
-% ============
-
-\section{Shmoo-Äquivalenz}
-
-Die folgenden 16-Eingang-Sortiernetzwerke wurden alle mit dem
-\emph{Algorithmus~1} gefunden. Sie haben alle 63~Komparatoren in 10~Schichten,
-jeweils die selbe Anzahl wie Odd-Even-Mergesort.
-
-Um wiederkehrende Muster in den hinteren Schichten der erzeugten
-Sortiernetzwerke besser untersuchen zu können, wurden die erzeugten Netzwerke
-in Gruppen aufgeteilt. Zwei Netzwerke befinden sich dann in der selben
-Gruppen, wenn die Nullen bzw. Einsen, die auf einer Leitung vorkommen können,
-nach der 5.~Schicht (Schicht~4, da bei Null mit dem Zählen begonnen wird)
-nicht mehr ändert. Das heißt, dass die Schichten 0--4 unterschiedlich
-aufgebaut sind, aber den selben Effekt erziehlen. Die Schichten 5--9 sind
-hingegen innerhalb einer Gruppe austauschbar und oft (immer?) identisch.
-
-Die Anzahl der Netzwerke in den jeweiligen Gruppen ist unterschiedlich. Zur
-Zeit sind in den Gruppen so viele Netzwerke:\\
-\begin{tabular}{|l|r|r|} \hline
-Gruppe~0 & 18 & $48,7\%$ \\
-Gruppe~1 & 9  & $24,3\%$ \\
-Gruppe~2 & 6  & $16,2\%$ \\
-Gruppe~3 & 3  & $8,1\%$ \\
-Gruppe~4 & 1  & $2,7\%$ \\ \hline
-\end{tabular}
-
-Die hinteren Schichten zwischen den Gruppen~1 und~3 schauen so aus, als wären
-sie nur gespiegelt. Warum kommt Gruppe~1 aber viel häufiger vor? Ggf. eine
-Konsequenz aus dem Normieren?
-
-Dito für die Gruppen~2 und~4. Warum ist die eine häufiger?
-
-Ist Gruppe~0 symmetrisch bzgl. der Leitungen?
-
-% Gruppe 0
-
-\begin{figure}
-\begin{center}
-\input{images/16-e1/group0/16-e1-1258009316.tex}
-\end{center}
-\caption{{\tt images/16-e1/group0/16-e1-1258009316.tex}: 63~Komparatoren in
-10~Schichten.}
-\label{fig:16-e1-1258009316}
-\end{figure}
-
-\begin{figure}
-\begin{center}
-\input{images/16-e1/group0/16-e1-1258010866.tex}
-\end{center}
-\caption{{\tt images/16-e1/group0/16-e1-1258010866.tex}: 63~Komparatoren in
-10~Schichten.}
-\label{fig:16-e1-1258010866}
-\end{figure}
-
-\begin{figure}
-\begin{center}
-\input{images/16-e1/group0/16-e1-1258011861.tex}
-\end{center}
-\caption{{\tt images/16-e1/group0/16-e1-1258011861.tex}: 63~Komparatoren in
-10~Schichten.}
-\label{fig:16-e1-1258011861}
-\end{figure}
-
-\begin{figure}
-\begin{center}
-\input{images/16-e1/group0/16-e1-1259060992.tex}
-\end{center}
-\caption{{\tt images/16-e1/group0/16-e1-1259060992.tex}: 63~Komparatoren in
-10~Schichten.}
-\label{fig:16-e1-1259060992}
-\end{figure}
-
-%\begin{figure}
-%\begin{center}
-%\input{images/16-e1/group0/16-e1-1259061148.tex}
-%\end{center}
-%\caption{{\tt images/16-e1/group0/16-e1-1259061148.tex}: 63~Komparatoren in
-%10~Schichten.}
-%\label{fig:16-e1-1259061148}
-%\end{figure}
-
-% Gruppe 1
-
-\begin{figure}
-\begin{center}
-\input{images/16-e1/group1/16-e1-1258009982.tex}
-\end{center}
-\caption{{\tt images/16-e1/group1/16-e1-1258009982.tex}: 63~Komparatoren in 10~Schichten.
-Schichten 4--9 identisch zu 16-e1-1258030047 (Gruppe~1).}
-\label{fig:16-e1-1258009982}
-\end{figure}
-
-\begin{figure}
-\begin{center}
-\input{images/16-e1/group1/16-e1-1258010023.tex}
-\end{center}
-\caption{{\tt images/16-e1/group1/16-e1-1258010023.tex}: 63~Komparatoren in
-10~Schichten.}
-\label{fig:16-e1-1258010023}
-\end{figure}
-
-\begin{figure}
-\begin{center}
-\input{images/16-e1/group1/16-e1-1258029734.tex}
-\end{center}
-\caption{{\tt images/16-e1/group1/16-e1-1258029734.tex}: 63~Komparatoren in
-10~Schichten.}
-\label{fig:16-e1-1258029734}
-\end{figure}
-
-\begin{figure}
-\begin{center}
-\input{images/16-e1/group1/16-e1-1258030047.tex}
-\end{center}
-\caption{{\tt images/16-e1/group1/16-e1-1258030047.tex}: 63~Komparatoren in
-10~Schichten.}
-\label{fig:16-e1-1258030047}
-\end{figure}
-
-%\begin{figure}
-%\begin{center}
-%\input{images/16-e1/group1/16-e1-1258034768.tex}
-%\end{center}
-%\caption{{\tt images/16-e1/group1/16-e1-1258034768.tex}: 63~Komparatoren in
-%10~Schichten.}
-%\label{fig:16-e1-1258034768}
-%\end{figure}
-
-% Gruppe 2
-
-\begin{figure}
-\begin{center}
-\input{images/16-e1/group2/16-e1-1258029063.tex}
-\end{center}
-\caption{{\tt images/16-e1/group2/16-e1-1258029063.tex}: 63~Komparatoren in
-10~Schichten.}
-\label{fig:16-e1-1258029063}
-\end{figure}
-
-\begin{figure}
-\begin{center}
-\input{images/16-e1/group2/16-e1-1258034821.tex}
-\end{center}
-\caption{{\tt images/16-e1/group2/16-e1-1258034821.tex}: 63~Komparatoren in
-10~Schichten.}
-\label{fig:16-e1-1258034821}
-\end{figure}
-
-\begin{figure}
-\begin{center}
-\input{images/16-e1/group2/16-e1-1259054993.tex}
-\end{center}
-\caption{{\tt images/16-e1/group2/16-e1-1259054993.tex}: 63~Komparatoren in
-10~Schichten.}
-\label{fig:16-e1-1259054993}
-\end{figure}
-
-\begin{figure}
-\begin{center}
-\input{images/16-e1/group2/16-e1-1259058588.tex}
-\end{center}
-\caption{{\tt images/16-e1/group2/16-e1-1259058588.tex}: 63~Komparatoren in
-10~Schichten.}
-\label{fig:16-e1-1259058588}
-\end{figure}
-
-%\begin{figure}
-%\begin{center}
-%\input{images/16-e1/group2/16-e1-1259063485.tex}
-%\end{center}
-%\caption{{\tt images/16-e1/group2/16-e1-1259063485.tex}: 63~Komparatoren in
-%10~Schichten.}
-%\label{fig:16-e1-1259063485}
-%\end{figure}
-
-%\begin{figure}
-%\begin{center}
-%\input{images/16-e1/group2/16-e1-1259063618.tex}
-%\end{center}
-%\caption{{\tt images/16-e1/group2/16-e1-1259063618.tex}: 63~Komparatoren in
-%10~Schichten.}
-%\label{fig:16-e1-1259063618}
-%\end{figure}
-
-% Gruppe 3
-
-\begin{figure}
-\begin{center}
-\input{images/16-e1/group3/16-e1-1258012027.tex}
-\end{center}
-\caption{{\tt images/16-e1/group3/16-e1-1258012027.tex}: 63~Komparatoren in
-10~Schichten.}
-\label{fig:16-e1-1258012027}
-\end{figure}
-
-\begin{figure}
-\begin{center}
-\input{images/16-e1/group3/16-e1-1258037039.tex}
-\end{center}
-\caption{{\tt images/16-e1/group3/16-e1-1258037039.tex}: 63~Komparatoren in
-10~Schichten.}
-\label{fig:16-e1-1258037039}
-\end{figure}
-
-\begin{figure}
-\begin{center}
-\input{images/16-e1/group3/16-e1-1259065042.tex}
-\end{center}
-\caption{{\tt images/16-e1/group3/16-e1-1259065042.tex}: 63~Komparatoren in
-10~Schichten.}
-\label{fig:16-e1-1259065042}
-\end{figure}
-
-% Gruppe 4
-
-\begin{figure}
-\begin{center}
-\input{images/16-e1/group4/16-e1-1259060520.tex}
-\end{center}
-\caption{{\tt images/16-e1/group4/16-e1-1259060520.tex}: 63~Komparatoren in 10~Schichten.
-(Gruppe~4).}
-\label{fig:16-e1-1259060520}
-\end{figure}
-
-\begin{figure}
-\begin{center}
-\input{images/16-e1/group4/16-e1-1259067171.tex}
-\end{center}
-\caption{{\tt images/16-e1/group4/16-e1-1259067171.tex}: 63~Komparatoren in 10~Schichten.
-(Gruppe~4).}
-\label{fig:16-e1-1259067171}
-\end{figure}
-
 \subsection{Güte}
 
 \begin{itemize}
@@ -900,14 +780,59 @@ Schichten 4--9 identisch zu 16-e1-1258030047 (Gruppe~1).}
 \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}
 
 Der \emph{evolution-cut}-Algorithmus nimmt ein gegebenes Sortiernetzwerk mit