SN-Evolution-Cut: OES: Kleine Verbesserungen.
[diplomarbeit.git] / diplomarbeit.tex
index 9434d11..9eb0467 100644 (file)
@@ -1661,16 +1661,16 @@ Leitungen & \multicolumn{2}{l|}{\textsc{SN-EV} mit \bm{n}}
 \hline
 \end{tabular}
 \caption{Übersicht über die Ergebnisse des \textsc{SN-Evolution}-Algorithmus
-  unter Verwendung der verschiedenen Mischer. Der Algorithmus wurde mit dem
+  unter Verwendung der beiden Mischer-Netzwerke. Der Algorithmus wurde mit dem
   \emph{Odd-Even-Transpositionsort}-Netzwerk \oet{n} gestartet und nach
   2.500.000 Iterationen beendet. Die Bewertungsfunktion nutzte die Konstanten
-  $w_{\mathrm{Basis}} = 0$, $w_{\mathrm{Komparatoren}} = 1$,
+  $w_{\mathrm{Basis}} = 0$, $w_{\mathrm{Komparatoren}} = 1$ und
   $w_{\mathrm{Schichten}} = n$.}
 \end{center}
 \end{table}
 
 Bei einigen Leitungszahlen kann der Algorithmus durch die Verfügbarkeit beider
-Mischer-Netzwerke Sortiernetzwerke zurückgeben, die effizienter als die
+Mi\-scher-Netzwerke Sortiernetzwerke zurückgeben, die effizienter als die
 vorherigen Ergebnisse sind. Beispielsweise ist das 19-Sortiernetzwerk in
 Abbildung~\ref{fig:19-e1-rnd-fast} mit 92~Komparatoren effizienter als die
 19-Sortiernetzwerke, die mit nur einem der beiden Mischer-Netzwerke erreicht
@@ -2174,10 +2174,12 @@ dargestellt.
   \begin{center}
     \input{images/16-ec-from-bs32.tex}
   \end{center}
-  \caption{Sortiernetzwerk mit 16~Leitungen und 68~Komparatoren in
-    10~Schichten. Das Netzwerk wurde von dem Algorithmus
-    \textsc{SN-Evolution-Cut} aus dem \emph{bitonen Mergesort-Netzwerk}
-    $\operatorname{BS}(32)$ durch 16~Schnitte erzeugt.}
+  \caption{Visualisierung eines 16-Schnittmusters, das von
+    \textsc{SN-Evolution-Cut} für das \emph{bitone Mergesort}-Netzwerk \bs{32}
+    berechnet wurde. Das resultierende Sortiernetzwerk besteht aus
+    68~Komparatoren in 10~Schichten und ist in
+    Abbildung~\ref{fig:16-ec-from-bs32-normalized} als
+    Standard-Sortiernetzwerk dargestellt.}
   \label{fig:16-ec-from-bs32}
 \end{figure}
 
@@ -2186,9 +2188,10 @@ dargestellt.
     \input{images/16-ec-from-bs32-normalized.tex}
   \end{center}
   \caption{Sortiernetzwerk mit 16~Leitungen und 68~Komparatoren in
-    10~Schichten. Das Netzwerk wurde von dem Algorithmus
-    \textsc{SN-Evolution-Cut} aus dem bitonen Mergesort-Netzwerk
-    $\operatorname{BS}(32)$ durch 16~Schnitte erzeugt.}
+    10~Schichten. Das Netzwerk wurde mit einem 16-Schnittmuster, das von
+    \textsc{SN-Evolution-Cut} berechnet wurde, aus dem \emph{bitone
+    Mergesort}-Netzwerk \bs{32} erzeugt. Das Schnittmuster ist in
+    Abbildung~\ref{fig:16-ec-from-bs32} dargestellt.}
   \label{fig:16-ec-from-bs32-normalized}
 \end{figure}
 
