Ingo Rechenberg PowerPoint-Folien zur 3. Vorlesung Evolutionsstrategie II Anwendungsfelder...

Post on 05-Apr-2015

116 views 7 download

Transcript of Ingo Rechenberg PowerPoint-Folien zur 3. Vorlesung Evolutionsstrategie II Anwendungsfelder...

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