Optimalizace. Numerické metody. Ústav matematiky. 23. ledna 2006

Podobné dokumenty
Numerické metódy matematiky I

Numerické metody. Ústav matematiky. 23. ledna 2006

Hledání extrémů funkcí

Numerické metody a programování. Lekce 8

Aproximace funkcí. Numerické metody. Ústav matematiky. 1. listopadu 2006

Úvod do optimalizace Matematické metody pro ITS (11MAMY)

Extrémy funkce dvou proměnných

Numerické metody a programování. Lekce 7

5. Lokální, vázané a globální extrémy

OPTIMALIZACE. (přehled metod)

Řešení 1b Máme najít body, v nichž má funkce (, ) vázané extrémy, případně vázané lokální extrémy s podmínkou (, )=0, je-li: (, )= +,

Numerická matematika 1

Co je obsahem numerických metod?

Typy příkladů na písemnou část zkoušky 2NU a vzorová řešení (doc. Martišek 2017)

Interpolace pomocí splajnu


Numerické metody. Ústav matematiky. 24. března 2006

Aplikovaná numerická matematika

Funkce v ıce promˇ enn ych Extr emy Pˇredn aˇska p at a 12.bˇrezna 2018

Numerické metody 6. května FJFI ČVUT v Praze

Základní spádové metody

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Numerické řešení nelineárních rovnic

Hledáme lokální extrémy funkce vzhledem k množině, která je popsána jednou či několika rovnicemi, vazebními podmínkami. Pokud jsou podmínky

Připomenutí co je to soustava lineárních rovnic

Definice globální minimum (absolutní minimum) v bodě A D f, jestliže X D f

APROXIMACE KŘIVEK V MATLABU NEWTONŮV INTERPOLAČNÍ POLYNOM CURVE FITTING IN MATLAB NEWTON INTERPOLATION POLYNOMIAL

3. Přednáška: Line search

Kombinatorická minimalizace

Derivace funkcí více proměnných

Newtonova metoda. 23. října 2012

Faster Gradient Descent Methods

Numerická matematika Banka řešených příkladů

1 Extrémy funkcí - slovní úlohy

a vlastních vektorů Příklad: Stanovte taková čísla λ, pro která má homogenní soustava Av = λv nenulové (A λ i I) v = 0.

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

1. července 2010

BAKALÁŘSKÁ PRÁCE. Numerické metody jednorozměrné minimalizace

Soustavy lineárních rovnic-numerické řešení. October 2, 2008

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

Vlastní (charakteristická) čísla a vlastní (charakteristické) Pro zadanou čtvercovou matici A budeme řešit maticovou

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

(Cramerovo pravidlo, determinanty, inverzní matice)

stránkách přednášejícího.

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25

Iterační metody řešení soustav lineárních rovnic. 27. prosince 2011

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice

Soustavy lineárních rovnic-numerické řešení

Diferenciál funkce dvou proměnných. Má-li funkce f = f(x, y) spojité parciální derivace v bodě a, pak lineární formu (funkci)

Kapitola 5. SLAR - gradientní metody

SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC

BAKALÁŘSKÁ PRÁCE. Metody pro výpočet kořenů polynomů

Požadavky a podmínky zkoušky z Numerických metod I (2NU)

Princip řešení soustavy rovnic

Problém lineární komplementarity a kvadratické programování

5. Náhodná veličina. 2. Házíme hrací kostkou dokud nepadne šestka. Náhodná veličina nabývá hodnot z posloupnosti {1, 2, 3,...}.

Projekt OPVK - CZ.1.07/1.1.00/ Matematika pro všechny. Univerzita Palackého v Olomouci

Numerické metody optimalizace - úvod

2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC

Nelineární optimalizace a numerické metody (MI NON)

12. Lineární programování

algoritmus»postup06«p e t r B y c z a n s k i Ú s t a v g e o n i k y A V

úloh pro ODR jednokrokové metody

9. přednáška 26. listopadu f(a)h < 0 a pro h (0, δ) máme f(a 1 + h, a 2,..., a m ) f(a) > 1 2 x 1

s velmi malými čísly nevýhodou velký počet operací, proto je mnohdy postačující částečný výběr

verze 1.3 x j (a) g k 2. Platí-li vztahy v předchozím bodu a mají-li f, g 1,..., g s v a diferenciál K = f + j=1

Regresní analýza 1. Regresní analýza

Průvodce studiem. do bodu B se snažíme najít nejkratší cestu. Ve firmách je snaha minimalizovat

7. Derivace složené funkce. Budeme uvažovat složenou funkci F = f(g), kde některá z jejich součástí

9. T r a n s f o r m a c e n á h o d n é v e l i č i n y

SOUŘADNICE BODU, VZDÁLENOST BODŮ

10 Funkce více proměnných

11. přednáška 10. prosince Kapitola 3. Úvod do teorie diferenciálních rovnic. Obyčejná diferenciální rovnice řádu n (ODR řádu n) je vztah

Hledání kořenů rovnic jedné reálné proměnné metoda půlení intervalů Michal Čihák 23. října 2012

Dnešní látka Opakování: normy vektorů a matic, podmíněnost matic Jacobiova iterační metoda Gaussova-Seidelova iterační metoda

Řešení nelineárních rovnic

4EK213 LINEÁRNÍ MODELY

Soustavy nelineárních rovnic pomocí systému Maple. Newtonova metoda.

Matematika pro informatiky

Numerické řešení soustav lineárních rovnic

Aproximace a interpolace

Numerické řešení soustav lineárních rovnic

9. T r a n s f o r m a c e n á h o d n é v e l i č i n y

řešeny numericky 6 Obyčejné diferenciální rovnice řešeny numericky

MATEMATIKA III. Olga Majlingová. Učební text pro prezenční studium. Předběžná verze

