\subsection[Bitoner Mischer]{Versuche mit dem bitonen Mischer}
-\begin{figure}
- \begin{center}
- \input{images/16-e1-bitonic-1296542566.tex}
- \end{center}
- \caption{Sortiernetzwerk mit 16~Leitungen und 67~Komparatoren in
- 10~Schichten. Das Netzwerk wurde von dem Algorithmus
- \textsc{SN-Evolution} unter Verwendung des \emph{bitonen Mischers}
- erzeugt.}
- \label{fig:16-e1-bitonic-1296542566}
-\end{figure}
-
Wenn \textsc{SN-Evolution} mit dem \emph{Odd-Even-Transpositionsort}-Netzwerk
als Eingabe gestartet wird und in der Rekombinationsphase den \emph{bitonen
-Mischer} verwendet, gibt der Algorithmus Sortiernetzwerke wie das in
-Abbildung~\ref{fig:16-e1-bitonic-1296542566} dargestellte zurück.
-
-Viele der Sortiernetzwerke, die von \textsc{SN-Evolution} in dieser
-Konfiguration gefunden werden, sind effizienter als das \emph{bitone
-Mergesort}-Netzwerk \bs{n}, das ebenfalls auf dem \emph{bitonen
-Merge}-Netzwerk \bm{n} beruht. Das in
-Abbildung~\ref{fig:16-e1-bitonic-1296542566} dargestellte 16-Sortiernetzwerk
-benötigt 67~Komparatoren, 13~Komparatoren weniger als \bs{n}.
-
-Wenn die Gütefunktion so gewählt ist, dass sie schnelle Sortiernetzwerke
-bevorzugt, können Netzwerke zurückgegeben werden, die schneller als \bs{n}
-sind. Viele der schnellen Sortiernetzwerke sind außerdem effizienter als
-\bs{n}. Das Sortiernetzwerk mit $n = 23$ Leitungen benötigt mit
-134~Komparatoren jedoch einen Komparator mehr als \bs{23}. Die Daten von
-schnellen Sortiernetzwerken, die \textsc{SN-Evolution} mit dem \emph{bitonen
-Merge}-Netzwerk erzeugt hat, sind in Tabelle~\ref{tbl:sn-ev-bm-fast}
-aufgelistet.
+Mischer} verwendet, gibt der Algorithmus \emph{effiziente} und in einigen
+Fällen \emph{schnelle} Sortiernetzwerke aus. Die Ergebnisse des
+\textsc{SN-Evolution}-Algorithmus unter Verwendung des \emph{bitonen Mischers}
+sind in Tabelle~\ref{tbl:sn-ev-bm-fast} zusammengefasst.
\begin{table}\label{tbl:sn-ev-bm-fast}
\begin{center}
\cline{2-5}
($n$) & Komp. & Schichten & Komp. & Schichten \\
\hline
- 8 & \gcell 20 & 6 & 24 & 6 \\
- 9 & \Gcell 26 & 8 & 28 & 8 \\
- 10 & \gcell 31 & \gcell 8 & 33 & 9 \\
- 11 & \Gcell 37 & \Gcell 9 & 39 & 10 \\
- 12 & \gcell 42 & \gcell 9 & 46 & 10 \\
- 13 & \Gcell 48 & 10 & 53 & 10 \\
- 14 & \gcell 54 & 10 & 61 & 10 \\
- 15 & \Gcell 61 & 10 & 70 & 10 \\
- 16 & \gcell 67 & 10 & 80 & 10 \\
- 17 & \Gcell 76 & 12 & 85 & 12 \\
- 18 & \gcell 87 & \gcell 12 & 91 & 13 \\
- 19 & \Gcell 93 & \Gcell 13 & 98 & 14 \\
- 20 & \gcell 104 & \gcell 13 & 106 & 14 \\
- 21 & \Gcell 109 & \Gcell 14 & 114 & 15 \\
- 22 & \gcell 118 & \gcell 14 & 123 & 15 \\
- 23 & 134 & \Gcell 14 & \Gcell 133 & 15 \\
- 24 & \gcell 133 & 15 & 144 & 15 \\
+ 8 & \gcell 20 & 6 & 24 & 6 \\
+ 9 & \Gcell 26 & 8 & 28 & 8 \\
+ 10 & \gcell 31 & \gcell 8 & 33 & 9 \\
+ 11 & \Gcell 37 & \Gcell 9 & 39 & 10 \\
+ 12 & \gcell 42 & \gcell 9 & 46 & 10 \\
+ 13 & \Gcell 48 & 10 & 53 & 10 \\
+ 14 & \gcell 54 & 10 & 61 & 10 \\
+ 15 & \Gcell 61 & 10 & 70 & 10 \\
+ 16 & \gcell 67 & 10 & 80 & 10 \\
+ 17 & \Gcell 76 & 12 & 85 & 12 \\
+ 18 & \gcell 87 & \gcell 12 & 91 & 13 \\
+ 19 & \Gcell 93 & \Gcell 13 & 98 & 14 \\
+ 20 & \gcell 104 & \gcell 13 & 106 & 14 \\
+ 21 & \Gcell 109 & \Gcell 14 & 114 & 15 \\
+ 22 & \gcell 118 & \gcell 14 & 123 & 15 \\
+ 23 & \Gcell 129 & \Gcell 14 & 133 & 15 \\
+ 24 & \gcell 133 & 15 & 144 & 15 \\
\hline
\end{tabular}
\caption{Übersicht über die Ergebnisse des \textsc{SN-Evolution}-Algorithmus
\end{center}
\end{table}
-\subsection[Odd-Even-Mischer]{Versuche mit dem Odd-Even-Mischer}
+Alle Sortiernetzwerke, die von \textsc{SN-Evolution} in dieser Konfiguration
+gefunden wurden, waren \emph{effizienter} als das \emph{bitone
+Mergesort}-Netzwerk \bs{n}, das ebenfalls auf dem \emph{bitonen
+Merge}-Netzwerk \bm{n} beruht. Zum Beispiel benötigt das in
+Abbildung~\ref{fig:16-e1-bitonic-1296542566} dargestellte 16-Sortiernetzwerk
+67~Komparatoren, 13~Komparatoren weniger als \bs{n}.
\begin{figure}
\begin{center}
- \input{images/16-e1-oddeven-1296543330.tex}
+ \input{images/16-e1-bitonic-1296542566.tex}
\end{center}
- \caption{Sortiernetzwerk mit 16~Leitungen und 63~Komparatoren in
+ \caption{Sortiernetzwerk mit 16~Leitungen und 67~Komparatoren in
10~Schichten. Das Netzwerk wurde von dem Algorithmus
- \textsc{SN-Evolution} unter Verwendung des \emph{Odd-Even}-Mischers
+ \textsc{SN-Evolution} unter Verwendung des \emph{bitonen Mischers}
erzeugt.}
- \label{fig:16-e1-oddeven-1296543330}
+ \label{fig:16-e1-bitonic-1296542566}
+\end{figure}
+
+Wenn die Gütefunktion so gewählt ist, dass sie schnelle Sortiernetzwerke
+bevorzugt, werden in einigen Fällen Netzwerke zurückgegeben, die
+\emph{schneller} und \emph{effizienter} als \bs{n} sind. Das
+19-Sortiernetzwerk in Abbildung~\ref{fig:19-e1-bm-fast} besitzt beispielsweise
+nur 13~Schichten und benötigt damit einen parallelen Schritt weniger als
+\bs{19}.
+
+\begin{figure}
+ \begin{center}
+ \input{images/19-e1-bm-fast.tex}
+ \end{center}
+ \caption{Sortiernetzwerk mit 19~Leitungen und 93~Komparatoren in
+ 13~Schichten. Das Netzwerk wurde von dem Algorithmus \textsc{SN-Evolution}
+ unter Verwendung des \emph{bitonen Mischers} erzeugt.}
+ \label{fig:19-e1-bm-fast}
\end{figure}
+\subsection[Odd-Even-Mischer]{Versuche mit dem Odd-Even-Mischer}
+
+Die folgenden Ergebnisse wurden erzielt, indem \textsc{SN-Evolution} mit dem
+\emph{Odd-Even-Transpositionsort}-Netzwerk als Eingabe gestartet wurde und in
+der Rekombinationsphase das \emph{Odd-Even-Merge}-Netzwerk verwendete. So
+erzeugt der Algorithmus entweder Sortiernetzwerke, die genauso schnell und
+effizient wie das \oes{n}-Netzwerk, oder Sortiernetzwerke, die schneller aber
+weniger effizient als das \oes{n}-Netzwerk sind. Die Ergebnisse von
+\textsc{SN-Evolution} mit dem \emph{Odd-Even}-Mischer sind in
+Tabelle~\ref{tbl:sn-ev-oem-fast} zusammengefasst.
+
+\begin{table}\label{tbl:sn-ev-oem-fast}
+\begin{center}
+\rowcolors{4}{black!5}{}
+\begin{tabular}{|r|r|r|r|r|}
+\hline
+Leitungen & \multicolumn{2}{l|}{\textsc{SN-EV} mit \oem{n}} & \multicolumn{2}{|l|}{\oes{n}} \\
+\cline{2-5}
+ & Komp. & Schichten & Komp. & Schichten \\
+\hline
+ 8 & 19 & 6 & 19 & 6 \\
+ 9 & 26 & 8 & 26 & 8 \\
+ 10 & 31 & 9 & 31 & 9 \\
+ 11 & 38 & \Gcell 9 & \Gcell 37 & 10 \\
+ 12 & 43 & \gcell 9 & \gcell 41 & 10 \\
+ 13 & 48 & 10 & 48 & 10 \\
+ 14 & 53 & 10 & 53 & 10 \\
+ 15 & 59 & 10 & 59 & 10 \\
+ 16 & 63 & 10 & 63 & 10 \\
+ 17 & 74 & 12 & 74 & 12 \\
+ 18 & 82 & 13 & 82 & 13 \\
+ 19 & 93 & \Gcell 13 & \Gcell 91 & 14 \\
+ 20 & 97 & 14 & 97 & 14 \\
+ 21 & 108 & \Gcell 14 & \Gcell 107 & 15 \\
+ 22 & 117 & \gcell 14 & \gcell 114 & 15 \\
+ 23 & 129 & \Gcell 14 & \Gcell 122 & 15 \\
+ 24 & 128 & 15 & \gcell 127 & 15 \\
+\hline
+\end{tabular}
+\caption{Übersicht über die Ergebnisse des \textsc{SN-Evolution}-Algorithmus
+ unter Verwendung des \emph{Odd-Even-Merge}-Netzwerks \oem{n}. 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{Schichten}} = n$.}
+\end{center}
+\end{table}
+
Im vorherigen Abschnitt wurde gezeigt, dass der
\textsc{SN-Evolution}-Algorithmus unter Verwendung des \emph{bitonen Mischers}
Sortiernetzwerke erzeugen kann, die effizienter als das rekursiv aus dem
\emph{Odd-Even-Merge}-Netzwerks findet, erreichen das
\emph{Odd-Even-Mergesort}-Netzwerk bezüglich Effizienz, übertreffen es aber
nicht. Ein Beispiel für ein entsprechendes Sortiernetzwerk ist in
-Abbildung~\ref{fig:16-e1-oddeven-1296543330} zu sehen.
+Abbildung~\ref{fig:16-e1-oddeven-1296543330} dargestellt.
+
+\begin{figure}
+ \begin{center}
+ \input{images/16-e1-oddeven-1296543330.tex}
+ \end{center}
+ \caption{Sortiernetzwerk mit 16~Leitungen und 63~Komparatoren in
+ 10~Schichten. Das Netzwerk wurde von dem Algorithmus
+ \textsc{SN-Evolution} unter Verwendung des \emph{Odd-Even}-Mischers
+ erzeugt.}
+ \label{fig:16-e1-oddeven-1296543330}
+\end{figure}
Mit einer Gütefunktion, die schnelle Sortiernetzwerke bevorzugt, ist es auch
mit dem \emph{Odd-Even}-Mischer möglich, dass \textsc{SN-Evolution}
Sortiernetzwerke zurück gibt, die schneller als \oes{n} sind. Dies geschieht
beispielsweise bei $n = 11$ und $n = 12$: für diese Leitungszahlen gibt
-\textsc{SN-Evolution} Sortiernetzwerke aus, die nur 9~Schicten benötigen.
-\oes{11} und \oes{12} benötigen jeweils 10~Schichten. Eine Auflistung der
-Ergebnisse von \textsc{SN-Evolution} mit dem \emph{Odd-Even}-Mischer befindet
-sich in Tabelle~\ref{tbl:sn-ev-oem-fast}.
+\textsc{SN-Evolution} Sortiernetzwerke aus, die nur 9~Schichten benötigen.
+\oes{11} und \oes{12} benötigen jeweils 10~Schichten.
+
%\begin{figure}
%\begin{center}
%\label{fig:10-e2-1239014566}
%\end{figure}
-\begin{table}\label{tbl:sn-ev-oem-fast}
-\begin{center}
-\rowcolors{4}{black!5}{}
-\begin{tabular}{|r|r|r|r|r|}
-\hline
-Leitungen & \multicolumn{2}{l|}{\textsc{SN-EV} mit \oem{n}} & \multicolumn{2}{|l|}{\oes{n}} \\
-\cline{2-5}
- & Komp. & Schichten & Komp. & Schichten \\
-\hline
- 8 & 19 & 6 & 19 & 6 \\
- 9 & 26 & 8 & 26 & 8 \\
- 10 & 31 & 9 & 31 & 9 \\
- 11 & 38 & \Gcell 9 & \Gcell 37 & 10 \\
- 12 & 43 & \gcell 9 & \gcell 41 & 10 \\
- 13 & 48 & 10 & 48 & 10 \\
- 14 & 53 & 10 & 53 & 10 \\
- 15 & 59 & 10 & 59 & 10 \\
- 16 & 63 & 10 & 63 & 10 \\
- 17 & 74 & 12 & 74 & 12 \\
- 18 & 82 & 13 & 82 & 13 \\
- 19 & 93 & \Gcell 13 & \Gcell 91 & 14 \\
- 20 & 97 & 14 & 97 & 14 \\
- 21 & 108 & \Gcell 14 & \Gcell 107 & 15 \\
- 22 & 117 & \gcell 14 & \gcell 114 & 15 \\
- 23 & 129 & \Gcell 14 & \Gcell 122 & 15 \\
- 24 & 128 & 15 & \gcell 127 & 15 \\
-\hline
-\end{tabular}
-\caption{Übersicht über die Ergebnisse des \textsc{SN-Evolution}-Algorithmus
- unter Verwendung des \emph{Odd-Even-Merge}-Netzwerks \oem{n}. 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{Schichten}} = n$.}
-\end{center}
-\end{table}
-
\subsection{Zufälliger Mischer}
Die Ergebnisse der beiden vorhergehenden Abschnitte zeigen, dass für einige
20 & 104 & \gcell 13 & \gcell 97 & 14 & 101 & \gcell 13 \\
21 & 109 & 14 & 108 & 14 & \Gcell 107 & 14 \\
22 & 118 & 14 & 117 & 14 & \gcell 116 & 14 \\
- 23 & 134 & 14 & 129 & 14 & \Gcell 128 & 14 \\
+ 23 & 129 & 14 & 129 & 14 & \Gcell 128 & 14 \\
24 & 133 & 15 & \gcell 128 & 15 & 130 & 15 \\
\hline
\end{tabular}
--- /dev/null
+\begin{tikzpicture}[auto]
+\node[vertex] (v0) at (0.66,0.00) {};
+\node[vertex] (v1) at (0.66,0.53) {};
+\path[comp] (v0) -- (v1);
+
+\node[vertex] (v2) at (0.66,1.59) {};
+\node[vertex] (v3) at (0.66,2.64) {};
+\path[comp] (v2) -- (v3);
+
+\node[vertex] (v4) at (0.86,2.11) {};
+\node[vertex] (v5) at (0.86,3.17) {};
+\path[comp] (v4) -- (v5);
+
+\node[vertex] (v6) at (0.66,3.70) {};
+\node[vertex] (v7) at (0.66,4.76) {};
+\path[comp] (v6) -- (v7);
+
+\node[vertex] (v8) at (0.86,4.23) {};
+\node[vertex] (v9) at (0.86,5.81) {};
+\path[comp] (v8) -- (v9);
+
+\node[vertex] (v10) at (0.66,5.29) {};
+\node[vertex] (v11) at (0.66,7.93) {};
+\path[comp] (v10) -- (v11);
+
+\node[vertex] (v12) at (0.86,6.34) {};
+\node[vertex] (v13) at (0.86,8.99) {};
+\path[comp] (v12) -- (v13);
+
+\node[vertex] (v14) at (1.06,6.87) {};
+\node[vertex] (v15) at (1.06,7.40) {};
+\path[comp] (v14) -- (v15);
+
+\node[vertex] (v16) at (0.66,8.46) {};
+\node[vertex] (v17) at (0.66,9.52) {};
+\path[comp] (v16) -- (v17);
+
+\node[vertex] (v18) at (1.72,0.53) {};
+\node[vertex] (v19) at (1.72,1.06) {};
+\path[comp] (v18) -- (v19);
+
+\node[vertex] (v20) at (1.72,1.59) {};
+\node[vertex] (v21) at (1.72,2.11) {};
+\path[comp] (v20) -- (v21);
+
+\node[vertex] (v22) at (1.72,2.64) {};
+\node[vertex] (v23) at (1.72,3.17) {};
+\path[comp] (v22) -- (v23);
+
+\node[vertex] (v24) at (1.72,3.70) {};
+\node[vertex] (v25) at (1.72,8.46) {};
+\path[comp] (v24) -- (v25);
+
+\node[vertex] (v26) at (1.92,4.23) {};
+\node[vertex] (v27) at (1.92,6.34) {};
+\path[comp] (v26) -- (v27);
+
+\node[vertex] (v28) at (2.11,4.76) {};
+\node[vertex] (v29) at (2.11,9.52) {};
+\path[comp] (v28) -- (v29);
+
+\node[vertex] (v30) at (2.31,5.81) {};
+\node[vertex] (v31) at (2.31,8.99) {};
+\path[comp] (v30) -- (v31);
+
+\node[vertex] (v32) at (2.97,0.00) {};
+\node[vertex] (v33) at (2.97,0.53) {};
+\path[comp] (v32) -- (v33);
+
+\node[vertex] (v34) at (2.97,1.06) {};
+\node[vertex] (v35) at (2.97,7.40) {};
+\path[comp] (v34) -- (v35);
+
+\node[vertex] (v36) at (3.17,2.11) {};
+\node[vertex] (v37) at (3.17,2.64) {};
+\path[comp] (v36) -- (v37);
+
+\node[vertex] (v38) at (3.17,4.23) {};
+\node[vertex] (v39) at (3.17,5.29) {};
+\path[comp] (v38) -- (v39);
+
+\node[vertex] (v40) at (3.37,4.76) {};
+\node[vertex] (v41) at (3.37,8.46) {};
+\path[comp] (v40) -- (v41);
+
+\node[vertex] (v42) at (3.17,5.81) {};
+\node[vertex] (v43) at (3.17,6.34) {};
+\path[comp] (v42) -- (v43);
+
+\node[vertex] (v44) at (2.97,7.93) {};
+\node[vertex] (v45) at (2.97,8.99) {};
+\path[comp] (v44) -- (v45);
+
+\node[vertex] (v46) at (4.03,0.00) {};
+\node[vertex] (v47) at (4.03,1.06) {};
+\path[comp] (v46) -- (v47);
+
+\node[vertex] (v48) at (4.23,0.53) {};
+\node[vertex] (v49) at (4.23,6.87) {};
+\path[comp] (v48) -- (v49);
+
+\node[vertex] (v50) at (4.03,2.11) {};
+\node[vertex] (v51) at (4.03,7.40) {};
+\path[comp] (v50) -- (v51);
+
+\node[vertex] (v52) at (4.43,3.70) {};
+\node[vertex] (v53) at (4.43,4.23) {};
+\path[comp] (v52) -- (v53);
+
+\node[vertex] (v54) at (4.43,5.29) {};
+\node[vertex] (v55) at (4.43,6.34) {};
+\path[comp] (v54) -- (v55);
+
+\node[vertex] (v56) at (4.63,5.81) {};
+\node[vertex] (v57) at (4.63,7.93) {};
+\path[comp] (v56) -- (v57);
+
+\node[vertex] (v58) at (4.03,8.99) {};
+\node[vertex] (v59) at (4.03,9.52) {};
+\path[comp] (v58) -- (v59);
+
+\node[vertex] (v60) at (5.29,0.00) {};
+\node[vertex] (v61) at (5.29,0.53) {};
+\path[comp] (v60) -- (v61);
+
+\node[vertex] (v62) at (5.29,1.06) {};
+\node[vertex] (v63) at (5.29,6.87) {};
+\path[comp] (v62) -- (v63);
+
+\node[vertex] (v64) at (5.48,5.29) {};
+\node[vertex] (v65) at (5.48,5.81) {};
+\path[comp] (v64) -- (v65);
+
+\node[vertex] (v66) at (5.48,6.34) {};
+\node[vertex] (v67) at (5.48,7.93) {};
+\path[comp] (v66) -- (v67);
+
+\node[vertex] (v68) at (6.15,0.00) {};
+\node[vertex] (v69) at (6.15,2.11) {};
+\path[comp] (v68) -- (v69);
+
+\node[vertex] (v70) at (6.34,0.53) {};
+\node[vertex] (v71) at (6.34,1.59) {};
+\path[comp] (v70) -- (v71);
+
+\node[vertex] (v72) at (6.54,1.06) {};
+\node[vertex] (v73) at (6.54,3.17) {};
+\path[comp] (v72) -- (v73);
+
+\node[vertex] (v74) at (6.15,2.64) {};
+\node[vertex] (v75) at (6.15,6.87) {};
+\path[comp] (v74) -- (v75);
+
+\node[vertex] (v76) at (6.34,4.23) {};
+\node[vertex] (v77) at (6.34,7.93) {};
+\path[comp] (v76) -- (v77);
+
+\node[vertex] (v78) at (6.54,4.76) {};
+\node[vertex] (v79) at (6.54,6.34) {};
+\path[comp] (v78) -- (v79);
+
+\node[vertex] (v80) at (6.74,5.29) {};
+\node[vertex] (v81) at (6.74,8.99) {};
+\path[comp] (v80) -- (v81);
+
+\node[vertex] (v82) at (6.94,5.81) {};
+\node[vertex] (v83) at (6.94,8.46) {};
+\path[comp] (v82) -- (v83);
+
+\node[vertex] (v84) at (7.60,0.00) {};
+\node[vertex] (v85) at (7.60,0.53) {};
+\path[comp] (v84) -- (v85);
+
+\node[vertex] (v86) at (7.60,1.06) {};
+\node[vertex] (v87) at (7.60,2.11) {};
+\path[comp] (v86) -- (v87);
+
+\node[vertex] (v88) at (7.80,1.59) {};
+\node[vertex] (v89) at (7.80,2.64) {};
+\path[comp] (v88) -- (v89);
+
+\node[vertex] (v90) at (7.60,3.17) {};
+\node[vertex] (v91) at (7.60,7.40) {};
+\path[comp] (v90) -- (v91);
+
+\node[vertex] (v92) at (7.80,4.23) {};
+\node[vertex] (v93) at (7.80,5.81) {};
+\path[comp] (v92) -- (v93);
+
+\node[vertex] (v94) at (8.00,4.76) {};
+\node[vertex] (v95) at (8.00,5.29) {};
+\path[comp] (v94) -- (v95);
+
+\node[vertex] (v96) at (7.80,6.34) {};
+\node[vertex] (v97) at (7.80,8.99) {};
+\path[comp] (v96) -- (v97);
+
+\node[vertex] (v98) at (7.60,7.93) {};
+\node[vertex] (v99) at (7.60,8.46) {};
+\path[comp] (v98) -- (v99);
+
+\node[vertex] (v100) at (8.66,1.06) {};
+\node[vertex] (v101) at (8.66,1.59) {};
+\path[comp] (v100) -- (v101);
+
+\node[vertex] (v102) at (8.66,2.11) {};
+\node[vertex] (v103) at (8.66,2.64) {};
+\path[comp] (v102) -- (v103);
+
+\node[vertex] (v104) at (8.66,3.17) {};
+\node[vertex] (v105) at (8.66,6.87) {};
+\path[comp] (v104) -- (v105);
+
+\node[vertex] (v106) at (8.85,4.23) {};
+\node[vertex] (v107) at (8.85,4.76) {};
+\path[comp] (v106) -- (v107);
+
+\node[vertex] (v108) at (8.85,5.29) {};
+\node[vertex] (v109) at (8.85,5.81) {};
+\path[comp] (v108) -- (v109);
+
+\node[vertex] (v110) at (8.85,6.34) {};
+\node[vertex] (v111) at (8.85,7.93) {};
+\path[comp] (v110) -- (v111);
+
+\node[vertex] (v112) at (8.66,8.46) {};
+\node[vertex] (v113) at (8.66,8.99) {};
+\path[comp] (v112) -- (v113);
+
+\node[vertex] (v114) at (9.52,0.00) {};
+\node[vertex] (v115) at (9.52,7.93) {};
+\path[comp] (v114) -- (v115);
+
+\node[vertex] (v116) at (9.71,0.53) {};
+\node[vertex] (v117) at (9.71,6.34) {};
+\path[comp] (v116) -- (v117);
+
+\node[vertex] (v118) at (9.91,1.06) {};
+\node[vertex] (v119) at (9.91,5.81) {};
+\path[comp] (v118) -- (v119);
+
+\node[vertex] (v120) at (10.11,1.59) {};
+\node[vertex] (v121) at (10.11,5.29) {};
+\path[comp] (v120) -- (v121);
+
+\node[vertex] (v122) at (10.31,2.11) {};
+\node[vertex] (v123) at (10.31,4.76) {};
+\path[comp] (v122) -- (v123);
+
+\node[vertex] (v124) at (10.51,2.64) {};
+\node[vertex] (v125) at (10.51,4.23) {};
+\path[comp] (v124) -- (v125);
+
+\node[vertex] (v126) at (10.70,3.17) {};
+\node[vertex] (v127) at (10.70,3.70) {};
+\path[comp] (v126) -- (v127);
+
+\node[vertex] (v128) at (9.71,6.87) {};
+\node[vertex] (v129) at (9.71,8.46) {};
+\path[comp] (v128) -- (v129);
+
+\node[vertex] (v130) at (11.37,0.00) {};
+\node[vertex] (v131) at (11.37,2.11) {};
+\path[comp] (v130) -- (v131);
+
+\node[vertex] (v132) at (11.56,0.53) {};
+\node[vertex] (v133) at (11.56,2.64) {};
+\path[comp] (v132) -- (v133);
+
+\node[vertex] (v134) at (11.76,1.06) {};
+\node[vertex] (v135) at (11.76,3.17) {};
+\path[comp] (v134) -- (v135);
+
+\node[vertex] (v136) at (11.37,3.70) {};
+\node[vertex] (v137) at (11.37,8.99) {};
+\path[comp] (v136) -- (v137);
+
+\node[vertex] (v138) at (11.56,4.23) {};
+\node[vertex] (v139) at (11.56,9.52) {};
+\path[comp] (v138) -- (v139);
+
+\node[vertex] (v140) at (11.76,5.29) {};
+\node[vertex] (v141) at (11.76,6.87) {};
+\path[comp] (v140) -- (v141);
+
+\node[vertex] (v142) at (11.76,7.40) {};
+\node[vertex] (v143) at (11.76,7.93) {};
+\path[comp] (v142) -- (v143);
+
+\node[vertex] (v144) at (12.42,0.00) {};
+\node[vertex] (v145) at (12.42,1.06) {};
+\path[comp] (v144) -- (v145);
+
+\node[vertex] (v146) at (12.42,1.59) {};
+\node[vertex] (v147) at (12.42,2.64) {};
+\path[comp] (v146) -- (v147);
+
+\node[vertex] (v148) at (12.62,2.11) {};
+\node[vertex] (v149) at (12.62,3.17) {};
+\path[comp] (v148) -- (v149);
+
+\node[vertex] (v150) at (12.42,3.70) {};
+\node[vertex] (v151) at (12.42,5.81) {};
+\path[comp] (v150) -- (v151);
+
+\node[vertex] (v152) at (12.62,4.23) {};
+\node[vertex] (v153) at (12.62,6.34) {};
+\path[comp] (v152) -- (v153);
+
+\node[vertex] (v154) at (12.82,4.76) {};
+\node[vertex] (v155) at (12.82,7.40) {};
+\path[comp] (v154) -- (v155);
+
+\node[vertex] (v156) at (12.42,7.93) {};
+\node[vertex] (v157) at (12.42,8.99) {};
+\path[comp] (v156) -- (v157);
+
+\node[vertex] (v158) at (12.62,8.46) {};
+\node[vertex] (v159) at (12.62,9.52) {};
+\path[comp] (v158) -- (v159);
+
+\node[vertex] (v160) at (13.48,0.53) {};
+\node[vertex] (v161) at (13.48,1.06) {};
+\path[comp] (v160) -- (v161);
+
+\node[vertex] (v162) at (13.48,1.59) {};
+\node[vertex] (v163) at (13.48,2.11) {};
+\path[comp] (v162) -- (v163);
+
+\node[vertex] (v164) at (13.48,2.64) {};
+\node[vertex] (v165) at (13.48,3.17) {};
+\path[comp] (v164) -- (v165);
+
+\node[vertex] (v166) at (13.48,3.70) {};
+\node[vertex] (v167) at (13.48,4.76) {};
+\path[comp] (v166) -- (v167);
+
+\node[vertex] (v168) at (13.68,4.23) {};
+\node[vertex] (v169) at (13.68,5.29) {};
+\path[comp] (v168) -- (v169);
+
+\node[vertex] (v170) at (13.48,5.81) {};
+\node[vertex] (v171) at (13.48,7.40) {};
+\path[comp] (v170) -- (v171);
+
+\node[vertex] (v172) at (13.68,6.34) {};
+\node[vertex] (v173) at (13.68,6.87) {};
+\path[comp] (v172) -- (v173);
+
+\node[vertex] (v174) at (13.48,7.93) {};
+\node[vertex] (v175) at (13.48,8.46) {};
+\path[comp] (v174) -- (v175);
+
+\node[vertex] (v176) at (13.48,8.99) {};
+\node[vertex] (v177) at (13.48,9.52) {};
+\path[comp] (v176) -- (v177);
+
+\node[vertex] (v178) at (14.34,3.70) {};
+\node[vertex] (v179) at (14.34,4.23) {};
+\path[comp] (v178) -- (v179);
+
+\node[vertex] (v180) at (14.34,4.76) {};
+\node[vertex] (v181) at (14.34,5.29) {};
+\path[comp] (v180) -- (v181);
+
+\node[vertex] (v182) at (14.34,5.81) {};
+\node[vertex] (v183) at (14.34,6.34) {};
+\path[comp] (v182) -- (v183);
+
+\node[vertex] (v184) at (14.34,6.87) {};
+\node[vertex] (v185) at (14.34,7.40) {};
+\path[comp] (v184) -- (v185);
+
+\path[edge] (0,0.00) -- (15.00,0.00);
+\path[edge] (0,0.53) -- (15.00,0.53);
+\path[edge] (0,1.06) -- (15.00,1.06);
+\path[edge] (0,1.59) -- (15.00,1.59);
+\path[edge] (0,2.11) -- (15.00,2.11);
+\path[edge] (0,2.64) -- (15.00,2.64);
+\path[edge] (0,3.17) -- (15.00,3.17);
+\path[edge] (0,3.70) -- (15.00,3.70);
+\path[edge] (0,4.23) -- (15.00,4.23);
+\path[edge] (0,4.76) -- (15.00,4.76);
+\path[edge] (0,5.29) -- (15.00,5.29);
+\path[edge] (0,5.81) -- (15.00,5.81);
+\path[edge] (0,6.34) -- (15.00,6.34);
+\path[edge] (0,6.87) -- (15.00,6.87);
+\path[edge] (0,7.40) -- (15.00,7.40);
+\path[edge] (0,7.93) -- (15.00,7.93);
+\path[edge] (0,8.46) -- (15.00,8.46);
+\path[edge] (0,8.99) -- (15.00,8.99);
+\path[edge] (0,9.52) -- (15.00,9.52);
+\end{tikzpicture}