Weitere Fehler nach Korrekturlesen berichtigt.
authorFlorian Forster <octo@verplant.org>
Thu, 24 Feb 2011 18:55:09 +0000 (19:55 +0100)
committerFlorian Forster <octo@verplant.org>
Thu, 24 Feb 2011 18:55:09 +0000 (19:55 +0100)
diplomarbeit.tex

index 9c19e20..be7e364 100644 (file)
@@ -92,7 +92,7 @@ die Menge der gültigen Sortiernetzwerke nie verlassen. Bisherige Ansätze
 bewegten sich in der Regel in der Menge aller Komparatornetzwerke und suchten
 dort nach Sortiernetzwerken. Nach dem Vorstellen der zwei Algorithmen
 \textsc{SN-Evolution} und \textsc{SN-Evolution-Cut} sowie einiger Ergebnisse,
-die diese Algorithmen erzielen konnten, wird -- basierend auf dem
+die mit diesen Algorithmen erzielt werden konnten, wird -- basierend auf dem
 evolutionären Algorithmus \textsc{SN-Evolution} -- eine Markov-Kette für
 Sortiernetzwerke angegeben.
 \end{abstract}
@@ -106,7 +106,7 @@ Sortiernetzwerke angegeben.
 \subsection{Motivation}\label{sect:motivation}
 
 \emph{Sortiernetzwerke} sind ein theoretisches Konstrukt, dass auch von
-Personen ohne Zugang zum Thema beziehungsweise der theoretischen Informatik
+Personen ohne Zugang zum Thema, beziehungsweise der theoretischen Informatik,
 schnell verstanden werden kann. Eine Einführung wird in
 Abschnitt~\ref{sect:einleitung_sortiernetzwerke} gegeben. Nichtsdestotrotz ist
 das Finden von Sortiernetzwerken sowie das Beweisen, dass ein
@@ -122,7 +122,7 @@ gefundene Konstruktionsvorschriften.
 
 Um effiziente und schnelle Sortiernetzwerke zu finden, wurden schon wiederholt
 Computer und automatische Suchverfahren eingesetzt. Bisherige Ansätze
-versuchen meist, in der Menge aller Komparatornetzwerke jene zu finden, die
+versuchen meist in der Menge aller Komparatornetzwerke jene zu finden, die
 die Sortiereigenschaft besitzen und aus wenigen Komparatoren bestehen. Die
 Eigenschaft, jede Eingabepermutation zu sortieren, ist also ein
 Optimierungsziel und nicht durch das Vorgehen gewährleistet. Dafür können
@@ -143,10 +143,10 @@ Eigenschaft durch das Verfahren sichergestellt ist.
 zugrunde liegen. Sie haben zwei Eingänge über die sie zwei Zahlen erhalten
 können und zwei Ausgänge, auf denen die Zahlen wieder ausgegeben werden. Dabei
 sind die Ausgänge im Gegensatz zu den Eingängen unterscheidbar, da die größere
-der beiden Zahlen wird immer auf dem einen, die kleinere der beiden Zahlen
+der beiden Zahlen immer auf dem einen, die kleinere der beiden Zahlen
 immer auf dem anderen Ausgang ausgegeben wird.
 
-Kombiniert man mehrere \emph{Komparatoren} miteinander, das heißt, dass die
+Kombiniert man mehrere \emph{Komparatoren} in der Form miteinander, dass die
 Ausgänge eines Komparators mit Eingängen weiterer Komparatoren verbunden sind,
 erhält man ein {\em Komparatornetzwerk}.
 
@@ -209,7 +209,7 @@ zerstört.
 Zu beweisen, dass ein gegebenes Komparatornetzwerk die Sortiereigenschaft {\em
 nicht} hat, ist mit einem gegebenen Gegenbeispiel einfach möglich. Das
 Komparatornetzwerk wird auf das Gegenbeispiel angewendet und anschließend wird
-überprüft, ob die Ausgabe sortiert ist. Ist sie es nicht heißt das, dass es
+überprüft, ob die Ausgabe sortiert ist. Ist sie es nicht, heißt das, dass es
 mindestens eine Eingabefolge gibt, die nicht sortiert wird. Entsprechend der
 Definition handelt es sich bei dem \emph{Komparatornetzwerk} folglich
 \emph{nicht} um ein \emph{Sortiernetzwerk}. Ein solches Gegenbeispiel für ein