4EK213 LINEÁRNÍ MODELY

Aplikovaná numerická matematika - ANM

Hledání kořenů rovnic jedné reálné proměnné metoda sečen Michal Čihák 23. října 2012

Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech

Dnešní látka Variačně formulované okrajové úlohy zúplnění prostoru funkcí. Lineární zobrazení.

f(x) = arccotg x 2 x lim f(x). Určete všechny asymptoty grafu x 2 2 =

DRN: Kořeny funkce numericky

a se nazývá aritmetická právě tehdy, když existuje takové číslo d R

Globální extrémy. c ÚM FSI VUT v Brně. 10. ledna 2008

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

NUMERICKÉ METODY. Problematika num. řešení úloh, chyby, podmíněnost, stabilita algoritmů. Aproximace funkcí.

Numerické řešení nelineárních rovnic

Matematika 1 MA1. 1 Analytická geometrie v prostoru - základní pojmy. 4 Vzdálenosti. 12. přednáška ( ) Matematika 1 1 / 32

Téma je podrobně zpracováno ve skriptech [1], kapitola 6, strany

Transkript:

Numerické metody Doc. RNDr. Libor Čermák, CSc. RNDr. Rudolf Hlavička, CSc. Ústav matematiky Fakulta strojního inženýrství Vysoké učení technické v Brně 23. ledna 2006

Obsah Optimalizace Úvod 6 Optimalizace Úvod Jednorozměrná minimalizace Literatura

Úvod Optimalizační úlohy se zabývají výběrem nejlepších řešení z dané množiny možných řešení. Matematicky můžeme optimalizační úlohu formulovat jako nalezení prvku x M takového, že pro libovolný prvek x M platí f (x ) f (x) x M, (6.1) kde f : M R je minimalizovaná (někdy se také říká účelová nebo cílová nebo kriteriální) funkce a M je množina přípustných řešení. Jestliže přípustným řešením může být každý bod x = (x 1, x 2,..., x n ) T n-rozměrného Euklidova prostoru R n, tj. M = R n, hovoříme o nepodmíněné optimalizaci. O funkci f budeme předpokládat, že je spojitá (případně i se svými prvními a dalšími derivacemi).

Úvod Optimalizační úloha (6.1) se nazývá úlohou globální optimalizace. My se v této kapitole omezíme na jednodušší úlohu lokální optimalizace spočívající v nalezení lokálního minima, tj. prvku x M takového, že pro libovolný prvek x M platí f (x ) f (x), x M O(x ), (6.2) kde O(x ) je nějaké okoĺı bodu x. Podrobněji si všimneme dvou speciálních úloh: v odstavci 5 se seznámíme s metodami pro minimalizaci funkce jedné proměnné na intervalu a, b a v odstavci 20 se budeme věnovat metodám nepodmíněné minimalizace funkce více proměnných. Poznámka. Určení maxima funkce g(x) můžeme převést na úlohu určení minima funkce f (x) = g(x).

Obsah Optimalizace Jednorozměrná minimalizace 6 Optimalizace Úvod Jednorozměrná minimalizace Literatura

Jednorozměrná minimalizace V tomto odstavci uvedeme metody pro přibližné určení bodu x lokálního minima funkce f (x) na intervalu a, b. Jestliže je funkce f na intervalu a, b unimodální, tj. když má v intervalu a, b jediné minimum, pak ho (dále uvedenými metodami přibližně) najdeme. Pokud však má funkce f na intervalu a, b více lokálních minim, najdeme jedno z nich (nemusí jít o minimum globální). Intervalovou bisekci použít nemůžeme: i když známe f (a), f (b) a f ((a + b)/2), nedokážeme rozhodnout, ve které polovině intervalu a, b minimum leží. Použít lze intervalovou trisekci. Necht h = (b a)/3, takže u = a + h a v = b h děĺı interval na tři stejné části. Předpokládejme, že f (u) < f (v). Pak minimum jistě leží vlevo od v, takže b nahradíme pomocí v. Tím se délka intervalu (obsahujícího minimum) zkrátí na dvě třetiny své původní délky. Bod u se však stane středem nového intervalu a nebude proto v dalším kroku využitelný. Funkci f tedy musíme vyhodnocovat v každém kroku dvakrát. To je neefektivní.

Jednorozměrná minimalizace Metoda zlatého řezu je založena na šikovnějším výběru dělicích bodů u a v. Necht h = ϱ(b a), kde ϱ je číslo o něco větší než 1/3, jehož přesnou hodnotu teprve určíme. Pak body u = a + h a v = b h děĺı interval a, b na tři nestejné části. V prvním kroku vyhodnotíme f (u) a f (v). Předpokládejme, že f (u) < f (v). Pak víme, že minimum je mezi a a v. Nahradíme b pomocí v a proces opakujeme. Když zvoĺıme správnou hodnotu ϱ, bod u bude ve správné pozici použitelné v příštím kroku. Po prvním kroku se tak funkce f bude vyhodnocovat v každém kroku už jen jednou. Jak tedy zvolit ϱ? Tak, aby bod u hrál v redukovaném intervalu a, v stejnou roli jako bod v v původním intervalu a, b, tj. aby poměr délky intervalu a, u k délce intervalu a, v byl stejný jako poměr délky intervalu a, v k délce intervalu a, b, u a v a = v a b a Vyhovující řešení je ϱ 1 ϱ = 1 ϱ 1 ϱ 2 3ϱ + 1 = 0. ϱ = (3 5)/2 0,382, kde τ = 1 ϱ = ( 5 1)/2 0,618 je číslo známé jako poměr zlatého řezu.

