\begin{figure}
\begin{center}
- \includegraphics[viewport=0 0 360 216,width=15cm]{images/count-cuts-16.pdf}
+ \includegraphics[viewport=0 0 425 262,width=15cm]{images/count-cuts-16.pdf}
\end{center}
\caption{Anzahl der \emph{unterschiedlichen} Sortiernetzwerke, die durch
8-Schnittmuster aus $\operatorname{OES}(16)$, $\operatorname{BS}(16)$ und
\begin{figure}
\begin{center}
- \includegraphics[viewport=0 0 360 216,width=15cm]{images/collisions-10000-1000000-32.pdf}
+ \includegraphics[viewport=0 0 425 262,width=15cm]{images/collisions-10000-1000000-32.pdf}
\end{center}
\caption{Abschnätzung der unterschiedlichen Schnittmuster mit der
\emph{Monte-Carlo-Methode} für $\operatorname{OES}(32)$ und
Die in \textsc{SN-Evolution} implementierte Selektion lässt sich mithilfe von
Pseudocode wie folgt beschreiben:
\begin{verbatim}
-Guetesumme := 0
+Gütesumme := 0
Auswahl := (leer)
-fuer jedes Individuum in Population
+für jedes Individuum in Population
{
- reziproke Guete := 1.0 / Guete(Individuum)
- Wahrscheinlichkeit P := reziproke Guete / (reziproke Guete + Guetesumme)
- Guetesumme := Guetesumme + reziproke Guete
+ reziproke Güte := 1.0 / Guete(Individuum)
+ Wahrscheinlichkeit P := reziproke Güte / (reziproke Güte + Gütesumme)
+ Gütesumme := Gütesumme + reziproke Güte
mit Wahrscheinlichkeit P
{
Auswahl := Individuum
}
}
-gebe Auswahl zurueck
+gib Auswahl zurück
\end{verbatim}
\subsection{Rekombination}
gelangen, rekombiniert der Algorithmus das aktuelle Sortiernetzwerk mit sich
selbst und erhält so einen zufälligen Nachfolger.
-\begin{itemize}
- \item $n \leftarrow \mathrm{Input}$
- \item \texttt{while} \textit{true}
- \begin{itemize}
- \item $n \leftarrow \operatorname{recombine} (n, n)$
- \end{itemize}
-\end{itemize}
+\begin{verbatim}
+ Netzwerk := Eingabe
+
+ für n Iterationen
+ {
+ Nachfolger := kombiniere (Netzwerk, Netzwerk)
+ Netzwerk := Nachfolger
+ }
+
+ gib Netzwerk zurück
+\end{verbatim}
\begin{itemize}
\item Beste erreichte Netzwerke (gleich zu \emph{OE-Mergesort}).
\begin{figure}
\begin{center}
- \includegraphics[viewport=0 0 360 216,width=15cm]{images/markov-comparators-12-pct.pdf}
+ \includegraphics[viewport=0 0 425 262,width=15cm]{images/markov-comparators-12-pct.pdf}
\end{center}
\caption{Anzahl der Komparatoren von Sortiernetzwerken (mit 12~Leitungen),
die von {\sc SN-Markov} durchlaufen wurden. Grün eingezeichnet ist die
\begin{figure}
\begin{center}
- \includegraphics[viewport=0 0 360 216,width=15cm]{images/markov-comparators-14-pct.pdf}
+ \includegraphics[viewport=0 0 425 262,width=15cm]{images/markov-comparators-14-pct.pdf}
\end{center}
\caption{Anzahl der Komparatoren von Sortiernetzwerken (mit 14~Leitungen),
die von {\sc SN-Markov} durchlaufen wurden. Grün eingezeichnet ist die
\begin{figure}
\begin{center}
- \includegraphics[viewport=0 0 360 216,width=15cm]{images/markov-comparators-16-pct.pdf}
+ \includegraphics[viewport=0 0 425 262,width=15cm]{images/markov-comparators-16-pct.pdf}
\end{center}
\caption{Anzahl der Komparatoren von Sortiernetzwerken (mit 16~Leitungen),
die von {\sc SN-Markov} durchlaufen wurden. Grün eingezeichnet ist die
\label{fig:markov-comparators-16}
\end{figure}
+\begin{figure}
+ \begin{center}
+ \includegraphics[viewport=0 0 425 262,width=15cm]{images/markov-comparators-18-pct.pdf}
+ \end{center}
+ \caption{Anzahl der Komparatoren von Sortiernetzwerken (mit 18~Leitungen),
+ die von {\sc SN-Markov} durchlaufen wurden. Grün eingezeichnet ist die
+ \emph{Gamma-Verteilung} $f(x - 81)$ mit $k = 10,724$ und $\theta = 0,766$.}
+ \label{fig:markov-comparators-18}
+\end{figure}
+
\newpage
\section{Empirische Beobachtungen}
# faq, bugs, etc: type "help seeking-assistance"
# immediate help: type "help"
# plot window: hit 'h'
-# set terminal wxt 0
-# set output
+set terminal pdfcairo size 15.00cm, 9.27cm
+set output 'markov-comparators-12-pct.pdf'
unset clip points
set clip one
unset clip two
set angles radians
unset grid
set key title ""
-set key inside right top vertical Right noreverse enhanced autotitles nobox
+set key outside center bottom horizontal Right noreverse enhanced autotitles box linetype -1 linewidth 1.000
set key noinvert samplen 4 spacing 1 width 0 height 0
unset label
unset arrow
set timestamp offset character 0, 0, 0 font "" norotate
set rrange [ * : * ] noreverse nowriteback # (currently [8.98847e+307:-8.98847e+307] )
set trange [ * : * ] noreverse nowriteback # (currently [-5.00000:5.00000] )
-set urange [ * : * ] noreverse nowriteback # (currently [-5.00000:5.00000] )
-set vrange [ * : * ] noreverse nowriteback # (currently [-5.00000:5.00000] )
+set urange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] )
+set vrange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] )
set xlabel "Komparatoren"
set xlabel offset character 0, 0, 0 font "" textcolor lt -1 norotate
set x2label ""
set y2range [ * : * ] noreverse nowriteback # (currently [0.00000:14.0879] )
set zlabel ""
set zlabel offset character 0, 0, 0 font "" textcolor lt -1 norotate
-set zrange [ * : * ] noreverse nowriteback # (currently [8.98847e+307:-8.98847e+307] )
+set zrange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] )
set cblabel ""
set cblabel offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270
set cbrange [ * : * ] noreverse nowriteback # (currently [8.98847e+307:-8.98847e+307] )
gamma_gamma(x) = (floor(x - 0.5))!
gamma_dist(x) = x**(gamma_k - 1) * exp((-1.0) * x / gamma_theta) / (gamma_theta**gamma_k * gamma(gamma_k))
gamma_fit(x) = 100.0 * dgamma(x - gamma_offset, gamma_k, gamma_theta)
+dgamma(x, shape, rate) = (x<0)? 0 : (x==0)? ((shape<1)? 1/0 : (shape==1)? rate : 0) : (rate==0)? 0 : exp(_ln_dgamma(x, shape, rate))
_ln_dgamma(x, a, b) = a*log(b) - lgamma(a) + (a-1)*log(x) - b*x
pgamma(x, shape, rate) = (x<0)? 0 : igamma(shape, x*rate)
-dgamma(x, shape, rate) = (x<0)? 0 : (x==0)? ((shape<1)? 1/0 : (shape==1)? rate : 0) : (rate==0)? 0 : exp(_ln_dgamma(x, shape, rate))
GNUTERM = "wxt"
GPFUN_gamma_gamma = "gamma_gamma(x) = (floor(x - 0.5))!"
gamma_k = 8.26729758801638
GPFUN_gamma_dist = "gamma_dist(x) = x**(gamma_k - 1) * exp((-1.0) * x / gamma_theta) / (gamma_theta**gamma_k * gamma(gamma_k))"
gamma_offset = 40
GPFUN_gamma_fit = "gamma_fit(x) = 100.0 * dgamma(x - gamma_offset, gamma_k, gamma_theta)"
+GPFUN__ln_dgamma = "_ln_dgamma(x, a, b) = a*log(b) - lgamma(a) + (a-1)*log(x) - b*x"
+GPFUN_pgamma = "pgamma(x, shape, rate) = (x<0)? 0 : igamma(shape, x*rate)"
+GPFUN_dgamma = "dgamma(x, shape, rate) = (x<0)? 0 : (x==0)? ((shape<1)? 1/0 : (shape==1)? rate : 0) : (rate==0)? 0 : exp(_ln_dgamma(x, shape, rate))"
FIT_CONVERGED = 1
FIT_NDF = 39
FIT_STDFIT = 0.222936770551606
FIT_WSSR = 1.9383313428952
-GPFUN__ln_dgamma = "_ln_dgamma(x, a, b) = a*log(b) - lgamma(a) + (a-1)*log(x) - b*x"
-GPFUN_pgamma = "pgamma(x, shape, rate) = (x<0)? 0 : igamma(shape, x*rate)"
-GPFUN_dgamma = "dgamma(x, shape, rate) = (x<0)? 0 : (x==0)? ((shape<1)? 1/0 : (shape==1)? rate : 0) : (rate==0)? 0 : exp(_ln_dgamma(x, shape, rate))"
-plot [x=41:81] './images/markov-comparators-12-pct.data' title 'Gemessene Daten', gamma_fit(x) title 'Gamma-Verteilung'
-## fit gamma_fit(x) 'images/markov-comparators-12-pct.data' via gamma_k, gamma_theta
+plot [x=41:81] 'markov-comparators-12-pct.data' title 'Gemessene Daten', gamma_fit(x) title 'Gamma-Verteilung'
# EOF
--- /dev/null
+#!/usr/bin/gnuplot -persist
+#
+#
+# G N U P L O T
+# Version 4.4 patchlevel 0
+# last modified March 2010
+# System: Linux 2.6.32-5-amd64
+#
+# Copyright (C) 1986-1993, 1998, 2004, 2007-2010
+# Thomas Williams, Colin Kelley and many others
+#
+# gnuplot home: http://www.gnuplot.info
+# faq, bugs, etc: type "help seeking-assistance"
+# immediate help: type "help"
+# plot window: hit 'h'
+set terminal pdfcairo size 15.00cm, 9.27cm
+set output 'markov-comparators-18-pct.pdf'
+unset clip points
+set clip one
+unset clip two
+set bar 1.000000 front
+set border 31 front linetype -1 linewidth 1.000
+set xdata
+set ydata
+set zdata
+set x2data
+set y2data
+set timefmt x "%d/%m/%y,%H:%M"
+set timefmt y "%d/%m/%y,%H:%M"
+set timefmt z "%d/%m/%y,%H:%M"
+set timefmt x2 "%d/%m/%y,%H:%M"
+set timefmt y2 "%d/%m/%y,%H:%M"
+set timefmt cb "%d/%m/%y,%H:%M"
+set boxwidth
+set style fill empty border
+set style rectangle back fc lt -3 fillstyle solid 1.00 border lt -1
+set dummy x,y
+set format x "% g"
+set format y "% g"
+set format x2 "% g"
+set format y2 "% g"
+set format z "% g"
+set format cb "% g"
+set angles radians
+unset grid
+set key title ""
+set key outside center bottom horizontal Right noreverse enhanced autotitles box linetype -1 linewidth 1.000
+set key noinvert samplen 4 spacing 1 width 0 height 0
+unset label
+unset arrow
+set style increment default
+unset style line
+unset style arrow
+set style histogram clustered gap 2 title offset character 0, 0, 0
+unset logscale
+set offsets 0, 0, 0, 0
+set pointsize 1
+set encoding default
+unset polar
+unset parametric
+unset decimalsign
+set view 60, 30, 1, 1
+set samples 100, 100
+set isosamples 10, 10
+set surface
+unset contour
+set clabel '%8.3g'
+set mapping cartesian
+set datafile separator whitespace
+unset hidden3d
+set cntrparam order 4
+set cntrparam linear
+set cntrparam levels auto 5
+set cntrparam points 5
+set size ratio 0 1,1
+set origin 0,0
+set style data points
+set style function lines
+set xzeroaxis linetype -2 linewidth 1.000
+set yzeroaxis linetype -2 linewidth 1.000
+set zzeroaxis linetype -2 linewidth 1.000
+set x2zeroaxis linetype -2 linewidth 1.000
+set y2zeroaxis linetype -2 linewidth 1.000
+set ticslevel 0.5
+set mxtics default
+set mytics default
+set mztics default
+set mx2tics default
+set my2tics default
+set mcbtics default
+set xtics border in scale 1,0.5 mirror norotate offset character 0, 0, 0
+set xtics autofreq norangelimit
+set ytics border in scale 1,0.5 mirror norotate offset character 0, 0, 0
+set ytics autofreq norangelimit
+set ztics border in scale 1,0.5 nomirror norotate offset character 0, 0, 0
+set ztics autofreq norangelimit
+set nox2tics
+set noy2tics
+set cbtics border in scale 1,0.5 mirror norotate offset character 0, 0, 0
+set cbtics autofreq norangelimit
+set title ""
+set title offset character 0, 0, 0 font "" norotate
+set timestamp bottom
+set timestamp ""
+set timestamp offset character 0, 0, 0 font "" norotate
+set rrange [ * : * ] noreverse nowriteback # (currently [8.98847e+307:-8.98847e+307] )
+set trange [ * : * ] noreverse nowriteback # (currently [-5.00000:5.00000] )
+set urange [ * : * ] noreverse nowriteback # (currently [-5.00000:5.00000] )
+set vrange [ * : * ] noreverse nowriteback # (currently [-5.00000:5.00000] )
+set xlabel "Komparatoren"
+set xlabel offset character 0, 0, 0 font "" textcolor lt -1 norotate
+set x2label ""
+set x2label offset character 0, 0, 0 font "" textcolor lt -1 norotate
+set xrange [ * : * ] noreverse nowriteback # (currently [82.0000:139.000] )
+set x2range [ * : * ] noreverse nowriteback # (currently [82.0000:139.000] )
+set ylabel "Prozent"
+set ylabel offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270
+set y2label ""
+set y2label offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270
+set yrange [ * : * ] noreverse nowriteback # (currently [0.00000:10.0000] )
+set y2range [ * : * ] noreverse nowriteback # (currently [0.00000:9.74040] )
+set zlabel ""
+set zlabel offset character 0, 0, 0 font "" textcolor lt -1 norotate
+set zrange [ * : * ] noreverse nowriteback # (currently [8.98847e+307:-8.98847e+307] )
+set cblabel ""
+set cblabel offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270
+set cbrange [ * : * ] noreverse nowriteback # (currently [8.98847e+307:-8.98847e+307] )
+set zero 1e-08
+set lmargin -1
+set bmargin -1
+set rmargin -1
+set tmargin -1
+set locale "en_US.UTF-8"
+set pm3d explicit at s
+set pm3d scansautomatic
+set pm3d interpolate 1,1 flush begin noftriangles nohidden3d corners2color mean
+set palette positive nops_allcF maxcolors 0 gamma 1.5 color model RGB
+set palette rgbformulae 7, 5, 15
+set colorbox default
+set colorbox vertical origin screen 0.9, 0.2, 0 size screen 0.05, 0.6, 0 front bdefault
+set loadpath
+set fontpath
+set fit noerrorvariables
+binom(n,k) = (n!) / ((k!) * ((n-k)!))
+binv(n,k,p) = binom(n,k) * (p**k) * ((1-p)**(n-k))
+bin(x) = binv(n,floor(x),p)
+gauss(x) = (a1 / sigma) * exp((-0.5) * ((x - mu) / sigma)**2.0)
+poisson_int(x) = exp((-1.0) * lambda) * (lambda**x) / (x!)
+poisson(x) = poisson_int(floor(x + 0.5))
+erl(x) = gamma * exp(-1.0 * gamma * x) * (gamma * x)**(n_erl - 1) / ((n_erl - 1)!)
+binomial_int(x) = binomial_coeff(n, x) * p**x * (1-p)**(n-x)
+binomial_coeff(n,k) = (n!) / ((k!) * ((n-k)!))
+binomial(x) = binomial_int(floor(x + 0.5))
+binomial_fit(x) = 100.0 * binomial(x-19.0)
+poisson_fit(x) = 100.0 * poisson(x - offset)
+gauss_fit(x) = 100.0 * gauss(x)
+cauchy(x) = (1.0 / pi) * s / (s**2.0 + (x - t)**2)
+cauchy_fit(x) = 100.0 * cauchy(x)
+erlang_fit(x) = 100.0 * erl(x - erl_offset)
+gamma_dist(x) = x**(gamma_k - 1) * exp((-1.0) * x / gamma_theta) / (gamma_theta**gamma_k * gamma(gamma_k))
+gamma_fit(x) = 100.0 * dgamma(x - gamma_offset, gamma_k, gamma_theta)
+dgamma(x, shape, rate) = (x<0)? 0 : (x==0)? ((shape<1)? 1/0 : (shape==1)? rate : 0) : (rate==0)? 0 : exp(_ln_dgamma(x, shape, rate))
+foo_fit(x) = foo_a0 * exp(foo_a1 * (x - 62))
+_ln_dgamma(x, a, b) = a*log(b) - lgamma(a) + (a-1)*log(x) - b*x
+pgamma(x, shape, rate) = (x<0)? 0 : igamma(shape, x*rate)
+GNUTERM = "wxt"
+GPFUN_binom = "binom(n,k) = (n!) / ((k!) * ((n-k)!))"
+GPFUN_binv = "binv(n,k,p) = binom(n,k) * (p**k) * ((1-p)**(n-k))"
+n = 29
+p = 0.172562132555044
+GPFUN_bin = "bin(x) = binv(n,floor(x),p)"
+a1 = 0.398942280401433
+sigma = 1.88445909011715
+mu = 23.800757470569
+GPFUN_gauss = "gauss(x) = (a1 / sigma) * exp((-0.5) * ((x - mu) / sigma)**2.0)"
+lambda = 5.10554056666183
+GPFUN_poisson_int = "poisson_int(x) = exp((-1.0) * lambda) * (lambda**x) / (x!)"
+GPFUN_poisson = "poisson(x) = poisson_int(floor(x + 0.5))"
+gamma = 1.90073273091251
+n_erl = 54
+GPFUN_erl = "erl(x) = gamma * exp(-1.0 * gamma * x) * (gamma * x)**(n_erl - 1) / ((n_erl - 1)!)"
+GPFUN_binomial_int = "binomial_int(x) = binomial_coeff(n, x) * p**x * (1-p)**(n-x)"
+GPFUN_binomial_coeff = "binomial_coeff(n,k) = (n!) / ((k!) * ((n-k)!))"
+GPFUN_binomial = "binomial(x) = binomial_int(floor(x + 0.5))"
+GPFUN_binomial_fit = "binomial_fit(x) = 100.0 * binomial(x-19.0)"
+offset = 19
+GPFUN_poisson_fit = "poisson_fit(x) = 100.0 * poisson(x - offset)"
+GPFUN_gauss_fit = "gauss_fit(x) = 100.0 * gauss(x)"
+s = 1.39871428165847
+t = 23.5320369849105
+GPFUN_cauchy = "cauchy(x) = (1.0 / pi) * s / (s**2.0 + (x - t)**2)"
+GPFUN_cauchy_fit = "cauchy_fit(x) = 100.0 * cauchy(x)"
+erl_offset = 49.8425987940659
+GPFUN_erlang_fit = "erlang_fit(x) = 100.0 * erl(x - erl_offset)"
+gamma_k = 10.7234521744736
+gamma_theta = 0.76572583751246
+GPFUN_gamma_dist = "gamma_dist(x) = x**(gamma_k - 1) * exp((-1.0) * x / gamma_theta) / (gamma_theta**gamma_k * gamma_gamma(gamma_k))"
+gamma_offset = 81
+GPFUN_gamma_fit = "gamma_fit(x) = 100.0 * dgamma(x - gamma_offset, gamma_k, gamma_theta)"
+foo_a0 = 0.000540217815483465
+foo_a1 = 0.838098058527587
+GPFUN_foo_fit = "foo_fit(x) = foo_a0 * exp(foo_a1 * (x - 62))"
+GPFUN__ln_dgamma = "_ln_dgamma(x, a, b) = a*log(b) - lgamma(a) + (a-1)*log(x) - b*x"
+GPFUN_pgamma = "pgamma(x, shape, rate) = (x<0)? 0 : igamma(shape, x*rate)"
+GPFUN_dgamma = "dgamma(x, shape, rate) = (x<0)? 0 : (x==0)? ((shape<1)? 1/0 : (shape==1)? rate : 0) : (rate==0)? 0 : exp(_ln_dgamma(x, shape, rate))"
+y = 0
+FIT_CONVERGED = 1
+a = 240000
+a0 = 2.0
+FIT_NDF = 56
+FIT_STDFIT = 0.0927264844441511
+FIT_WSSR = 0.481499251372798
+lamdba = 14.0
+scale = 5000000
+GPFUN_gamma_gamma = "gamma_gamma(x) = (floor(x - 0.5))!"
+GPFUN_gamma = "gamma(x) = x**(gamma_k - 1) * exp((-1.0) * x / gamma_theta) / (gamma_theta**gamma_k * gamma_gamma(k))"
+plot [x=82:139] 'markov-comparators-18-pct.data' title 'Gemessene Daten', gamma_fit(x) title "Gamma-Verteilung"
+## fit gamma_fit(x) 'markov-comparators-18-pct.data' via gamma_k, gamma_theta
+# EOF