SN-Evolution-Cut: PS: Ausgebaut.
[diplomarbeit.git] / diplomarbeit.tex
index 9eb0467..2a8eff5 100644 (file)
@@ -1930,6 +1930,8 @@ $k$-Schnittmuster als auch das $m$-Sortiernetzwerk als Ausgabe von
 \subsection[Bitones Mergesort-Netzwerk]{Versuche mit dem bitonen Mergesort-Netzwerk}
 \label{sect:sn-evolution-cut:bs}
 
+% Effizienz
+
 Wenn der \textsc{SN-Evolution-Cut}-Algorithmus mit dem \emph{bitonen
 Mergesort}-Netzwerk \bs{n} gestartet wird und $k$~Leitungen entfernen soll,
 ergeben die gefundenen Schnittmuster in vielen Fällen effizientere Netzwerke
@@ -1939,6 +1941,8 @@ Sortiernetzwerk mit 67~Komparatoren, 13~Komparatoren weniger als \bs{16}
 benötigt. Eines der Sortiernetzwerke, die auf diese Art und Weise generiert
 wurde, ist in Abbildung~\ref{fig:16-ec-from-bs22} zu sehen.
 
+% Beispiel Effizienz
+
 \begin{figure}
   \begin{center}
     \input{images/16-ec-from-bs22.tex}
@@ -2014,21 +2018,7 @@ Bei anderen Größen ergeben erst größere~$k$ effiziente Sortiernetzwerke,
 beispielsweise bei $m = 10$: erst für $n = 18$, $k = 8$ wird ein
 Sortiernetzwerk mit 31~Komparatoren gefunden.
 
-\begin{figure}
-  \centering
-  \subfigure[10-Sortiernetzwerk aus 31~Komparatoren in 8~Schichten. Das
-  Netzwerk wurde von \textsc{SN-Evolution-Cut} aus \bs{19} erzeugt.]{\input{images/10-ec-from-bs19-fast.tex}\label{fig:10-ec-from-bs19-fast}}
-  \subfigure[11-Sortiernetzwerk aus 37~Komparatoren in 9~Schichten. Das
-  Netzwerk wurde von \textsc{SN-Evolution-Cut} aus \bs{18} erzeugt.]{\input{images/11-ec-from-bs18-fast.tex}\label{fig:11-ec-from-bs18-fast}}
-  \subfigure[12-Sortiernetzwerk aus 42~Komparatoren in 9~Schichten. Das
-  Netzwerk wurde von \textsc{SN-Evolution-Cut} aus \bs{22} erzeugt.]{\input{images/12-ec-from-bs22-fast.tex}\label{fig:12-ec-from-bs22-fast}}
-  \subfigure[19-Sortiernetzwerk aus 92~Komparatoren in 13~Schichten. Das
-  Netzwerk wurde von \textsc{SN-Evolution-Cut} aus \bs{37} erzeugt.]{\input{images/19-ec-from-bs37-fast.tex}\label{fig:19-ec-from-bs37-fast}}
-  \caption{Für einige Ziel-Leitungszahlen, unter anderem $m \in \{10, 11,
-  12, 19\}$, kann der \textsc{SN-Evolution-Cut}-Algorithmus Sortiernetzwerke
-  erzeugen, die \emph{schneller} und \emph{effizienter} als \bs{m} sind.}
-  \label{fig:ec-bs-fast_networks}
-\end{figure}
+% Geschwindigkeit
 
 Bei einigen Werten für die Ziel-Leitungsanzahl $m$ kann der
 \textsc{SN-Evolution-Cut}-Algorithmus Ergebnisse erzielen, die schneller als
@@ -2080,6 +2070,24 @@ schnelle Sortiernetzwerke erzeugen. Beispiele für schnelle Sortiernetzwerke,
 die mit den von \textsc{SN-Evolution-Cut} ausgegebenen Schnittmustern erzeugt
 werden können, sind in Abbildung~\ref{fig:ec-bs-fast_networks} dargestellt.
 