@@ -250,7 +250,7 @@ Die Eingabe kann mittels
       1 & e_j > a_i
     \end{array} \right.
 \end{displaymath}
-auf eine 0-1-Folge abgebildet werden, die entsprechen der Annahme vom
+auf eine 0-1-Folge abgebildet werden, die entsprechend der Annahme vom
 Komparatornetzwerk sortiert wird. Allerdings verändert diese Abbildung das
 Verhalten jedes einzelnen Komparators nicht: Wenn bei der Permutation eine
 Zahl größer als $a_i$ und eine Zahl kleiner oder gleich $a_i$ verglichen
@@ -281,29 +281,30 @@ beschäftigen.
 
 Viele {\em kombinatorische Optimierungsprobleme} sind schwer zu lösen -- die
 entsprechenden Entscheidungsprobleme liegen oft in der Komplexitätsklasse
-$\mathcal{NP}$. Das heißt, dass keine Verfahren bekannt sind, diese Probleme
-effizient exakt lösen. Sollte sich herausstellen, dass diese Probleme nicht
-in der Komplexitätsklasse~$\mathcal{P}$ liegen, wäre eine Konsequenz, dass es
-effiziente exakte Algorithmen für diese Probleme nicht gibt. Falls sich
-hingegen herausstellt, dass diese Probleme in der
-Komplexitätsklasse~\textit{P} liegen, gibt es effiziente Algorithmen. Es ist
-jedoch wahrscheinlich, dass die Zeitkonstanten solcher Algorithmen sehr groß
-sein würden, so dass der praktische Nutzen fraglich bleibt.
+$\mathcal{NP}$. Das heißt, dass keine Verfahren bekannt sind, die diese
+Probleme effizient exakt lösen. Sollte sich herausstellen, dass diese Probleme
+außerhalb der Komplexitätsklasse~$\mathcal{P}$ liegen, wäre eine Konsequenz,
+dass es effiziente exakte Algorithmen für diese Probleme nicht gibt. Falls
+sich hingegen herausstellt, dass diese Probleme neben $\mathcal{NP}$ auch in
+der Komplexitätsklasse~\textit{P} liegen, gibt es effiziente Algorithmen. Es
+ist jedoch wahrscheinlich, dass die Zeitkonstanten solcher Algorithmen sehr
+groß sein würden, so dass der praktische Nutzen fraglich bleibt.
 
 Aus diesem Grund besteht die Notwendigkeit einen Kompromiss einzugehen: Statt
-die beziehungsweise eine der {\em optimalen} Lösungen als einzige Ausgabe des
-Algorithmus zuzulassen, wird eine "`möglichst gute"' Lösung ausgegeben. Viele
-dieser Optimierungsalgorithmen orientieren sich an Vorgängen in der Natur.
-Beispielsweise imitieren die „Ameisenalgorithmen“ das Verhalten von Ameisen
-auf der Futtersuche, um kurze Rundreisen auf Graphen zu berechnen.
-
-Bei {\em Evolutionären Algorithmen} stand die Evolution pate. Die Grundidee
+die \emph{optimale Lösung}, beziehungsweise eine der \emph{optimalen
+Lösungen}, als einzige Ausgabe des Algorithmus zuzulassen, wird eine
+"`möglichst gute"' Lösung ausgegeben. Viele dieser Optimierungsalgorithmen
+orientieren sich an Vorgängen in der Natur. Beispielsweise imitieren die
+„Ameisenalgorithmen“ das Verhalten von Ameisen auf der Futtersuche, um kurze
+Rundreisen auf Graphen zu berechnen.
+
+Bei {\em Evolutionären Algorithmen} stand die Evolution Pate. Die Grundidee
 ist, bekannte Lösungen zu neuen -- unter Umständen besseren -- Lösungen zu
 kombinieren. Dabei bedient man sich der in der Evolutionstheorie etablierten
 Nomenklatur, beispielsweise werden konkrete Lösungen für ein Problem als {\em
 Individuen} bezeichnet.
 
-Die Vorgehensweise lässt sich abstrakt wie folgt beschreiben. Aus einer
+Die Vorgehensweise lässt sich abstrakt wie folgt beschreiben: Aus einer
 bestehenden Lösungsmenge, der {\em Population}, werden zufällig Lösungen
 ausgesucht {\em (Selektion)} und zu einer neuen Lösung kombiniert ({\em
 Rekombination}). Unter Umständen wird die neue Lösung noch zufällig
