Folytonos optimalizálás

Contents

Egyszerű, konvex tesztfüggvény:

x=linspace(-4,4,200);
y=x;
[xx,yy]=meshgrid(x,y);
mesh(x,y,xx.^2+yy.^2);

A globális minimuma az origó, mindegyik eljárás 500 függvénykiértékelést végezhet.

Szimulált hűtés

figure(2)
xMin=hutes_abra(1,1,5,2,0.2,100,@(x)x(1)^2+x(2)^2)
xMin =

   -0.3902
    0.3334

Rechenberg algoritmusa

figure(3)
rechenberg_abra(@(x) x(1)^2+x(2)^2,[1,1])
ans =

    0.0102   -0.0010

Koordinátafüggetlen evolúciós statégia

figure(4)
esUc1_abra(@(x) x(1)^2+x(2)^2,2)
ans =

   -0.0003    0.0007    0.0084

Korrerálatlan evolúciós stratégia

figure(5)
esUcn_abra(@(x) x(1)^2+x(2)^2,2)
ans =

   -0.0002    0.0003    0.0018    0.0032

Hosszú völgy problémája

figure(6)
x=linspace(-4,4,200);
y=x;
[xx,yy]=meshgrid(x,y);
mesh(x,y,10000*xx.^2+yy.^2);

Az irányokat megtanulni sok idő, de bizonyos esetekben megérheti

esUc1(@(x) 10000*x(1)^2+x(2)^2,2)
ans =

   -0.0003    0.0155    0.0088

esUcn(@(x) 10000*x(1)^2+x(2)^2,2)
ans =

    0.0011   -0.2697    0.0253    1.1085

Órai feladat

Valósítsukmeg a gradiens-módszert kétváltozós függvényre!