Nelineární optimalizace a numerické metody (MI NON) Magisterský program: Informatika Obor: Teoretická informatika Katedra: 18101 Katedra teoretické informatiky Jaroslav Kruis Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Úvod optimalizační metody = extremalizační metody = výpočty extrémů Obecně: Hledají se extrémy účelové (cílové, cenové) funkce s eventuálními omezeními (podmínky nezápornosti). Náš cíl: porozumění a schopnost spolupráce s ostatními inženýry řešícími minimalizaci funkcionálů numerickými metodami (mechanická rovnováha, chemická rovnováha, aj.). Schopnost vylepšit jejich počítačové programy.
Příklady úloh vedoucích k výpočtu extrémů funkcí: minimalizace funkcionálů numerickými metodami (mechanická rovnováha, chemická rovnováha, aj.) regresní výpočty (např. metoda nejmenších čtverců) optimalizace výrobních programů (minimalizace nákladů, maximalizace zisku, aj.) dopravní problémy (minimalizace nákladů, minimalizace přepravní doby, apod.)
Motivace reálné inženýrské úlohy - modely jsou třírozměrné, uvažuje se několik fyzikálních jevů (multiphysics problem), numerické metody - přesná řešení nejsou k dispozici, použití numerických metod je nutností, numerické metody bez počítačů jsou nepoužitelné, paralelní počítače - rozsáhlé úlohy se nevejdou do paměti jednoprocesorového počítače a jejich řešení trvá nepřijatelnou dobu, paralelní počítače nabízejí alternativu.
Nelinea rnı optimalizace a numericke metody
Optimalizace extrémy funkcí lokální extrémy globální extrémy vázané extrémy
Funkce, extrémy funkcí B. Budinský, J. Charvát. Matematika I. SNTL - Nakladatelství technické literatury, Praha, 1987. B. Budinský, J. Charvát. Matematika II. SNTL - Nakladatelství technické literatury, Praha, 1990. ISBN 80-03-00219-2. Karel Rektorys a spolupracovníci. Přehled užité matematiky I. Nakladatelství Prometheus, Praha, 7. vydání, 2000. ISBN
Funkce, derivace Definice. Necht jsou dány množiny D R a H R. Reálná funkce jedné reálné proměnné je zobrazení z D do H. D se nazývá definiční obor, H se nazývá obor hodnot. Poznámka. V celém následujícím textu se bude reálná funkce jedné reálné proměnné označovat zkráceně jako funkce jedné proměnné. Definice. Necht je dána funkce f(x). Limita df(x) dx = lim h 0 f(x + h) f(x) h se nazývá derivace funkce f(x) v bodě x. Někdy bude použito označení f (x).
Derivace některých funkcí f(x) f (x) f(x) f (x) x n nx n 1 a x a x ln a sin x cos x log a x 1 x ln a cos x sin x Definice. Bod x D se nazývá stacionární právě tehdy, když platí f (x) = 0.
Konvexní a konkávní funkce Definice. Funkce f(x) se nazývá konvexní na množině M D právě tehdy, když pro každé dva body x 1, x 2 M, x 1 x 2, a α (0, 1), platí f(αx 1 + (1 α)x 2 ) αf(x 1 ) + (1 α)f(x 2 ). Platí-li f(α x 1 + (1 α)x 2 ) < αf(x 1 ) + (1 α)f(x 2 ), funkce f(x) se nazývá ryze konvexní. Definice. Funkce f(x) se nazývá konkávní na množině M D právě tehdy, když pro každé dva body x 1, x 2 M, x 1 x 2, a α (0, 1), platí f(αx 1 + (1 α)x 2 ) αf(x 1 ) + (1 α)f(x 2 ). Platí-li f(αx 1 + (1 α)x 2 ) > αf(x 1 ) + (1 α)f(x 2 ), funkce f(x) se nazývá ryze konkávní.
Lokální extrémy Definice. Funkce f(x) má v bodě x D lokální maximum právě tehdy, když existuje neúplné okolí O ( x) bodu x tak, že pro každé x O ( x) platí f(x) f( x). Definice. Funkce f(x) má v bodě x D ostré lokální maximum právě tehdy, když existuje neúplné okolí O ( x) bodu x tak, že pro každé x O ( x) platí f(x) < f( x). Definice. Funkce f(x) má v bodě x D lokální minimum právě tehdy, když existuje neúplné okolí O ( x) bodu x tak, že pro každé x O ( x) platí f(x) f( x). Definice. Funkce f(x) má v bodě x D ostré lokální minimum právě tehdy, když existuje neúplné okolí O ( x) bodu x tak, že pro každé x O ( x) platí f(x) > f( x).
Globální extrémy Definice. Necht je dána množina M D. Funkce f(x) má v bodě x M globální maximum vzhledem k M právě tehdy, když platí f(x) f( x) pro všechna x M. Definice. Necht je dána množina M D. Funkce f(x) má v bodě x M ostré globální maximum vzhledem k M právě tehdy, když platí f(x) < f( x) pro všechna x M, x x. Definice. Necht je dána množina M D. Funkce f(x) má v bodě x M globální minimum vzhledem k M právě tehdy, když platí f(x) f( x) pro všechna x M. Definice. Necht je dána množina M D. Funkce f(x) má v bodě x M ostré globální minimum vzhledem k M právě tehdy, když platí f(x) > f( x) pro všechna x M, x x.
Věta. Je-li f (x) > 0, je funkce v bodě x ryze konvexní. Věta. Je-li f (x) < 0, je funkce v bodě x ryze konkávní. Věta. Jestliže v bodě x D platí f (x) > 0, je funkce f(x) v bodě x D rostoucí. Věta. Jestliže v bodě x D platí f (x) < 0, je funkce f(x) v bodě x D klesající. Věta. Jestliže v bodě x D platí f (x) = 0 a f (x) > 0, má funkce f(x) v bodě x lokální minimum. Věta. Jestliže v bodě x D platí f (x) = 0 a f (x) < 0, má funkce f(x) v bodě x lokální maximum.
Příklad. Najděte extrémy funkce f(x) = 3x 4 16x 3 6x 2 + 48x. Řešení. Funkce a její derivace mají tvar f(x) = 3x 4 16x 3 6x 2 + 48x f (x) = 12x 3 48x 2 12x + 48 f (x) = 36x 2 96x 12 V bodech, kde se nachází extrém, musí být f (x) = 0. Rovnice f (x) = 12x 3 48x 2 12x + 48 = 0 má tři kořeny x 1 = 1, x 2 = 1 a x 3 = 4.
Dále je třeba určit, kde je f (x) < 0 a kde f (x) > 0. Řešením kvadratické rovnice f (x) = 36x 2 96x 12 = 0 vycházejí kořeny x 4 = 0, 119 632 a x 5 = 2, 786 299. Intervaly konvexity a konkavity jsou sestaveny do tabulky: x ( ; 0, 199) f (x) > 0 f(x) je konvexní x ( 0, 199; 2, 786) f (x) < 0 f(x) je konkávní x (2, 786; ) f (x) > 0 f(x) je konvexní
Pro stacionární body platí: x 1 = 1 f(x 1 ) = 35 f (x 1 ) > 0 lokální minimum x 2 = 1 f(x 2 ) = 29 f (x 2 ) < 0 lokální maximum x 3 = 4 f(x 3 ) = 160 f (x 3 ) > 0 globální minimum Na následujícím obrázku je pro názornost vynesen graf funkce f(x) černě, f (x) červeně a f (x) zeleně.
Kvadratické programování Motivace Necht je dána kvadratická funkce f(x) = ax 2 + bx + c, kde a, b, c R jsou dané konstanty a platí, že a 0. Kvadratická funkce má jeden stacionární bod f (x) = 2ax + b = 0 x = b 2a Z druhé derivace f (x) = a plyne, že je funkce bud všude konvexní, nebo všude konkávní. Kvadratická funkce má tedy jeden extrém, který lze snadno nalézt. Jeho existence je navíc zaručena.
Příklad. Kmitání konstrukcí se spojitě rozloženou hmotou je popsáno pomocí frekvenčních funkcí. Jedna z nich má tvar cosh(x) sin(x) sinh(x) cos(x) F 2 (x) = x cosh(x) cos(x) 1 Graf této frekvenční funkce a detail v okolí bodu x = 4, 73 jsou na následujících obrázcích. U obecné funkce není zaručeno, že má extrém(y) a její tvar může být velmi komplikovaný.
Kvadratická funkce mnoha proměnných Necht je dána kvadratická funkce f a počet proměnných je n. Jednotlivé proměnné x 1, x 2,..., x n lze uspořádat do vektoru x. Funkce má tvar f(x) = 1 2 a 11x 2 1 + 1 2 a 12x 1 x 2 +... + 1 2 a 1nx 1 x n + + 1 2 a 21x 2 x 1 + 1 2 a 22x 2 2 +... + 1 2 a 2nx 2 x n +. + 1 2 a n1x n x 1 + 1 2 a n2x n x 2 +... + 1 2 a nnx 2 n x 1 b 1 x 2 b 2... x n b n + c
Poloviny u koeficientů a ij a znaménka minus před koeficienty b i byly zvoleny s ohledem na další zápis. Pro obecnou kvadratickou funkci n proměnných lze vždy určit a ij a b i tak, že funkce má výše uvedený tvar. Funkci f(x) lze zapsat pomocí matice A R n n a vektoru b R n takto f(x) = 1 2 xt Ax x T b + c Konstanta c nemá vliv na polohu extrému, jen na jeho velikost. V dalších úvahách se bude předpokládat c = 0. Definice. Matice A R n n se nazývá pozitivně definitní právě tehdy, když pro libovolný nenulový vektor x R n platí x T Ax > 0.
Poznámka. Velmi mnoho inženýrských úloh lze zformulovat tak, že se hledá minimum kvadratické funkce n proměnných s pozitivně definitní maticí. Věta. Matice A R n n je pozitivně definitní právě tehdy, když jsou její všechna vlastní čísla kladná. Věta. Necht je matice A symetrická a pozitivně definitní. Funkce f(x) nabývá svého minima v bodě x právě tehdy, když x je řešením soustavy lineárních algebraických rovnic A x = b. Důkaz. Necht funkce f(x) nabývá svého minima v x. Pro libovolný vektor v a skalární parametr s pak platí f( x + sv) = 1 2 xt A x + sv T A x + s2 2 vt Av x T b sv T b
Vzhledem k tomu, že x i v jsou dané vektory, jedinou proměnnou je s a minimum nastává pro df( x + sv) ds = x T Av + sv T Av v T b = 0 s uvážením, že podle předpokladu je minimum v x, platí s = 0, což vede na výraz df( x + sv) ds = x T Av v T b = v T (A x b) = 0 Vzhledem k libovolnosti v musí být A x = b.
Necht x splňuje rovnici A x = b. Funkci f(x) lze psát f(x) = 1 2 xt Ax x T A x = = 1 2 xt Ax x T A x + 1 2 xt A x 1 2 xt A x = = 1 2 (x x)t A(x x) 1 2 xt A x Protože je matice A pozitivně definitní, minimum f(x) nastává pro x = x a má velikost 1 2 xt A x. Poznámka. Kvadratická funkce f(x) může představovat mechanickou energii a vektor x posunutí vybraných bodů pružného tělesa. Těleso je v rovnováze právě tehdy, když mechanická energie nabývá minimální hodnoty.
Gradient kvadratické funkce f(x) má tvar g(x) = df(x) dx a reziduum má tvar = Ax b r(x) = b Ax = g(x) V numericých metodách se budou používat aproximace x i vektoru x, který minimalizuje funci f(x). Chyba je definována e i = x x i Vztah mezi reziduem a chybou je r i = b Ax i = Ae i
Metoda největšího spádu Necht je dána kvadratická funkce n proměnných ve tvaru f(x) = 1 2 xt Ax x T b kde A R n n je symetrická pozitivně definitní matice a vektor b R n. Hledání minima lze provést metodou největšího spádu, ve které se hledá nejmenší hodnota ve směru gradientu.
Necht je známa aproximace x k polohy extrému x v k-tém kroku minimalizace. Nová aproximace se předpokládá ve tvaru x k+1 = x k + α k r k, kde r k je vektor rezidua (vektor opačný ke gradientu g k ) r k = b Ax k = g k. Dosazením x k+1 do funkce f(x) vychází f(x k+1 ) = 1 2 xt k Ax k α k x T k Ar k + 1 2 rt k Ar k x T k b α k r T k b, což je kvadratická funkce jedné proměnné α k.
Její minimum se určí z podmínky df(α k ) dα k = r T k Ax k + α k r T k Ar k r T k b = 0, odkud vychází α k = rt k b rt k Ax k r T k Ar k = rt k r k r T k Ar. k Reziduum v k + 1-ním kroku má tvar r k+1 = b Ax k+1 = b Ax k α k Ar k = r k αar k
Algoritmus metody největšího spádu volba počáteční aproximace x 0 výpočet počátečního rezidua r 0 = b Ax 0 iterace k = 0, 1,... α k = rt k r k r T k Ar k x k+1 = x k + α k r k r k+1 = r k α k Ar k pokud r k+1 > ε, další krok, jinak konec
Příklad. Soustava rovnic 2 1 1 1 x y = 2 1 má řešení x y = 3 4
Rovnice elipsy má tvar Rovnice elipsy 1 2 a 11x 2 + a 12 xy + 1 2 a 22y 2 b 1 x b 2 y + c = 0, jsou-li hlavní poloosy rovnoběžné s osami souřadného systému, platí (x x s ) 2 a 2 + (y y s) 2 b 2 1 = 0, kde (x s, y s ) je střed elipsy a a, b jsou velikosti hlavních poloos. Transformace souřadnic x = x cos ϕ y sin ϕ + x s y = x sin ϕ + y cos ϕ + y s
dosazením transformačních vztahů do obecného tvaru elipsy vychází u smíšeného členu x y koeficient 1 2 a 11 sin 2ϕ + a 12 cos 2ϕ + 1 2 a 22 sin 2ϕ má-li být smíšený člen vynulován, musí být tg2ϕ = 2a 12 a 11 a 22 je-li čárkovaný souřadnicový systém pootočen vůči původnímu o úhel ϕ, má elipsa tvar 1 2 a 11x 2 + 1 2 a 22y 2 b 1x b 2y + c = 0,
nyní je možné doplnit výrazy na čtverec (x x s) 2 a 2 + (y y s) 2 b 2 1 = 0, Příklad. Najděte extrém funkce f(x, y) = x 2 xy + 1 2 y2 2x y Řešení. Jedná se o kvadratickou funkci dvou proměnných. Porovnáním s obecným tvarem kvdaratické funkce n proměnných
vychází a 11 = 2 a 12 = a 21 = 1 a 22 = 1 b 1 = 2 b 2 = 1 Řešením soustavy Ax = b vychází x = 3 a y = 4. To jsou souřadnice bodu, v němž má zadaná kvadratická funkce extrém. Dosazením vychází f(3, 4) = 5. Grafem funkce f(x, y) = z = x 2 xy + 1 2 y2 2x y
je nerotační paraboloid. Transformací souřadného systému do hlavních os lze získat polohu a velikost extrému. Souřadný systém je třeba otočit o úhel tg2ϕ = 2a 12 a 11 a 22 = Po transformaci vychází f(x, y ) = + 2 2 1 = 2 ϕ = 0, 553 574 rad ( 1 2 a 11 cos 2 ϕ + a 12 sin ϕ cos ϕ + 1 ) 2 a 22 sin 2 ϕ x 2 + ( 1 2 a 11 sin 2 ϕ a 12 sin ϕ cos ϕ + 1 ) 2 a 22 cos 2 ϕ y 2 + + ( b 1 cos ϕ b 2 ϕ)x + (b 1 sin ϕ b 2 cos ϕ)y
číselně pak f(x, y ) = 1, 309 016x 2 + 0, 190 983y 2 1, 175 570x 1, 902 113y doplnění na čtverec f(x, y ) = 1, 309 016(x 0, 449 027) 2 + + 0, 190 983(y 4, 979 796) 2 5 souřadnice středu elipsy v čárkovaném souřadném systému x s = 0, 449 027 y s = 4, 979 796
v původním systému x s = x s cos ϕ y s sin ϕ = 3 y s = x s sin ϕ + y s cos ϕ = 4 dalšími úpravami vychází f(x, y ) = (x 0, 449 027) 2 1, 954 395 2 + Poloosy elipsy jsou a = 1, 954 395 b = 5, 116 672 + (y 4, 979 796) 2 5, 116 672 2 1
Kvadriky v R n Obecná kvadrika má tvar f(x) = 1 2 xt Ax x T b + c = 0 Problém vlastních čísel Av = λv λ je vlastní číslo, v 0 je vlastní vektor Věta. Pro dvě různá vlastní čísla λ i a λ j platí v T i v j = 0. Důkaz. Necht je problém vlastních čísel zapsán pro i-tý a j-tý vektor Av i = λ i v i Av j = λ j v j
První problém lze zleva vynásobit vektorem v T j, druhý problém lze zleva vynásobit vektorem v T i. Odečtením obou rovnic vychází v T j Av i v T i Av j = 0 = λ i v T j v i λ j v T i v j = (λ i λ j )v T j v i Protože platí λ i λ j a zároveň (λ i λ j )v T j v i = 0, musí být v T j v i = 0. Vlastní vektory dvou různých vlastních čísel jsou ortogonální. transformace souřadnic x = n v i y i = V y i=1
Věta. Necht je dána matice A, jejíž všechna vlastní čísla jsou nenulová a vzájemně různá. Inverzní matici A 1 lze psát ve tvaru A 1 = n i+1 1 λ i v i v T i. Důkaz. Necht je dána soustava rovnic ve tvaru Ax = b. Použitím transformace x = n i=1 v iy i = V y vychází n n Ax = Av i y i = λ i v i y i = b i=1 i=1 Vynásobením předcházející rovnice vlastním vektorem v T j, vyjde y j n λ i v T j v i y i = δ ij λ i y i = λ j y j = v T j b y j = 1 v T j b, λ j i=1 protože vlastní tvary jsou ortogonální. Dosazením y j zpět do
transformačních vztahů vychází x = n v i y i = i=1 n i=1 1 λ i v i v T i b = A 1 b. Porovnáním dvou stran poslední rovnosti se získá výsledek A 1 = n i=1 1 λ i v i v T i.
Dosazením transformace x = V y do f(x) vychází f(y) = 1 2 yt V T AV y y T V T b + c = = 1 2 yt Λy y T b + c = n ( ) 1 = 2 λ iyi 2 y i bi + c = i=1 n λ i = yi 2 2 b ( i bi y i + 2 λ i = i=1 n i=1 λ i 2 ( y i b i λ i ) 2 n i=1 λ i ) 2 b i 2 2λ i + c ( bi λ i ) 2 + c =
pomocné úpravy b i = v T i b n i=1 b i 2 = b T v i v T i b 2 b i n 1 = b T v i v T i b = 1 2λ i 2λ i 2 bt A 1 b i=1 označení f min = n i=1 b i 2 2λ i + c = 1 2 bt A 1 b + c ˆb i = b i λ i ˆb = Λ 1 b
s novým označením má funkce tvar f(y) = 1 2 (y ˆb) T Λ(y ˆb) + f min
f(x, y) = x 2 xy + 1 2 y2 2x y Řešení. Porovnáním s obecným tvarem kvdaratické funkce n proměnných vychází a 11 = 2 a 12 = a 21 = 1 a 22 = 1 b 1 = 2 b 2 = 1
Problém vlastních čísel Av = λv (A λi)v = 0 Pro zadaný problém platí 2 λ 1 1 1 λ = λ2 3λ + 1 = 0 Řešením rovnice jsou kořeny λ 1 = 0, 381 966 a λ 2 = 2, 618 033. Dosazením vlastních čísel do soustavy vychází 2 λ 1 1 1 1 λ 1 ˆv 1(1) ˆv 2(1) = 0 0
Jedna ze složek se volí, např. ˆv 2(1) = 1, druhá se dopočítá ˆv 1(1) = 0, 618 033. 2 λ 2 1 1 1 λ 2 ˆv 1(2) ˆv 2(2) = 0 0 Jedna ze složek se volí, např. ˆv 2(2) = 1, druhá se dopočítá ˆv 1(2) = 1, 618 033. Normováním vektorů se získají normované vlastní vektory v 1 = v 1(1) v 2(1) = 0, 525 731 0, 850 650
v 2 = v 1(2) v 2(2) = 0, 850 650 0, 525 731 b1 = v T 1 b = 1, 902 113 b2 = v T 2 b = 1, 175 570 ˆb1 = b 1 λ 1 = 4, 979 796 ˆb2 = b 2 λ 2 = 0, 449 027
funkce má po transformaci souřadnic tvar f(y) = 2 i=1 λ i 2 ( y i b i λ i ) 2 f min = = 0, 190 983(y 1 4, 979 796) 2 + + 1, 309 016(y 2 0, 449 027) 2 5 který je totožný s tvarem získaným dříve