Jednorozměrná minimalizace a u v b ρ(b a) ρ(b a) (1 ρ)(b a) (1 ρ)(b a) Obr. 6.1: Zlatý řez Poznámka (O zlatém řezu). Říkáme, že bod děĺı interval v poměru zlatého řezu, když dva nově vzniklé subintervaly mají tuto vlastnost: poměr délky kratšího subintervalu k délce delšího subintervalu je stejný jako poměr délky delšího subintervalu k délce celého intervalu. Z výše uvedené konstrukce je zřejmé, že bod u (ale také bod v) děĺı interval a, b v poměru zlatého řezu. Přimeňme si, že s číslem τ jsme se setkali již v kapitole řešení nelineárních rovnic, kde jsme uvedli, že rychlost konvergence metody sečen p = 1 + τ =. 1,618.

Jednorozměrná minimalizace Zatím jsme předpokládali, že f (u) < f (v). V opačném případě, tj. když f (u) f (v), leží minimum v intervalu u, b, takže a nahradíme pomocí v. Snadno ověříme, že v redukovaném intervalu u, b bude mít v stejnou roli jako mělo u v původním intervalu a, b, takže hodnotu funkce f na redukovaném intervalu opět stačí počítat jen jednou. Délka redukovaného intervalu je τ-krát menší než délka původního intervalu. Z výchozího intervalu a 0, b 0 = a, b tak postupně sestrojíme intervaly a 1, b 1 a 2, b 2..., které obsahují minimum a jejichž délka je v každém kroku redukována faktorem τ. Na výchozím intervalu a 0, b 0 určíme u 0 = a + ϱ(b a), v 0 = b ϱ(b a) a vypočteme f (u 0 ), f (v 0 ). Interval a k+1, b k+1, k = 0, 1,..., dostaneme pomocí a k, b k, u k, v k a již dříve vypočtených hodnot f (u k ), f (v k ) takto:

Jednorozměrná minimalizace 1) když f (u k ) < f (v k ), pak a k+1 := a k, b k+1 := v k, v k+1 := u k, u k+1 := a k+1 + ϱ(b k+1 a k+1 ) a vypočteme f (u k+1 ); 2) v opačném případě, tj. když f (u k ) f (v k ), provedeme a k+1 := u k, b k+1 := b k, u k+1 := v k, v k+1 := b k+1 ϱ(b k+1 a k+1 ) a vypočteme f (v k+1 ). a k u k v k b k a k u k v k b k a k+1 b k+1 a k+1 b k+1 Obr. 6.2: Metoda zlatého řezu

Jednorozměrná minimalizace Po k krocích leží minimum v intervalu I k := a k, b k délky I k = b k a k = τ(b k 1 a k 1 ) = = τ k (b 0 a 0 ). Střed x k+1 intervalu a k, b k aproximuje minimum x s chybou x k+1 x 1 2 (b k a k ) = 1 2 τ k (b 0 a 0 ). (6.3) Pro k zřejmě I k 0 a x k x. Konvergence metody zlatého řezu je poměrně pomalá. Proto je v bĺızkosti minima účelné přejít na rychleji konvergentní metodu. Jednou z možností je metoda kvadratické interpolace, s níž se také seznámíme. Předtím ale

Jednorozměrná minimalizace Příklad 6.1. Metodou zlatého řezu určíme minimum funkce f (x) = x 4 3x 3 + x + 7. Jako počáteční zvoĺıme interval a 0, b 0 = 1, 3. Výpočet provedeme s přesností ε = 10 3, tj. když b k a k < 2ε, položíme x k+1 = (a k + b k )/2. Výpočet je zaznamenán v následující tabulce. Podtržením jsou vyznačeny ty vnitřní body, v nichž se počítá hodnota účelové funkce. k a k u k v k b k f (u k ) f (v k ) 0 1,0000 1,7639 2,2361 3,0000 1,979900 0,695048 1 1,7639 2,2361 2,5279 3,0000 0,695048 < 1,901312 2 1,7639 2,0557 2,2361 2,5279 0,852324 0,695048 3 2,0557 2,2361 2,3475 2,5279 0,695048 < 0,906510 4 2,0557 2,1672 2,2361 2,3475 0,690296 < 0,695048 5 2,0557 2,1246 2,1672 2,2361 0,729249 0,690296. 14 2,1973 2,1982 2,1988 2,1997 0,681572 < 0,681575 15 2,1973 2,1988

Jednorozměrná minimalizace Požadovaná přesnost je dosažena pro k = 15, takže (po zaokrouhlení na 3. desetinné cifry) x 16 = 2,198. Hodnota účelové funkce se počítá celkem 16-krát. Protože přesná hodnota x. = 2,198266, má x16 všechny cifry platné.

Jednorozměrná minimalizace Metoda kvadratické interpolace. Předpokládejme, že minimum leží v intervalu a k, b k, a že v nějakém jeho vnitřním bodě c k hodnota funkce f nepřesáhne hodnoty f (a k ), f (b k ) v krajních bodech a k, b k, tj. že pro a k < c k < b k platí f (c k ) min{f (a k ); f (b k )}. (6.4) Body [a k, f (a k )], [c k, f (c k )] a [b k, f (b k )] proložíme parabolu P 2 (x) (kvadratický interpolační polynom) a bod x k+1 jejího minima považujeme za další aproximaci x. Vzorec pro výpočet x k+1 dostaneme řešením lineární rovnice P 2 (x k+1) = 0. Dá se ukázat, že x k+1 = c k 1 (c k a k ) 2 [f (c k ) f (b k )] (c k b k ) 2 [f (c k ) f (a k )]. (6.5) 2 (c k a k )[f (c k ) f (b k )] (c k b k )[f (c k ) f (a k )] Z (6.4) plyne, že x k+1 (a k, b k ). Když náhodou x k+1 = c k, vložíme do x k+1 jiný vnitřní bod intervalu a k, b k. S tímto slabým místem metody kvadratické interpolace (a s dalšími, zde nezmíněnými nedostatky) se úspěšně vyrovnává Brentova metoda. Stručná zmínka o ní je uvedena v následujícím textu.