+% Beispiel Geschwindigkeit
+
+\begin{figure}
+  \centering
+  \subfigure[10-Sortiernetzwerk aus 31~Komparatoren in 8~Schichten. Das
+  Netzwerk wurde von \textsc{SN-Evolution-Cut} aus \bs{19} erzeugt.]{\input{images/10-ec-from-bs19-fast.tex}\label{fig:10-ec-from-bs19-fast}}
+  \subfigure[11-Sortiernetzwerk aus 37~Komparatoren in 9~Schichten. Das
+  Netzwerk wurde von \textsc{SN-Evolution-Cut} aus \bs{18} erzeugt.]{\input{images/11-ec-from-bs18-fast.tex}\label{fig:11-ec-from-bs18-fast}}
+  \subfigure[12-Sortiernetzwerk aus 42~Komparatoren in 9~Schichten. Das
+  Netzwerk wurde von \textsc{SN-Evolution-Cut} aus \bs{22} erzeugt.]{\input{images/12-ec-from-bs22-fast.tex}\label{fig:12-ec-from-bs22-fast}}
+  \subfigure[19-Sortiernetzwerk aus 92~Komparatoren in 13~Schichten. Das
+  Netzwerk wurde von \textsc{SN-Evolution-Cut} aus \bs{37} erzeugt.]{\input{images/19-ec-from-bs37-fast.tex}\label{fig:19-ec-from-bs37-fast}}
+  \caption{Für einige Ziel-Leitungszahlen, unter anderem $m \in \{10, 11,
+  12, 19\}$, kann der \textsc{SN-Evolution-Cut}-Algorithmus Sortiernetzwerke
+  erzeugen, die \emph{schneller} und \emph{effizienter} als \bs{m} sind.}
+  \label{fig:ec-bs-fast_networks}
+\end{figure}
+
 Bei der Betrachtung der Effizienz wurde festgestellt, dass oft schon das
 Entfernen einer einzigen Leitung zu eines effizienteren Ergebnis als \bs{m}
 führt. Bei der Geschwindigkeit ist die Anzahl der Leitungen, die entfernt
@@ -2089,6 +2097,8 @@ einzusparen waren bei $m = 10$ und $m = 11$ $k = 6$ Schnitte notwendig. Bei $m
 reduzieren. Für schnelle \emph{und} effiziente Netzwerke musste $k$ teilweise
 noch größer gewählt werden.
 
+% Detaillierte Betrachtung fuer m = 19
+
 Die Effizienz und Geschwindigkeit der Sortiernetzwerke, die von
 \textsc{SN-Evolution-Cut} aus dem \emph{bitonen Mergesort}-Netzwerk erzeugten
 werden, ist für $m = 19$ und $n = 20 \dots 38$ ($k = 1 \dots 19$) in
@@ -2124,7 +2134,7 @@ Abbildung~\ref{fig:19-ec-from-bs37-fast} zu sehen.
           35 & 93 & 13 \\
           \rowcolor{green!10}
           36 & 92 & 13 \\
-         \rowcolor{green!10!white!95!black}
+          \rowcolor{green!10!white!95!black}
           37 & 92 & 13 \\
           38 & 93 & 13 \\
     \hline
@@ -2145,6 +2155,8 @@ Abbildung~\ref{fig:19-ec-from-bs37-fast} zu sehen.
   \label{tbl:ec-bs-19}
 \end{table}
 
+% 2-er Potenz
+
 \textit{Moritz Mühlenthaler} und \textit{Rolf Wanka} zeigen in~\cite{MW2010},
 wie ein \emph{bitoner Mischer} $\bm{n = 2^d}$, der nach Batchers Methode
 konstruiert wurde, durch systematisches Entfernen von Leitungen in einen