@@ -313,11 +314,11 @@ eingefügt wird. Die verwendeten Wahrscheinlichkeiten, beispielsweise bei der
 werden bessere Lösungen bevorzugt. Zur Bewertung dient die sogenannte {\em
 Gütefunktion}.
 
-Nicht alle Probleme eignen sich für diese Strategie: Zum einen muss es möglich
+Nicht alle Probleme eignen sich für diese Strategie. Zum einen muss es möglich
 sein, eine initiale Population zur Verfügung zu stellen, da diese als Basis
 aller weiteren Operationen dient. Das ist häufig keine große Einschränkung, da
-es oft einfach ist {\em irgendeine} Lösung anzugeben. Die angegebenen
-Algorithmen verwenden als einfache, initiale Lösung häufig das
+es oft einfach ist, {\em irgendeine} Lösung anzugeben. Die angegebenen
+Algorithmen verwenden als einfache initiale Lösung häufig das
 \emph{Odd-Even-Transpositionsort}-Netzwerk, das in
 Abschnitt~\ref{sect:odd_even_transpositionsort} beschrieben wird. Zum anderen
 muss eine Methode für die Rekombination existieren. Das ist insbesondere dann
@@ -345,44 +346,39 @@ eigentlichen Algorithmus, sondern auch vom konkreten Problem ab, so dass sich
 beispielsweise bei der Optimierung von Sortiernetzwerken die Parameter
 zwischen verschiedenen Leitungszahlen stark unterscheiden.
 
-Die \textit{Exploration} kann von einem weiteren Mechanismus unterstützt
-werden, der ebenfalls der Evolutionslehre entliehen ist, der \emph{Mutation}.
-Dabei werden Lösungen zufällig verändert, so dass auch andere Lösungen „in der
-Nähe“ von direkten Nachfolgern erreicht werden können. Das hilft insbesondere
-bei der intensiven Suche in der Nähe eines lokalen Optimums aber auch beim
-„Ausbrechen“ aus lokalen Optima und finden noch besserer Lösungen.
+Die Erforschung (\textit{Exploration}) kann von einem weiteren Mechanismus
+unterstützt werden, der ebenfalls der Evolutionslehre entliehen ist, der
+\emph{Mutation}. Dabei werden Lösungen zufällig verändert, so dass auch andere
+Lösungen „in der Nähe“ von direkten Nachfolgern erreicht werden können. Das
+hilft insbesondere bei der intensiven Suche in der Nähe eines lokalen Optimums
+aber auch beim „Ausbrechen“ aus lokalen Optima und finden noch besserer
+Lösungen.
 
 Bei \emph{Sortiernetzwerken} ist eine \emph{Mutation} leider immer damit
 verbunden, dass anschließend die Sortiereigenschaft des resultierenden
 \emph{Komparatornetzwerks} wieder überprüft werden muss, da selbst das
 Hinzufügen eines zufälligen Komparators diese Eigenschaft zer\-stö\-ren kann.
-Beim Suchen möglichst effizienter Netzwerke ist natürlich das zufällige
-Entfernen von Komparatoren interessanter, was die Sortiereigenschaft fast
-immer aufhebt.
+Beim Suchen möglichst effizienter Netzwerke ist das zufällige Entfernen von
+Komparatoren interessanter, was die Sortiereigenschaft fast immer aufhebt.
 
 Die im Folgenden beschriebenen Algorithmen mutieren (verändern) daher nicht
-die \emph{Sortiernetzwerke} selbst, sondern verzichten auf Mutation oder
-mutieren lediglich Transformationen von Sortiernetzwerken, die die
-Sortiereigenschaft erhalten. Transformationen von Sortiernetzwerken werden in
-Abschnitt~\ref{sect:tranformation} beschrieben, ein Algorithmus, der Mutation
-einsetzt, wird in Abschnitt~\ref{sect:sn-evolution-cut} vorgestellt.
-
-\begin{figure}
-  \begin{center}
-    \input{images/16-hillis.tex}
-  \end{center}
-  \caption{Das 16-Sortiernetzwerk, das \textit{Hillis} in~\cite{H1992} angibt.
-  Es besteht aus 61~Komparatoren in 11~Schichten.}
-  \label{fig:16-hillis}
-\end{figure}
-Evolutionäre Algorithmen wurden bereits mehrfach eingesetzt, um
+die \emph{Sortiernetzwerke} selbst, sondern verzichten entweder ganz auf
+Mutation oder mutieren lediglich Transformationen von Sortiernetzwerken, die
+die Sortiereigenschaft erhalten. Transformationen von Sortiernetzwerken werden
+in Abschnitt~\ref{sect:tranformation} beschrieben, ein Algorithmus, der
+Mutation einsetzt, wird in Abschnitt~\ref{sect:sn-evolution-cut} vorgestellt.
+
+\begin{figure} \begin{center} \input{images/16-hillis.tex} \end{center}
+\caption{Das 16-Sortiernetzwerk, das \textit{Hillis} in~\cite{H1990} angibt.
+Es besteht aus 61~Komparatoren in 11~Schichten.} \label{fig:16-hillis}
+\end{figure} Evolutionäre Algorithmen wurden bereits mehrfach eingesetzt, um
 Sortiernetzwerke zu untersuchen. \textit{W.~Daniel Hillis} verwendete
 \emph{Co-Evolution} um neben Komparatornetzwerken auch „schwierige Eingaben“
