Numerické metody optimalizace - úvod Petr Tichý 16. února 2015 1
Organizace přednášek a cvičení 13 přednášek a cvičení. Zápočet: úloha programování a testování úloh v Matlabu. Další informace na blogu http://numopt.blogspot.cz/ Lze se na něj dostat z http://www.karlin.mff.cuni.cz/ ptichy/ Kontakt: mail.tichy@gmail.com 3
Optimalizace Lidé optimalizují (investoři, výrobci, inženýři). Příroda optimalizuje (reakce molekul reakce dokud není celková energie jejích elektronů minimální). Co musíme v problému identifikovat? Cílová funkce (objective function): míra kvality systému (výnos, čas, potenciální energie, kombinace kvantit). Cílová funkce závisí na určitých charakteristikách proměnné, neznámé (unknowns, variables) Co chceme: nalézt hodnoty proměnných, pro které je cílová funkce optimální (nabývá minimální či maximální hodnoty). Proměnné často omezeny - omezení (constrains) (hustota elektronů nemůže být záporná) Často omezení 4
Optimalizační proces Proces identifikace (rozpoznání) cílove funkce, proměnných, omezení = modelování (modeling). Konstrukce modelu první a často nejdůležitější krok. Soubor optimalizačních algoritmů neexistuje univerzální, šité na míru optimalizačnímu problému. Nutné rozpoznat, zda algoritmus uspěl. Často máme k dispozici podmínky optimality napoví jak dál. 5
Matematická formulace Optimalizace je minimalizace nebo maximalizace funkce vzhledem k omezením na své proměnné. Označení: x je vektor proměných: neznámé a parametry f je cílová funkce: funkce proměnné x, kterou chceme minimalizovat nebo maximalizovat h a q jsou vektorové funkce definující podmínky, jež musí x splňovat (constraint functions). 6
Formulace problému Omezení ve tvaru rovností a nerovností Dána funkce f(x), f : R n R, funkce h 1 (x),..., h m (x) a q 1 (x),..., q p (x), h i : R n R, q j : R n R. (f dvakrát spojitě diferencovatelná, h i, q j spojitě diferencovatelné). Problém h(x) h 1 (x) h 2 (x). h m (x), q(x) q 1 (x) q 2 (x). q p (x). min x R n f(x) za podmínek h(x) = 0, q(x) 0. 7
Příklad min (x 1 2) 2 + (x 2 1) 2 za podmínek x 2 1 x 2 0, x 1 + x 2 2. Přiřazení: f(x) = (x 1 2) 2 + (x 2 1) 2, x = q(x) = [ q1 (x) q 2 (x) ] = [ x 2 1 x 2 x 1 + x 2 2 [ x1 ] x 2. ] 8
Grafická reprezentace x 2 1 x 2 0, x 1 + x 2 2. 9
Formální transformace problému Předchozí příklad různé úpravy a transformace jsou často potřeba, abychom převedli daný problém na min f(x) za podmínek h(x) = 0, x R n q(x) 0. Úlohy na hledání maxima lze převést na hledáí minima f f. 10
Další příklad: Dopravní problém F 1, F 2 továrny vyrábějící 1 produkt, R 1,..., R 12 sklady. F i produkuje týdně a i tun produktu. Každý sklad R j má týdenní poptávku po b j tunách. Náklady na přepravu tuny produktu z F i do R j jsou c i,j. Kolik tun produktu převézt z továren do jednotlivých skladů, abychom splnili všechny požadavky a minimalizovali náklady? x i,j... počet tun k převozu z továrny F i do skladu R j. 11
Matematická formulace Minimalizujeme náklady min 2 12 c i,j x i,j i=1 j=1 za podmínek 12 j=1 x i,j a i, i = 1, 2, 2 x i,j b j, j = 1,..., 12, i=1 x i,j 0, i = 1, 2, j = 1,..., 12. Lineární programování: cílová funkce i omezení jsou lineární. 12
Spojitá versus diskrétní optimalizace Diskrétní proměnné z konečné, často velmi velké, množiny. Např. požadavek, proměnné x i celá čísla či x i {0, 1} integer programming problems. Spojité proměnné reálná čísla či prvky z nespočetných množin. Jednodušší řešení - lze použít spojitost a hladkost funkce, napoví hodně o chování funkce v okolí daného bodu. 13
Klasifikace a dělení spojité optimalizace Klasifikace podle: matematické povahy cílové funkce a omezení (lineární, nelineární, konvexní), počtu proměnných (hodně, málo), hladkosti funkcí (diferencovatelné, nediferencovatelné). Důležité dělení (z pohledu způsobu řešení) Nepodmíněná optimalizace (bez omezení, E = = I) - mnoho praktických aplikací, často vzniká i z přeformulovaných úloh s omezeními (omezení nahrazena penalizační funkcí - přidány k cílové funkci - efekt zamezují poručení omezení. Podmíněná optimalizace (s omezeními, s vazbami) - ekonomické problémy, omezení tvaru, design. 14
Globální versus lokální optimalizace Algoritmy většinou hledají pouze lokální minimum (f je nejmenší na okolí bodu), ne vždy najdou globální minimum. Globální minimum potřeba v některých aplikacích, často velmi obtížné nalézt. Obecně vyžadují řešení mnoha lokálních optimalizačních problémů. Konvexní optimalizační problémy (cílová i vazební funkce konvexní) lokální minimum je i globálním minimem (např. v lineárním programování či v problému nejmenších čtverců). 15
Algoritmy Jsou iterační: Počateční odhad posloupnost vylepšených odhadů řešení. Liší se ve strategii, jak se posunout od jedné iterace k druhé. Využívají hodnot f, h a q, popř. prvních a druhých derivací těchto funkcí. Některé sbírají informace o předchozích iteracích, jiné používají pouze lokální info v daném bodě. Cíle dobrých algoritmů: robustnost (dobrý výkon na široké třídě problémů), efektivita (nízké výpočetní a paměťové nároky), přesnost (nalézt dostatečně přesné řešení, bez přílišné citlivosti na chyby v počátečních datech nebo zaokrouhlovací chyby). Tyto cíle často v konfliktu. 16
Skalární funkce n proměnných f : R n R. f : x 1 x 2. x n f(x). 18
Derivace funkce jedné proměnné f : R R 1ní derivace df dx = f f(x + ɛ) f(x) (x) lim. ɛ 0 ɛ f je diferencovatelná, pokud f (x) existuje. 2há derivace: za f dosadíme do předchozí formule f, d 2 f dx 2 = f f (x + ɛ) f (x) (x) lim. ɛ 0 ɛ Podobně, derivace zprava či zleva. Derivace složené funkce df(x(t)) dt = df dx dx dt = f (x)x (t). 19
Derivace funkce n proměnných f : R n R parciální derivace, gradient Parciální derivace: f f(x 1 + ɛ, x 2,..., x n ) f(x 1, x 2,..., x n ) = lim x 1 ɛ 0 ɛ f(x + ɛe 1 ) f(x) = lim. ɛ 0 ɛ f f(x + ɛe k ) f(x) = lim. x k ɛ 0 ɛ n-vektor parciálních derivací se nazývá gradient, f(x) [ f x 1 f x 2... f x n ] T. 20
Derivace funkce n proměnných f : R n R druhé parciální derivace f má n 2 druhých parciálních derivací tvaru ( ) f i, j = 1..., n. x i x j Zapisujeme 2 f x i x j, i j; 2 f x 2 i, i = j. Jsou-li f x i, f x j 2 f x i x j spojité, pak 2 f x j x i 2 f x i x j = 2 f x j x i. existuje a platí 21
Derivace funkce n proměnných f : R n R Hessián Matice druhých parciálních derivací Hessián 2 f(x) 2 f x 2 i.... 2 f x n x 1... 2 f x 1 x n. 2 f x 2 n 1ní a 2hé parciální derivace spojité symetrie.. 22
Derivace funkce n proměnných f : R n R Složená funkce Situace: x závisí na t x(t). Pravidlo o derivaci složené funkce lze rozšířit. Je-li t jednoduchá proměnná, pak d dt [f(x(t))] = [x 1(t),..., x n(t)] f(x). 23
Derivace funkce n proměnných f : R n R Směrové derivace Nechť f je spojitě diferencovatelná. derivace ve směru d f d lim f(x + ɛ d) f(x) ɛ 0 ɛ = f(x) T d. 24
Řádová notace, prostor C m Funkce jedné proměnné Řádová notace. Nechť f(h) je funkce proměnné h. Řekneme, že funkce f(h) je řádu h p, psáno f(h) = O(h p ), pokud existuje konečná konstanta M taková, že platí f(h) M h p. Označme C m třídu funkcí spojitě diferencovatelných až do řádu m. 25
Taylorova věta Funkce jedné proměnné Taylorova věta Pokud f(x) C m potom existuje skalár α, 0 < α < 1, tak že, f(x + h) = f(x) + hf (x) + 1 2 h2 f (x) + + 1 (m 1)! hm 1 f (m 1) (x) + 1 m! hm f (m) (x + αh), kde f (k) označuje k-tou derivaci f v bodě x. Má-li f omezenou m-tou derivaci na intervalu [x, x + h], potom m 1 f(x + h) = f(x) + h k f (k) (x) k! k=1 + O(h m ). 26
Taylorova věta Funkce více proměnných (užitečná verze pro formulaci metod) Taylorova věta Nechť f : R n R je spojitě diferencovatelná a d R n. Potom f(x + d) = f(x) + f(x + αd) T d pro nějaké α (0, 1). Je-li f dvakrát spojitě diferencovatelná, f(x + d) = f(x) + f(x) T d + 1 2 dt 2 f(x + αd)d. pro nějaké α (0, 1). Pro praktické výpočty postačí nejvýše první tři členy rozvoje. Je-li f dostatečně hladká, potom f(x + hd) = f(x) + h f(x) T d + 1 2 h2 d T 2 f(x)d + O(h 3 ). 27
Taylorova věta Funkce více proměnných (obecně) Dána f(x), směr d. Označme n n n ( D s s ) f f(x) d i1 d i2... d is. x i1 x i2... x is i 1 =1 i 2 =1 i s=1 Taylorova věta Nechť f : R n R, f C m (Ω), kde Ω je otevřená a konvexní. Nechť x a x + d leží v Ω. Potom α (0, 1) takové, že platí m 1 1 f(x + d) = f(x) + s! Ds f(x) + 1 m! Dm f(x + αd). s=1 28
Jacobiho matice (Jacobián) Funkce více proměnných Uvažujme funkci h(x) h 1 (x) h 2 (x). h m (x), h : Rn R m. Jacobiho matice prvních parciálních derivací J(h(x)) h 1 x 1... h 1 x n.. h m x 1... h m x n = [ h 1,..., h m ] T h(x). Označení Jacobián se občas používá pro determinant n n Jacobiho matice funkce h(x) : R n R n. 29
Derivace složené funkce II Nechť t je vektorová proměnná t = [t 1,..., t m ] T a nechť x závisí (dostatečně hladce) na t. Označme J x 1 t 1... x 1 t m.. x n t 1... x n t m a nechť Potom h(t) f(x(t)). h(t) = J T f(x). 30
Shrnutí f : R n R. f : x 1 x 2. x n f(x). gradient f(x), Hessián 2 f(x), derivace složené funkce, 1ní derivace ve směru d: f(x) T d, 2há derivace ve směru d: d T 2 f(x)d, Taylorova věta. Jacobián - zobecnění gradientu pro funkce h : R n R m. 31
Cvičení Spočtěte gradient a Hessián funkce f(x 1, x 2 ) = x 4 1 + x 2 1 + x 2 2. Nechť A R n n a b R n. Spočtěte gradient a Hessián f(x) = x T Ax 2x T b. Nechť h : R n R m, h C 2, a nechť λ R m je vektor nezávislý na x. Uvažujme funkci L(x, λ) = λ T h(x). Spočtěte gradient a Hessián L(x, λ) vzhledem k proměnné x. 32