Prednáška 3 Optimalizačné metódy pre funkcie n-premenných Študujme reálnu funkciu n-premenných n f: R R Našou úlohou bude nájsť také x opt R n, pre ktoré má funkcia f minimum x opt = arg min ( f x) Túto úlohu budeme riešiť pomocou: (1) gradientových metód (2) negradientových metód Typickým predstaviteľom negradientových metód na hľadanie minima funkcií n-premen-ných je simplexova metóda. Matematika I pre PGŠ, Prednáška 3 1
1. Simplexova metóda Pod simplexom v n-rozmernom priestore R n rozumieme množinu n+1 bodov - vrcholov, pričom každá dvojica vrcholov je spojená hranou. Formálne, simplex vyjadríme ako množinu S = l q P, P,..., P R 1 2 n+ 1 Hovoríme, že simplex S je nedegenerovaný, ak žiadny z vrcholov neleží v rovine obsahujúcej ostatné vrcholy simplexu n Matematika I pre PGŠ, Prednáška 3 2
Podmienka pre nedegenerovaný simplex môže byť preformulovaná tak, že n vektorov P P, P P,..., P P, P P, 2 1 3 1 n 1 n+ 1 1 je lineárne nezávislá. Nech bod P i má tento tvar P x a f i i, x a f,..., x a f d i = 1 2 potom podmienka lineárnej nezávislosti môže byť vyjadrená pomocou podmienky nenulovosti deteminantu xaf 2 1 2 1 2 1 1 xaf 1 xaf 2 xaf 2... xaf n xaf n a3f a1f a3f a1f a3f a1f x1 x1 x2 x2... xn xn............ n+ 1 1 n+ 1 + x x x x... x x a f af a f af a f af 1 1 2 n i 1 n 1 1 2 n n i 0 Priamka v priestore je určená dvoma bodmi P A a P B a f Pα = 1 α P + αp kde α R je parameter priamky, platí P 0 =P A a P 1 =P B. A B Matematika I pre PGŠ, Prednáška 3 3
Priamka je orientovaná v zmysle rastúceho parametra α Pα Pβ α < β Ťažisko simplexu S je určené ako "aritmetický priemer" jeho vrcholov P C = 1 n n+ 1 P + 1 = i 1 Funkčné hodnoty minimalizovanej funkcie f na vrcholoch simplexu označíme bg bg a f b g F = f P, F = f P,..., F = f P, F = f P 1 1 2 2 n n n+ 1 n+ 1 i Matematika I pre PGŠ, Prednáška 3 4
Medzi vrcholmi simplexa odlíšime dva vrcholy, vrhol P L a vrchol P H, v ktorých má funkcia f maximálnu resp. minimálnu hodnotu P H P = L = arg max P S arg min f P P S af f P af V simplexovej metóde hrá dôležitú úlohu ťažisko vrcholov simplexu okrem vrcholu P H F 1 n+ 1 P = P P n HG = i 1 α-reflexia vrcholu P H vzhľadom k ťažisku P a f i H P α = 1 α P + αp H I K J Matematika I pre PGŠ, Prednáška 3 5
Redukcia simplexu S vzhľadom k vrcholu P L b g b g 1 P i = Pi + PL pre i = 12,,..., n, n+ 1 2 Elementárny krok simplexovej metódy (1) Pre daný simplex S určíme vrcholy P L a P H (2) Určíme ťažisko P. (3) Zostrojíme 2-reflexiu P* vrcholu P H okolo P, P*=2P -P H. (4) Ak f(p*)<f(p H ), potom P H P*, v opačnom prípade vykonáme redukciu simplexa okolo vrcholu P L. Kroky (1-4) opakujeme tak dlho, až b g b g fph fpl < ε kde ε je malé kladné číslo (presnosť) Matematika I pre PGŠ, Prednáška 3 6
Diagramatická interpretácia elementárneho kroku simplexovej metódy Matematika I pre PGŠ, Prednáška 3 7
Konštrukcia počiatočného simplexu Máme zadaný jeden vrchol P o a dĺžku hrany d P = P + de pre i = 12,,..., n P i o i n+ 1 = P o b kde "body" E i sú zadané ako jednotkové smerové vektory E = 1 E2 = 010,,,..., 0... E n = a a 10, 0,,..., 0 a f f f 000,,,..., 1 g Matematika I pre PGŠ, Prednáška 3 8
Algoritmus simplexovej metódy read(p 0,d,ε,k max ); S:=initial set of simplex vertices; norm:= ; k:=0; while (norm>ε) and (k<k max ) do begin k:=k+1; P H :=arg max f(p); P L :=arg min f(p); norm:=abs(f(p H )-f(p L )); P*:=2P-P H ; if f(p*)<f(p H ) then S:=(S-{P H })+{P*} else simplex is reduced; end; write(p L,f(P L )); Matematika I pre PGŠ, Prednáška 3 9
Diagramatické znázornenie priebehu simplexovej metódy Poznámka: V priebehu simplexovej metódy dochádza často k redukcii simplexu, t.j. stáva sa stále menším a menším. Táto skutočnosť podstatne znižuje efektívnosť simplexovej metódy v blízkosti minima. Matematika I pre PGŠ, Prednáška 3 10
2. Modifikácia simplexovej metódy -AMÉBA V štandardnej verzii simplexovej metódy relatívne často dochádza k redukcii simplexu, t.j. spolmaluje sa rýchlosť metódy. Tento nedostatok odstraňuje modifikácia simplexovej metódy - améba, v ktorej je simplex dynamicky menený v závislosti na povrchu minimalizovanej funkcie. Matematika I pre PGŠ, Prednáška 3 11
Diagramatická vizualizácia elementárneho kroku améby Matematika I pre PGŠ, Prednáška 3 12
Algoritmus améby read(p 0,d,ε,k max ); S:=initial set of simplex vertices; norm:= ; k:=0; while (norm>ε) and (k<k max ) do begin k:=k+1; P H :=arg max f(p); P L :=arg min f(p); norm:=abs(f(p H )-f(p L )); P*:=2P-P H ; if f(p*)<f(p L ) then begin P**:=3P-2P H ; if f(p**)<f(p*) then S:=(S-{P H })+{P**} else S:=(S-{P H })+{P*}; end else if f(p*)<f(p H ) then P**:=-1/2P H +3/2P else P**:=1/2P H +1/2P; if f(p**)<f(p H ) then S:=(S-{P H })+{P**} else simplex is reduced; end; write(p L,f(P L )); Matematika I pre PGŠ, Prednáška 3 13
Diagramatické znázornenie priebehu améby Matematika I pre PGŠ, Prednáška 3 14
3. Stochastická simplexová metóda Modifikácia štandardnej simplexovej metódy sop stochastickými prvkami, ktorá je vhodná na hladanie globálneho minima. CRS - Controlled Random Search W.L.Price (1965) prototyp moderných stochastických optimalizačných metód Populácia bodov P ( P >>n) l P = P, P,..., 1 2 P m Body z populácie P s maximálnou resp. minimálnou funkčnou hodnotou sú P max = P arg max P P min = arg min P P q af f P af f P Matematika I pre PGŠ, Prednáška 3 15
Simplex S obsahuje n+1 bodov náhodne vybraných z populácie P S n s = P α, P α,..., P α 1 2 n+ 1 P Štandardným postupom zostrojíme 2-reflexiu P* v danom simplexe S. Elementárny krok stochastickej simplexovej metódy (1) Z populácie P náhodne výber n+1 bodov, ktoré tvoria simplex S. (2) V rámci simplexu S zostroj 2-reflexiu P* podobne ako v štandardnej simplexovej metóde. (3) Ak f(p*)<f(p max ), potom bod P max zameň za reflexiu P* (t.j. populácia P sa modifikuje, P (P\{P max }) {P*}. Kroky (1-3) opakuj tak dloho, až sú splnené podmienky ukončenia algoritmu. Matematika I pre PGŠ, Prednáška 3 16
Algoritmus stochastickej simplexovej metódy read(m,ε,k max ); P:=randomly generated population composed of m points; norm:= ; k:=0; while (norm>ε) and (k<k max ) do begin k:=k+1; norm:=abs(f(p max )-f(p min )); S:=randomly seelcted simplex from the population P; P*:= reflexion of S; if f(p*)<f(p max ) then P:=(P\{P max }) {P*}; end; write(p min,f(p min )); Matematika I pre PGŠ, Prednáška 3 17
Tri po sebe idúce elementárne kroky stochastickej simplexovej metódy Matematika I pre PGŠ, Prednáška 3 18
Schematické znázornenie populácií pre rôzne etapy stochastickej simplexovej metódy Poznámka: S rastom iteračných krokov metódy, "priemer" populácie sa zmenšuje v dôsledku toho, že sa vždy odstraňujú "okrajové" body P max. Matematika I pre PGŠ, Prednáška 3 19
4. Definícia gradientu Študujme funkciu af a F λ = f xo + λn f kde x o = c o o x x x o n R n 1, 2,..., h je daný bod (vektor) a n= c o o n n n o n R n 1, 2,..., h je normalizovaný smerový vektor ( n =1). Funkcia F(λ) popisuje "zúženie" funkcie f(x) na priamku p definovanú bodom x o a smerom n. Derivácie tejto funkcie podľa premennej λ je určená vzťahom af a f F λ = grad f xo + λn n Matematika I pre PGŠ, Prednáška 3 20
Výraz grad f(x) sa nazýva gradient funkcie f v bode x a je definovaný ako vektor, ktorého komponenty sú 1. parciálne derivácie vzhľadom k premenným x 1, x 2,...,x n grad ( f x)= F HG ( f x) ( f x) ( f x),,..., x x 1 2 x n Hodnota derivácie F'(λ) pre λ=0 sa nazýva derivácie funkcie f(x) v bode x o a v smere n a f a f a f a f F 0 = grad f x n = grad f x cos ϕ o kde ϕ je uhol, ktorý medzi smerom n a grad f(x o ) o I KJ Matematika I pre PGŠ, Prednáška 3 21
Geometrická interpretácia gradientu Budeme študovať nasledujúce dva limitné prípady pre deriváciu v smere, a to (1) smer je paralelný s gradientom (ϕ=0) a (2) smer je antiparalelný s gradientom (ϕ=π) af af F 0 = + grad f x > 0 ϕ= 0 a f o a f F 0 = grad f x < 0 ϕ= π V smere gradientu grad f(x o ) funkcia f(x) najrýchlejšie rastie, podobne, v opačnom smere - grad f(x o ) funkcia f(x) najrýchlejšie klesá. o Matematika I pre PGŠ, Prednáška 3 22
5. Metóda najprudšieho spádu (steepest desctent method) Táto metóda je založená na geometrickej interpretácii gradientu, ako smeru v ktorom funkcia najrýchlejšie rastie. Budeme hľadať minimum funkcie f(x), metóda najprudšieho spádu je založená na nasledujúcej rekurentnej formule x + = x f x k k k 1 λgrad b g kde kladný parameter λ>0 je určený tak, aby platilo f(x k+1 )<f(x k ). To znamená, že tento parameter je určený dvoma protichodnými podmienkami, a to dostatočne malý, aby platila predchádzajúca nerovnosť a súčasne dostatočne veľký, aby bola zabezpečená dostatočná rýchlosť konvergencie metódy. Matematika I pre PGŠ, Prednáška 3 23
Grafická ilustrácia metódy najprudšieho spádu Stratégia pre voľbu parametra λ Matematika I pre PGŠ, Prednáška 3 24
Ak platí f(x k+1 )>f(x k ) (t.j metóda prestáva monotónne konvergovať), potom parameter λ sa zmenší λ α λ kde 0<α<1. Algoritmus gradientovej metódy najprudšieho spádu read(x,λ,ε,α,k max ); norm:= ; k:=0; while (norm>ε) and (k<k max ) do begin k:=k+1; x':=x-λ*gradf(x); norm:= x-x' ; if f(x')>f(x) then λ:=α*λ; x:=x'; end; write(x,f(x)); Grafická vizualizácia Matematika I pre PGŠ, Prednáška 3 25
metódy najprudšieho spádu Metóda sa stáva veľmi pomalou v blízkosti minima alebo na "plochých" úsekoch. Matematika I pre PGŠ, Prednáška 3 26