@@ -2560,11 +2572,25 @@ effizient wie \oes{12}, dafür aber schneller als \oes{12} und \bs{12}.
 
 \subsection[Pairwise-Sorting-Netzwerk]{Versuche mit dem Pairwise-Sorting-Netzwerk}
 
-Die Ergebnisse, die \textsc{SN-Evolution-Cut} erzielte, wenn das gegebene
-Sortiernetzwerk das \emph{bitone Mergesort}-Netzwerk war
-(Abschnitt~\ref{sect:sn-evolution-cut:bs}), waren sehr wirr. Beispielsweise
-ist bei dem Netzwerk in Abbildung~\ref{fig:32-ec-from-bs64} nicht ersichtlich,
-wie und warum es jede beliebige Eingabe sortiert.
+Eine weitere interessante Eingabe für \textsc{SN-Evolution-Cut} ist das
+\emph{Pairwise-Sorting}-Netzwerk \ps{n}, das \textit{Ian
+Parberry} in seiner Arbeit „The Pairwise Sorting Network“ \cite{P1992}
+definiert. Einerseits wurde in Abschnitt~\ref{sect:anzahl_schnittmuster}
+gezeigt, dass es für \ps{n} sehr viele \emph{unterschiedliche} Schnittmuster
+gibt. Andererseits sind die Sortiernetzwerke, die nach \textit{Parberrys}
+Methode erzeugt werden, genauso schnell und effizient wie das
+\emph{Odd-Even-Mergesort}-Netzwerk, wenn die Leitungszahl $n = 2^d$ eine
+Zweierpotenz ist.
+
+% Effizienz
+
+Für viele Kombinationen von \ps{n} und $k$ sind die Sortiernetzwerke, die
+\textsc{SN-Evolution-Cut} ausgibt, weniger effizient als das entsprechende
+\ps{m}-Netzwerk. Für einige Kombinationen werden jedoch auch effizientere
+Netzwerke generiert, beispielsweise für $m = 11$ und $m = 20$. Die Effizienz
+der Sortiernetzwerke, die \textsc{SN-Evolution-Cut} auf Basis des
+\emph{Pairwise-Sorting}-Netzwerks berechnet, ist tabellarisch in
+Tabelle~\ref{tbl:ec-ps-efficiency} dargestellt. 
 
 \begin{table}
   \begin{center}
@@ -2600,16 +2626,180 @@ wie und warum es jede beliebige Eingabe sortiert.
     Jede Zeile gibt die Ergebnisse für ein Eingabenetzwerk \ps{n} an, jede
     Spalte enthält die Ergebnisse für $m=n-k$, die Anzahl der Leitungen des
     Ausgabenetzwerks.}