-zu optimieren~\cite{H1992}. Diese \emph{Parasiten} genannten Eingaben wurden
+zu optimieren~\cite{H1990}. Diese \emph{Parasiten} genannten Eingaben wurden
 daran gemessen, bei wie vielen Komparatornetzwerken sie beweisen konnten, dass
-sie keine Sortiernetzwerke sind. So mussten bei neuen Individuen~/
-Komparatornetzwerken nicht alle 0-1-Folgen, sondern nur erfolgreiche
-Parasiten~/ schwierige Eingaben überprüft werden. Auf diese Art und Weise
+sie keine Sortiernetzwerke sind. So mussten bei neuen Individuen
+(Komparatornetzwerken) nicht alle 0-1-Folgen, sondern nur erfolgreiche
+Parasiten (schwierige Eingaben) überprüft werden. Auf diese Art und Weise
 gelang es \textit{Hillis} ein 16-Sortiernetzwerk mit 61~Komparatoren
 anzugeben, das in Abbildung~\ref{fig:16-hillis} zu sehen ist.
 
@@ -397,7 +393,7 @@ anzugeben, das in Abbildung~\ref{fig:16-hillis} zu sehen ist.
 \end{figure}
 \textit{Hugues Juillé} entwickelte ein Verfahren, das er \emph{Evolving
 Non-Determinism} (END) nannte~\cite{J1995}. Dabei handelt es sich nicht um
-einen \emph{Evolutionären Algorithmus}, wie sie hier vorgestellt wurden,
+einen der \emph{Evolutionären Algorithmen}, wie sie hier vorgestellt wurden,
 sondern um eine verteilte, probabilistische Breitensuche, die an die
 \emph{Strahlsuche} (englisch: \textit{beam search}), ein Verfahren der
 Künstlichen Intelligenz, angelehnt ist. Die aufwendigste Operation bei diesem
@@ -405,10 +401,10 @@ Ansatz ist die Bewertungsfunktion, die abschätzt, wie viele Komparatoren zu
 einem Komparatornetzwerk hinzugefügt werden müssen, um ein Sortiernetzwerk zu
 erhalten. Mit diesem Ansatz gelang es \textit{Juillé} zwei 13-Sortiernetzwerke
 anzugeben, die mit 45~Komparatoren effizienter sind als alle bis dahin
-Bekannten (Abbildung~\ref{fig:13-juille}).
+bekannten (Abbildung~\ref{fig:13-juille}).
 
 \newpage
-\section[Konstruktionsverfahren]{Bekannte konstruktive Sortiernetzwerke}
+\section[Konstruktionsverfahren]{Konstruktionsverfahren für Sortiernetzwerke}
 \label{sect:konstruktive_netzwerke}
 
 Die bekannten Konstruktionsverfahren für Sortiernetzwerke, insbesondere ein
@@ -418,7 +414,9 @@ zusammenfügen). Da der Begriff des "`mischens"' beziehungsweise der
 "`Mischer"' in der Literatur sehr weit verbreitet ist, werden diese Begriffe
 in dieser Arbeit trotzdem verwendet.}, bilden die Grundlage für die
 beschriebenen evolutionären Algorithmen beziehungsweise dienen als initiale
-Eingabe. Im Folgenden werden daher drei Konstruktionsverfahren vorgestellt.
+Eingabe. Im Folgenden werden daher vier Konstruktionsverfahren vorgestellt.
+
+% \todo{Drei oder vier Verfahren?}
 
 \subsection{Das Odd-Even-Transpositionsort-Netzwerk}
 \label{sect:odd_even_transpositionsort}
