6. Vorlesung Evolutionsstrategie I
Evolutionsstrategie kontra Gradientenstrategie
Motto des Evolutionsstrategen Der Dumme, der einfach losgeht, kommt weiter als der Schlaue, der sitzen bleibt und sich vor lauter Nachdenken nicht entscheiden kann. Motto des Evolutionsstrategen
w 2s + zi Normalverteilte Zufallszahlen zi für die Mutation der Variablen xi
Die Trefferwahrscheinlichkeitsdichte P P P P P Ursprung der z-Koordinaten P P P P Die Trefferwahrscheinlichkeitsdichte
Zum radialen Strecken- Erwartungswert P P P P Zum radialen Strecken- Erwartungswert 3
für n >> 1 Zur Schwankung des Zufallsvektors d Für n Dimensionen … für n >> 1 Zur Schwankung des Zufallsvektors d
Korridor Kugel Ergebnisse der nichtlinearen Theorie
Korridor Kugel Ergebnisse der nichtlinearen Theorie
Kein zufälliges Stochern, sondern gerichtete Diffusion
{ ? d vergrößern für We > 1 / 5 d verkleinern für We < 1 / 5 Algorithmus der (1 + 1) – ES mit 1/5-Erfolgsregel { d vergrößern für We > 1 / 5 Wie stark müssen wir d vergrößern bzw. verkleinern? ? d verkleinern für We < 1 / 5
Zum Schrittweitenänderungsfaktor der (1 + 1) - ES für g = 1 Klettern mit jmax Für n >> 1 gilt
Die Schrittweiten müssen sich so ändern wie die Radien: Für k = 1 folgt Für optimales Fortschreiten ist also nach n Generationen d um zu verkleinern. Bewährt hat sich a = 1,3 – 1,5 → Einstellregel
{ d d 1,5 für We > 1 / 5 d d / 1,5 für We < 1 / 5 Algorithmus der (1 + 1) – ES mit 1/5-Erfolgsregel { d d 1,5 für We > 1 / 5 Nach jeweils n Generationen d d / 1,5 für We < 1 / 5
Computer-Versuche mit der 1/5-Erfolgsregel
{ d d 1,5 für We > 1 / 5 d d / 1,5 für We < 1 / 5 Algorithmus der (1 + 1) – ES mit 1/5-Erfolgsregel { d d 1,5 für We > 1 / 5 Nach jeweils n Generationen d d / 1,5 für We < 1 / 5
Algorithmus der (1 + 1) – ES mit 1/5-Erfolgsregel { { Minimalform !
Idealisierter richtiger Ablauf einer (1+ 1)-ES-Optimierung Schrittweitenänderung Erfolg Misserfolg Erfolg Erfolgshäufigkeit ist richtig Keine Schrittweitenänderung !
Ein Minimalprogramm in MATLAB zur Minimierung der Testfunktion „Kugelmodell“ v=100; d=1; xe=ones(v,1); qe=sum(xe.^2); for g=1:1000 xn=xe+d*randn(v,1)/sqrt(v); qn=sum(xn.^2); if qn < qe qe=qn; xe=xn; d=d*1.3; else d=d/(1.3^0.25); end semilogy(g,qe,'b.') hold on; drawnow;
Fortschrittsfenster der (1 + 1) - Evolutionsstrategie Evolutionsfenster Fortschrittsfenster der (1 + 1) - Evolutionsstrategie
Quasikonstante für sopt
Fortschrittsfenster der (1 + 1) - Evolutionsstrategie Evolutionsfenster Fortschrittsfenster der (1 + 1) - Evolutionsstrategie
Ende