+  \label{tbl:ec-ps-efficiency}
+\end{table}
+
+% Beispiel Effizienz
+
+Zwei Ergebnisse, die effizienter als die entsprechenden
+\emph{Pairwise-Sorting}-Netzwerke sind, zeigt
+Abbildung~\ref{fig:ec-ps-efficient_networks}. Sie erreichen die
+Geschwindigkeit und Effizienz des \emph{Odd-Even-Mergesort}-Netzwerks mit der
+entsprechenden Leitungszahl. Bei größeren Netzwerken, beispielsweise $m = 19$,
+ist dies mit der in Tabelle~\ref{tbl:ec-ps-efficiency} dargestellten Größe der
+Schnittmuster noch nicht zu beobachten.
+
+\begin{figure}
+  \centering
+  \subfigure[11-Sortiernetzwerk aus 37~Komparatoren in 10~Schichten. Das
+    Netzwerk wurde von \textsc{SN-Evolution-Cut} aus dem
+    \emph{Pairwise-Sorting}-Netzwerk \ps{13}
+    erzeugt.]{\input{images/11-ec-from-ps13.tex}}
+  \subfigure[12-Sortiernetzwerk aus 41~Komparatoren in 10~Schichten. Das
+    Netzwerk wurde von \textsc{SN-Evolution-Cut} aus dem
+    \emph{Pairwise-Sorting}-Netzwerk \ps{16}
+    erzeugt.]{\input{images/12-ec-from-ps16.tex}}
+  \caption{Zwei effiziente Sortiernetzwerke, die durch Schnittmuster, die von
+    \emph{SN-Evolution-Cut} berechnet wurden, aus dem
+    \emph{Pairwise-Sorting}-Netzwerk \ps{n} erzeugt wurden.}
+  \label{fig:ec-ps-efficient_networks}
+\end{figure}
+
+% Wie viele Schnitte man braucht.
+
+Bei welchen Parametern \textsc{SN-Evolution-Cut} effiziente
+19-Sortiernetzwerke findet, ist Tabelle~\ref{tbl:ec-ps-19} zu entnehmen. Für
+$n = 31$, $k = 12$ und $n = 32$, $k = 13$ werden 19-Sortiernetzwerke mit der
+selben Effizienz und Geschwindigkeit wie \oes{19} erzeugt. Das
+19-Sortiernetzwerk, das auf diese Art und Weise aus \ps{32} erzeugt wurde, ist
+in Abbildung~\ref{fig:19-ec-from-ps32} dargestellt.
+
+\begin{table}
+  \begin{center}
+    \rowcolors{2}{black!5}{}
+    \begin{tabular}{|r|r|r|}
+    \hline
+    $n$ & Komp. & Schichten \\
+    \hline
+          20 &  97 & 15 \\
+          21 &  96 & 15 \\
+          22 &  96 & 15 \\
+          23 &  97 & 14 \\
+          24 &  96 & 14 \\
+          25 &  93 & 14 \\
+          26 &  92 & 14 \\
+          27 &  94 & 14 \\
+          28 &  94 & 14 \\
+          29 &  92 & 14 \\
+          30 &  92 & 14 \\
+          \rowcolor{green!10!white!95!black}
+          31 &  91 & 14 \\
+          \rowcolor{green!10}
+          32 &  91 & 14 \\
+          33 & 101 & 15 \\
+          34 & 104 & 15 \\
+          35 & 106 & 15 \\
+          36 & 107 & 15 \\
+          37 & 106 & 15 \\
+          38 & 102 & 15 \\
+    \hline
+     \ps{19} &  97 & 15 \\
+    \oes{19} &  91 & 14 \\
+    \hline
+    \end{tabular}
+  \end{center}
+  \caption{Anzahl der Komparatoren und Schichten von 19-Sortiernetzwerken, die
+    von \textsc{SN-Evolution-Cut} aus \ps{n}, $n = 20, \dots, 38$ erzeugt
+    wurden.}
+  \label{tbl:ec-ps-19}
+\end{table}
+
+\begin{figure}
+  \begin{center}
+    \input{images/19-ec-from-ps32.tex}
+  \end{center}
+  \caption{Sortiernetzwerk mit 19~Leitungen und 91~Komparatoren in
+    14~Schichten. Das Netzwerk wurde von dem Algorithmus
+    \textsc{SN-Evolution-Cut} aus dem \emph{Pairwise-Sorting}-Netzwerk
+    $\operatorname{PS}(32)$ erzeugt.}
+  \label{fig:19-ec-from-ps32}
+\end{figure}
+
+An den Daten in Tabelle~\ref{tbl:ec-ps-19} fällt auf, dass die Effizienz und
+Geschwindigkeit der Ergebnisse für $n > 32$ schlechter werden. Das
+\emph{Pairwise-Sorting}-Netzwerk ist Leitungszahlen, die Zweierpotenzen sind,
+besonders effizient und schnell. Um der Vermutung nachzugehen, dass der
+\textsc{SN-Evolution-Cut}-Algorithmus für $\ps{n = 2^d}$ besonders effiziente
+Schnittmuster findet, wurde \textsc{SN-Evolution-Cut} mit \ps{32} und $k = 1
+\dots 16$ gestartet. Die Ergebnisse sind in Tabelle~\ref{tbl:ec-ps-32}
+zusammengefasst. \todo{Tabelle einfügen.}
+
+% Geschwindigkeit
+
+Die Schnittmuster, die \textsc{SN-Evolution-Cut} für das
+\emph{Pairwise-Sorting}-Netzwerk berechnet, können zu schnelleren
+Sortiernetzwerken als \ps{m} führen. Beispielsweise konnte aus \ps{24} ein
+18-Sortiernetzwerk erzeugt werden, das mit 13~Schichten zwei parallele
+Schritte im Vergleich zu \ps{18} einspart. Eine Darstellung dieses
+Sortiernetzwerks befindet sich in Abbildung~\ref{fig:18-ec-from-ps24}. Für
+andere $m$ wurde die Geschwindigkeit des \emph{Pairwise-Sorting}-Netzwerks
+nicht übertroffen und im Fall von $m = 16$ wurde die Geschwindigkeit nicht
+einmal erreicht.
+
+\begin{table}
+  \begin{center}
+    \rowcolors{2}{black!5}{}
+    \begin{tabular}{|r|rrrrrrrrrrrrrrrr|}
+    \hline
+        &   8 &   9 &  10 &  11 &  12 &  13 &  14 &  15 &  16 &  17 &  18 &  19 &  20 &  21 &  22 &  23 \\
+    \hline
+      9 &   6 &     &     &     &     &     &     &     &     &     &     &     &     &     &     &     \\
+     10 &   6 &  10 &     &     &     &     &     &     &     &     &     &     &     &     &     &     \\
+     11 &   6 &   9 &  10 &     &     &     &     &     &     &     &     &     &     &     &     &     \\
+     12 &   6 &   8 &   9 &  10 &     &     &     &     &     &     &     &     &     &     &     &     \\
+     13 &   6 &   8 &   9 &  10 &  10 &     &     &     &     &     &     &     &     &     &     &     \\
+     14 &   6 &   8 &   9 &  10 &  10 &  10 &     &     &     &     &     &     &     &     &     &     \\
+     15 &   6 &   8 &   9 &  10 &  10 &  10 &  10 &     &     &     &     &     &     &     &     &     \\
+     16 &   6 &   8 &   9 &  10 &  10 &  10 &  10 &  10 &     &     &     &     &     &     &     &     \\
+     17 &   7 &   8 &   9 &  10 &  10 &  11 &  11 &  11 &  11 &     &     &     &     &     &     &     \\
+     18 &   7 &   8 &   9 &  10 &  10 &  11 &  11 &  11 &  11 &  15 &     &     &     &     &     &     \\
+     19 &   7 &   8 &   9 &  10 &  10 &  11 &  11 &  11 &  11 &  15 &  15 &     &     &     &     &     \\
+     20 &   7 &   8 &   9 &  10 &  10 &  11 &  11 &  11 &  11 &  15 &  15 &  15 &     &     &     &     \\
+     21 &   6 &   8 &   9 &  10 &  10 &  11 &  11 &  11 &  12 &  14 &  15 &  15 &  15 &     &     &     \\
+     22 &   6 &   8 &   9 &  10 &  10 &  11 &  11 &  11 &  12 &  14 &  14 &  15 &  15 &  15 &     &     \\
+     23 &   6 &   9 &   9 &  10 &  10 &  10 &  11 &  11 &  11 &  13 &  14 &  14 &  15 &  15 &  15 &     \\
+     24 &   6 &   9 &   9 &  10 &  10 &  10 &  11 &  11 &  11 &  13 &  13 &  14 &  14 &  15 &  15 &  15 \\
+     \hline
+ \ps{m} &   6 &  10 &  10 &  10 &  10 &  10 &  10 &  10 &  10 &  15 &  15 &  15 &  15 &  15 &  15 &  15 \\
+    \hline
+    \end{tabular}
+  \end{center}
+  \caption{Anzahl der Schichten der Ergebnisse von
+    \textsc{SN-Evolution-Cut} mit verschiedenen Größen des
+    \emph{Pairwise-Sorting}-Netzwerks und unterschiedlichen Werten für~$k$.
+    Jede Zeile gibt die Ergebnisse für ein Eingabenetzwerk \ps{n} an, jede
+    Spalte enthält die Ergebnisse für $m=n-k$, die Anzahl der Leitungen des
+    Ausgabenetzwerks.}
   \label{tbl:ec-ps-speed}
 \end{table}
 