Jednorozměrná minimalizace Z bodů a k, b k, c k a x k+1 pak vybereme nový interval (a k+1, b k+1 ) obsahující minimum a bod c k+1 splňující podmínku (6.4), tentokrát pro index k + 1. Postupujeme podle následujících pravidel: A : x k+1 < c k a f (x k+1 ) < f (c k ) = a k+1 = a k, c k+1 = x k+1, b k+1 = c k, B : x k+1 < c k a f (x k+1 ) f (c k ) = a k+1 = x k+1, c k+1 = c k, b k+1 = b k, C : c k < x k+1 a f (c k ) < f (x k+1 ) = a k+1 = a k, c k+1 = c k, b k+1 = x k+1, D : c k < x k+1 a f (c k ) f (x k+1 ) = a k+1 = c k, c k+1 = x k+1, b k+1 = b k.

Jednorozměrná minimalizace A B a k x k+1 c k b k a k x k+1 c k b k a k+1 c k+1 b k+1 a k+1 c k+1 b k+1 C D a k c k x k+1 b k a k c k x k+1 b k a k+1 c k+1 b k+1 a k+1 c k+1 b k+1 Obr. 6.3: Metoda kvadratické interpolace

Jednorozměrná minimalizace Výpočet ukončíme a x k+1 považujeme za dostatečně dobrou aproximaci minima x, když je splněno některé ze stop kriteríı x k+1 x k < ε, x k+1 x k < ε x k, f (x k ) f (x k+1 ) < ε, f (x k ) f (x k+1 ) < ε f (x k ), kde ε je předepsaná tolerance. Výpočet x k+1, k = 0, 1,..., vyžaduje k + 4 vyhodnocení účelové funkce: f (a 0 ), f (c 0 ), f (b 0 ) a dále f (x i ), i = 0, 1,..., k. Pokud metoda kvadratické interpolace konverguje, pak je rychlost její konvergence superlineární řádu p 1,324, viz [Heath].

Jednorozměrná minimalizace Příklad 6.2. Minimum funkce f (x) = x 4 3x 3 + x + 7 určíme metodou kvadratické interpolace. Výpočet ukončíme, když x k+1 x k < 10 5. Výpočet je zaznamenán v následující tabulce. V posledním sloupci je uvedeno, který z případů A,B,C,D nastává, a podtržením a 0 = 2,000000 x 1 = 2,204918 < c 0 = 2,500000 b 0 = 3,000000 f (x 1) < f (c 0) a 1 = 2,000000 x 2 = 2,180689 < c 1 = 2,204918 b 1 = 2,500000 f (x 2) f (c 1) a 2 = 2,180689 x 3 = 2,197322 < c 2 = 2,204918 b 2 = 2,500000 f (x 3) < f (c 2) a 3 = 2,180689 c 3 = 2,197322 < x 4 = 2,198232 b 3 = 2,204918 f (c 3) f (x 4) a 4 = 2,197322 c 4 = 2,198232 < x 5 = 2,198264 b 4 = 2,204918 f (c 4) f (x 5) a 5 = 2,198232 c 5 = 2,198264 < x 6 = 2,198265 b 5 = 2,204918 jsou (postupně zleva doprava) vyznačeny body a k+1 < c k+1 < b k+1, viz následující řádek. Z tabulky je zřejmé, že požadovaná přesnost byla dosažena pro. = 2,19827 (všechny cifry jsou platné). Hodnota účelové funkce se počítá x 6 celkem 9-krát.

Jednorozměrná minimalizace Brentova metoda je kombinovaná metoda, která v sobě spojuje spolehlivost metody zlatého řezu a rychlou konvergenci metody kvadratické interpolace. Popis Brentovy metody lze najít např. v [Numerical Recipes], viz funkce brent, nebo v [Moler], viz funkce fmintx. Brentův algoritmus je také základem funkce fminbnd pro jednorozměrnou minimalizaci v MATLABu.

Obsah Optimalizace 6 Optimalizace Úvod Jednorozměrná minimalizace Literatura

Nelderova-Meadova metoda známá také jako metoda simplexů je populární metoda nepoužívající derivace účelové funkce. Patří mezi tzv. komparativní metody, což jsou metody, které hledají minimum účelové funkce f porovnáváním jejích hodnot v určitých vybraných bodech prostoru R n. V případě metody simplexů jsou vybranými body vrcholy simplexu (pro n = 2 trojúhelníka, pro n = 3 čtyřstěnu). Hlavní myšlenka jednoho kroku metody je jednoduchá: mezi vrcholy x 0, x 1,..., x n simplexu vybereme nejhorší vrchol x w (v angličtině worst ), v němž účelová funkce nabývá největší hodnotu, a nahradíme ho lepším vrcholem ˆx, v němž je hodnota účelové funkce menší. Vrchol ˆx hledáme na polopřímce, která vychází z nejhoršího vrcholu x w a prochází těžištěm x zbývajících vrcholů. Nejlepší z nich označíme x b (v angličtině best ), tj. x b je ten z vrcholů x 0, x 1,..., x n, v němž účelová funkce nabývá nejmenší hodnotu. První pokus, jak vybrat ˆx, označujeme jako reflexi: bod x r = x + ( x x w ), je obraz bodu x w ve středové souměrnosti se středem x. Když je f (x r ) < f (x b ), pak to znamená, že pokles hodnot na polopřímce x w x je značný, a proto zkusíme postoupit po této polopřímce ještě dál, do bodu x e = x + 2( x x w ). Výběr bodu x e bývá označován jako expanze. Když f (x e ) < f (x b ), pak ˆx = x e, tj. nejhorší vrchol x w nahradíme bodem x e.