@@ -2302,6 +2305,8 @@ tabellarisch.
  23 &  19 &  26 &  31 &  38 &  43 &  48 &  53 &  59 &  63 &  74 &  82 &  91 &  97 & 107 & 114 &     \\
  24 &  19 &  26 &  31 &  38 &  43 &  48 &  53 &  59 &  63 &  74 &  82 &  91 &  97 & 107 & 114 & 122 \\
 \hline
+\oes{m}&19&  26 &  31 &  37 &  41 &  48 &  53 &  59 &  63 &  74 &  82 &  91 &  97 & 107 & 114 & 122 \\
+\hline
 \end{tabular}
   \end{center}
   \caption{Anzahl der Komparatoren der Ergebnisse von
@@ -2406,14 +2411,23 @@ $k = 10$, das 95~Komparatoren benötigt. Das Ergebnis, das auf Basis des
       27  &  91 & 14 \\
       28  &  91 & 14 \\
       29  &  95 & 13 \\
+      \rowcolor{green!10}
       30  &  93 & 13 \\
+      \rowcolor{green!10!white!95!black}
       31  &  93 & 13 \\
+      \rowcolor{green!10}
       32  &  93 & 13 \\
+      \rowcolor{green!10!white!95!black}
       33  &  93 & 13 \\
+      \rowcolor{green!10}
       34  &  93 & 13 \\
+      \rowcolor{green!10!white!95!black}
       35  &  93 & 13 \\
+      \rowcolor{green!10}
       36  &  93 & 13 \\
+      \rowcolor{green!10!white!95!black}
       37  &  93 & 13 \\
+      \rowcolor{green!10}
       38  &  93 & 13 \\
       \hline
  \bs{19}  &  98 & 14 \\
@@ -2428,6 +2442,8 @@ $k = 10$, das 95~Komparatoren benötigt. Das Ergebnis, das auf Basis des
   \label{tbl:ec-oes-19}
 \end{table}
 
+% 2-er Potenzen
+
 In Abschnitt~\ref{sect:anzahl_schnittmuster} wurde bereits untersucht, wie
 viele \emph{unterschiedliche} 16-Schnittmuster die konstruierten
 Sortiernetzwerke $\operatorname{OES}(32)$, $\operatorname{BS}(32)$ und
@@ -2442,7 +2458,7 @@ Abschnitt~\ref{sect:implementierung}) etwa 20.000 Iterationen pro Sekunde auf
 derzeitigen Computern.} ein gutes 16-Schnittmuster findet.
 
 Eines der 16-Schnittmuster für \oes{32}, die ein Sortiernetzwerk erzeugen, das
-bezüglich Effizienz und Geschwindigkeit identisch ist zu \oes{16}, ist
+bezüglich Effizienz und Geschwindigkeit identisch zu \oes{16} ist, ist
 $\operatorname{MIN}(1, 6, 11, 14, 17, 23, 26, 29)$, $\operatorname{MAX}(2, 7,
 8,$ $13, 18, 21, 27, 31)$. Das Schnittmuster ist in
 Abbildung~\ref{fig:16-ec-from-oes32-cut} veranschaulicht, das resultierende
@@ -2472,9 +2488,11 @@ Netzwerk ist in Abbildung~\ref{fig:16-ec-from-oes32} zu sehen.
   \label{fig:16-ec-from-oes32}
 \end{figure}
 
+% Regelmaessiges Schnittmuster fuer n = 2^d
+
 Bei diesem Schnittmuster fällt auf, dass es für jeweils vier Eingänge (0--3,
 4--7, \dots, 28--31) einen Minimum- und einen Maximumschnitt gibt. Aus dieser
