OPTIMALIZACE (přehled metod)
Typy optimalizačních úloh Optimalizace bez omezení Nederivační metody Derivační metody Optimalizace s omezeními Lineární programování Nelineární programování Globální optimalizace
Optimalizace bez omezení (unconstraint) Nederivační (ad hoc) metody Jednoduché metody Nelder-Meadova (simplexová) metoda Derivační metody První derivace Metoda největšího spádu + další spádové metody Druhá derivace Newton-Raphsonova metoda Quasi-Newtonova metoda
Jednoduché metody Nejstarší z optimalizačních metod. Některé nejsou podloženy matematickou teorií, ostatní mají velmi jednoduchý princip. Konkrétně: Systematické prohledávání Náhodnostní metoda Metoda alternujících proměnných
Jednoduché metody - systematické prohledávání Anglicky označována grid search. Princip: Rozdělí vícerozměrný prostor, nad kterým je funkce definována na části pomocí vícerozměrné mřížky. Vypočítá pro každou část funkční hodnoty. Projde všechny funkční hodnoty a nalezne nejmenší z nich. V některých implementacích této metody analogickým způsobem prohledá okolí minima, nalezeného v předchozím kroku atd.
Jednoduché metody - systematické prohledávání Zhodnocení: Výhody: Spolehlivá metoda. Dnes se využívá pro hledání globálních extrémů případně pro nalezení všech extrémů v určité oblasti. Nevýhody: Složitost θ(p 1.P 2.....P N ), kde P i je počet dílů mřížky pro i-tou proměnnou a N je rozměr prostoru, nad kterým je studovaná funkce definována.
Jednoduché metody - metoda alternujících proměnných Anglicky označována alternating variables method. Princip: V iteraci k (k = 1, 2,..., N*) se mění (je optimalizována) pouze proměnná x k, ostatní proměnné jsou ponechány. Poznámka: Proměnná x k je optimalizována např. tak, že jsou vypočítány hodnoty x k = x k +δx a x k = x k -δx, poté hodnoty f(x 1,..., x k,..., x N ) a f(x 1,..., x k,..., x N ), a pak je pro další iteraci za x k použito nejvhodnější z x k a x k. Po proběhnutí iterací 1... N, když jsou všechny hodnoty optimalizovány, se celý cyklus opakuje znovu (až do splnění podmínek minima). * N je dimenze prostoru, nad kterým je funkce definována.
Jednoduché metody - metoda alternujících proměnných II Zhodnocení: Výhody: Jednoduchá implementace. Rozumná složitost. Nevýhody: V některých případech je tato metoda velmi neefektivní. Postup optimalizace je v těchto případech charakterizován oscilačním průběhem. Navíc je znám problém, pro který metoda chybně konverguje k sedlovému bodu.
Jednoduché metody - metoda alternujících proměnných III
Nelder-Meadova metoda - obecně Nazývá se také simplexová metoda. Základní myšlenka: N-rozměrným prostorem se pohybuje jistý objekt ( améba ), který se může natahovat nebo zkracovat v různých směrech. Několik typů takových transformací má zajistit, aby se objekt posouval směrem do údolí a po dosažení dna údolí se plazil co nejkratší cestou k lokálnímu minimu.
Nelder-Meadova metoda - obecně II Simplex: V N-rozměrném prostoru je améba definována jako simplex s N+1 vrcholy s neprázdným obsahem, tj. jde o konvexní obal tvořený N+1 body. Příklady simplexů: R: R 2 : R 3 :
Nelder-Meadova metoda - transformace Reflexe: Bod p i, který má největší funkční hodnotu se přemístí (odzrcadlí) na druhou stranu simplexu, tj. k bodu p i se přičte dvojnásobek rozdílu mezi p i a průměrem p n j i j ostatních bodů ( ).
Nelder-Meadova metoda - transformace II Reflexe a prodloužení: Totéž jako v předchozím případě, až na to, že simplex je prodloužen v novém směru (tj. přičítá se více než dvojnásobek rozdílu mezi nejhorším bodem a průměrem ostatních).
Nelder-Meadova metoda - transformace III Kontrakce: Nejhorší bod se přiblíží k průměru ostatních. To je vhodné v případě, kdy má améba projít úzkým údolím.
Nelder-Meadova metoda - ukončení výpočtu Metoda končí, pokud: Není dosaženo výrazného snížení hodnoty studované funkce simplex se v některém cyklu prakticky nezmění
Nelder-Meadova metoda - zhodnocení Výhody: Jednoduchá implementace Rychlý výpočet 1 iterace Rychlá konvergence v oblastech daleko od minima Nevýhody: Pomalá konvergence v oblasteh poblíž minima Může nastat situace, že výpočet skončí v lokálním minimu
Nelder-Meadova metoda - příklad aplikace
OPTIMALIZACE BEZ OMEZENÍ Derivační metody: První derivace (metoda největšího spádu) Druhá derivace
Metody využívající první derivaci účelové funkce metoda největšího spádu, spádové metody
Metoda největšího spádu -obecně Anglicky označována steepest descent method. Princip: Vydat se směrem, ve kterém studovaná funkce nejrychleji klesá. Tedy ve směru - f(x), kde x je bod, ve kterém se výpočet právě nachází.
Metoda největšího spádu -obecně II Algoritmus: zvolíme výchozí bod x (0) k-tá iterace: bod x (k+1) vypočítáme z bodu x (k) pomocí vztahu: x (k+1) = x (k) - α.g (k), kde: -g (k) zjednodušený zápis - f(x (k) ), α určuje směr přesunu z bodu x (k) koeficient, popisující délku daného přesunu
Metoda největšího spádu - volba α v metodě největšího spádu Metoda největšího spádu volí pro každý krok stejnou hodnotu α. Konkrétně velmi malou hodnotu α. Poznámka: Hodnoty α musí být dostatečně, aby metoda konvergovala.
Metoda největšího spádu zhodnocení Výhody: Implementačně jednoduché Nízká prostorová složitost Nevýhody: Velmi pomalá konvergence (speciálně v oblastech malého spádu => nízkých hodnot gradientu). Chyby, způsobené zaokrouhlením. Mohou vést i k tomu, že se výpočet vůbec nedostane rozumně blízko k minimu. Ale při (ideální) přesné aritmetice metoda konverguje vždy k nějakému lokálnímu minimu.
Spádové metody - obecně Jsou založeny na stejném principu jako metoda největšího spádu: x (k+1) = x (k) + α.s (k), kde: s (k) je směr přesunu z bodu x (k), α nejčastěji jako směr volíme -g (k) koeficient, popisující délku daného přesunu Využívají sofistikovanější metody k určení koeficientu α. Hodnota koeficientu α je různá pro každou iteraci.
Spádové metody - obecně II Podmínka pro ideální hodnotu (α*) koeficientu α: funkce φ(α) = f(x(α)) má v α* minimum Poznámka: Jedná se o nejmenší hodnotu α, v níž má φ(α) minimum. Navíc samozřejmě platí α > 0. ξ f x 2 1,5 1 0,5 0 α* 0 0,5 1 1,5 2 Tuto podmínku nelze využít k volbě koeficientu α. Potřebujeme totiž určit hodnotu α pro danou iteraci v konečném a pokud možno velmi malém počtu kroků. α
Příklad Řešte minimum funkce 2x 2 + 2y 2 + 2xy 4x 6y Pomocí metody největšího spádu Funkce je daná analyticky Gradient g=(4x+2y-4; 4y+2x-6) Volím α = 0,25 Volím počáteční bod x 1 =(1;1)
Postup iterací: α
2 (2 x 2 +2 y 2 +2 x y-4 x-6 y) 1.8 1.6 1.4 1.2 y 1 0.8 0.6 0.4 0.2 0 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 x
ÚKOL: Vytvořte v MATLABu program pro výpočet minima libovolné dvourozměrné funkce metodou největšího spádu. Z praktického hlediska použijte numerickou aproximaci gradientu účelové funkce. Program otestujte na funkci: 1. 2x 2 + 2y 2 + 2xy 4x 6y 2. 100(x-y 2 ) 2 + (1 x) 2 (Rosenbrock s function)