Metódy vol nej optimalizácie Metódy vol nej optimalizácie p. 1/52
Metódy minimalizácie funkcie jednej premennej Metódy minimalizácie funkcie jednej premennej p. 2/52
Metódy minimalizácie funkcie jednej premennej Motivácia min f(x) x R n (U1) Úloha (U1) sa zvyčajne rieši nejakým iteračným algoritmom, ktorý generuje postupnost bodov x 0,x 1,x 2,... R n, f(x k ) ˆx, pre k Vo väčšine algoritmov sa používa iteračná schéma Metódy s optimálnym krokom: x k+1 = x k +λ k s k. λ k = argmin λ ϕ(λ) = F(x k +λs k ) p. 3/52
Metódy minimalizácie funkcie jednej premennej Formulácia úlohy min f(x) x R (1) Riešenie úlohy prebieha v dvoch fázach: I. Separovanie minima - úloha (1) sa prevedie na úlohu min f(x) a x b (2) II. Riešenie úlohy (2) O funkcií f(x) budeme predpokladat, že každé jej lokálne minimum je aj jej globálnym minimom. p. 4/52
Metódy minimalizácie funkcie jednej premennej Definícia: Funkciu f(x) definovanú na intervale I R nazývame unimodálnou, ak existuje bod x 0 I tak, že pre každú dvojicu bodov x 1,x 2 z intervalu I takú, že x 2 < x 1 < x 0, alebo platí x 0 < x 1 < x 2, f(x 0 ) f(x 1 ) f(x 2 ). Unimodálnu funkciu f(x) nazývame rýdzo unimodálnou, ak vo vzt ahu ( ) platia ostré nerovnosti. Zrejme bod x 0 je bodom minima funkcie f(x) vzhl adom na I. ( ) p. 5/52
Metódy minimalizácie funkcie jednej premennej y y f( x) y y f( x) y y f( x) x2 x1 x x 0 1 x2 x a b x a x b x2 x1 x x 0 1 2 a x 0 b x y y f( x) y y f( x) y y f( x) a x 0 b x a x 0 b x a x 0 b x p. 6/52
Metódy minimalizácie funkcie jednej premennej Klasifikácia metód riešenia Z hl adiska chápania riešenia úlohy (2): 1. Metódy intervalovej aproximácie Hl adá sa dostatočne jemný interval neurčitosti obsahujúci bod minima x 0. Založené na bezprostrednom porovnávaní funkčných hodnôt funkcie f. Rýchlost konvergencie nezávisí od tvaru funkcie - vo šeobecnosti pomalá. 2. Metódy bodovej aproximácie (Interpolačné metódy) Problém určenia bodu x z dostatočne malého okolia bodu x 0. Založené na interpolácií funkcie f nejakou vhodnou funkciou. Rýchlost konvergencie závisí od stupňa zhody funkcie f s interpolačnou funkciou. p. 7/52
Metódy minimalizácie funkcie jednej premennej Z hl adiska použitej informácie: Metódy nultého rádu Používajú len funkčné hodnoty Pomalá konvergencia Metódy prvého rádu Používajú aj hodnoty prvej derivácie Lepšia konvergencia Metódy druhého rádu Používajú aj hodnoty druhej derivácie Najlepšia konvergenica konvergencia, ale vel ký objem výpočtov p. 8/52
Metódy intervalovej aproximácie Metódy intervalovej aproximácie Metódy prvého rádu Metóda bisekcie Metóda simultánnych experimentov Metódy nultého rádu Dichotomická metóda Metóda simultánnych experimentov Metóda Fibonacci Metóda zlatého rezu p. 9/52
Separovanie minima Separovanie minima p. 10/52
Separovanie minima Pre unimodálnu funkciu f(x) chceme určit konečný interval [a,b] obsahujúci minimum x 0 funkcie f(x). Metóda prvého rádu Metóda nultého rádu p. 11/52
Separovanie minima Pre unimodálnu funkciu f(x) chceme určit konečný interval [a,b] obsahujúci minimum x 0 funkcie f(x). Metóda prvého rádu Metóda nultého rádu 160 140 120 f (x1)<0 100 80 60 40 20 0-10 -5 0 5 10 p. 12/52
Separovanie minima Pre unimodálnu funkciu f(x) chceme určit konečný interval [a,b] obsahujúci minimum x 0 funkcie f(x). Metóda prvého rádu Metóda nultého rádu 160 140 120 f (x1)<0 100 80 60 40 20 0-10 -5 0 5 10 p. 13/52
Separovanie minima Pre unimodálnu funkciu f(x) chceme určit konečný interval [a,b] obsahujúci minimum x 0 funkcie f(x). Metóda prvého rádu Metóda nultého rádu 160 140 120 100 f (x1)<0 80 60 f (x2)<0 40 20 f (x3)<0 f (x6)>0 f (x4)<0 f (x5)>0 0-10 -5 0 5 10 p. 14/52
Metódy intervalovej aproximácie Metódy intervalovej aproximácie p. 15/52
Metódy intervalovej aproximácie Metóda bisekcie 160 140 a=-10 120 100 80 60 40 b=10 20 0-10 -5 0 5 10 p. 16/52
Metódy intervalovej aproximácie Metóda bisekcie 160 140 a=-10 120 100 80 60 40 b=10 20 c=(a+b)/2 0-10 -5 0 5 10 p. 17/52
Metódy intervalovej aproximácie Metóda bisekcie 160 140 a=-10 120 100 80 60 40 b=10 20 f (c)<0 0-10 -5 0 5 10 p. 18/52
Metódy intervalovej aproximácie Metóda bisekcie 60 b=10 50 40 30 20 10 a=0 c=(a+b)/2 0 0 2 4 6 8 10 p. 19/52
Metódy intervalovej aproximácie Metóda bisekcie 60 b=10 50 40 30 20 10 a=0 f (c)>0 0 0 2 4 6 8 10 p. 20/52
Metódy intervalovej aproximácie Metóda bisekcie 7 6 a=0 b=5 5 4 3 2 1 c=(a+b)/2 0 0 1 2 3 4 5 p. 21/52
Metódy intervalovej aproximácie Metóda bisekcie 7 6 a=0 b=5 5 4 3 2 1 f (c)>0 0 0 1 2 3 4 5 p. 22/52
Metódy intervalovej aproximácie Metóda bisekcie 7 6 a=0 5 4 3 2 c=(a+b)/2 1 b=2.5 0 0 0.5 1 1.5 2 2.5 p. 23/52
Metódy intervalovej aproximácie Metóda bisekcie 7 6 a=0 5 4 3 2 f (c)<0 1 b=2.5 0 0 0.5 1 1.5 2 2.5 p. 24/52
Metódy intervalovej aproximácie Metóda bisekcie Metóda bisekcie opísaná vyššie = metóda prvého rádu. Analogicky môžeme uvažovat metódu nulého rádu: Dichotomická metóda Namiesto c = a+b 2 uvažujeme 2 body c 1 = a+b δ 2, c 2 = a+b+δ 2 Ak f(c 1 ) < f(c 2 ) (pomerná diferencia kladná) -> [a,c 2 ] Ak f(c 1 ) > f(c 2 ) (pomerná diferencia záporná) -> [c 1,b] Ak f(c 1 ) = f(c 2 ) > [a,c 2 ] alebo [c 1,b] p. 25/52
Metódy intervalovej aproximácie Metódy simultánnych experimentov ak treba vopred rozhodnút o polohe vyhodnocovaných bodov x 1,...,x n na intervale sa zvolí ekvidistančná siet bodov experimenty sú umiestnené v bodoch x k = a+ b a k, k = 1,2,...,n n+1 Kol ko experimentov potrebujeme na ε-presnost? p. 26/52
Metódy intervalovej aproximácie Metódy simultánnych experimentov 0.35 0.3 0.25 0.2 0.15 0.1 f (x1)<0 f (x2)<0 f (x8)>0 0.05 f (x3)<0 f (x4)<0 f (x5)>0 0 2 2.2 2.4 2.6 2.8 3 f (x6)>0 f (x7)>0 p. 27/52
Metódy intervalovej aproximácie Metóda simultánnych experimentov 0.35 0.3 0.25 0.2 0.15 0.1 f (x1)<0 f (x2)<0 f (x8)>0 0.05 f (x3)<0 f (x7)>0 f (x4)<0 f (x5)>0 f (x6)>0 0 2 2.2 2.4 2.6 2.8 3 p. 28/52
Metódy intervalovej aproximácie Metódy simultánnych experimentov nultého rádu na intervale sa zvolí siet bodov x 1,...,x n ak je najmenšia hodnota v bode x j, interval neurčitosti sa volí [x j 1,x j+1 ] ak n = 2m+1, volí sa ekvidistančná siet ak n = 2m, volí sa m-ekvidistančná siet p. 29/52
Metódy intervalovej aproximácie Metódy postupných experimentov (nultého rádu) V intervale [a,b] zvolíme 2 body c 1 < c 2 rozumne od seba vzdialené Ak f(c 1 ) < f(c 2 ) (pomerná diferencia kladná) -> [a,c 2 ] Ak f(c 1 ) > f(c 2 ) (pomerná diferencia záporná) -> [c 1,b] Ak f(c 1 ) = f(c 2 ) > [a,c 2 ] alebo [c 1,b] Aké je optimálne rozmiestnenie experimentov v každej iterácií?? Metóda Fibonacci Metóda zlatého rezu p. 30/52
Metódy intervalovej aproximácie Metóda Fibonacci F 0 = F 1 = 1, F n+1 = F n +F n 1 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,... Treba počítat členy Fibonacciho postupnosti Interval sa redukuje faktorom závisiacim od konkrétnej iterácie (nie konštantne) Veličina δ je problematická p. 31/52
Metódy intervalovej aproximácie Algoritmus zlatého rezu p. 32/52
Metódy intervalovej aproximácie Algoritmus zlatého rezu Vstupy: f(x),[a, b], ε Schéma algoritmu: Vypočítame φ,z 1 = 2 φ,z 2 = φ 1. Uzly c 1 < c 2 volíme podl a pravidla zlatého rezu: c 1 = a+z 1 (b a), c 2 = a+z 2 (b a). Ak f(c 1 ) < f(c 2 ) > [a,c 2 ], t.j. Ak f(c 1 ) (c 2 ) > [c 1,b], t.j. b := c 2, c 2 := c 1, c 1 := a+z 1 (b a) a := c 1, c 1 := c 2, c 2 = a+z 2 (b a). p. 33/52
Metódy bodovej aproximácie Metódy bodovej aproximácie (Interpolačné metódy) p. 34/52
Metódy bodovej aproximácie Vstup: Interpolačné uzly x 1,x 2,...,x k Hodnoty f i = f(x i ), f j = f (x j ) pre nejaké i,j Daná tieda funkcií závisiaca od r k parametrov Schéma algoritmu: 1. Konštrukcia interpolačnej funkcie φ(x) je založená na výpočte hodnôt príslušných parametrov tak, aby v interpolačných uzloch platilo φ(x i ) = f i, resp. φ (x i ) = f i. 2. Výpočet minima x interpolačnej funkcie φ(x), ktoré aproximuje hl adané minimum ˆx funkcie f(x). 3. Ak x je dostatočne dobrou aproximáciou hl adaného minima x 0, tak končíme. V opačnom prípade bodom x nahradíme najhorší z použitých interpolačných uzlov. Vypočítame f = f( x), prípadne aj f = f ( x) a vraciame sa na krok 1. p. 35/52
Metódy bodovej aproximácie Kvadratická interpolácia minima (KvIM) Interpolačná funkcia: φ(x) = a(x z) 2 +b(x z)+c Jej minimum: x = z b 2a p. 36/52
Metódy bodovej aproximácie KvIM - Prípad jedného interpolačného uzla Funkcia f(x) sa v okolí uzla x 1 aproximuje Taylorovým polynómom II. stupňa: f(x) f(x 1 )+f (x 1 )(x x 1 )+ 1 2 f (x 1 )(x x 1 ) 2. Porovnaním s interpolačnou funkciou dostávame z = x 1, 2a = f 1, b = f 1, c = f 1. Dosadením do vzorca pre minimum dostávame x = x 1 f 1 f. 1 Ak nájdený bod minima zvolíme za nový interpolačný uzol a postupnos opakujeme, dostávame Newtonovu metódu: x k+1 = x k f k f k p. 37/52
Metódy bodovej aproximácie KvIM - Prípad jedného interpolačného uzla Príklad. Minimalizácia funkcie na intervale [ 1 2, 1 2 ]. f(x) = 5x 5 +4x 4 12x 3 +11x 2 2x V MATLABE definujeme a vykreslíme funkciu napríklad takto: f=inline( -5*tˆ5+4*tˆ4-12*tˆ3+11*tˆ2-2*t, t ); fplot(f,[-3/2 3/2], r ); hold on Funkcia je na intervale [ 1 2, 1 2 ] unimodálna. p. 38/52
Metódy bodovej aproximácie KvIM - Prípad jedného interpolačného uzla 6 5 4 3 2 1 0-1 -0.5 0 0.5 Aby sme mohli aplikovat Newtonovu metódu, potrebujeme spočítat prvú a druhú deriváciu: f (x) = 25x 4 +16x 3 36x 2 +22x 2, f (x) = 100x 3 +48x 2 72x+22. p. 39/52
Metódy bodovej aproximácie KvIM - Prípad jedného interpolačného uzla V MATLABE definujeme príslušné funkcie a pre potreby vykreslenia aj Taylorovu aproximáciu - teda našu interpolačnú kvadratickú funkciunapríklad takto: f1=inline( -25*tˆ4+16*tˆ3-36*tˆ2+22*t-2, t ); f2=inline( -100*tˆ3+48*tˆ2-72*t+22, t ); Taylor=inline( a*(t-z)ˆ2+b*(t-z)+c, t, a, b, c, z ); Definujeme štartovací bod - interpolačný uzol x1 - a tolerančnú konštantu, naformátujeme výstup: x1=-1/3; epsilon=0.00000000001; format long format compact p. 40/52
Metódy bodovej aproximácie KvIM - Prípad jedného interpolačného uzla Samotný algoritmus je jednoduchý: x=x1; while(abs(f1(x))>epsilon) x=x-f1(x)/f2(x) end; Možno vidiet, že metóda rýchlo konverguje: x =-0.333333333333333 x =-0.074697173620458 x = 0.064413437535524 x = 0.105955490584666 x = 0.109826339072980 x = 0.109859912568469 x = 0.109859915091411 p. 41/52
Metódy bodovej aproximácie KvIM - Prípad jedného interpolačného uzla Ak chceme v priebehu Newtonovej metódy vykreslovat príslušné kvadratické aproximácie, možno kód upravit nasledovne: while(abs(f1(x))>epsilon) fplot(taylor,[-3/2 3/2],[],[],[],f2(x)/2,f1(x),f(x),x); hold on x=x-f1(x)/f2(x) end; 140 120 100 80 60 40 20 0-20 -40-1.5-1 -0.5 0 0.5 1 1.5 p. 42/52
Metódy bodovej aproximácie KvIM - Prípad dvoch interpolačných uzlov Spôsoby zadania interpolačnej informácie: 1. f 1 < 0 < f 2 2. f 1 < 0,f 1,f 2 3. f 2 > 0,f 1,f 2 Rozoberieme prvý prípad - dané sú veličiny f 1 < 0 < f 2: Zrejme bod aproximácie minima x sa nachádza medzi dvoma uzlami x 1 a x 2. Je vhodné zvolit parameter Definujme pomocnú veličinu z = x 1+x 2 2. h = x 2 x 1 2. p. 43/52
Metódy bodovej aproximácie KvIM - Prípad dvoch interpolačných uzlov INTERPOLAČNÉ PODMIENKY φ (x i ) = 2a(x i z)+b = f i, i = 1,2. Z interpolačných podmienok je možné odvodit interpolačnú formulu pre aproximáciu minima: resp. x = 1 2 [ (x 1 +x 2 ) (x 2 x 1 ) f 1 +f 2 ] f 2 f 1 f 1 x = x 1 (x 2 x 1 ) f 2 f 1 p. 44/52
Metódy bodovej aproximácie KvIM - Prípad dvoch interpolačných uzlov V MATLABE môžeme túto metódu naprogramovat napr. takto: f=inline( -5*tˆ5+4*tˆ4-12*tˆ3+11*tˆ2-2*t, t ); f1=inline( -25*tˆ4+16*tˆ3-36*tˆ2+22*t-2, t ); x01=-1/2; x02=1/2; epsilon=0.00000000001; %---------------------------------------------- x1=x01; x2=x02; while(abs(f1(x1))>epsilon) x=x1-0.5*(x2-x1)*f1(x1)/(f1(x2)-f1(x1)); if (f1(x)>0) x2=x; else x1=x; end end; p. 45/52
Metódy bodovej aproximácie KvIM - Prípad dvoch interpolačných uzlov Možno vidiet, že metóda konverguje pomalšie ako Newtonova metóda: 1-0.008413461538 2 0.203427968074 3 0.062553206455... 4 0.091712386562 5 0.103055070795 6 0.107333877600 7 0.108925972245 8 0.109515136929 23 0.109859914982 9 0.109732707592 24 0.109859915051 10 0.109812991159 25 0.109859915076 11 0.109842607272 26 0.109859915086 12 0.109853531312 27 0.109859915089 13 0.109857560536 28 0.109859915091 14 0.109859046655 29 0.109859915091 p. 46/52
Metódy bodovej aproximácie KvIM - Prípad dvoch interpolačných uzlov Rozoberieme druhý prípad - dané sú veličiny f 1 < 0,f 1,f 2 : Opät je vhodné zvolit parameter z = x 1 +x 2. 2 Definujme pomocné veličiny h = x 2 x 1 2 INTERPOLAČNÉ PODMIENKY, f 12 = f 2 f 1 x 2 x 1. φ(x i ) = a(x i z) 2 +b(x i z)+c = f 1, i = 1,2 φ (x 1 ) = 2a(x 1 z)+b = f 1. p. 47/52
Metódy bodovej aproximácie KvIM - Prípad dvoch interpolačných uzlov Po úprave dostávame interpolačnú formulu pre aproximáciu minima: x = 1 2 resp. [ ] f 12 (x 1 +x 2 ) (x 2 x 1 ) f 12 f 1 f 1 x = x 1 1 2 (x 2 x 1 ) f 12 f 1 p. 48/52
Metódy bodovej aproximácie KvIM - Prípad troch interpolačných uzlov x 1 < x 2 < x 3, f 1 > f 2 < f 3, z = x 1 +x 3 2 Interpolačné podmienky:,f ij = f j f i x j x i φ(x i ) = a(x i z) 2 +b(x i z)+c = f 1, i = 1,2,3 Interpolačná formula je ˆx = 1 2 ( x 1 +x 3 f ) 3 f 1 f 23 f 12 p. 49/52
Metódy bodovej aproximácie Kubická interpolácia minima (KuIM) Interpolačná funkcia: φ(x) = a(x z) 3 +b(x z) 2 +c(x z)+d Jej minimum: x = z + b+ b 2 3ac 3a p. 50/52
Metódy bodovej aproximácie Kubická interpolácia minima (KuIM) Podobne ako v prípade kvadratickej interpolácie možno pomocou vstupných dát x 1 < x 2, f 1 < 0 < f 2, f 1, f 2 z interpolačných podmienok φ(x i ) = f i, φ (x i ) = f i, i = 1,2 odvodit interpolačnú formulu pre aproximáciu minima: resp. x = 1 2 [ (x 1 +x 2 )+(x 2 x 1 ) 2Z f 1 f 2 f 2 f 1 +2W x = x 1 +(x 2 x 1 ) W +Z f 1 f 2 f 1 +2W ] kde Z = f 1 +f 2 3f 12 a W = Z 2 f 1 f 2 p. 51/52
Metódy bodovej aproximácie Interpolácia minima kvadratickým splajnom Interpolačná funkcia: φ(x) = { ψ 1 (x) = a 1 (x z) 2 +b(x z) + c x z ψ 2 (x) = a 2 (x z) 2 +b(x z) + c x z kde z je bod zlepenia kvadratických parabol ψ 1 (x),ψ 2 (x) a a 1,a 2 > 0. φ(z) = ψ 1 (z) = ψ 2 (z) = c, φ (z) = ψ 1(z) = ψ 2(z) = b. Bod minima funkcie φ(x) je x = z b b 0 2a 1 z b b 0 2a 2 p. 52/52