From: Florian Forster Date: Thu, 24 Feb 2011 18:55:09 +0000 (+0100) Subject: Weitere Fehler nach Korrekturlesen berichtigt. X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=31e03254de08a5077fee5052a3a1ba26f5c08322;p=diplomarbeit.git Weitere Fehler nach Korrekturlesen berichtigt. --- diff --git a/diplomarbeit.tex b/diplomarbeit.tex index 9c19e20..be7e364 100644 --- a/diplomarbeit.tex +++ b/diplomarbeit.tex @@ -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