Ingo Rechenberg
PowerPoint-Folien zur 3. Vorlesung „Evolutionsstrategie II“
Anwendungsfelder geschachtelter Evolutionsstrategien -
Programmierung einer geschachtelten ES
Weiterverwendung nur unter Angabe der Quelle gestattet
( ) - ES +,
Auf dem Weg zu einer evolutionsstrategischen Algebra
Beispiel: = 2, = 6, ´ = 4, = 8
= (2, 6)8 + (2, 6)8
+ (2, 6)8 + (2, 6)84 (2, 6)8
2 ,
Beste Population
Zweitbeste Population
Selektion der besten Populationen
,[ ]
, ´ = 2
+
21,1
1,1
Zwei unterschiedliche Strategien
Beispiel für eine algebraische Operation in einer geschachtelten ES
ES-]),/(,/[
Die Geschachtelte Evolutionsstrategie
Höchste Nachahmungsstufe der biologischen Evolution
' = Zahl der Eltern-Populationen
' = Zahl der Nachkommen-Populationen
= Zahl der Eltern-Individuen
= Zahl der Nachkommen-Individuen = Generationen der Isolation
'= Zahl der Populations-Generationen
' = Mischungszahl Populationen
= Mischungszahl Individuen
Biologische Entsprechung der Strategie-Schachtelung
| Familie Gattung { Art [ Varietät ( Individuum ) ] } |
ES]),/(,/[
Strategievariablen Objektvariablen
Sprungvariablen Gleitvariablen
Qualität Q1 Qualität Q 2
Springen Klettern
Vergangenheit Gegenwart
Strategie-Evolution
Gemischt ganzzahlige Optimierung
Zwei-Ziele-Optimierung
Globale Optimierung
Ortho-Evolution
Anwendungsfelder für geschachtelte Evolutionsstrategien
ES]),/(,/[
Strategievariablen Objektvariablen Strategie-Evolution
Anwendungsfelder für geschachtelte Evolutionsstrategien
N
Angsthase
Hitzkopf
Kolumbus
Amundsen
Vier Kletterstrategien im Wettbewerb
ES-)10,(4,[ 2011
Algorithmus der (1, ) – Evolutionstrategie mit MSR
11NE1Ng zxx gg
22NE2N zxx ggg
zxx gg gNEN
eiltnormalvert)1,0(,, /21 nzzz n
ggNBE
1 xx )(),(),()( N2NNNB 1minmax/ gggg QQQQ xxxx
ggNBE
1
1E1N gg
2E2N gg
ggEN
5,1/1
5,1 :6für z.B.
654
321
Es ist problematisch anzunehmen, dass sich schon nach einer Generation die beste Fortschrittsgeschwindigkeit selektieren lässt.
Korrekte mutative Schrittweitenanpassung mit
einer geschachtelten Evolutionsstrategie
= 1,1 … 1,5
Notation auf linker Klammerseite bedeutet : Schrittweite wird von der äußeren Klammer in die innere Klammer übertragen
ES]),(,[
12154
Neue Gründerpopulationen
Die geschachtelte Evolutionsstrategie
ES]),/(,/[
Strategievariablen Objektvariablen
Sprungvariablen Gleitvariablen
Strategie-Evolution
Gemischt ganzzahlige Optimierung
Anwendungsfelder für geschachtelte Evolutionsstrategien
Gewicht Minimum
Gleitvariable !Sprungvariable !
y
x
ES]),/(,/[
Strategievariablen Objektvariablen
Sprungvariablen Gleitvariablen
Qualität Q1 Qualität Q 2
Strategie-Evolution
Gemischt ganzzahlige Optimierung
Zwei-Ziele-Optimierung
Anwendungsfelder für geschachtelte Evolutionsstrategien
Der -Denker-klein
Eine 2-Ziele-Optimierung
Mintan AW
Der W-klein-A-groß-Denker
A
W
AW
)/1log()log()log(tan AW
MinStZa 3
2
AW
)/1log(3)log(2)StZalog( AW
ES]),/(,/[
Strategievariablen Objektvariablen
Sprungvariablen Gleitvariablen
Qualität Q1 Qualität Q 2
Springen Klettern
Strategie-Evolution
Gemischt ganzzahlige Optimierung
Zwei-Ziele-Optimierung
Globale Optimierung
Anwendungsfelder für geschachtelte Evolutionsstrategien
[1, 3 ( , ) ]-ES
Gipfelspringen und mit der geschachtelten Evolutionsstrategie
Gipfelklettern
[1, 3 ( , ) ]-ES
Gipfelspringen und mit der geschachtelten Evolutionsstrategie
Gipfelklettern
Gründer
Populationen
[1, 3 ( , ) ]-ES
Gipfelspringen und mit der geschachtelten Evolutionsstrategie
Gipfelklettern
[1, 3 ( , ) ]-ES
Gipfelspringen und mit der geschachtelten Evolutionsstrategie
Gipfelklettern
[1, 3 ( , ) ]-ES
Gipfelspringen und mit der geschachtelten Evolutionsstrategie
Gipfelklettern
9
9
34
56
78
9
3 4 5 6 7 8
3 4 56
78
34 5 6 7
8
34
56
73
45
67
34
56 3
4 56
7
3 4 5 6 7 8
Für n >> 1 sind die weißen Einzugsgebiete der
Berge vernachlässigbar klein gegenüber dem
schwarzen Gebiet dazwischen !
Wir sind hier
Lückenwert L
L =ZwischenraumKugelraum
112
2)(
)()( nnn L
2732,0)2( L
69)100(1035,5 L„weiß“: Einzugsgebiete der Berge
„schwarz“: Zwischenräume
Evolutionsstrategische Optimierung eines
Freiträgers mit minimalem Gewicht
ES]),/(,/[
Strategievariablen Objektvariablen
Sprungvariablen Gleitvariablen
Qualität Q1 Qualität Q 2
Springen Klettern
Vergangenheit Gegenwart
Strategie-Evolution
Gemischt ganzzahlige Optimierung
Zwei-Ziele-Optimierung
Globale Optimierung
Ortho-Evolution
Anwendungsfelder für geschachtelte Evolutionsstrategien
( ) - ES +,
Geschachtelte Evolutionsstrategie
+,[ ]
Aktuelle PositionGründerposition
Ortho-Evolution !
n
kkk dd
hbkhhRQ
1
21streu Min))(1()1(
2][
n
kkdnhQ
1vol Min 0 allefür ddk
Minvolstreuges QwQQ
bbh
1)( ( )d d2 1
h
h
hR
d0
d1
d2
q2
F
Strahl 2
k
= Brechungsindex
w = Gewichtsfaktor
Zwei-Ziele-Optimierung
KomplexaugenKameraaugen
Einfache Lichtwahrnehmung
Vorstufen derKomplexaugen
Augen mitengem Loch
Becheraugen mit Pigment
Becheraugen mitreflektierendem Pigment
Super-positions-augen
Augen mitengem Loch
Pfeilschwanz-krebs
Zwischenformen
Appositions-augenNeurale
Superposition
Augen mitGlaskörper
Augen mitSpiegeln
Fitnesslandschaft der Augen-Evolution (nach M. Land)
Nautilus
Linsenaugeder Kopffüßer
FischaugenSpinnen
Tapetum-Bergrücken
RuderfußkrebseDetritus
mit Hornhaut ausgestatteteAugen der Landwirbeltiere
Das Wunder der
Koordinatentransformation
D‘ARCY THOMSONs Transformationen
Polyprion
Scorpaena sp.Antigonia capros
Pseudopriacanthus altus
Koordinatentransformation nach Albrecht Dürer
Bauanweisung für Protein „Dunkle“ DNA
Rätsel der
sogenannten
Schrott-DNA
(junk DNA)
Für Koordinaten- Transformation ?
über 95%
5554543532521515
5454443432421414
5354343332321313
5254243232221212
5154143132121111
xaxaxaxaxay
xaxaxaxaxay
xaxaxaxaxay
xaxaxaxaxay
xaxaxaxaxay
Lineare Transformation: Polygenie und Polyphänie
n = 5 !
Pleiotropie
Ein Gen (x) steuert viele Merkmale (y)
Ein Merkmal (y) wird von vielen Genen (x) gesteuert
Schiefwinklige lineare Koordinaten-Transformationen
5554543532521515
5454443432421414
5354343332321313
5254243232221212
5154143132121111
xaxaxaxaxay
xaxaxaxaxay
xaxaxaxaxay
xaxaxaxaxay
xaxaxaxaxay
Zu viele Koeffizienten für Transformation eines orthogonalen Systems
Statt benötigen wir nur Koeffizienten2
1)( nn2n
2n
Koeffizienten
5554543532521515
5454443432421414
5354343332321313
5254243232221212
5154143132121111
xaxaxaxaxay
xaxaxaxaxay
xaxaxaxaxay
xaxaxaxaxay
xaxaxaxaxay
Orthogonalisierungsverfahren
Matrizenrechnung
CMA-Methode
ES-Hybridverfahren
Covarianz-Matrix-Adaptation
Programmierung einer
geschachtelten Evolutionsstrategie
[1, (1, ) ]-ES
Algorithmus:
zgNk
gE
gNk
gE
gNk
xx
gNb
gE
gNb
gE
xx
1
1
gNb
gE
gNb
gE
xx
1
1
k
zgNk
gE
gNk
gE
gNk
xx
k = 1, ... k = 1, ...
bgE
gNb )( xx
b
gE
gNb )(
gNkk
gE xx )(g
NkkgE )(
Farbe anstelle eines Index !
MATLAB-Programm der (1, ) ES
MATLAB-Programm der (1, ) ES
v=100;gg=1000; kk=10; xe=ones(v,1); de=1; aa=1.5;
Variablenzahl, Generationszahl,
Nachkommenzahl und
Startwerte für Variablenwerte
und Schritt-weite des Start-
Elters
MATLAB-Programm der (1, ) ES
v=100;gg=1000; kk=10; xe=ones(v,1); de=1; aa=1.5;
for g=1:gg
end
Erzeugen der Generationenschleif
e
MATLAB-Programm der (1, ) ES
v=100;gg=1000; kk=10; xe=ones(v,1); de=1; aa=1.5;
for g=1:gg qb=1e+20;
end
Initialisierung der Qualität im
Bestwert-Zwischenspeicher
auf nicht verschlechterbaren
Wert
v=100;gg=1000; kk=10; xe=ones(v,1); de=1; aa=1.5;
for g=1:gg qb=1e+20; for k=1:kk
end
end
Generierung der
Nachkommenschlei
fe
MATLAB-Programm der (1, ) ES
MATLAB-Programm der (1, ) ES
v=100;gg=1000; kk=10; xe=ones(v,1); de=1; aa=1.5;
for g=1:gg qb=1e+20; for k=1:kk dn=de*aa^(2*round(rand)-1);
end
end
Deterministische
Variation der Mutationsschrittweite
MATLAB-Programm der (1, ) ES
v=100;gg=1000; kk=10; xe=ones(v,1); de=1; aa=1.5;
for g=1:gg qb=1e+20; for k=1:kk dn=de*aa^(2*round(rand)-1); xn=xe+dn*randn(v,1)/sqrt(v);
end
end
Erzeugung eines
mutierten Nachkommen
MATLAB-Programm der (1, ) ES
v=100;gg=1000; kk=10; xe=ones(v,1); de=1; aa=1.5;
for g=1:gg qb=1e+20; for k=1:kk dn=de*aa^(2*round(rand)-1); xn=xe+dn*randn(v,1)/sqrt(v); qn=sum(xn.^2);
end
end
Bestimmung der Qualität
des mutierten Nachkommen
MATLAB-Programm der (1, ) ES
v=100;gg=1000; kk=10; xe=ones(v,1); de=1; aa=1.5;
for g=1:gg qb=1e+20; for k=1:kk dn=de*aa^(2*round(rand)-1); xn=xe+dn*randn(v,1)/sqrt(v); qn=sum(xn.^2); if qn < qb qb=qn; db=dn; xb=xn; end end
end
Bei Q-Verbesserung Zwischen-
speicherung der Qualität,
Schritt-weite und
Variablenwerte
MATLAB-Programm der (1, ) ES
v=100;gg=1000; kk=10; xe=ones(v,1); de=1; aa=1.5;
for g=1:gg qb=1e+20; for k=1:kk dn=de*aa^(2*round(rand)-1); xn=xe+dn*randn(v,1)/sqrt(v); qn=sum(xn.^2); if qn < qb qb=qn; db=dn; xb=xn; end end qe=qb; de=db; xe=xb;
end
Nachkomme aus dem
Bestwert-Zwischenspeicher
wird zum Elter der nächsten
Generation
MATLAB-Programm der (1, ) ES
v=100;gg=1000; kk=10; xe=ones(v,1); de=1; aa=1.5;
for g=1:gg qb=1e+20; for k=1:kk dn=de*aa^(2*round(rand)-1); xn=xe+dn*randn(v,1)/sqrt(v); qn=sum(xn.^2); if qn < qb qb=qn; db=dn; xb=xn; end end qe=qb; de=db; xe=xb; semilogy(g,qe,'b.') hold on; drawnow;end
Darstellung der Qualität als
Funktion der Generationszahl
Programmverdopplung
v=100;gg=1000; kk=10; xe=ones(v,1); de=1; aa=1.5;
for g=1:gg qb=1e+20; for k=1:kk dn=de*aa^(2*round(rand)-1); xn=xe+dn*randn(v,1)/sqrt(v); qn=sum(xn.^2); if qn < qb qb=qn; db=dn; xb=xn; end end qe=qb; de=db; xe=xb; semilogy(g,qe,'b.') hold on; drawnow;end
v=100;gg=1000; kk=10; xe=ones(v,1); de=1; aa=1.5;
for g=1:gg qb=1e+20; for k=1:kk dn=de*aa^(2*round(rand)-1); xn=xe+dn*randn(v,1)/sqrt(v); qn=sum(xn.^2); if qn < qb qb=qn; db=dn; xb=xn; end end qe=qb; de=db; xe=xb; semilogy(g,qe,'b.') hold on; drawnow;end
Von der einfachen zur geschachtelten ES
Programmdifferenzierung
v=100;gg1=1000; kk1=10; xe1=ones(v,1); de1=1; aa1=1.5;
for g1=1:gg1 qb1=1e+20; for k1=1:kk1 dn1=de1*aa1^(2*round(rand)-1); xn1=xe1+dn1*randn(v,1)/sqrt(v); qn1=sum(xn1.^2); if qn1 < qb1 qb1=qn1; db1=dn1; xb1=xn1; end end qe1=qb1; de1=db1; xe1=xb1; semilogy(g1,qe1,'b.') hold on; drawnow;end
v=100;gg0=1000; kk0=10; xe0=ones(v,1); de0=1; aa0=1.5;
for g0=1:gg0 qb0=1e+20; for k0=1:kk0 dn0=de0*aa0^(2*round(rand)-1); xn0=xe0+dn0*randn(v,1)/sqrt(v); qn0=sum(xn0.^2); if qn0 < qb0 qb0=qn0; db0=dn0; xb0=xn0; end end qe0=qb0; de0=db0; xe0=xb0; semilogy(g0,qe0,'b.') hold on; drawnow;end
Programmschachtelung
for g0=1:gg0 qb0=1e+20; for k0=1:kk0 dn0=de0*aa0^(2*round(rand)-1); xn0=xe0+dn0*randn(v,1)/sqrt(v); qn0=sum(xn0.^2); if qn0 < qb0 qb0=qn0; db0=dn0; xb0=xn0; end end qe0=qb0; de0=db0; xe0=xb0; semilogy(g0,qe0,'b.') hold on; drawnow;end
v=100;
v=100;gg1=1000; kk1=10; xe1=ones(v,1); de1=1; aa1=1.5;
for g1=1:gg1 qb1=1e+20; for k1=1:kk1 dn1=de1*aa1^(2*round(rand)-1); xn1=xe1+dn1*randn(v,1)/sqrt(v); qn1=sum(xn1.^2); if qn1 < qb1 qb1=qn1; db1=dn1; xb1=xn1; end end qe1=qb1; de1=db1; xe1=xb1; semilogy(g1,qe1,'b.') hold on; drawnow;end
gg0=1000; kk0=10; xe0=ones(v,1); de0=1; aa0=1.5;
Programmschachtelung
for g0=1:gg0 qb0=1e+20; for k0=1:kk0 dn0=de0*aa0^(2*round(rand)-1); xn0=xe0+dn0*randn(v,1)/sqrt(v); qn0=sum(xn0.^2); if qn0 < qb0 qb0=qn0; db0=dn0; xb0=xn0; end end qe0=qb0; de0=db0; xe0=xb0; semilogy(g0,qe0,'b.') hold on; drawnow;end
v=100;gg1=1000; kk1=10; xe1=ones(v,1); de1=1; aa1=1.5;
for g1=1:gg1 qb1=1e+20; for k1=1:kk1 dn1=de1*aa1^(2*round(rand)-1); xn1=xe1+dn1*randn(v,1)/sqrt(v);
qn1=sum(xn1.^2); if qn1 < qb1 qb1=qn1; db1=dn1; xb1=xn1; end end qe1=qb1; de1=db1; xe1=xb1; semilogy(g1,qe1,'b.') hold on; drawnow;end
gg0=1000; kk0=10; xe0=ones(v,1); de0=1; aa0=1.5;
de0=dn1; xe0=xn1;
dn1=de0; xn1=xe0;
1.00
50 2
Programmschachtelung
for g0=1:gg0 qb0=1e+20; for k0=1:kk0 dn0=de0*aa0^(2*round(rand)-1); xn0=xe0+dn0*randn(v,1)/sqrt(v); qn0=sum(xn0.^2); if qn0 < qb0 qb0=qn0; db0=dn0; xb0=xn0; end end qe0=qb0; de0=db0; xe0=xb0;
end
v=100;gg1=1000; kk1=2; xe1=ones(v,1); de1=1; aa1=1.5;
for g1=1:gg1 qb1=1e+20; for k1=1:kk1 dn1=de1*aa1^(2*round(rand)-1); xn1=xe1+0*randn(v,1)/sqrt(v);
qn1=sum(xn1.^2); if qn1 < qb1 qb1=qn1; db1=dn1; xb1=xn1; end end qe1=qb1; de1=db1; xe1=xb1; semilogy(g1,qe1,'b.') hold on; drawnow;end
gg0=50; kk0=10; xe0=ones(v,1); de0=1; aa0=1.0;
de0=dn1; xe0=xn1;
dn1=de0; xn1=xe0;
MATLAB-Programm einer
geschachtelten ES
Programmschachtelung
for g0=1:gg0 qb0=1e+20; for k0=1:kk0 dn0=de0*aa0^(2*round(rand)-1); xn0=xe0+dn0*randn(v,1)/sqrt(v) qn0=sum(xn0.^2); if qn0 < qb0 qb0=qn0; db0=dn0; xb0=xn0; end end qe0=qb0; de0=db0; xe0=xb0; semilogy(g0,qe0,'b.') hold on; drawnow;end
v=100;gg1=1000; kk1=2; xe1=ones(v,1); de1=1; aa1=1.5;
for g1=1:gg1 qb1=1e+20; for k1=1:kk1 dn1=de1*aa1^(2*round(rand)-1); xn1=xe1+0*randn(v,1)/sqrt(v);
qn1=sum(xn1.^2); if qn1 < qb1 qb1=qn1; db1=dn1; xb1=xn1; end end qe1=qb1; de1=db1; semilogy(g1,qe1,'b.') hold on; drawnow;end
gg0=50; kk0=10; xe0=ones(v,1); de0=1; aa0=1.0;
de0=dn1; xe0=xn1;
dn1=de0; xn1=xe0;
MATLAB-Programm einer
geschachtelten Ortho-ESxe1=xb1;
oo=xb1-xe1;
+oo*randn/sqrt(v);
;
MATLAB-Programm einer
geschachtelten ES
oo=ones(v,1)
Programmschachtelung
for g0=1:gg0 qb0=1e+20; for k0=1:kk0 dn0=de0*aa0^(2*round(rand)-1); xn0=xe0+dn0*randn(v,1)/sqrt(v) qn0=sum(xn0.^2); if qn0 < qb0 qb0=qn0; db0=dn0; xb0=xn0; end end qe0=qb0; de0=db0; xe0=xb0; semilogy(g0,qe0,'b.') hold on; drawnow;end
v=100;gg1=1000; kk1=2; xe1=ones(v,1); de1=1; aa1=1.5;
for g1=1:gg1 qb1=1e+20; for k1=1:kk1 dn1=de1*aa1^(2*round(rand)-1); xn1=xe1+0*randn(v,1)/sqrt(v);
qn1=sum(xn1.^2); if qn1 < qb1 qb1=qn1; db1=dn1; xb1=xn1; end end qe1=qb1; de1=db1; semilogy(g1,qe1,'b.') hold on; drawnow;end
gg0=50; kk0=10; xe0=ones(v,1); de0=1; aa0=1.0;
de0=dn1; xe0=xn1;
dn1=de0; xn1=xe0;
MATLAB-Programm einer
geschachtelten Ortho-ESxe1=xb1;
oo=xb1-xe1;
+oo*randn/sqrt(v);
;
oo=ones(v,1);
Zum Kopieren (Qualitätsfunktion = „Zigarre“ )
v=100;gg1=1000; kk1=2; xe1=ones(v,1); de1=1; aa1=1.5;gg0=50; kk0=10; xe0=ones(v,1); de0=1; aa0=1.0; oo=ones(v,1);
for g1=1:gg1 qb1=1e+20; for k1=1:kk1 dn1=de1*aa1^(2*round(rand)-1); xn1=xe1+0*randn(v,1)/sqrt(v); de0=dn1; xe0=xn1; for g0=1:gg0 qb0=1e+20; for k0=1:kk0 dn0=de0*aa0^(2*round(rand)-1); xn0=xe0+dn0*randn(v,1)/sqrt(v)+oo*randn/sqrt(v); qn0=xn0(1)^2+1000*sum(xn0(2:v).^2); if qn0 < qb0 qb0=qn0; db0=dn0; xb0=xn0; end end qe0=qb0; de0=db0; xe0=xb0; end dn1=de0; xn1=xe0; qn1=xn1(1)^2+1000*sum(xn1(2:v).^2); if qn1 < qb1 qb1=qn1; db1=dn1; xb1=xn1; end end
qe1=qb1; de1=db1; oo=xb1-xe1; xe1=xb1; semilogy(g1,qe1,'b.') hold on; drawnow;end
MATLAB-Programm einer
geschachtelten Ortho-ES
zgNk
gE
gNk
gE
gNk
gE
gNk
xx
zgNk
gE
gNk
xx
gNb
gE
gNb
gE
gNb
gE
xx
1
1
1
gNb
gE xx 1
gNkk
gE xx )(
bgE
gNb )(
xx
k
,1k,1k
Modifizierter Algorithmus
einer geschachtelten ES
Schrittweite für das Setzen von Gründerpopulationen
Schrittweite für das lokale Bergklettern zum Optimum
Mathematische Formulierung einer (1, ) - Ortho-ES
in ungeschachtelter Form
gE
gNk
zxx gNk
gE
gNk
zmgE
gE )( xx
Variation k = 1, 2, … Nachkommen
Selektion ( B = Bester Nachkomme)gNB
gE 1
gNB
gE xx 1
Ende
www.bionik.tu-berlin.de