@@ -440,24 +438,26 @@ ${n = 8}$ Leitungen.
 Dass das \emph{Odd-Even-Transpositionsort}-Netzwerk tatsächlich jede beliebige
 Eingabe sortiert, ist nicht offensichtlich. Leicht zu sehen ist jedoch, dass
 sowohl das Minimum als auch das Maximum durch das im Netzwerk enthaltene
-Treppenmuster auf die unterste beziehungsweise oberste Leitung gelangt. Beim
-Odd-Even-Transpositionsort-Netzwerk mit drei Eingängen,
-$\operatorname{OET}(3)$, ist die Ausgabe folglich sortiert.
+Treppenmuster auf die unterste beziehungsweise oberste Leitung gelangt.
 
 Die Sortiereigenschaft größerer OET-Netzwerke lässt sich rekursiv beweisen,
 indem man $\operatorname{OET}(n)$ auf $\operatorname{OET}(n-1)$ durch
 Herausschneiden einer Leitung reduziert. In
 Abschnitt~\ref{sect:leitungen_entfernen} wird das Vorgehen im Detail
 beschrieben, Abbildung~\ref{fig:oe-transposition-cut} zeigt das
-Herausschneiden einer Leitung aus $\operatorname{OET}(8)$.
+Herausschneiden einer Leitung aus $\operatorname{OET}(8)$. Die Rekursion endet
+beim \emph{Odd-Even-Transpositionsort}-Netzwerk mit drei Eingängen, bei dem
+das Minimum auf der untersten, das Maximum auf der obersten und der mittlere
+Wert auf der mittleren Leitung landet. Folglich ist die Ausgabe bei
+$\operatorname{OET}(3)$ sortiert.
 
 Das \emph{Odd-Even-Transpositionsort}-Netzwerk ist weder in Bezug auf die
 Anzahl der Komparatoren noch in Bezug auf die Anzahl der Schichten, in denen
 sich die Komparatoren anordnen lassen, effizient. Es benötigt ${\frac12 n
 (n-1)} = \mathcal{O}(n^2)$~Komparatoren, die in $n$~Schichten angeordnet sind.
-Andere Sortiernetzwerke benötigen deutlich weniger Komparatoren,
-beispielsweise $\mathcal{O}(n (\log n)^2)$, die in weniger Schichten, zum
-Beispiel $\mathcal{O}(\log n)$, angeordnet sind.
+Die im Folgenden vorgestellten Sortiernetzwerke benötigen deutlich weniger Komparatoren,
+($\mathcal{\Theta}(n \log (n)^2)$), die in weniger Schichten,
+($\mathcal{\Theta}(\log (n)^2)$), angeordnet sind.
 
 Das Interessante am OET-Netzwerk ist seine einfache Konstruktion. Einige der
 folgenden Algorithmen benötigen ein möglichst einfaches Sortiernetzwerk als
@@ -465,7 +465,7 @@ Starteingabe, auf dessen Basis sie versuchen optimierte Sortiernetzwerke zu
 finden. Häufig dient $\operatorname{OET}(n)$ als Eingabe für diese
 Algorithmen.
 
-Außerdem bedienen sich die Algorithmen der Technik des Herausschneidens einer
+Außerdem bedienen sich die Algorithmen der Technik des Herausschneidens einer,
 beziehungsweise mehrerer Leitungen, um die Anzahl der Leitungen eines
 Sortiernetzwerks zu reduzieren. Die Technik wird in Detail im
 Abschnitt~\ref{sect:leitungen_entfernen} beschrieben.
@@ -476,8 +476,7 @@ Das \emph{bitone Mergesort}-Netzwerk ($\operatorname{BS}(n)$) ist ein
 Sortiernetzwerk, das 1968 von \emph{Kenneth~E. Batcher} in~\cite{B1968}
 veröffentlicht wurde. Es ist deutlich effizienter als das
 Odd-Even-Transposi\-tionsort-Netzwerk -- sowohl in Bezug auf die Anzahl der
-Komparatoren als auch bezüglich der benötigten Zeit, also der Anzahl der
-Schichten.
+Komparatoren als auch der benötigten Zeit, also der Anzahl der Schichten.
 
 Das Sortiernetzwerk basiert auf einem Komparatornetzwerk, welches zwei
 sortierte Listen zusammenfügen (Englisch: \textit{to~merge}) kann. Dieser