Jestliže f (x e ) f (x b ), zkusíme použít alespoň bod x r. Podmínkou pro jeho zařazení do simplexu je splnění podmínky f (x r ) < f (x g ) pro některý vrchol x g jiný než nejhorší, tj. pro x g x w (index g připomíná anglické slůvko good ). Pokud taková podmínka platí, bereme ˆx = x r místo původního x w. Když nevyhovuje x e ani x r, zkusíme najít bod ˆx na úsečce s koncovými body x w, x r tak, aby f (ˆx) < min{f (x w ); f (x r )}. Konkrétně postupujeme takto: a) pokud f (x r ) < f (x w ), zkusíme bod x ce = 1 2 ( x + x r ) (leží bĺıže k bodu x r ), a když f (x ce ) < f (x r ), pak ˆx = x ce, takže provedeme x w := x ce. b) jestliže f (x r ) f (x w ), zkusíme bod x ci = 1 2 ( x + x w ) (leží bĺıže k bodu x w ), a pokud f (x ci ) < f (x w ), pak ˆx = x ci, tj. provedeme x w := x ci. Výběr bodu x ce resp. x ci označujeme jako kontrakci (v dolním indexu: písmeno c připomíná anglické slovo contraction, písmeno e anglické slovo external (x ce leží vně původního simplexu) a písmeno i připomíná anglické slovo internal (x ci leží uvnitř původního simplexu)). Když nevyhovuje x e, x r, x ce ani x ci, usoudíme, že vrchol x b, v němž účelová funkce nabývá své nejmenší hodnoty, je bĺızko minima. Proto provedeme redukci simplexu: vrchol x b v simplexu zůstane a zbývající vrcholy x i se posunou do středů úseček x b x i. Simplex se tedy stáhne k nejlepšímu vrcholu x b.

Transformaci simplexu, představující jeden krok Nelderovy Meadovy metody, popíšeme v pěti bodech takto: 1) expanze : f (x r ) < f (x b ) a navíc f (x e ) < f (x b ) = x w := x e 2) reflexe : f (x r ) < f (x g ) pro nějaký vrchol x g x w = x w := x r 3) vnější kontrakce : f (x r ) < f (x w ) a navíc f (x ce ) < f (x r ) = x w := x ce 4) vnitřní kontrakce : f (x r ) f (x w ) a navíc f (x ci ) < f (x w ) = x w := x ci 5) redukce : x i := 1 2 (x b + x i ) pro všechna x i x b

x e 0) x g x r x g 1) 2) 3) x ce 4) 5) x ci x b x w x b x w 4 5 2 6 7 8 3 1 Obr. 6.4: Nelderova-Meadova metoda: 0) originální trojúhelník, 1) expanze, 2) reflexe, 3) vnější kontrakce, 4) vnitřní kontrakce, 5) redukce

Body 1 až 5 procházíme postupně shora dolů. Když některá z podmínek v bodech 1 až 4 není splněna, přejdeme na následující bod. Když splněna je, provedeme náhradu x w podle příkazu za šipkou a transformace je hotova. Není-li splněna podmínka v žádném z bodů 1 až 4, provedeme redukci podle bodu 5. Na začátku výpočtu je dána počáteční aproximace x 0 = (x (0) 1, x (0) 2,..., x n (0) ) T a malé číslo δ. Další vrcholy x i startovacího simplexu odvodíme z vrcholu x 0 tak, že k jeho i-té složce x (0) i přičteme číslo δ, tj. x i = (x (0) 1,..., x (0) i + δ,..., x n (0) ) T, i = 1, 2,..., n. Simplex opakovaně transformujeme. Výpočet ukončíme a vrchol x b považujeme za dostatečně dobrou aproximaci minima x, pokud jsou vrcholy simplexu navzájem dosti bĺızko a funkční hodnoty v nich se málo liší, tj. když pro zadané tolerance ε 1, ε 2 platí x i x b < ε 1 a současně f (x i ) f (x b ) < ε 2 pro každý vrchol x i x b. (6.6)

Nelderova-Meadova metoda je heuristická metoda (heuristický nebo-li objevovací je takový postup, který je založen nejenom na logickém uvažování a zkušenostech, ale také na pozorování a experimentování). Metoda je vhodná pro minimalizaci funkcí menšího počtu proměnných, řekněme pro n 10. Přestože o konvergenci metody je toho známo jen velmi málo, praxe hovoří v její prospěch: metoda je až překvapivě úspěšná. Proto je považována za metodu spolehlivou nebo-li robustní. Podstatnou nevýhodou metody je to, že je pomalá, zejména v bĺızkosti minima. Další mínus představuje velký objem výpočtů. Přesto nejde o mrtvou metodu, což je zřejmé např. z toho, že je implementována jako základní metoda vícerozměrné minimalizace v programu fminsearch jádra MATLABu.

Příklad 6.3. Funkce f (x, y) = 70 [(x 2) 4 + (x 2y) 2 ] nabývá minima pro x = 2, y = 1. Výpočet provedeme metodou Neldera-Meada, v níž zvoĺıme x 0 = (2, 1; 0, 7) T a δ = 0,1. Výpočty jsou prováděny přesně, do tabulky 6.1 však (kvůli úspoře místa) zapisujeme hodnoty zaokrouhlené na dvě desetinná místa. Pro každý bod zapisujeme ve sloupci pod sebou x-ovou souřadnici, y-ovou souřadnici a funkční hodnotu. V rámečku uvádíme nově určený lepší bod ˆx (a funkční hodnotu v něm). Pro ε 1 = 10 4 a ε 2 = 10 8 výpočet končí po 47 krocích a x b. = (1,999953; 0,999976) T.