-Beobachtung kann man das regelmäßige Schnittmuster
+Beobachtung kann das regelmäßige Schnittmuster
 \begin{displaymath}
 \textit{Eingang}_i = \left\{ \begin{array}{rl}
    \infty & \quad \textrm{falls } i \bmod 4 = 0 \\
@@ -2482,11 +2500,11 @@ Beobachtung kann man das regelmäßige Schnittmuster
         ? & \quad \mathrm{sonst}
   \end{array} \right.
 \end{displaymath}
-ableiten. Es entfernt die Hälfte der Leitungen, vorausgesetzt die Anzahl der
-Leitungen ist durch Vier teilbar. Das Schnittmuster erzeugt effiziente
-Netzwerke, wenn die Anzahl der Leitungen $n = 2^d$ eine Zweierpotenz ist. Ein
-32-Sortiernetzwerk, das mit diesem Schnittmuster aus \oes{64} erzeugt wurde,
-ist in Abbildung~\ref{fig:32-ec-from-oes64} zu sehen.
+abgeleitet werden. Es entfernt die Hälfte der Leitungen, vorausgesetzt die
+Anzahl der Leitungen ist durch Vier teilbar. Das Schnittmuster erzeugt
+effiziente Netzwerke, wenn die Anzahl der Leitungen $n = 2^d$ eine
+Zweierpotenz ist. Ein 32-Sortiernetzwerk, das mit diesem Schnittmuster aus
+\oes{64} erzeugt wurde, ist in Abbildung~\ref{fig:32-ec-from-oes64} zu sehen.
 
 \begin{figure}
   \begin{center}
@@ -2498,18 +2516,20 @@ ist in Abbildung~\ref{fig:32-ec-from-oes64} zu sehen.
   \label{fig:32-ec-from-oes64}
 \end{figure}
 
-Wenn die Anzahl der Leitungen keine Zweierpotenz ist, erreichen die so
-erzeugten Sortiernetzwerke die Effizienz des
+Wenn die Anzahl der Leitungen keine Zweierpotenz ist, erreichen die durch
+dieses regelmäßige Schnittmuster erzeugten Sortiernetzwerke die Effizienz des
 \emph{Odd-Even-Mergesort}-Netzwerks nicht. Wendet man das Schnittmuster
 beispielsweise auf \oes{24} an, so erhält man ein Sortiernetzwerk mit
 43~Komparatoren -- \oes{12} kommt mit 41~Komparatoren aus. Die Geschwindigkeit
 beider Sortiernetzwerke ist mit 10~Schichten identisch.
 
-Startet man hingegen den \textsc{SN-Evolution-Cut}-Algorithmus mit \oes{24}
-und dem Ziel, ein gutes 12-Schnittmuster zu finden, hängt die Ausgabe von der
-verwendeten Gütefunktion ab. Werden effiziente Netzwerke bevorzugt, findet der
-Algorithmus Schnittmuster wie $\operatorname{MIN}(6, 7, 8, 9, 16, 17, 20,
-22)$, $\operatorname{MAX}(2, 4, 12, 14)$, dessen Ergebnis in
+% SN-Evolution-Cut vs. regelmaessiges Schnittmuster
+
+Wird der \textsc{SN-Evolution-Cut}-Algorithmus mit \oes{n}, $n = 22, 23, 24$
+und $k = 10, 11, 12$ gestartet, hängt die Ausgabe von der verwendeten
+Gütefunktion ab. Werden effiziente Netzwerke bevorzugt, findet der Algorithmus
+Schnittmuster wie das 12-Schnittmus\-ter $\operatorname{MIN}(6, 7, 8, 9, 16, 17,
+20, 22)$, $\operatorname{MAX}(2, 4, 12, 14)$ für \oes{24}, dessen Ergebnis in
 Abbildung~\ref{fig:12-ec-from-oes24-efficient} zu sehen ist. Das resultierende
 Sortiernetzwerk besteht aus 41~Komparatoren, die in 10~Schichten angeordnet
 werden können. Damit ist das Netzwerk bezüglich Effizienz und Geschwindigkeit
@@ -2517,9 +2537,11 @@ gleichauf mit \oes{12}. Werden hingegen schnelle Sortiernetzwerke bevorzugt,
 werden stattdessen Schnittmuster wie $\operatorname{MIN}(6, 7, 11, 12, 15,
 16)$, $\operatorname{MAX}(1, 3, 10, 17, 20, 23)$ ausgegeben. Das Ergebnis
 dieses Schnittmusters ist in Abbildung~\ref{fig:12-ec-from-oes24-fast} zu
-sehen. Das Sortiernetzwerk besteht aus 43~Komparatoren, die in 9~Schichten
-angeordnet sind. Das resultierende Netzwerk zwar nicht so effizient wie
-\oes{12}, dafür aber schneller als \oes{12} und \bs{12}.
+sehen, weitere Ergebnisse für diese Gütefunktion sind in den
+Tabellen~\ref{tbl:ec-oes-efficiency} und~\ref{tbl:ec-oes-speed} zusammengefasst.
+Das resultierende 12-Sortiernetzwerk besteht aus 43~Komparatoren, die
+in 9~Schichten angeordnet sind. Das resultierende Netzwerk zwar nicht so
+effizient wie \oes{12}, dafür aber schneller als \oes{12} und \bs{12}.
 
 \begin{figure}
   \centering
@@ -2536,48 +2558,6 @@ angeordnet sind. Das resultierende Netzwerk zwar nicht so effizient wie
   \label{fig:12-ec-from-oes24}
 \end{figure}
 
-Das \oes{24}-Sortiernetzwerk ist kein Einzelfall: \textsc{SN-Evolution-Cut}
-findet Sortiernetzwerke, die schneller sind als das entsprechende
-\emph{Odd-Even-Mergesort}-Netzwerk, unter anderem für das Sortiernetzwerke mit
-22, 24, 38, 40, 42, 44 und 46 Leitungen. In der folgenden Tabelle sind einige
-schnelle Netzwerke, die von \textsc{SN-Evolution-Cut} generiert werden können,
-charakterisiert. Die Eingabe für \textsc{SN-Evolution-Cut} war jeweils das
-\emph{Odd-Even-Mergesort}-Netzwerk mit der doppelten Leitungszahl.
-\begin{center}
-\begin{tabular}{|r|r|r|r|r|}
-\hline
-Leitungen  & Komparatoren   & Schichten      & Komparatoren & Schichten \\
-           & \textsc{SN-EC} & \textsc{SN-EC} &      \oes{n} &   \oes{n} \\
-\hline
-11 &  38 &  9 &  37 & 10 \\
-12 &  43 &  9 &  41 & 10 \\
-19 &  93 & 13 &  91 & 14 \\
-20 & 101 & 13 &  97 & 14 \\
-21 & 108 & 14 & 107 & 15 \\
-22 & 116 & 14 & 114 & 15 \\
-23 & 125 & 14 & 122 & 15 \\
-\hline
-\end{tabular}
-\end{center}
-Abbildung~\ref{fig:23-ec-from-oes46} zeigt beispielhaft ein
-23-Sortiernetzwerk, das aus \oes{46} generiert wurde. Bemerkenswert an diesem
-Sortiernetzwerk ist insbesondere, dass \textsc{SN-Evolution-Cut} mit der
-Eingabe \bs{46} ein besseres Ergebnis liefert als mit der Eingabe \oes{46}. In
-beiden Fällen wird ein Sortiernetzwerk zurückgegeben, das im Vergleich zu
-\bs{23} beziehungsweise \oes{23} eine Schicht einspart.
-
-\begin{figure}
-  \begin{center}
-    \input{images/23-ec-from-oes46-fast.tex}
-  \end{center}
-  \caption{23-Sortiernetzwerk mit 125~Komparatoren in 14~Schichten. 
-    Das Netzwerk wurde von \textsc{SN-Evolution-Cut} aus \oes{46} mit dem
-    Schnittmuster $\operatorname{MIN}(6, 7, 9, 17, 19, 22, 29, 30, 32, 34, 38,
-    44)$, $\operatorname{MAX}(4, 5, 11, 16, 18, 25, 31, 36, 39, 42, 45)$
-    erzeugt.}
-  \label{fig:23-ec-from-oes46}
-\end{figure}
-
 \subsection[Pairwise-Sorting-Netzwerk]{Versuche mit dem Pairwise-Sorting-Netzwerk}
 
 Die Ergebnisse, die \textsc{SN-Evolution-Cut} erzielte, wenn das gegebene