SN-Evolution: Abschnitte für BM(n) und OEM(n) etwas überarbeitet.
authorFlorian Forster <octo@leeloo.octo.it>
Sun, 27 Feb 2011 11:22:47 +0000 (12:22 +0100)
committerFlorian Forster <octo@leeloo.octo.it>
Sun, 27 Feb 2011 11:22:47 +0000 (12:22 +0100)
diplomarbeit.tex
images/19-e1-bm-fast.tex [new file with mode: 0644]

index d5c84bc..eb02552 100644 (file)
@@ -1418,37 +1418,12 @@ wurde beim \textsc{SN-Evolution}-Algorithmus auf eine Mutation verzichtet.
 
 \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}
@@ -1459,23 +1434,23 @@ Leitungen & \multicolumn{2}{l|}{\textsc{SN-EV} mit \bm{n}} & \multicolumn{2}{|l|
 \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
@@ -1487,19 +1462,89 @@ Leitungen & \multicolumn{2}{l|}{\textsc{SN-EV} mit \bm{n}} & \multicolumn{2}{|l|
 \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
@@ -1509,16 +1554,26 @@ erzielen. Die Sortiernetzwerke, die \textsc{SN-Evolution} unter Verwendung des
 \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}
@@ -1552,43 +1607,6 @@ sich in Tabelle~\ref{tbl:sn-ev-oem-fast}.
 %\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
@@ -1636,7 +1654,7 @@ Leitungen & \multicolumn{2}{l|}{\textsc{SN-EV} mit \bm{n}}
        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}
diff --git a/images/19-e1-bm-fast.tex b/images/19-e1-bm-fast.tex
new file mode 100644 (file)
index 0000000..f776d61
--- /dev/null
@@ -0,0 +1,393 @@
+\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}