krok typ x w x g x b x x r x e x ce x ci 1 expanze 2,20 0,70 44,91 2,10 0,70 34,31 2,10 0,80 17,51 2,10 0,75 2,00 0,80 11,20 1,90 0,85 2,81 2 reflexe 2,10 0,70 34,31 2,10 0,80 17,51 1,90 0,85 2,81 2,00 0,82 1,90 0,95 0,01 1,80 1,08 8,69 3 vnější kontrakce 2,10 0,80 17,51 1,90 0,85 2,81 1,90 0,95 0,01 1,90 0,90 1,70 1,00 6,87 1,80 0,95 0,81 4 vnitřní kontrakce 1,90 0,85 2,81 1,80 0,95 0,81 1,90 0,95 0,01 1,85 0,95 1,80 1,05 6,41 1,88 0,90 0,41 Tabulka 6.1: Příklad 6.3

Metoda největšího spádu je základní minimalizační metoda, která používá derivace účelové funkce. Takové metody se nazývají gradientní. Začneme tím, že si vysvětĺıme obecný princip spádové metody. Předpokládejme tedy, že jsme v bodu x k a chceme se dostat bĺıže k minimu. Zvoĺıme směr d k, v němž funkce f klesá, a na polopřímce x k + λd k, λ 0, vybereme bod x k+1 = x k + λ k d k, (6.7) v němž f (x k+1 ) < f (x k ). Směrový vektor d k nazýváme spádový (ve směru d k hodnota účelové funkce f padá dolů ), odtud spádová metoda. Číslo λ k se nazývá parametr délky kroku (je-li d k jednotkový vektor, tj. když d k 2 = 1, pak λ k = x k+1 x k 2 je vzdálenost bodů x k a x k+1, tj. λ k je délka kroku). λ k dostaneme minimalizací funkce ϕ(λ) = f (x k + λd k ) pro λ 0. Minimum λ k funkce ϕ(λ) určíme přibližně pomocí několika málo kroků vhodné metody jednorozměrné minimalizace (přesná minimalizace je zbytečný přepych, nebot prostřednictvím λ k určujeme jen mezivýsledek x k+1 na cestě k minimu x ). Určení λ k tedy vyjádříme zápisem λ k min λ>0 ϕ(λ), kde ϕ(λ) = f (x k + λd k ). (6.8)

x 1 x 3 x 2 x 0 Obr. 6.5: Princip spádových metod

Nyní se věnujme už vlastní metodě největšího spádu. Je známo, že funkce f (x) nejrychleji klesá ve směru záporného gradientu. Označíme-li tedy gradient jako ( f (x) g(x) f (x) =, x 1 f (x),..., x 2 pak v metodě největšího spádu voĺıme jako spádový vektor ) T f (x), x n d k = g(x k ). (6.9) Výpočet ukončíme a x k+1 považujeme za uspokojivou aproximaci minima x, když g(x k+1 ) < ε, (6.10) kde ε je předepsaná tolerance (připomeňme, že v minimu g(x ) = o). V počáteční fázi výpočtu, když jsme od minima ještě dosti daleko, dochází obvykle k poměrně rychlému poklesu hodnot účelové funkce. Zato v bĺızkosti minima je konvergence pomalá, jen lineární, tj. platí x k+1 x C x k x, kde konstanta C je sice menší než jedna, ale často jen nepatrně.

Cik-cak efekt. Pokud λ k vypočteme přesně, má funkce ϕ(λ) v bodě λ k minimum, a proto 0 = ϕ (λ k ) = n i=1 f (x k+1 ) d (k) i = x i n i=1 d (k+1) i d (k) i = d T k+1d k, tj. směrové vektory d k+1 a d k jsou navzájem kolmé. Ukážeme si, že právě tato vlastnost může být příčinou velmi pomalé konvergence.

Pro jednoduchost předpokládejme, že minimalizujeme funkci dvou proměnných. V tom případě si můžeme vypomoci jednoduchou představou: nacházíme se v terénu a chceme najít nejnižší bod, tj. dno nějaké prohlubně. Předpokládejme, že prohlubeň má tvar podlouhlé zahnuté rokle. Metoda největšího spádu nás nasměruje z počátečního stanoviště x 0 dolů kolmo k vrstevnici f (x) = f (x 0 ). Sestupujeme tak dlouho, dokud terén klesá. V nejnižším místě je další stanoviště x 1. Zde se zastavíme, otočíme se o 90 stupňů a sestupujeme znovu dolů (kolmo k vrstevnici f (x) = f (x 1 )) do dalšího stanoviště x 2 atd. Je zřejmé, že vzdálenosti mezi jednotlivými stanovišti se budou postupně zkracovat. V bĺızkosti minima bude naše putování působit směšně: místo abychom do něj došli několika málo kroky, budeme se k němu spíše pĺıžit než bĺıžit po trase tvořené čím dál tím kratšími navzájem kolmými úseky. Tento jev bývá označován jako cik-cak efekt. V takovém extrémním případě metoda největšího spádu selhává, nebot počet kroků potřebný k dosažení přijatelné aproximace minima je neúnosně velký. Obdobná situace nastane i v případě, když jednorozměrnou minimalizaci provádíme jen přibližně.

0.2 0.15 0.1 0.05 0 0.05 0.1 0.1 0 0.1 0.2 0.3 0.4 0.5 Obr. 6.6: Cik-cak efekt