-Das \emph{Pairwise-Sorting-Netzwerk} $\operatorname{PS}(n)$, das \textit{Ian
-Parberry} in seiner Arbeit „The Pairwise Sorting Network“ \cite{P1992}
-definiert, verhält sich anders. Startet man \textsc{SN-Evolution-Cut} mit
-$\operatorname{PS}(32)$ und der Vorgabe, 16~Leitungen zu entfernen, erhält man
-ein Sortiernetzwerk, das die gleiche Anzahl Komparatoren und Schichten hat wie
-$\operatorname{PS}(16)$ und $\operatorname{OES}(16)$. Eines dieser
-Sortiernetzwerke ist in Abbildung~\ref{fig:16-ec-from-ps32} dargestellt.
+% Beispiel Geschwindigkeit
+
+\begin{figure}
+  \begin{center}
+    \input{images/18-ec-from-ps24.tex}
+  \end{center}
+  \caption{Sortiernetzwerk mit 18~Leitungen und 89~Komparatoren in
+    13~Schichten. Das Netzwerk wurde von dem Algorithmus
+    \textsc{SN-Evolution-Cut} aus dem \emph{Pairwise-Sorting}-Netzwerk
+    $\operatorname{PS}(24)$ erzeugt.}
+  \label{fig:18-ec-from-ps24}
+\end{figure}
+
+% 2-er Potenz
+
+Die Ergebnisse, die \textsc{SN-Evolution-Cut} erzielte, wenn das gegebene
+Sortiernetzwerk das \emph{bitone Mergesort}-Netzwerk war
+(Abschnitt~\ref{sect:sn-evolution-cut:bs}), waren sehr wirr. Beispielsweise
+ist bei dem Netzwerk in Abbildung~\ref{fig:32-ec-from-bs64} nicht ersichtlich,
+wie und warum es jede beliebige Eingabe sortiert.
+
+Bei dem \emph{Pairwise-Sorting}-Netzwerk $\ps{n=2^d}$ ist das anders. Startet
+man \textsc{SN-Evolution-Cut} mit $\operatorname{PS}(32)$ und der Vorgabe,
+16~Leitungen zu entfernen, erhält man ein Sortiernetzwerk, das die gleiche
+Anzahl Komparatoren und Schichten hat wie $\operatorname{PS}(16)$ und
+$\operatorname{OES}(16)$. Eines dieser Sortiernetzwerke ist in
+Abbildung~\ref{fig:16-ec-from-ps32} dargestellt.
 
 \begin{figure}
   \begin{center}
@@ -2622,7 +2812,7 @@ Sortiernetzwerke ist in Abbildung~\ref{fig:16-ec-from-ps32} dargestellt.
   \label{fig:16-ec-from-ps32}
 \end{figure}
 
-Obwohl das \emph{Pairwise-Sorting-Netzwerk} den \emph{Odd-Even}-Mischer nicht
+Obwohl das \emph{Pairwise-Sorting}-Netzwerk den \emph{Odd-Even}-Mischer nicht
 einsetzt und auch nicht auf einem Mischer basiert, ist das
 \emph{Odd-Even-Merge}-Netzwerk $\operatorname{OEM}(8,8)$ im Sortiernetzwerk in
 Abbildung~\ref{fig:16-ec-from-ps32} eindeutig erkennbar (Schichten~7--10). In