diff --git a/ea/project/blatt11.pdf b/ea/project/blatt11.pdf new file mode 100644 index 0000000..b132512 --- /dev/null +++ b/ea/project/blatt11.pdf Binary files differ diff --git a/ea/ubA/a28.py b/ea/ubA/a28.py new file mode 100644 index 0000000..3e1edba --- /dev/null +++ b/ea/ubA/a28.py @@ -0,0 +1,44 @@ +import numpy as np +import matplotlib.pyplot as plt + +def ES(n,sigma,eval,term=lambda P,t:t>=100000,kappa=0.82,zw=0.2,fit=lambda P:P[0],lb=-10,ub=10): + t=0 + P=np.random.uniform(lb, ub, n) + succ=0 + stats=[] + while not term(P,t): + Pm=P+np.random.normal(0,sigma,n) + + if eval(P,Pm,t): + P=Pm + succ=succ+1 + t=t+1 + if (t % 100) == 0: + we=succ/100 + stats.append([t,sigma,we,fit(P)]) + if we < zw: + sigma=sigma*kappa + if we > zw: + sigma=sigma/kappa + succ=0 + return stats + +def minimizeAbs(P,Pm,t): + return np.sum(np.abs(P))>np.sum(np.abs(Pm)) + +def corridor(P,Pm,t,b=np.array([10,13,1,6,18,20,4,10,13,2])): + if (P[1]-Pm[1]) <= b[t//10000]: + return Pm[0]>P[0] + else: + return 0 + +stats=np.zeros((6,4,1000)) +j=0 +for zw in np.array([0.15,0.2,0.25,0.3,0.5,0.6]): + for i in np.arange(0,100): + stats[j]=stats[j]+np.transpose(ES(2,1,corridor,zw=zw,lb=0,ub=0)) + stats[j]=stats[j]/100 + print(j) + j=j+1 + +np.save("/home/jph/abgabensammlungSS15/ea/ubA/figures/stats.npy",stats) diff --git a/ea/ubA/blatt10.pdf b/ea/ubA/blatt10.pdf new file mode 100644 index 0000000..13ccf61 --- /dev/null +++ b/ea/ubA/blatt10.pdf Binary files differ diff --git a/ea/ubA/eaA.pdf b/ea/ubA/eaA.pdf new file mode 100644 index 0000000..5c8f0fa --- /dev/null +++ b/ea/ubA/eaA.pdf Binary files differ diff --git a/ea/ubA/eaA.tex b/ea/ubA/eaA.tex index 316f582..fb43b20 100644 --- a/ea/ubA/eaA.tex +++ b/ea/ubA/eaA.tex @@ -82,7 +82,28 @@ \textit{Jan-Peter Hohloch}\\ \textit{Maximus Mutschler} }{SS 15}{3}%TODO update \vspace{0.5cm} - \Aufgabe{1/5-Erfolgsregel (Theorie)}{5}\\ + \Aufgabe{1/5-Erfolgsregel (Theorie)}{5} + \begin{enumerate}[(a)] + \item Liegt die Sphäre (abhängig von $\sigma$) vollständig im Korridor, so ist die Erfolgswahrscheinlichkeit $0.5$. Für größere $\sigma$ wird die Erfolgswahrscheinlichkeit geringer, jedoch der mögliche Fortschritt größer.\\ + Die geringere Erfolgswahrscheinlichkeit ist bedingt durch den kleineren Anteil des Korridors an der Sphären-Außenfläche. + \item Ist eine Erfolgswahrscheinlichkeit von $\frac{1}{5}$ optimal, so muss bei größerer Erfolgswahrscheinlichkeit $\sigma$ vergrößert werden (s.o.); bei zu kleiner Erfolgswahrscheinlichkeit umgekehrt. Dies ermöglicht größeren Fortschritt und damit schneller bessere Fitness ($\varphi$). + \item $w_e=0.2$, $b=1.5cm$\\ + $2\pi\cdot r\cdot w_e= c$ Bogenlänge\\ + $c=2r\cdot\sin^{-1}\left(\frac{s}{2r}\right)$\\ + $\Rightarrow \pi\cdot w_e=\sin^{-1}\frac{s}{2r}\\ + \Leftrightarrow \sin\left(\pi\cdot w_e\right)=\frac{s}{2r}\\ + \Leftrightarrow r=\frac{s}{2\sin\left(w_e\pi\right)}\\ + \Rightarrow r=\frac{3cm}{2\sin\left(0.2\pi\right)}\approx 2.552cm=\sigma_{opt}$ + \end{enumerate} + \Aufgabe{1/5-Erfolgsregel (Praxis)}{11}\\ + %TODO plots + \Aufgabe{Rekombinations in ES}{4} + \begin{enumerate}[(a)] + \item $a_1'=(0.23,-0.92,-0.23,-0.85,0.21)$ + \item $a_2'=((0.25,1.18,0.36,0.53,0.14)+(1.18,-0.88,-0.23,-0.85,0.14))/2\\=(0.715,0.15,0.065,-0.16,0.14)$ + \item $a_3'=((0.25,-0.65,-0.31,-1.58,0.25)+(0.23,0.72,0.64,-0.85,0.25))/2\\=(0.24 , 0.035, 0.165, -1.215, 0.25)$ + \item $a_4'=(0.25,1.18,0.67,0.47,0.195)$ + \end{enumerate} \end{document} diff --git a/ea/ubA/figures/stats.npy b/ea/ubA/figures/stats.npy new file mode 100644 index 0000000..a6411d6 --- /dev/null +++ b/ea/ubA/figures/stats.npy Binary files differ