Příklad 6.4. Funkci f (x, y) = x 2 + 2y 2 + xy x minimalizujeme metodou největšího spádu. Jako počáteční aproximaci zvoĺıme x 0 = 1, y 0 = 2. Podrobně provedeme první dva kroky. Nejdříve určíme Pro x 0 = g(x, y) = ( ) 1 2 ( ) 2x + y 1 x + 4y tak dostaneme d 0 = Funkce ϕ(λ) je tedy tvaru a odtud d(x, y) = ( ) 2x y + 1. x 4y ( ) ( ) 3 1 3λ0, takže x 9 1 = x 0 + λ 0 d 0 =. 2 9λ 0 ϕ(λ) = f (x 0 + λd 0 ) = (1 3λ) 2 + 2(2 9λ) 2 + (1 3λ)(2 9λ) (1 3λ) = = 198λ 2 90λ + 10. Minimalizaci funkce ϕ(λ) umíme provést přesně: z podmínky ϕ (λ 0 ) = 396λ 0 90 = 0 dostaneme λ 0 = 5 ( ) 22, takže 1 3 5/22 x 1 = = 1 ( ) ( ) 7.= 0,318. 2 9 5/22 22 1 0,045

Další krok provádíme podobně. Nejdříve určíme d 1 a pak zapíšeme hledaný tvar pro x 2 : ( ) 2 7/22 ( 1/22) + 1 d 1 = = 1 ( ) 9, x 7/22 4 ( 1/22) 22 3 2 = x 1 +λ 1 d 1 = 1 ( ) 7 + 9λ1 22 1 3λ 1 Odtud pro ϕ(λ) = f (x 1 + λd 1 ) po úpravě dostaneme ϕ(λ) = 1 22 2 (72λ2 90λ 110) a z podmínky ϕ (λ 1 ) = 0 máme λ 1 = 5 8. Dosazením za λ 1 do x 2 nakonec obdržíme x 2 = 1 ( 101 176 23 ).= ( 0,574 0,131 V tomto ilustračním příkladu metoda největšího spádu rychle konverguje k přesnému řešení x = 4/7, y = 1/7: už hodnoty x 6, y 6 jsou na 6 desetinných míst přesné. ).

Poznámka (O spádových metodách pro řešení soustav lineárních rovnic). Když A je pozitivně definitní matice, pak pro funkci f(x) = 1 2 xt Ax x T b je g(x) = Ax b a g (x) = A, takže jediné minimum x funkce f(x) je řešením soustavy lineárních rovnic Ax = b. Pro spádový vektor d k počítáme x k+1 = x k + λ k d k, přičemž délku λ k kroku vyjádříme z podmínky 0=ϕ (λ k ) = d dλ f (x k + λd k ) λ=λk = d T k Ad kλ k d T k r k, kde r k = b Ax k. (Ověřte!) Tak dostaneme metodu: x 0 dáno, r 0 = b Ax 0, pro k = 0, 1,... počítáme v = Ad k, λ k = dt k r k d T k v, x k+1 = x k + λ k d k, r k+1 = r k λ k v. (6.11) (Vzorec pro r k+1 obdržíme tak, že do r k+1 = b Ax k+1 dosadíme x k+1 = x k + λ k d k.) Výpočet ukončíme, když je reziduum r k dostatečně malé, tj. když r k+1 < ε. V metodě největšího spádu d k = g (x k ) = r k. V praxi se však tato metoda nepoužívá, nebot obvykle konverguje příliš pomalu. Existuje lepší volba: zvoĺıme-li d 0 = r 0, a počítáme-li d k+1 pro k > 0 ze vzorce d k+1 = r k+1 + β k d k, v němž β k = (r T k+1 r k+1)/(r T k r k), dostaneme metodu sdružených gradientů, která konverguje podstatně rychleji, viz [Meurant], [Stoer, Bulirsch], [Heath].

Newtonova metoda je gradientní metoda, která se pokouší najít minimum jako řešení x soustavy nelineárních rovnic g(x) = o Newtonovou metodou. Takovým řešením ale může být každý stacionární bod funkce f (bod x, ve kterém pro funkci f platí f (x ) = 0, se nazývá stacionární bod funkce f ), tedy také maximum nebo sedlový bod (obdoba inflexního bodu pro funkci jedné proměnné). Budeme tedy potřebovat Jacobiovu matici 2 f (x) x1 2 2 f (x) g (x) H(x) = x 2 x 1. 2 f (x) x n x 1 2 f (x) x 1 x 2... 2 f (x) x 2 2.... 2 f (x) x n x 2... která se v tomto případě nazývá Hessova matice funkce f. 2 f (x) x 1 x n 2 f (x) x 2 x n. 2 f (x) x 2 n,

Výpočet provádíme podle vzorců z kapitoly řešení nelineárních rovnic, tj. najdeme řešení d k lineární soustavy rovnic H(x k ) d k = g(x k ) a pak určíme x k+1 = x k + d k. (6.12) Všimněte si, že vzorec (6.12) pro x k+1 je formálně stejný jako vzorec (6.7), když v něm λ k = 1. Pro ukončení výpočtu použijeme stop kritérium (6.10). Směrový vektor d k = H 1 (x k )g(x k ) (6.13) obecně není spádový. Dá se však ukázat, že v bĺızkosti minima vektor d k spádový je.

Z kapitoly řešení nelineárních rovnic už víme, že Newtonova metoda konverguje, když je počáteční aproximace x 0 dostatečně bĺızko řešení x, a že v tom případě je konvergence rychlá, totiž kvadratická. Na druhé straně, když x 0 není dosti bĺızko x, Newtonova metoda vůbec konvergovat nemusí. Proto se nabízí možnost začít výpočet metodou největšího spádu a dokončit ho Newtonovou metodou. Tento poznatek je východiskem pro odvození řady efektivních metod. Mezi takové patří například Kvazinewtonovské metody. Výpočet probíhá podobně jako v metodě největšího spádu. Směrový vektor d k je však tvaru d k = B k g(x k ). Matice B k se vybírají tak, aby vektor d k byl spádový. Pro k = 0 je přitom B 0 = I jednotková matice, takže d 0 = g(x 0 ) je směr metody největšího spádu. Čím víc se x k bĺıží minimu, tím je B k lepší aproximací H 1 (x k ), takže d k se bĺıží směrovému vektoru H 1 (x k )g(x k ) Newtonovy metody. To je jen velmi hrubý popis, detaily viz např. [Nocedal], [Stoer, Bulirsch].

