From 928ac147177a1f854369cebeadfc0dee611668f6 Mon Sep 17 00:00:00 2001 From: Florian Forster Date: Sun, 27 Feb 2011 13:53:35 +0100 Subject: [PATCH] SN-Evolution: RND: Mehr Details + 18-SN. --- diplomarbeit.tex | 39 ++++- images/18-e1-rnd-fast.tex | 352 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 387 insertions(+), 4 deletions(-) create mode 100644 images/18-e1-rnd-fast.tex diff --git a/diplomarbeit.tex b/diplomarbeit.tex index 19ade54..c868412 100644 --- a/diplomarbeit.tex +++ b/diplomarbeit.tex @@ -1671,11 +1671,10 @@ Leitungen & \multicolumn{2}{l|}{\textsc{SN-EV} mit \bm{n}} Bei einigen Leitungszahlen kann der Algorithmus durch die Verfügbarkeit beider Mischer-Netzwerke Sortiernetzwerke zurückgeben, die effizienter als die -vorherigen Ergebnisse sind. Beispielsweise ist 19-Sortiernetzwerk in +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 nur mit dem \emph{bitonen Mischer}, beziehungsweise -nur mit dem \emph{Odd-Even}-Mischer erreicht wurden -(Abbildungen~\ref{fig:19-e1-bm-fast} und~\ref{fig:19-e1-oem-fast}). +19-Sortiernetzwerke, die mit nur einem der beiden Mischer-Netzwerke erreicht +wurden (Abbildungen~\ref{fig:19-e1-bm-fast} und~\ref{fig:19-e1-oem-fast}). \begin{figure} \begin{center} @@ -1688,6 +1687,38 @@ nur mit dem \emph{Odd-Even}-Mischer erreicht wurden \label{fig:19-e1-rnd-fast} \end{figure} +Die Ergebnisse anderer Leitungszahlen erreichen die Geschwindigkeit der +Ergebnisse, die mit dem \emph{bitonen Mischer} erzielt wurden. Die Effizienz +liegt zwischen den Ergebnissen, die mit dem \emph{bitonen Mischer} erzielt +wurden, und den Ergebnissen, die mit dem \emph{Odd-Even}-Mischer erzielt +wurden. Beispielsweise ist das 18-Sortiernetzwerk in +Abbildung~\ref{fig:18-e1-rnd-fast} so schnell wie das Ergebnis, das mit dem +\emph{bitonen Mischer} ausgegeben wurde. Mit 83~Komparatoren liegt die +Effizienz des Sortiernetzwerks zwischen den Ergebnissen, die mit dem +\emph{bitonen Mischer} (87~Komparatoren), beziehungsweise dem +\emph{Odd-Even}-Mischer (82~Komparatoren) erreicht werden konnten. + +\begin{figure} + \begin{center} + \input{images/18-e1-rnd-fast.tex} + \end{center} + \caption{Sortiernetzwerk mit 18~Leitungen und 83~Komparatoren in + 12~Schichten. Das Netzwerk wurde von dem Algorithmus \textsc{SN-Evolution} + unter Verwendung des \emph{bitonen Mischers} und des + \emph{Odd-Even}-Mischers erzeugt.} + \label{fig:18-e1-rnd-fast} +\end{figure} + +In einigen Fällen hat \textsc{SN-Evolution} in dieser Konfiguration +Sortiernetzwerke ausgegeben, die weniger effizient und genauso schnell wie die +bisherigen Ergebnisse unter Verwendung des \emph{Odd-Even}-Mischers sind. +Prinzipiell könnte der Algorithmus in jeder Iteration zufällig den +\emph{Odd-Even}-Mischers auswählen, um die selektierten Individuen zu +rekombinieren. Das heißt, das die Ergebnisse auch bei einer zufälligen Wahl +des Mischer-Netzwerks theoretisch erreicht werden können. Allerdings sind +unter Umständen mehr Iterationen notwendig, bis die gleiche Effizienz erreicht +wird. + %\input{shmoo-aequivalenz.tex} \newpage diff --git a/images/18-e1-rnd-fast.tex b/images/18-e1-rnd-fast.tex new file mode 100644 index 0000000..35a3cc9 --- /dev/null +++ b/images/18-e1-rnd-fast.tex @@ -0,0 +1,352 @@ +\begin{tikzpicture}[auto] +\node[vertex] (v0) at (0.72,0.00) {}; +\node[vertex] (v1) at (0.72,0.58) {}; +\path[comp] (v0) -- (v1); + +\node[vertex] (v2) at (0.72,1.15) {}; +\node[vertex] (v3) at (0.72,5.19) {}; +\path[comp] (v2) -- (v3); + +\node[vertex] (v4) at (0.94,1.73) {}; +\node[vertex] (v5) at (0.94,7.50) {}; +\path[comp] (v4) -- (v5); + +\node[vertex] (v6) at (1.15,2.88) {}; +\node[vertex] (v7) at (1.15,8.65) {}; +\path[comp] (v6) -- (v7); + +\node[vertex] (v8) at (1.37,3.46) {}; +\node[vertex] (v9) at (1.37,5.77) {}; +\path[comp] (v8) -- (v9); + +\node[vertex] (v10) at (1.59,4.62) {}; +\node[vertex] (v11) at (1.59,6.92) {}; +\path[comp] (v10) -- (v11); + +\node[vertex] (v12) at (0.72,6.35) {}; +\node[vertex] (v13) at (0.72,9.23) {}; +\path[comp] (v12) -- (v13); + +\node[vertex] (v14) at (0.94,8.08) {}; +\node[vertex] (v15) at (0.94,9.81) {}; +\path[comp] (v14) -- (v15); + +\node[vertex] (v16) at (2.31,0.00) {}; +\node[vertex] (v17) at (2.31,5.19) {}; +\path[comp] (v16) -- (v17); + +\node[vertex] (v18) at (2.52,0.58) {}; +\node[vertex] (v19) at (2.52,1.15) {}; +\path[comp] (v18) -- (v19); + +\node[vertex] (v20) at (2.52,2.31) {}; +\node[vertex] (v21) at (2.52,6.92) {}; +\path[comp] (v20) -- (v21); + +\node[vertex] (v22) at (2.74,2.88) {}; +\node[vertex] (v23) at (2.74,8.08) {}; +\path[comp] (v22) -- (v23); + +\node[vertex] (v24) at (2.96,4.04) {}; +\node[vertex] (v25) at (2.96,6.35) {}; +\path[comp] (v24) -- (v25); + +\node[vertex] (v26) at (2.31,8.65) {}; +\node[vertex] (v27) at (2.31,9.81) {}; +\path[comp] (v26) -- (v27); + +\node[vertex] (v28) at (3.68,0.00) {}; +\node[vertex] (v29) at (3.68,0.58) {}; +\path[comp] (v28) -- (v29); + +\node[vertex] (v30) at (3.68,1.15) {}; +\node[vertex] (v31) at (3.68,5.19) {}; +\path[comp] (v30) -- (v31); + +\node[vertex] (v32) at (3.89,2.31) {}; +\node[vertex] (v33) at (3.89,4.62) {}; +\path[comp] (v32) -- (v33); + +\node[vertex] (v34) at (4.11,3.46) {}; +\node[vertex] (v35) at (4.11,4.04) {}; +\path[comp] (v34) -- (v35); + +\node[vertex] (v36) at (3.68,6.35) {}; +\node[vertex] (v37) at (3.68,9.23) {}; +\path[comp] (v36) -- (v37); + +\node[vertex] (v38) at (3.89,6.92) {}; +\node[vertex] (v39) at (3.89,7.50) {}; +\path[comp] (v38) -- (v39); + +\node[vertex] (v40) at (3.89,8.08) {}; +\node[vertex] (v41) at (3.89,8.65) {}; +\path[comp] (v40) -- (v41); + +\node[vertex] (v42) at (4.83,0.58) {}; +\node[vertex] (v43) at (4.83,7.50) {}; +\path[comp] (v42) -- (v43); + +\node[vertex] (v44) at (5.05,1.73) {}; +\node[vertex] (v45) at (5.05,4.62) {}; +\path[comp] (v44) -- (v45); + +\node[vertex] (v46) at (5.26,2.31) {}; +\node[vertex] (v47) at (5.26,6.92) {}; +\path[comp] (v46) -- (v47); + +\node[vertex] (v48) at (5.48,3.46) {}; +\node[vertex] (v49) at (5.48,8.08) {}; +\path[comp] (v48) -- (v49); + +\node[vertex] (v50) at (5.70,4.04) {}; +\node[vertex] (v51) at (5.70,9.23) {}; +\path[comp] (v50) -- (v51); + +\node[vertex] (v52) at (5.05,5.77) {}; +\node[vertex] (v53) at (5.05,6.35) {}; +\path[comp] (v52) -- (v53); + +\node[vertex] (v54) at (6.42,1.73) {}; +\node[vertex] (v55) at (6.42,2.31) {}; +\path[comp] (v54) -- (v55); + +\node[vertex] (v56) at (6.42,4.04) {}; +\node[vertex] (v57) at (6.42,5.77) {}; +\path[comp] (v56) -- (v57); + +\node[vertex] (v58) at (6.63,4.62) {}; +\node[vertex] (v59) at (6.63,6.92) {}; +\path[comp] (v58) -- (v59); + +\node[vertex] (v60) at (6.42,6.35) {}; +\node[vertex] (v61) at (6.42,9.23) {}; +\path[comp] (v60) -- (v61); + +\node[vertex] (v62) at (7.36,0.00) {}; +\node[vertex] (v63) at (7.36,2.31) {}; +\path[comp] (v62) -- (v63); + +\node[vertex] (v64) at (7.57,0.58) {}; +\node[vertex] (v65) at (7.57,1.73) {}; +\path[comp] (v64) -- (v65); + +\node[vertex] (v66) at (7.79,1.15) {}; +\node[vertex] (v67) at (7.79,6.92) {}; +\path[comp] (v66) -- (v67); + +\node[vertex] (v68) at (7.36,2.88) {}; +\node[vertex] (v69) at (7.36,4.04) {}; +\path[comp] (v68) -- (v69); + +\node[vertex] (v70) at (7.36,4.62) {}; +\node[vertex] (v71) at (7.36,5.19) {}; +\path[comp] (v70) -- (v71); + +\node[vertex] (v72) at (7.36,5.77) {}; +\node[vertex] (v73) at (7.36,9.81) {}; +\path[comp] (v72) -- (v73); + +\node[vertex] (v74) at (7.57,6.35) {}; +\node[vertex] (v75) at (7.57,8.65) {}; +\path[comp] (v74) -- (v75); + +\node[vertex] (v76) at (7.79,8.08) {}; +\node[vertex] (v77) at (7.79,9.23) {}; +\path[comp] (v76) -- (v77); + +\node[vertex] (v78) at (8.51,0.00) {}; +\node[vertex] (v79) at (8.51,0.58) {}; +\path[comp] (v78) -- (v79); + +\node[vertex] (v80) at (8.51,1.15) {}; +\node[vertex] (v81) at (8.51,2.31) {}; +\path[comp] (v80) -- (v81); + +\node[vertex] (v82) at (8.73,1.73) {}; +\node[vertex] (v83) at (8.73,4.62) {}; +\path[comp] (v82) -- (v83); + +\node[vertex] (v84) at (8.51,2.88) {}; +\node[vertex] (v85) at (8.51,3.46) {}; +\path[comp] (v84) -- (v85); + +\node[vertex] (v86) at (8.51,4.04) {}; +\node[vertex] (v87) at (8.51,6.35) {}; +\path[comp] (v86) -- (v87); + +\node[vertex] (v88) at (8.73,5.19) {}; +\node[vertex] (v89) at (8.73,7.50) {}; +\path[comp] (v88) -- (v89); + +\node[vertex] (v90) at (8.94,5.77) {}; +\node[vertex] (v91) at (8.94,8.08) {}; +\path[comp] (v90) -- (v91); + +\node[vertex] (v92) at (8.51,9.23) {}; +\node[vertex] (v93) at (8.51,9.81) {}; +\path[comp] (v92) -- (v93); + +\node[vertex] (v94) at (9.66,0.00) {}; +\node[vertex] (v95) at (9.66,2.88) {}; +\path[comp] (v94) -- (v95); + +\node[vertex] (v96) at (9.88,0.58) {}; +\node[vertex] (v97) at (9.88,3.46) {}; +\path[comp] (v96) -- (v97); + +\node[vertex] (v98) at (10.10,1.15) {}; +\node[vertex] (v99) at (10.10,1.73) {}; +\path[comp] (v98) -- (v99); + +\node[vertex] (v100) at (10.10,2.31) {}; +\node[vertex] (v101) at (10.10,4.62) {}; +\path[comp] (v100) -- (v101); + +\node[vertex] (v102) at (9.66,4.04) {}; +\node[vertex] (v103) at (9.66,5.77) {}; +\path[comp] (v102) -- (v103); + +\node[vertex] (v104) at (9.88,5.19) {}; +\node[vertex] (v105) at (9.88,6.92) {}; +\path[comp] (v104) -- (v105); + +\node[vertex] (v106) at (9.66,6.35) {}; +\node[vertex] (v107) at (9.66,8.08) {}; +\path[comp] (v106) -- (v107); + +\node[vertex] (v108) at (9.88,7.50) {}; +\node[vertex] (v109) at (9.88,9.81) {}; +\path[comp] (v108) -- (v109); + +\node[vertex] (v110) at (9.66,8.65) {}; +\node[vertex] (v111) at (9.66,9.23) {}; +\path[comp] (v110) -- (v111); + +\node[vertex] (v112) at (10.82,1.15) {}; +\node[vertex] (v113) at (10.82,4.04) {}; +\path[comp] (v112) -- (v113); + +\node[vertex] (v114) at (11.03,1.73) {}; +\node[vertex] (v115) at (11.03,5.77) {}; +\path[comp] (v114) -- (v115); + +\node[vertex] (v116) at (11.25,2.31) {}; +\node[vertex] (v117) at (11.25,6.35) {}; +\path[comp] (v116) -- (v117); + +\node[vertex] (v118) at (11.47,2.88) {}; +\node[vertex] (v119) at (11.47,7.50) {}; +\path[comp] (v118) -- (v119); + +\node[vertex] (v120) at (10.82,4.62) {}; +\node[vertex] (v121) at (10.82,8.08) {}; +\path[comp] (v120) -- (v121); + +\node[vertex] (v122) at (11.68,5.19) {}; +\node[vertex] (v123) at (11.68,8.65) {}; +\path[comp] (v122) -- (v123); + +\node[vertex] (v124) at (11.03,6.92) {}; +\node[vertex] (v125) at (11.03,9.23) {}; +\path[comp] (v124) -- (v125); + +\node[vertex] (v126) at (12.40,2.31) {}; +\node[vertex] (v127) at (12.40,2.88) {}; +\path[comp] (v126) -- (v127); + +\node[vertex] (v128) at (12.40,3.46) {}; +\node[vertex] (v129) at (12.40,4.62) {}; +\path[comp] (v128) -- (v129); + +\node[vertex] (v130) at (12.62,4.04) {}; +\node[vertex] (v131) at (12.62,5.19) {}; +\path[comp] (v130) -- (v131); + +\node[vertex] (v132) at (12.40,5.77) {}; +\node[vertex] (v133) at (12.40,6.92) {}; +\path[comp] (v132) -- (v133); + +\node[vertex] (v134) at (12.62,6.35) {}; +\node[vertex] (v135) at (12.62,7.50) {}; +\path[comp] (v134) -- (v135); + +\node[vertex] (v136) at (13.34,1.15) {}; +\node[vertex] (v137) at (13.34,2.31) {}; +\path[comp] (v136) -- (v137); + +\node[vertex] (v138) at (13.56,1.73) {}; +\node[vertex] (v139) at (13.56,3.46) {}; +\path[comp] (v138) -- (v139); + +\node[vertex] (v140) at (13.34,2.88) {}; +\node[vertex] (v141) at (13.34,4.04) {}; +\path[comp] (v140) -- (v141); + +\node[vertex] (v142) at (13.34,4.62) {}; +\node[vertex] (v143) at (13.34,5.77) {}; +\path[comp] (v142) -- (v143); + +\node[vertex] (v144) at (13.56,5.19) {}; +\node[vertex] (v145) at (13.56,6.35) {}; +\path[comp] (v144) -- (v145); + +\node[vertex] (v146) at (13.34,6.92) {}; +\node[vertex] (v147) at (13.34,8.08) {}; +\path[comp] (v146) -- (v147); + +\node[vertex] (v148) at (13.56,7.50) {}; +\node[vertex] (v149) at (13.56,8.65) {}; +\path[comp] (v148) -- (v149); + +\node[vertex] (v150) at (14.28,0.58) {}; +\node[vertex] (v151) at (14.28,1.15) {}; +\path[comp] (v150) -- (v151); + +\node[vertex] (v152) at (14.28,1.73) {}; +\node[vertex] (v153) at (14.28,2.31) {}; +\path[comp] (v152) -- (v153); + +\node[vertex] (v154) at (14.28,2.88) {}; +\node[vertex] (v155) at (14.28,3.46) {}; +\path[comp] (v154) -- (v155); + +\node[vertex] (v156) at (14.28,4.04) {}; +\node[vertex] (v157) at (14.28,4.62) {}; +\path[comp] (v156) -- (v157); + +\node[vertex] (v158) at (14.28,5.19) {}; +\node[vertex] (v159) at (14.28,5.77) {}; +\path[comp] (v158) -- (v159); + +\node[vertex] (v160) at (14.28,6.35) {}; +\node[vertex] (v161) at (14.28,6.92) {}; +\path[comp] (v160) -- (v161); + +\node[vertex] (v162) at (14.28,7.50) {}; +\node[vertex] (v163) at (14.28,8.08) {}; +\path[comp] (v162) -- (v163); + +\node[vertex] (v164) at (14.28,8.65) {}; +\node[vertex] (v165) at (14.28,9.23) {}; +\path[comp] (v164) -- (v165); + +\path[edge] (0,0.00) -- (15.00,0.00); +\path[edge] (0,0.58) -- (15.00,0.58); +\path[edge] (0,1.15) -- (15.00,1.15); +\path[edge] (0,1.73) -- (15.00,1.73); +\path[edge] (0,2.31) -- (15.00,2.31); +\path[edge] (0,2.88) -- (15.00,2.88); +\path[edge] (0,3.46) -- (15.00,3.46); +\path[edge] (0,4.04) -- (15.00,4.04); +\path[edge] (0,4.62) -- (15.00,4.62); +\path[edge] (0,5.19) -- (15.00,5.19); +\path[edge] (0,5.77) -- (15.00,5.77); +\path[edge] (0,6.35) -- (15.00,6.35); +\path[edge] (0,6.92) -- (15.00,6.92); +\path[edge] (0,7.50) -- (15.00,7.50); +\path[edge] (0,8.08) -- (15.00,8.08); +\path[edge] (0,8.65) -- (15.00,8.65); +\path[edge] (0,9.23) -- (15.00,9.23); +\path[edge] (0,9.81) -- (15.00,9.81); +\end{tikzpicture} -- 2.11.0