@@ -609,10 +608,10 @@ Mischer~$\operatorname{BM}(8)$ (blau). Die trichterförmige Komparator-Kaskade,
 die die bitone Eingabefolge in zwei bitone Ausgabefolgen transformiert, ist
 grün hinterlegt.
 
-Das \emph{bitone Mergesort}-Netzwerk $\bs{n = 2^d}$ besteht aus $\frac{1}{4} n
-\log(n) \log(n+1) = \mathcal{O}\left(n (log (n))^2\right)$ Komparatoren, die
-in $\frac{1}{2} \log(n) \log(n+1) = \mathcal{O}(\log(n))$ Schichten angeordnet
-sind.
+Das \emph{bitone Mergesort}-Netzwerk mit einer Leitungszahl $n = 2^d$, die
+eine Zweierpotenz ist, besteht aus $\frac{1}{4} n \log(n) \log(n+1) =
+\mathcal{\Theta}\left(n (log (n))^2\right)$ Komparatoren, die in $\frac{1}{2}
+\log(n) \log(n+1) = \mathcal{\Theta}(\log(n)^2)$ Schichten angeordnet sind.
 
 \subsection{Das Odd-Even-Mergesort-Netzwerk}
 
@@ -654,7 +653,7 @@ w_i = \left\{ \begin{array}{ll}
   \input{images/oe-merge.tex}
   \end{center}
   \caption{Schematischer Aufbau des \emph{Odd-Even-Merge}-Netzwerks. Im
-    Vergleich zum bitonen Mischer für Acht Leitungen kommt dieses Schema mit
+    Vergleich zum bitonen Mischer für acht Leitungen kommt dieses Schema mit
     einem Komparator weniger aus. Der Effekt wird durch den rekursiven Aufbau
     verstärkt.}
   \label{fig:oe-merge}
@@ -1875,19 +1874,19 @@ einer Population. Da die beiden „Eltern“ zufällig und unabhängig voneinand
 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$.
+Macht man diesen Spezialfall zum Regelfall, kombiniert das aktuelle Netzwerk
+\emph{immer} mit sich selbst und eliminiert anschließend die Hälfte aller
+Leitungen, 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.
+$S_0$ ist, das heißt, dass $S_1$ durch die Rekombination von $S_0$ mit sich
+selbst erzeugt werden kann.
 
 Wie in Abschnitt~\ref{sect:anzahl_schnittmuster} beschrieben, ist die Anzahl
 der \emph{unterschiedlichen} Schnittmuster und damit die Anzahl der Nachfolger
@@ -1900,7 +1899,7 @@ Der Algorithmus {\sc SN-Markov} legt auf diesem Nachfolger-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 der Algorithmus das aktuelle Sortiernetzwerk mit sich
-selbst und erhält so einen zufälligen Nachfolger. In Pseudocode lässt dich der
+selbst und erhält so einen zufälligen Nachfolger. In Pseudocode lässt sich der
 Algorithmus wie folgt beschreiben:
 
 \begin{verbatim}
@@ -1919,13 +1918,13 @@ Die Graphen in Abbildung~\ref{fig:markov-comparators} zeigen die Anzahl der
 Komparatoren der Sortiernetzwerke, die \textsc{SN-Markov} auf seinem
 zufälligen Pfad durchläuft (rot). Für jeden Graphen wurde der
 \textsc{SN-Markov}-Algorithmus auf einem entsprechenden
-\emph{Odd-Even-Transpositionsort}-Netzwerk gestartet hat mindestens
+\emph{Odd-Even-Transpositionsort}-Netzwerk gestartet und hat mindestens
 1.000.000~Iterationen durchlaufen. In jedem Schritt wurde die Anzahl der
 Komparatoren des Sortiernetzwerks bestimmt und ein entsprechender Zähler
 erhöht. In Abbildung~\ref{fig:markov-comparators} ist die resultierende
 prozentuale Verteilung zu sehen.
 
-Ebenfalls in die Graphen in Abbildung~\ref{fig:markov-comparators}
+Ebenfalls in die Graphen der Abbildung~\ref{fig:markov-comparators}
 eingezeichnet ist eine \emph{Gamma-Verteilung} (grün), die die gemessenen
 Daten gut annähert. Die Gamma-Verteilung verwendet einen Offset~$\delta$, der
 um Eins kleiner als die kleinste erreichte Komparatorzahl gewählt wurde.
@@ -1959,17 +1958,17 @@ unter den Graphen angegeben.
   \label{fig:comparison-comparators}
 \end{figure}
 
-Dass der \textsc{SN-Markov}-Algorithmus nicht schlechter als der
-\textsc{SN-Evolution}-Algo\-rith\-mus ist, ist aus dem Graphen in
-Abbildung~\ref{fig:comparison-comparators} ersichtlich. Analog zu dem Versuch
-mit \textsc{SN-Markov}, wurde beim \textsc{SN-Evolution}-Algorithmus die
-Anzahl der Komparatoren jedes neuen Individuums ermittelt und gespeichert. Als
+Der Graph in Abbildung~\ref{fig:comparison-comparators} zeigt, dass der
+\textsc{SN-Markov}-Algorithmus nicht schlechter ist als der
+\textsc{SN-Evolution}-Algo\-rith\-mus. Analog zu dem Versuch mit
+\textsc{SN-Markov}, wurde beim \textsc{SN-Evolution}-Algorithmus die Anzahl
+der Komparatoren jedes neuen Individuums ermittelt und gespeichert. Als
 Startnetzwerk diente bei beiden Algorithmen das
 \emph{Odd-Even-Transpositionsort}-Netzwerk \oet{16}. Der Graph zeigt auf der
 x-Achse die Anzahl der Komparatoren, auf der y-Achse die Häufigkeit, mit der
 ein Sortiernetzwerk mit dieser Komparatorzahl durch die Rekombination erzeugt
-wurde. Die Ergebnisse von \textsc{SN-Evolution} unterscheiden außerdem nach
-dem verwendeten Mischer-Netzwerk -- \oem{32} beziehungsweise \bm{32}.
+wurde. Die Ergebnisse von \textsc{SN-Evolution} unterscheiden sich außerdem je
+nach verwendetem Mischer-Netzwerk -- \oem{32}, beziehungsweise \bm{32}.
 
 Sowohl der \textsc{SN-Markov}-Algorithmus, der das
 \emph{Odd-Even-Merge}-Netzwerk verwendet, als auch \textsc{SN-Evolution} mit
@@ -1983,14 +1982,14 @@ Während nur $0,000017 \%$ der Individuen von \textsc{SN-Evolution} mit
 Erwartungsgemäß sind die besten Netzwerke, die \textsc{SN-Evolution} mit dem
 \emph{bitonen Mischer} findet, aus 67~Komparatoren aufgebaut. Überraschend ist
 jedoch, dass in dieser Konfiguration Sortiernetzwerke auftreten können, die
-mehr Komparatoren besitzen als \emph{Odd-Even-Transpositionsort} -- \oet{16}
-ist aus 120~Komparatoren aufgebaut, bei dem Lauf, der die Daten für
+mehr Komparatoren besitzen als \emph{Odd-Even-Transpositionsort}. \oet{16}
+ist aus 120~Komparatoren aufgebaut. Bei dem Lauf, der die Daten für
 Abbildung~\ref{fig:comparison-comparators} lieferte, trat auch jeweils ein
-Sortiernetzwerk mit 121 und 124~Komparatoren auf. Da Sortiernetzwerke mit so
+Sortiernetzwerk mit 121 und 124~Komparatoren auf. Dass Sortiernetzwerke mit so
 vielen Komparatoren im Verlauf des Experiments selbst nach über 100~Millionen
-Iterationen nicht noch einmal erzeugt wurden, handelt es sich vermutlich um
-ein Phänomen, das mit der Initialisierung mit dem
-\emph{Odd-Even-Transpositionsort}-Netzwerk zusammenhängt.
+Iterationen nicht noch einmal erzeugt wurden, ist vermutlich ein Phänomen, das
+mit der Initialisierung durch das \emph{Odd-Even-Transpositionsort}-Netzwerk
+zusammenhängt.
 
 %\begin{figure}
 %  \begin{center}
@@ -2037,8 +2036,8 @@ ein Phänomen, das mit der Initialisierung mit dem
 \newpage
 \section{Fazit und Ausblick}
 
-Dass sich mithilfe des Entfernens von Leitungen aus bekannten Sortiernetzwerke
-interessante Ergebnisse erzielen lassen, zeige \textit{Moritz Mühlenthaler}
+Mit dem Entfernen von Leitungen aus bekannten Sortiernetzwerken lassen sich
+interessante Ergebnisse erzielen. Dies zeigte \textit{Moritz Mühlenthaler}
 bereits in~\cite{M2009}. Die in dieser Arbeit vorgestellten Methoden und
 Resultate machen deutlich, dass sich mit diesem Verfahren noch weitere
 interessante Beobachtungen machen lassen.
@@ -2062,7 +2061,7 @@ Leider weisen die Sortiernetzwerke, die von den angegebenen Algorithmen
 zurückgegeben werden, keine Struktur auf, die sich zur Angabe einer
 Konstruktionsanweisung eigenen würde. Für das \emph{Pairwise-Sorting}- und das
 \emph{Odd-Even-Mergesort}-Netzwerk mit Zweierpotenzen als Leitungszahl wurden
-regelmäßige Schnittmuster angegeben, die Sortiernetzwerke ergeben, die so
+regelmäßige Schnittmuster angegeben. Diese ergeben Sortiernetzwerke, die so
 schnell und effizient sind wie die vergleichbaren \oes{n} und \ps{n}
 Netzwerke.
 
@@ -2072,10 +2071,10 @@ weniger \emph{unterschiedliche} als \emph{mögliche} Schnittmuster gibt. Das
 bedeutet im Umkehrschluss, dass die gewonnenen Sortiernetzwerke mit mehreren
 Schnittmustern erreicht werden können.
 
-Die Möglichkeiten, die Evolutionäre Algorithmen bei der Optimierung von
-Sortiernetzwerken bieten, sind durch die in dieser Arbeit vorgestellten
+Die Möglichkeiten der Optimierung von Sortiernetzwerken mit
+\emph{Evolutionären Algorithmen} sind durch die in dieser Arbeit vorgestellten
 Herangehensweisen bei weitem nicht erschöpft. Im Folgenden werden Ansätze
-umrissen, mit denen an die Untersuchungen in dieser Arbeit nahtlos angeknÃpft
+umrissen, mit denen an die Untersuchungen in dieser Arbeit nahtlos angeknüpft
 werden könnte.
 
 \subsection{Ausblick: Das \textit{Pairwise-Sorting}-Netzwerk und \textsc{SN-Evolution}}
@@ -2089,8 +2088,8 @@ Mischer, es ist aber ebenfalls rekursiv über kleinere Versionen von sich
 selbst definiert. Das heißt, dass \ps{n} aus zwei Instanzen von
 $\ps{\frac{n}{2}}$ und zusätzlichen Komparatoren besteht, die die Eingabe für
 die kleineren Sortiernetzwerke vorbereiten und anschließend für eine sortierte
-Ausgaben sorgen. Anstelle von $\ps{\frac{n}{2}}$ kann man natürlich beliebige
-Sortiernetzwerke mit $\frac{n}{2}$~Leitungen verwenden.
+Ausgabe sorgen. Anstelle von $\ps{\frac{n}{2}}$ können beliebige
+Sortiernetzwerke mit $\frac{n}{2}$~Leitungen verwendet werden.
 
 Dies ließe sich für \textsc{SN-Evolution} nutzen, um zwei Individuen zu
 rekombinieren. Da es für das \emph{Pairwise-Sorting}-Netzwerk sehr viele
@@ -2104,9 +2103,9 @@ $n$-Sortiernetzwerken als \ps{n} führen.
 \subsection{Ausblick: Kooperation von \textsc{SN-Evolution} und \textsc{SN-Evolution-Cut}}
 
 Ähnlich zu der parasitären \emph{Co-Evolution}, die \textit{W.~Daniel Hillis}
-in~\cite{H1992} beschreibt, könnte man die Algorithmen \textsc{SN-Evolution}
-und \textsc{SN-Evolution-Cut} versuchen zu kombinieren. Nach dem Zusammenfügen
-von zwei $n$-Sortiernetzwerken könnte der Algorithmus
+in~\cite{H1990} beschreibt, könnte man versuchen, die Algorithmen
+\textsc{SN-Evolution} und \textsc{SN-Evolution-Cut} zu kombinieren. Nach dem
+Zusammenfügen von zwei $n$-Sortiernetzwerken könnte der Algorithmus
 \textsc{SN-Evolution-Cut} beispielsweise einen möglichst guten Schnitt für
 \emph{dieses} Netzwerk ermitteln. Da sich die Lösungen, die Evolutionäre
 Algorithmen in ihre Population aufnehmen, in den ersten Schritten rasch