Příklad 6.5. Pro testování kvality minimalizačních metod se používá mezi jinými také tzv. banánová funkce f (x, y) = 100(y x 2 ) 2 + (1 x) 2. Průběh funkce f navozuje představu hluboké rokle se strmými stěnami, jejíž zakřivené dno o rovnici y = x 2 (vzdáleně připomínající banán) se jen velmi mírně svažuje k minimu v bodě x = y = 1. Minimum hledejme Newtonovou metodou, tj. soustavu rovnic f (x, y) x = 400x(y x 2 ) 2(1 x) = 0, f (x, y) y = 200(y x 2 ) = 0 řešíme Newtonovou metodou: v každém kroku vypočteme a k, b k ze soustavy rovnic ( ) ( ) ( 1200x 2 k 400y k + 2 400x k ak 400xk (y k xk 2 = ) + 2(1 x ) k) 400x k 200 200(y k xk 2) a potom určíme další aproximaci b k x k+1 = x k + a k, y k+1 = y k + b k.

Pro numerický experiment jsme zvolili počáteční aproximaci x 0 = 3, y 0 = 2. Výpočet potvrdil velmi rychlou konvergenci Newtonovy metody, nebot už v pátém kroku jsme dostali aproximaci, která měla 16 platných cifer. To je skvělé! Pro srovnání jsme tutéž úlohu řešili také metodou největšího spádu. Jednorozměrnou minimalizaci (6.8) jsme provedli přibližně metodou zlatého řezu na intervalu 0, 1 s přesností 10 4. Pro ε = 10 3 byla podmínka (6.10) splněna až pro k = 1324, kdy jsme dostali aproximaci (1,001; 1,001) T. To je neuspokojivé. To metoda Neldera-Meada si vedla lépe. Pro výpočet jsme vybrali parametry δ = 0,2, ε 1 = 10 2 a ε 2 = 10 4. Podmínka (6.6) byla splněna po 57 krocích, kdy jsme dostali aproximaci (1,001; 1,001) T. To je přijatelné. Poznámka. Řešení x soustavy n nelineárních rovnic f(x) = o můžeme získat jako bod, v němž funkce h(x) = n i=1 [f i(x)] 2 (tj. součet čtverců reziduíı) nabývá svého globálního minima (nebot 0 = h(x ) = min x R n h(x), právě když f(x ) = o). Minimalizaci h(x) lze provádět pomocí algoritmů pro řešení nelineární úlohy nejmenších čtverců, viz např. [Nocedal].

Obsah Optimalizace Literatura 6 Optimalizace Úvod Jednorozměrná minimalizace Literatura

Literatura I.S. Berezin, N.P. Židkov: Čislennyje metody I,II, Nauka, Moskva, 1962. G. Dahlquist, G. Å Bjőrk: Numerical Methods, Prentice-Hall, Englewood Cliffs, NJ, 1974. M. Fiedler: Speciální matice a jejich použití v numerické matematice, SNTL, Praha, 1981. D. Hanselman, B. Littlefield: Mastering MATLAB 7, Pearson Prentice Hall, Upper Saddle River, NJ, 2005. G. Hämmerlin, K. H. Hoffmann: Numerical Mathematics, Springer-Verlag, Berlin, 1991. M. T. Heath: Scientific Computing. An Introductory Survey, McGraw-Hill, New York, 2002. I. Horová, J. Zelinka: Numerické metody, učební text Masarykovy univerzity, Brno, 2004. J. Kobza: Splajny, učební text Palackého univerzity, Olomouc, 1993. J. Klapka, J. Dvořák, P. Popela: Metody operačního výzkumu, učební text, FSI VUT Brno, 2001.

Literatura J. H. Mathews, K. D. Fink: Numerical Methods Using MATLAB, Pearson Prentice Hall, New Jersey, 2004. MATLAB: Mathematics, Version 7, The MathWorks, Inc., Natick, 2004. G. Meurant: Computer Solution of Large Linear Systems, Elsevier, Amsterodam, 1999. S. Míka: Numerické metody algebry, SNTL, Praha, 1985.. C. B. Moler: Numerical Computing with MATLAB, Siam, Philadelphia, 2004. http://www.mathworks.com/moler. J. Nocedal, S. J. Wright: Numerical Optimization, Springer Series in Operations Research, Springer, Berlin, 1999. A. Quarteroni, R. Sacco, F. Saleri: Numerical Mathematics, Springer, Berlin, 2000. W. H. Press, B. P. Flannery, S. A. Teukolsky, W. T. Vetterling: Numerical Recipes in Pascal, The Art of Scientific Computing, Cambridge University Press, Cambridge, 1990.

Literatura P. Přikryl: Numerické metody matematické analýzy, SNTL, Praha, 1985. A. R. Ralston: Základy numerické matematiky, Academia, Praha, 1973. K. Rektorys: Přehled užité matematiky I,II, Prometheus, Praha, 1995. J. Stoer, R. Bulirsch: Introduction to Numerical Analysis, Springer-Verlag, New York, 1993. E. Vitásek: Numerické metody, SNTL, Praha, 1987. W. Y. Yang, W. Cao, T. S. Chung, J. Morris: Applied Numerical Methods Using Matlab, John Willey & Sons, New Jersey, 2005.