Metody optimalizace (1.2 MB) - Matematika pro inženýry 21. stoletà ...
Metody optimalizace (1.2 MB) - Matematika pro inženýry 21. stoletà ...
Metody optimalizace (1.2 MB) - Matematika pro inženýry 21. stoletà ...
- No tags were found...
Transform your PDFs into Flipbooks and boost your revenue!
Leverage SEO-optimized Flipbooks, powerful backlinks, and multimedia content to professionally showcase your products and significantly increase your reach.
METODY OPTIMALIZACEZDENĚK DOSTÁL,PETR BEREMLIJSKIText byl vytvořen v rámci realizace <strong>pro</strong>jektu <strong>Matematika</strong> <strong>pro</strong> inženýry<strong>21.</strong> století (reg. č. CZ.1.07/2.2.00/07.0332), na kterém se společně podílelaVysoká škola báňská – Technická univerzita Ostrava a Západočeskáuniverzita v Plzni
Zdeněk Dostál, Petr Beremlijski<strong>Metody</strong> <strong>optimalizace</strong>c○ Zdeněk Dostál, Petr Beremlijski, 2012
PředmluvaUčební text, který dostáváte do rukou, byl připraven na základě zkušeností z vedenípřednášek a cvičení různých variant předmětu <strong>Metody</strong> <strong>optimalizace</strong>, který garantujeKatedra aplikované matematiky od svého vzniku <strong>pro</strong> studenty inženýrských,magisterských i doktorských studijních <strong>pro</strong>gramů. I když podstatná část studentůpřicházela ze studijních <strong>pro</strong>gramů Fakulty informatiky a elektrotechniky, řada studentůpřicházela i z jiných fakult, což se <strong>pro</strong>jevilo při výběru témat i metodikyzpracování. Text je <strong>pro</strong>to vhodný <strong>pro</strong> studenty nejrůznějšího zaměření, a zejména<strong>pro</strong> ty, kteří hodlají využít metody <strong>optimalizace</strong> v technické praxi.Úvod o díleNaším přáním je uvést čtenáře do základních metod řešení úloh „hladké“ či„téměř hladké“ <strong>optimalizace</strong>, t.j. metod hledání minima funkcí více <strong>pro</strong>měnných,které jsou všude nebo téměř všude (co je zde „téměř“ je specifikováno v textu) spojitéi s některými derivacemi, a to na množině, která je typicky popsána pomocí rovnostía nerovností. Optimalizační úlohy vznikají typicky při řešení praktických úloh,když chceme dosáhnout co nejlepšího výsledku v rámci našich možností. Ve výkladuse zaměřujeme na důležité speciální případy, zejména na konvexní <strong>pro</strong>gramování, <strong>pro</strong>které je teorie často poměrně jednoduchá a které jsou důležité <strong>pro</strong> pochopení řešenípraktických <strong>pro</strong>blémů. Snažíme se též rozlišovat, co je důležité <strong>pro</strong> pochopení teoriea co je skutečně důležité vědět <strong>pro</strong> řešení reálných úloh. Teorii zde chápeme jakonástroj <strong>pro</strong> výběr metod řešení konkrétních technických <strong>pro</strong>blémů, výběr software,ocenění správnosti a spolehlivosti řešení, a také jako nástroj <strong>pro</strong> studium dalšíchpředmětů. Například význam Karush-Kuhn-Tuckerových podmínek je ilustrován naodvození Snellova zákona. Při psaní textu jsme využili i našich zkušeností z řešenírozsáhlých optimalizačních úloh.Pro porozumění výkladu je potřebná znalost poznatků z lineární algebry, z diferenciálníhopočtu reálných funkcí jedné a více reálných <strong>pro</strong>měnných, numerickýchmetod a vhodná je též znalost základů práce s Matlabem. Podle našich zkušenostímůžeme před samotným čtením tohoto učebního textu studentům doporučit, aby seseznámili s texty [6], [10], [15] a [9]. Tento text byl inspirován z velké části knihou [5]a dále knihami [1], [12] a [14].iii
Autoři textu chtějí poděkovat Ondřeji Zjevíkovi za pečlivé přečtení textu a řaducenných připomínek.O textuNejdůležitější tvrzení jsou graficky zvýrazněna. Věty, definice a algoritmy jsou uvedenyv rámečku. Konce důkazů jsou vyznačeny prázdným čtverečkem ( ), konceřešení příkladů plným trojúhelníčkem (). Text byl vysázen pomocí sázecího systémuTEX ve formátu pdf L A TEX.O <strong>pro</strong>jektuText, který právě čtete, vznikl v rámci řešení <strong>pro</strong>jektu „<strong>Matematika</strong> <strong>pro</strong> inženýry <strong>21.</strong>století – inovace výuky matematiky na technických školách v nových podmínkáchrychle se vyvíjející informační a technické společnosti“. Projekt byl řešen na Vysokéškole báňské - Technické univerzitě v Ostravě a Západočeské univerzitě v Plzniv období 2009 – 2012.Hlavní motivací <strong>pro</strong>jektu je potřeba reagovat na změny významu jednotlivýchpartií matematiky při řešení praktických <strong>pro</strong>blémů, způsobenou zejména velkým pokrokemv matematickém modelování, dramatickým zlepšováním software a rychlýmzvyšováním výpočetních kapacit moderních počítačů. Inženýři nyní běžně využívajístále se vyvíjející komplikované softwarové <strong>pro</strong>dukty založené na matematických pojmech,se kterými se v kurzech matematiky buďto nesetkají vůbec nebo v nevhodnéformě. Na druhé straně prezentace některých pojmů v základních kurzech neodrážíz nejrůznějších důvodů potřeby odborných kateder. Bohužel tento stav ztěžuje studentůmaktivní používání získaných vědomostí v odborných předmětech i orientaciv rychle se vyvíjejících metodách inženýrské praxe.Cílem <strong>pro</strong>jektu je inovace matematických a některých odborných kurzů na technickýchvysokých školách s cílem získat zájem studentů, zvýšit efektivnost výuky,zpřístupnit prakticky aplikovatelné výsledky moderní matematiky a vytvořit předpoklady<strong>pro</strong> efektivní výuku inženýrských předmětů. Zkvalitnění výuky matematikybudoucích inženýrů chceme dosáhnout po stránce formální využitím nových informačníchtechnologií přípravy elektronických studijních materiálů a po stránce věcnépečlivým výběrem vyučované látky s důsledným využíváním zavedených pojmů v celémkurzu matematiky s <strong>pro</strong>myšlenou integrací moderního matematického aparátudo vybraných inženýrských předmětů. Metodiku výuky matematiky a její atraktivnost<strong>pro</strong> studenty chceme zlepšit důrazem na motivaci a důsledným používánímpostupu „od <strong>pro</strong>blému k řešení“.iv
V rámci <strong>pro</strong>jektu vytváříme 41 nových výukových materiálů z oblastí matematickéanalýzy, lineární algebry, numerických metod, metod <strong>optimalizace</strong>, diskrétnímatematiky, teorie grafů, statistiky a několika odborných kurzů. Všechnyhotové výukové materiály jsou volně k dispozici na webových stránkách <strong>pro</strong>jektuhttp://mi<strong>21.</strong>vsb.cz.V Ostravě 1. 4. 2012Zdeněk Dostál a Petr Beremlijskiv
ObsahPředmluvaiii1 Optimalizační úlohy 11.1 Úloha <strong>optimalizace</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<strong>1.2</strong> Klasifikace optimalizačních úloh . . . . . . . . . . . . . . . . . . . . . 42 Podmínky minima <strong>pro</strong> minimalizaci bez omezení 62.1 Taylorova věta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2 Podmínky minima kvadratické funkce . . . . . . . . . . . . . . . . . . 82.3 Podmínky lokálního minima diferencovatelné funkce . . . . . . . . . . 92.4 Konvexita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Minimalizace bez derivací 143.1 Bisekce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.2 Fibonacciovské dělení a zlatý řez . . . . . . . . . . . . . . . . . . . . 18Příklady k <strong>pro</strong>cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 <strong>Metody</strong> spádových směrů 224.1 Gradientní metoda <strong>pro</strong> kvadratickou funkci . . . . . . . . . . . . . . . 224.2 Gradientní metoda <strong>pro</strong> nelineární funkce (linesearch) . . . . . . . . . 254.3 A<strong>pro</strong>ximace gradientu pomocí konečných diferencí . . . . . . . . . . . 274.4 Ukončovací podmínky . . . . . . . . . . . . . . . . . . . . . . . . . . 28Příklady k <strong>pro</strong>cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 Metoda sdružených gradientů 315.1 Metoda sdružených směrů <strong>pro</strong> kvadratické funkce . . . . . . . . . . . 315.2 Metoda sdružených gradientů <strong>pro</strong> kvadratické funkce . . . . . . . . . 345.3 Rychlost konvergence . . . . . . . . . . . . . . . . . . . . . . . . . . . 385.4 Metoda sdružených gradientů <strong>pro</strong> nelineární funkce . . . . . . . . . . 39Příklady k <strong>pro</strong>cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 Newtonova metoda 426.1 Newtonova metoda . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426.2 Kvadratická rychlost konvergence . . . . . . . . . . . . . . . . . . . . 43vi
6.3 Newtonova metoda s modifikací Hessiánu . . . . . . . . . . . . . . . . 44Příklady k <strong>pro</strong>cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 Trust region 487.1 Penalizační lemma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497.2 Levenberg-Marquardtova implementace . . . . . . . . . . . . . . . . . 50Příklady k <strong>pro</strong>cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 <strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu - BFGS 538.1 Heuristické odvození základních myšlenek metody BFGS . . . . . . . 538.2 Minimalizační lemma . . . . . . . . . . . . . . . . . . . . . . . . . . . 548.3 Symetrická pozitivně definitní a<strong>pro</strong>ximace Hessiánu . . . . . . . . . . 558.4 Algoritmus BFGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58Příklady k <strong>pro</strong>cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 619.1 Geometrická ilustrace podmínky minima . . . . . . . . . . . . . . . . 619.2 Úloha kvadratického <strong>pro</strong>gramování s rovnostmi a Lagrangián . . . . . 629.3 Podmínky minima <strong>pro</strong> kvadratické <strong>pro</strong>gramování s rovnostmi . . . . . 649.4 Nutné podmínky <strong>pro</strong> úlohy nelineárního <strong>pro</strong>gramování . . . . . . . . 659.5 Odvození Snellova zákona lomu . . . . . . . . . . . . . . . . . . . . . 7110 <strong>Metody</strong> řešení úloh s rovnostmi 7410.1 Vnější penalta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7410.2 Metoda oboru hodnot <strong>pro</strong> kvadratické <strong>pro</strong>gramování . . . . . . . . . . 7610.3 Metoda nulového <strong>pro</strong>storu <strong>pro</strong> kvadratické <strong>pro</strong>gramování . . . . . . . 7710.4 <strong>Metody</strong> Uzawova typu . . . . . . . . . . . . . . . . . . . . . . . . . . 7710.5 SMALE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80Příklady k <strong>pro</strong>cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . 8111 Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 8211.1 Geometrická ilustrace podmínky minima . . . . . . . . . . . . . . . . 821<strong>1.2</strong> Úloha kvadratického <strong>pro</strong>gramování s nerovnostmi a Lagrangián . . . . 8311.3 Podmínky minima <strong>pro</strong> kvadratické <strong>pro</strong>gramování s nerovnostmi . . . 8611.4 Nutné podmínky <strong>pro</strong> úlohy nelineárního <strong>pro</strong>gramování . . . . . . . . 8711.5 Klasifikace omezení <strong>pro</strong> úlohy s omezeními ve tvaru rovností a nerovností. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9712 <strong>Metody</strong> řešení úloh s nerovnostmi 10112.1 Metoda vnitřního bodu - bariéry . . . . . . . . . . . . . . . . . . . . . 10112.2 Metoda aktivních (pracovních) množin - vnější penalta . . . . . . . . 10312.3 SMALBE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Příklady k <strong>pro</strong>cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . 104vii
13 Dualita v konvexním <strong>pro</strong>gramování 10613.1 Dualita <strong>pro</strong> kvadratické <strong>pro</strong>gramování s rovnostními vazbami . . . . . 10613.2 Dualita <strong>pro</strong> kvadratické <strong>pro</strong>gramování s nerovnostními vazbami . . . 10813.3 Vizualizační lemma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11114 Lineární <strong>pro</strong>gramování 11314.1 Formulace úlohy lineárního <strong>pro</strong>gramování . . . . . . . . . . . . . . . . 11314.2 Podmínky minima a dualita . . . . . . . . . . . . . . . . . . . . . . . 11414.3 Metoda vnitřního bodu . . . . . . . . . . . . . . . . . . . . . . . . . . 11514.4 Geometrie simplexové metody . . . . . . . . . . . . . . . . . . . . . . 11614.5 Konvexní hranice simplexu . . . . . . . . . . . . . . . . . . . . . . . . 11814.6 Krok simplexové metody . . . . . . . . . . . . . . . . . . . . . . . . . 12015 Úvod do metod nehladké <strong>optimalizace</strong> 12315.1 Základní pojmy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12315.2 Nepřímé metody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12915.3 Subgradientní metody . . . . . . . . . . . . . . . . . . . . . . . . . . 12915.4 Svazkové metody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13116 Úvod do metod globální <strong>optimalizace</strong> 13716.1 Nelder-Meadova metoda simplexů . . . . . . . . . . . . . . . . . . . . 137Literatura 141Rejstřík 143viii
1Kapitola 1Optimalizační úlohyV této úvodní kapitole se seznámíme především s formulací optimalizačních úloh,jejichž řešením se v tomto textu budeme zabývat. Ukážeme si některé příklady optimalizačníchúloh a <strong>pro</strong> obecnou orientaci čtenáře uvedeme i přehlednou klasifikacioptimalizačních úloh. Z historických důvodů se některé optimalizační úlohy nazývajítaké úlohy matematického <strong>pro</strong>gramování.1.1 Úloha <strong>optimalizace</strong>Optimalizační úlohy vznikají typicky při řešení praktických úloh, když chceme dosáhnoutco nejlepšího výsledku v rámci našich možností. Co je nejlepší posuzujemepomocí cenové funkce či cenového funkcionálu, což je v obecném případě zobrazeníf : D → R definované na množině D prvků vhodného vektorového <strong>pro</strong>storu. Extrémycenového funkcionálu často hledáme na přípustné množině Ω ⊆ D. Jelikožminimum funkce f je stejné jako maximum funkce −f, můžeme za obecnou úlohu<strong>optimalizace</strong> považovat bez újmy na obecnosti <strong>pro</strong>blém najít x ∈ Ω tak, aby platilof(x) ≦ f(x), x ∈ Ω. (1.1)Řešení <strong>pro</strong>blému (1.1) nazýváme také globální řešení .Příkladem takové optimalizační úlohy je třeba <strong>pro</strong>blém nalezení rovnovážné polohykuličky hmotnosti m zavěšené na pružině, která visí nad překážkou. Tento <strong>pro</strong>blémmůžeme vyjádřit jako minimalizaci funkce potenciální energie tohoto systému. Přípustnámnožina nám popisuje ne<strong>pro</strong>nikání kuličky do překážky. Tuto úlohu pakzapíšeme jako úlohu najít x ∈ Ω tak, aby platilof(x) ≦ f(x), x ∈ Ω, (<strong>1.2</strong>)kde f(x) = x 2 1 + x 2 2 + mx 2 a Ω = {x ∈ R 2 : x 1 + x 2 + 1 ≧ 0, −x 1 + x 2 + 3 ≧ 0}(viz obrázek 1.1).Odkazy na takto obecně formulované úlohy najdeme již ve starověku. Patří mezině i úloha, která je pojmenovaná podle princezny Dido z řecké mytologie. Didonina
2 Optimalizační úlohyx 2x 1mObr. 1.1: Rovnovážný stav kuličky na pružiněúloha se nazývá také isoperimetrický <strong>pro</strong>blém. Dido měla dostat pruh kůže z jednohovola s tím, ať si vybere pozemek, který se dá tímto pruhem omezit. Snaha získat conejvětší pozemek vede na <strong>pro</strong>blém najít spojitou křivku dané délky, která ohraničujenejvětší plochu. Přirozenou přípustnou množinu D zde tvoří množina hladkých uzavřenýchkřivek x : ⟨0, 1⟩ → R 2 dané délky, x(0) = x(1), které tvoří hranici jednodušesouvislé oblasti Ω x . Cenová funkce pak má tvarPro detaily viz obrázek <strong>1.2</strong>.∫︁f(x) = f(s)dΩ.Ω xxxObr. <strong>1.2</strong>: Didonina úlohaDidonina úloha je velmi specifickou úlohou variačního počtu, kdy neznámou hledámeve vhodném <strong>pro</strong>storu funkcí a řešení je možno najít analytickými metodami.Analyticky lze vyřešit i úlohu najít tvar (průběh vertikálního rozměru x(d)) nejlehčíhovetknutého nosníku obdélníkového průřezu a × x(d), zatíženého na volném
1.1 Úloha <strong>optimalizace</strong> 3konci (ve vzdálenosti d = l od vetknutí) osamělou silou F . Tuto úlohu zformulovala částečně vyřešil Galilei ve své knize Dvě nové nauky z roku 1638.V tomto textu se zaměříme na numerické metody řešení optimalizačních úlohdefinovaných na R n , kdy cenová funkce f je reálná funkce n <strong>pro</strong>měnných, kteráje spojitá i s některými derivacemi. V tomto případě nazýváme argumenty f takénávrhové <strong>pro</strong>měnné. Dále budeme předpokládat, že omezení na návrhové <strong>pro</strong>měnnéjsou určena přípustnou množinou Ω ⊆ D, kde Ω je definována pomocí hladkýchvazebních funkcí h i : R n → R, i = 1, . . . , m,Ω = {x ∈ D : h E (x) = 0 a h I (x) ≦ 0}, (1.3)kde I a E je rozklad množiny indexů {1, . . . , m}. Stručný zápis (1.3) lze tedy rozepsatve tvaruΩ = {x ∈ D : h i (x) = 0, i ∈ E a h i (x) ≦ 0, i ∈ I}.V případě, že <strong>pro</strong> Ω platí Ω ⊆ D a Ω ≠ D mluvíme o úlohách <strong>optimalizace</strong>s omezením, příp. o omezené optimalizaci. V případě, že <strong>pro</strong> Ω platí Ω = D mluvímeo úlohách <strong>optimalizace</strong> bez omezení , příp. o neomezené optimalizaci.Zaměření na minimalizaci funkcí je užitečné i <strong>pro</strong> řešení variačních úloh, kterénelze vyřešit analyticky, což zahrnuje velkou většinu praktických úloh, jako je úlohanajít tvar pólového nástavce elektromagnetu, který maximalizuje homogenitu elektromagnetickéhopole dané intensity ve vymezené oblasti. Takové úlohy se typickya<strong>pro</strong>ximují úlohou minimalizace funkce více <strong>pro</strong>měnných s velkým počtem neznámých(až desítky a stovky milionů) nebo s velmi náročným vyhodnocením cenovéfunkce, ke kterému je potřeba najít numerické řešení příslušné stavové rovnice. Efektivníalgoritmy minimalizace funkcí více <strong>pro</strong>měnných jsou <strong>pro</strong>to důležité i <strong>pro</strong> numerickéřešení variačních úloh.Lokální a globální řešeníÚloha najít globální řešení může být příliš ambiciózní, <strong>pro</strong>to má smysl zabývatse hledáním lokálního řešení , které minimalizuje pouze zúžení cenové funkce nanějakém okolí U. Přesněji řečeno, je-li x ∈ Ω lokální řešení <strong>pro</strong>blému (1.1), pakexistuje okolí U bodu x tak, aby platilof(x) ≦ f(x),x ∈ Ω ∩ U.Lokální řešení je užitečné <strong>pro</strong> zlepšení našeho tipu na řešení.Obecně je velmi obtížné najít globální řešení, avšak existuje několik případů,kdy to je možné díky speciální struktuře <strong>pro</strong>blému. Důležitý případ takové situacenastane, když cenová funkce f i přípustná množina Ω jsou konvexní; v tomto případěmluvíme také o konvexním <strong>pro</strong>gramování .
4 Optimalizační úlohy<strong>1.2</strong> Klasifikace optimalizačních úloh<strong>Metody</strong> řešení praktických optimalizačních úloh jsou často detailně rozpracovány<strong>pro</strong> řešení užší třídy <strong>pro</strong>blémů se speciální strukturou. My se zde budeme zabývatpředevším řešením úloh spojité <strong>optimalizace</strong>, kdy jak cenová funkce f i funkce popisujícírovnosti a nerovnosti h jsou definované na oblasti D ⊆ R n . Zvláštní pozornostbudeme věnovat minimalizaci bez omezení , kdy Ω = R n . V rámci spojité <strong>optimalizace</strong>dále rozlišujeme několik typů <strong>pro</strong>blémů, <strong>pro</strong> které jsou rozpracovány speciálníalgoritmy numerického řešení.Lineární <strong>pro</strong>gramováníObecná úloha lineárního <strong>pro</strong>gramování je určena lineární funkcí určenou vektoremb ∈ R n a lineárními omezeními určenými maticí B ∈ R m×n a vektorem c ∈ R m .Lze ji zapsat ve tvarukdeNajdi x ∈ Ω tak, aby b T x ≦ b T x <strong>pro</strong> všechna x ∈ Ω,Ω = {x ∈ R n : B E x = c E a B I x ≦ c I }.První metody řešení úloh lineárního <strong>pro</strong>gramování byly navrženy před druhousvětovou válkou <strong>pro</strong> účely plánování L. V. Kantorovičem. Řešení speciální úlohylineárního <strong>pro</strong>gramování, tzv. dopravní úlohy, sehrálo významnou roli při plánováníinvaze v Normandii. I když to není na první pohled patrné, některé metody řešeníúloh lineárního <strong>pro</strong>gramování mají diskretní charakter, neboť postupně <strong>pro</strong>cházejíkonvexní hranici, která typicky obsahuje obrovské množství bodů. Nalezení tzv.elipsoidového algoritmu s polynomiální složitostí N. Karmarkarem v roce 1984 bylovýznamnou událostí.Kvadratické <strong>pro</strong>gramováníObecná úloha kvadratického <strong>pro</strong>gramování se od úlohy lineárního <strong>pro</strong>gramováníliší kvadratickou cenovou funkcí, která je určena symetrickou maticí A ∈ R n×na vektorem b ∈ R n . Lze ji zapsat ve tvaruNajdi x ∈ Ω aby 1 2 xT Ax − b T x ≦ 1 2 xT Ax − b T x <strong>pro</strong> všechna x ∈ Ω,kde Ω je definovaná lineárními rovnostmi a nerovnostmi stejně jako u lineárního<strong>pro</strong>gramování.<strong>Metody</strong> řešení kvadratického <strong>pro</strong>gramování jsou <strong>pro</strong>pojeny s metodami řešenílineárních rovnic. Je-li A pozitivně definitní matice a Ω = R n , pak řešení úlohy kvadratického<strong>pro</strong>gramování je totožné s řešením soustavy lineárních rovnic Ax = b. Pro
<strong>1.2</strong> Klasifikace optimalizačních úloh 5některé prakticky důležité třídy úloh kvadratického <strong>pro</strong>gramování existují algoritmys asymptoticky lineární složitostí, což umožňuje řešit takové úlohy s desítkami ažstovkami milionů neznámých.Nelineární <strong>pro</strong>gramováníPokud není cenová funkce ani lineární, ani kvadratická, ale spojitá se spojitoualespoň první derivací, spadá optimalizační <strong>pro</strong>blém mezi úlohy nelineárního <strong>pro</strong>gramování.Zvláštní případ nelineárního <strong>pro</strong>gramování tvoří úlohy bez omezení, t.j.když Ω = R n , <strong>pro</strong> které existují speciální algoritmy. Pokud o cenové funkci anio vazbách nic nevíme, jedná se však i v tomto případě o obtížnou úlohu. Rozsáhlejšíúlohy nelineárního <strong>pro</strong>gramování lze řešit pouze s použitím algoritmů, kterévyužívají specifické charakteristiky <strong>pro</strong>blému.Nehladká <strong>optimalizace</strong>Úlohu nehladké <strong>optimalizace</strong> dostaneme v případě, že jsou cenová funkce i vazebnífunkce spojité a se spojitými alespoň prvními derivacemi až na nějakou „malou“podmnožinu definičního oboru. V tomto případě se dá tato částečná hladkost využítk odvození efektivních algoritmů. Úlohy nehladké <strong>optimalizace</strong> jsou obecně obtížnějšínež úlohy hladké nelineární <strong>optimalizace</strong>. První obtíž spočívá v komplikovanémpopisu podmínek minima, neboť není zaručeno, že funkce definující nehladký optimalizační<strong>pro</strong>blém jsou v řešení diferencovatelné.Globální <strong>optimalizace</strong>Jak už jsme se zmínili, zaručené globální minimum nelineární funkce lze najítjen výjimečně. Nejobvyklejší strategií je v tomto případě systematické <strong>pro</strong>hledávánídefiničního oboru, často s použitím vhodné heuristiky nebo dodatečné informaceo cenové funkci a o vazebních funkcích.
6Kapitola 2Podmínky minima <strong>pro</strong>minimalizaci bez omezeníDříve než se pustíme do řešení optimalizačních úloh, ukážeme si, jak poznat minimumhladké funkce bez omezení, tedy řešení úlohymin f(x). (2.1)x∈Rn Budeme při tom předpokládat, že f je dvakrát spojitě diferencovatelná funkce. V některýchdůležitých případech si ukážeme, jak lze z míry narušení podmínek minimapoznat, jak jsme daleko od minima. Zvláštní pozornost budeme věnovat případům,kdy je zaručena jednoznačnost minima.Podmínky minima mají význam <strong>pro</strong> zodpovězení základních teoretických otázek<strong>optimalizace</strong>. Jejich znalost je užitečná i mimo optimalizaci. Uplatní se na příkladpři studiu fyziky a technických aplikací. I když je „ruční“ řešení akademických úlohvelmi často založeno na řešení rovnic (a nerovnic) které formálně popisují podmínkyminima, počítačové řešení rozsáhlejších praktických úloh je obvykle založeno najiných postupech, popsaných v dalších kapitolách.2.1 Taylorova větaZákladní matematický nástroj <strong>pro</strong> studium řešení optimalizačních <strong>pro</strong>blémů je Taylorovavěta o a<strong>pro</strong>ximaci funkce polynomem v okolí daného bodu. Budeme ji používatv následujícím tvaru.
2.1 Taylorova věta 7Věta 2.1. (Taylor) Nechť f : R n → R je spojitě diferencovatelná a x, d ∈ R n .Potom existuje α ∈ R tak žef(x + d) = f(x) + ∇f(x + αd) T d = f(x) + ∇f(x) T d + o(‖d‖), (2.2)kde limt→0o(t)/t = 0. Je-li navíc f dvakrát spojitě diferencovatelná, potomf(x + d) = f(x) + ∇f(x) T d + 1 2 dT ∇ 2 f(x) T d + o(‖d‖ 2 ). (2.3)Taylorova věta nám umožňuje nahradit přírůstek funkce f na okolí daného bodux lineárním modelem (diferenciálem).l(d) = l x (d) = g T d, g = g(x) = ∇f(x) =[︂ ∂∂f∂∂x 1, . . . , ∂∂f∂∂x n]︂ Tnebo kvadratickým modelemm(d) = m x (d) = g T d + 1 2 dT Hd, H =Pokud je f kvadratická funkce daná předpisem⎡⎢⎣∂∂ 2 f∂∂x 1 ∂∂x 1. . .. .∂∂ 2 f∂∂x n∂∂x 1. . .∂∂ 2 f∂∂x 1 ∂∂x n.∂∂ 2 f∂∂x n∂∂x n⎤⎥⎦ .f(x) = 1 2 xT Ax − b T x, A = A T , (2.4)pak ∇f(x) = Ax − b, ∇ 2 f(x) = A, a přírůstek má tvarm x (d) = f(x + d) − f(x) = (Ax − b) T d + 1 2 dT Ad. (2.5)Pomocí Taylorovy věty můžeme poznat, zda je daný vektor d směrem poklesu,t.j. zda <strong>pro</strong> každé dostatečně malé ε > 0Pomocí (2.2) dostanemef(x + εd) − f(x) < 0.(︂f(x + εd) − f(x) = εg T d + o(‖εd‖) = ε g T d + o(ε‖d‖) )︂.εJelikož z definice o vyplývá, že o(ε‖d‖)/ε je omezená <strong>pro</strong> dostatečně malá ε, budevýraz v závorce záporný <strong>pro</strong> všechna dostatečně malá ε pokud g T d < 0. Dostali jsmetak dodatečnou podmínku <strong>pro</strong> směr poklesu.
8 Podmínky minima <strong>pro</strong> minimalizaci bez omezení2.2 Podmínky minima kvadratické funkceNásledující věta nám dává nutné a postačující alegebraické podmínky které splňujeřešení <strong>pro</strong>blémukde f je kvadratická funkce definovaná (2.4).min f(x), (2.6)x∈Rn Věta 2.2. Nechť f je kvadratická funkce (2.4) definovaná symetrickou maticíA ∈ R n×n a b ∈ R n . Pak platí následující tvrzení:(i) Vektor x je řešení <strong>pro</strong>blému (2.6), právě když A je pozitivně semidefinitní a∇f(x) = Ax − b = o. (2.7)(ii) Problém (2.6) má jediné řešení, právě když A je pozitivně definitní.Důkaz. (i) Jestliže x a d značí libovolné n-vektory a α ∈ R, potom můžeme použítTaylorův rozvoj (2.3) a dostanemef(x + αd) − f(x) = α(Ax − b) T d + α22 dT Ad.Předpokládejme nejprve, že x je řešení (2.6), takže pravá strana rovnice je nezáporná<strong>pro</strong> každé α a d. Pro α dostatečně velké a d ∈ R n libovolné, ale pevně zvolené vyplýváz nezápornosti pravé strany d T Ad ≧ 0, takže A je pozitivně semidefinitní. Na druhéstraně, <strong>pro</strong> α dostatečně malé je znaménko výrazu na pravé straně určeno lineárnímčlenem, takže z nezápornosti pravé strany plyne (Ax − b) T d = 0 <strong>pro</strong> každé d ∈ R n .Tedy Ax − b = o.Je-li A pozitivně definitní a x splňuje (2.7), potom <strong>pro</strong> každé d ∈ R n platíf(x + d) − f(x) = 1 2 dT Ad ≧ 0,tedy x je řešení (2.6).(ii) Je-li ̂︀x řešení minimalizačního <strong>pro</strong>blému (2.6), potom podle (i) je A pozitivněsemidefinitní a ̂︀x je jediný vektor který splňuje Â︀x = b. Tedy A je regulární a pozitivněsemidefinitní, t.j. pozitivně definitní. Na druhé straně, jestliže A je pozitivnědefinitní, pak je regulární a gradientní podmínku (2.7) splňuje jediný vektor.Jestliže si <strong>pro</strong>hlédneme gradientní podmínku (2.7), dostaneme, že <strong>pro</strong>blém (2.6)má řešení tehdy a jen tehdy, když A je pozitivně definitní a1 H(A) označuje obor hodnot matice A.b ∈ H(A) 1 . (2.8)
2.3 Podmínky lokálního minima diferencovatelné funkce 9Označíme-li si pomocí R matici, jejíž sloupce tvoří bázi nulového <strong>pro</strong>storu maticeA, můžeme si podmínku řešitelnosti úlohy (2.6) přepsat ve tvarub T R = o.Tato podmínka má jednoduchou mechanickou interpretaci: je li mechanický systémv rovnováze, potom vnější síly musí být kolmé k tuhým pohybům..Je-li dimenze n <strong>pro</strong>blému (2.6) velká, může se ukázat, že snaha najít řešení, kterésplňuje gradientní podmínku (2.7) přesně, je příliš ambiciózní. Přirozený nápad pakvede k hledání slabší podmínky‖∇f(x)‖ ≦ ε (2.9)s nějakým malým ε. Jestliže x splňuje nepřesnou podmínku s dostatečně malým εa A je regulární, potom x je blízko jediného řešení ̂︀x neboť‖x − ̂︀x‖ = ‖A −1 A (x − ̂︀x) ‖ = ‖A −1 (Ax − b)‖ ≦ ‖A −1 ‖‖∇f(x)‖. (2.10)Typické „řešení“ získané pomocí iteračních řešičů je právě nějaké x které splňujepodmínku (2.9). Pomocí Taylorova rozvoje (2.3) dostanemef(x) − f(̂︀x) = f(̂︀x + (x − ̂︀x)) − f(̂︀x)= f(̂︀x) + g(̂︀x) T (x − ̂︀x) + 1 2 (x − ̂︀x)T A (x − ̂︀x) − f(̂︀x)= 1 2 (x − ̂︀x)T A (x − ̂︀x).2.3 Podmínky lokálního minima diferencovatelnéfunkcePodmínky lokálního minima <strong>pro</strong> <strong>pro</strong>blém (2.1) získáme snadno analýzou lineárníhonebo kvadratického modelu f.Věta 2.3. Nechť f je dvakrát diferencovatelná funkce z <strong>pro</strong>blému (2.1). Pak platínásledující tvrzení:(i) Je-li vektor x řešení <strong>pro</strong>blému (2.1), pak g(x) = ∇f(x) = o a H(x) = ∇ 2 f(x)je pozitivně semidefinitní.(ii) Jestliže vektor g(x) = ∇f(x) = o a H(x) = ∇ 2 f(x) je pozitivně definitní, pakje v x dosaženo lokálního minima f.
10 Podmínky minima <strong>pro</strong> minimalizaci bez omezeníDůkaz. (i) Je-li x řešení <strong>pro</strong>blému (2.1), pak žádný směr d ∈ R n není směrem poklesufunkce. Odtud plyne d T g = 0 <strong>pro</strong> všechny d ∈ R n , tedy i g T g = ‖g‖ 2 = 0, a podle(2.3) i(︂ )︂α 212 dT Hd + o(‖α 2 ‖) = α 2 2 dT Hd + o(α 2 ‖d‖)/α 2 ≧ 0.Jelikož limα→0o(α 2 ‖d‖)/α 2 = 0, dostáváme odsud d T Hd ≧ 0.(ii) Je-li H pozitivně definitní a g(x) = ∇f(x) = o, pak podle definice o(·) <strong>pro</strong>dostatečně malé α a všechny d ∈ R n platíα 22 dT Hd + o(‖α 2 ‖) = α 2 (︂ 12 dT Hd + o(α 2 ‖d‖)/α 2 )︂> 0.Povšimněte si, že věta 2.3 je založena na jednoduchém pozorování: je-li v xdosaženo minimum, pak je lineární i kvadratický model přírůstku funkce nezáporný,a je-li lineární i kvadratický model přírůstku funkce kladný na redukovaném okolíx, pak je i skutečný přírůstek funkce Δ x (d) = f(x + d) − f(x) na redukovaném okolíx kladný.2.4 KonvexitaMnoho silných tvrzení je možno dokázat <strong>pro</strong> <strong>pro</strong>blémy, které splňují podmínky konvexity.Intuitivně, konvexita je vlastnost množin které obsahují s každou dvojicíbodů také celou úsečku, která je spojuje tak jako na obrázku 2.1. Obdobně množinanení konvexní, pokud existuje dvojice bodů z dané množiny, která neobsahujeúsečku, která je spojuje (tak jako na obrázku 2.2).Definice 2.4. Formálněji, podmnožina Ω množiny R n je konvexní , jestliže <strong>pro</strong>každé x a y v Ω a α ∈ (0, 1) leží vektor s = αx + (1 − α)y také v Ω.Obr. 2.1: Konvexní množinaObr. 2.2: Nekonvexní množina
2.4 Konvexita 11Definice 2.5. Nechť x 1 , . . . , x k jsou vektory z R n . Jestliže α 1 , . . . , α k jsou takovéskaláry, že platík∑︁α i ≧ 0, i = 1, . . . , k, α i = 1,∑︀potom se vektor v = k α i x i nazývá konvexní kombinace vektorů x 1 , . . . , x k .i=1i=1Definice 2.6. Konvexní obal vektorů x 1 , . . . , x k , značený conv{x 1 , . . . , x k }, je množinavšech konvexních kombinací x 1 , . . . , x k .Konvexní obal vektorů x 1 , . . . , x k je nejmenší konvexní množina do které patříx 1 , . . . , x k .Definice 2.7. Konvexní hranice množiny Ω je množina vektorů, které nemohoubýt vyjádřeny jako konvexní kombinace jiných vektorů z Ω.Tak konvexní hranice čtverce je tvořena jeho čtyřmi rohy, zatímco konvexní hraniceuzavřeného kruhu je tvořena celou jeho hranicí. Průnik dvou a více konvexníchmnožin je opět konvexní. Jako příklady konvexních množin si uveďme kruh, čtvereca množiny definované konečnou množinou lineárních rovnic jako b T x = c nebonerovnic jako b T x ≦ c.Definice 2.8. Zobrazení h : Ω → R definované na konvexní množině Ω ∈ R n senazývá konvexní funkce, je-li její nadgraf konvexní množina, t.j.h (αx + (1 − α)y) ≦ αh(x) + (1 − α)h(y)<strong>pro</strong> všechna x, y ∈ Ω a α ∈ (0, 1), a striktně konvexní , kdyžh (αx + (1 − α)y) < αh(x) + (1 − α)h(y)<strong>pro</strong> všechna x, y ∈ Ω, x ≠ y, a α ∈ (0, 1).Pojem konvexní funkce je ilustrován na obr. 2.3.
12 Podmínky minima <strong>pro</strong> minimalizaci bez omezeníObr. 2.3: Konvexní funkceUveďme si ještě charakteristiku konvexní kvadratické funkce.Věta 2.9. Kvadratická funkce f definovaná v (2.4) s pozitivně semidefinitním HessiánemA je konvexní. Je-li A pozitivně definitní, je f striktně konvexní.Důkaz. Nechť x, y ∈ V, α ∈ (0, 1), a s = αx + (1 − α)y. Potom z Taylorova rozvoje(2.3) funkce f v s dostanemef(s) + ∇f(s) T (x − s) + 1 2 (x − s)T A(x − s) = f(x),f(s) + ∇f(s) T (y − s) + 1 2 (y − s)T A(y − s) = f(y).Vynásobíme-li první rovnici α, druhou rovnici 1 − α, a sečteme výsledné rovnice,dostanemef(s) + α 2 (x − s)T A(x − s) + 1 − α (y − s) T A(y − s)2= αf(x) + (1 − α)f(y).(2.11)Odtud plyne, že je-li A pozitivně semidefinitní, potom f je konvexní. Jelikož x = yje ekvivalentní x = s and y = s, dostáváme <strong>pro</strong> A pozitivně definitní, že f je striktněkonvexní.Konvexní funkce mají důležitou vlastnost, a sice, že každé jejich lokální minimumje globální minimum.Věta 2.10. Nechť f je konvexní funkce a Ω ⊆ R n konvexní množina. Potom jekaždé lokální minimum globálním minimem. Je-li navíc Ω uzavřená, pak minimumexistuje, a je-li f striktně konvexní, pak je dosaženo v jediném bodě.
2.4 Konvexita 13Důkaz. Nechť x ∈ Ω a y ∈ Ω jsou lokální minima f vzhledem k Ω a navíc platíf(x) < f(y). Označíme-li si y α = αx + (1 − α)y a využijeme toho, že f je konvexní,dostanemef(y α ) = f(αx + (1 − α)y) ≦ αf(x) + (1 − α)f(y) < f(y)<strong>pro</strong> každé α ∈ (0, 1). Jelikož platí‖y − y α ‖ = α‖y − x‖,pak výše uvedená nerovnost je ve sporu s předpokladem že v y je dosaženo lokálníhominima.Zbývající část důkazu tvrzení přenecháváme čtenáři, který má rád analýzu.
14Kapitola 3Minimalizace bez derivacíV této části se budeme zabývat metodami minimalizujícími funkce bez omezení.Metodami bez derivací (derivative-free methods) máme na mysli metody, které nepoužívajíderivace (či gradienty) minimalizovaných funkcí ani a<strong>pro</strong>ximace těchtoderivací (či gradientů). Tyto <strong>pro</strong>blémy můžeme rozdělit na úlohy jednorozměrné<strong>optimalizace</strong> a úlohy vícerozměrné <strong>optimalizace</strong>. V případě úloh jednorozměrné <strong>optimalizace</strong>se v této kapitole budeme zabývat metodami bisekce, Fibonacciovskýmdělením a metodou zlatého řezu. Všechny tyto metody jsou využitelné nejen <strong>pro</strong>řešení úloh jednorozměrné <strong>optimalizace</strong>, ale také <strong>pro</strong> metody vícerozměrné <strong>optimalizace</strong>používající strategii tzv. linesearch. V případě úloh vícerozměrné <strong>optimalizace</strong>se metodám bez derivací budeme věnovat v kapitole 16.<strong>Metody</strong> bez použití derivací nebo také metody přímého vyhledávání (directsearch methods) 1 byly rozvíjeny a používány zejména v šedesátých letech dvacátéhostoletí. Důvodů bylo více. Jedním z nich byla chybějící globalizační strategie<strong>pro</strong> určování délky kroku <strong>pro</strong> metody prvního a druhého řádu. Z toho důvodu bylymetody nultého řádu na začátku šedesátých let „spolehlivější“ než metody prvníhoa druhého řádu. Armijo-Goldsteinovy podmínky, které se nyní používají <strong>pro</strong> zajištěníkonvergence, byly publikovány až v roce 1966. Dalším důvodem, který platístále, je to, že metody prvního a druhého řádu nefungují <strong>pro</strong> všechny optimalizační<strong>pro</strong>blémy. Tyto metody selhávají mimo jiné při minimalizaci nediferencovatelných činespojitých funkcí. Zatímco metody nultého řádu jsou schopny najít minima i těchtofunkcí. Třetím důvodem, a také stále přetrvávajícím, je velmi snadná implementacea technická realizace těchto metod. Velká výhoda je v tom, že není třeba hledat aniHessián ani gradient během iteračního <strong>pro</strong>cesu. Z těchto důvodů jsou tyto metodystále v určité míře používány, i přes existenci daleko pokročilejších optimalizačníchalgoritmů. Podrobný přehled metod z této kapitoly může čtenář nalézt v [11].1 Někdy se <strong>pro</strong> ně používá také označení metody nultého řádu.
3.1 Bisekce 153.1 BisekceV této i následující podkapitole se budeme zabývat metodami <strong>pro</strong> hledání minimatzv. unimodálních funkcí.Definice 3.1. O funkci f : R → R řekneme, že je unimodální v intervalu ⟨a, b⟩(−∞ ≦ a < b ≦ ∞), jestliže existuje c ∈ (a, b) takové, že funkce f je klesajícív intervalu ⟨a, c⟩ a rostoucí v intervalu ⟨c, b⟩.Poznámka 3.2. Pozorný čtenář si v předchájící definici určitě všiml, že funkce fnemusí být v intervalu ⟨a, b⟩ ani diferencovatelná a dokonce ani spojitá (viz obrázek3.1).a c bObr. 3.1: Příklad unimodální funkcePoznámka 3.3. Je snadné ukázat, že funkce, která je v intervalu ⟨a, b⟩ konvexní,je v něm i unimodální.Věta 3.4. Nechť funkce f je unimodální v ⟨a, b⟩ a nabývá svého minimav x * ∈ ⟨a, b⟩. Pak <strong>pro</strong> libovolné x 1 , x 2 , kde a ≦ x 1 < x 2 ≦ b, platí následujícítvrzení:i) Je-li f(x 1 ) < f(x 2 ), pak x * < x 2 .ii) Je-li f(x 1 ) > f(x 2 ), pak x * > x 1 .iii) Je-li f(x 1 ) = f(x 2 ), pak x 1 < x * < x 2 .Důkaz. Důkaz <strong>pro</strong>vedeme sporem. Ve všech případech předpokládejme, že f je unimodálnív ⟨a, b⟩ a nabývá svého minima v x * ∈ ⟨a, b⟩. Uvažujme dvojici x 1 , x 2 , kdea ≦ x 1 < x 2 ≦ b.i) Dále platí f(x 1 ) < f(x 2 ) ∧ x * ≧ x 2 . Odtud plyne, že f je klesající v ⟨a, x * ⟩a odtud f(x 2 ) < f(x 1 ), což je spor s předpokladem.
16 Minimalizace bez derivacíii) Dále platí f(x 1 ) > f(x 2 ) ∧ x * ≦ x 1 . Odtud plyne, že f je rostoucí v ⟨x * , b⟩a odtud f(x 2 ) > f(x 1 ), což je spor s předpokladem.iii) Dále platí f(x 1 ) = f(x 2 ) ∧ (x * ≦ x 1 ∨ x * ≧ x 2 ). Odtud plyne, že buď (v případě,že x * ≦ x 1 ) je f rostoucí v ⟨x * , b⟩ a odtud f(x 2 ) > f(x 1 ), což je spors předpokladem. Anebo (v případě, že x * ≧ x 2 ) je f klesající v ⟨a, x * ⟩ a odtudf(x 2 ) < f(x 1 ), což je opět spor s předpokladem.Metoda bisekce je určena <strong>pro</strong> hledání minima funkce f : R → R v intervalu⟨a, b⟩. Předpokládejme, že tato funkce je v tomto intervalu unimodální. Tzn. že máv tomto intervalu právě jedno minimum. S využitím věty 3.4 lze snadno navrhnoutalgoritmus <strong>pro</strong> hledání minima unimodální funkce. Tento algoritmus bude generovatposloupnost intervalůI 0 ⊃ I 1 ⊃ I 2 ⊃ . . . ⊃ I k−1 ⊃ I k ⊃ . . . , I k = ⟨a k , b k ⟩.Všechny intervaly dané posloupnosti obsahují hledané minimum funkce f. V případěmetody bisekce bude poměr délek dvou po sobě jdoucích intervalů 1 ku 2. Zvolmev intervalu I k−1 = ⟨a k−1 , b k−1 ⟩ následující body c k−1 := a k−1+b k−1, d2 k−1 := a k−1+c k−12a e k−1 := c k−1+b k−12. Pokud porovnáme funkční hodnoty v bodech c k−1 , d k−1 , e k−1a využijeme tvrzení věty 3.4, získáme interval I k (viz obrázek 3.2). Algoritmus ukončímev okamžiku, kdy velikost intervalu I k bude menší než požadovaná hodnota.Minimum funkce f bude a<strong>pro</strong>ximováno středem tohoto intervalu c k . Podrobný algoritmusje uveden níže.1. iteracea d c e b2. iteracea d c e bObr. 3.2: Algoritmus bisekce
3.1 Bisekce 17Algoritmus 3.1 Bisekce.1) ε > 0 (přesnost), a 0 , b 0 , c 0 := a 0+b 02, k := 02) while b k − a k ≧ εi) d k := a k+c k2ii) e k := c k+b k2iii) if f(d k ) < f(c k )(a) a k+1 := a k(b) b k+1 := c k(c) c k+1 := d kiv) elseif f(c k ) < f(d k ) and f(c k ) < f(e k )(a) a k+1 := d k(b) b k+1 := e k(c) c k+1 := c kv) elseif f(e k ) < f(c k )(a) a k+1 := c k(b) b k+1 := b k(c) c k+1 := e kvi) end3) k := k + 14) end5) x k := c k a<strong>pro</strong>ximuje minimum funkce f(x)Příklad 3.5. Proveďte dvě iterace metody bisekce <strong>pro</strong> minimalizaci funkce f(x) == x 2 − 0.5x + 0.0625 na intervalu ⟨0, 1⟩.Řešení. k = 0:a 0 = 0, b 0 = 1, c 0 := a 0+b 0= 0.5, d2 0 := a 0+c 0= 0.25, e2 0 := c 0+b 0= 0.75.2f(c 0 ) = 0.0625, f(d 0 ) = 0, f(e 0 ) = 0.25.k = 1:a 1 := a 0 = 0, b 1 := c 0 = 0.5, c 1 := d 0 = 0.25, d 1 := a 1+c 1= 0.125, e2 1 := c 1+b 1= 0.375.f(c 1 ) = f(d 0 ) = 0, f(d 1 ) = 0.015625, f(e 1 ) = 0.015625.k = 2:a 2 := d 1 = 0.125, b 2 := e 1 = 0.375, c 2 := c 1 = 0.25.2=
18 Minimalizace bez derivacíPo dvou iteracích tedy víme, že minimum leží v intervalu ⟨0.125, 0.375⟩. x 2 :== c 2 = 0.25 a<strong>pro</strong>ximuje minimum funkce f(x) 3.2 Fibonacciovské dělení a zlatý řezNejprve připomeňme, že Fibonacciova posloupnost je posloupnost zadaná rekurentnímpředpisemF n+2 = F n+1 + F n , F 0 = F 1 = 1.Tedy prvních několik členů této posloupnosti má hodnotu: F 0 = F 1 = 1, F 2 == 2, F 3 = 3, F 4 = 5, F 5 = 8, F 6 = 13, F 7 = 21, F 8 = 34, F 9 = 55, F 10 == 89, . . .. Nyní si ukážeme, jak pomocí této posloupnosti sestrojit sekvenci intervalů,ve kterých leží minimum unimodální funkce f : R → R v intervalu ⟨0, 1⟩. Neprvezvolme počet členů této sekvence jako N ∈ N, tím také určíme apriori přesnosta<strong>pro</strong>ximace hledaného minima. Nechť x 1 = F N−1F Na x 2 = F N−2F N. Pokud porovnámefunkční hodnoty v bodech x 1 , x 2 a využijeme tvrzení věty 3.4, získáme buď interval⟨0, x 1 ⟩ nebo ⟨x 2 , 1⟩. V tomto intervalu již leží bod x 2 nebo x 1 a dopočteme v němbod x 3 = 0 + F N−3F Nnebo x 3 = 1 − F N−3F N. A takto postupujeme dále až do bodux N−1 . Nevýhodou tohoto postupu je, že pokud se rozhodneme zpřesnit a<strong>pro</strong>ximacihledaného řešení (čehož docílíme zvětšením hodnoty N) musíme všechny body x 1 ,x 2 , . . ., x N−1 a odpovídající funkční hodnoty vyčíslit znovu. Tuto nevýhodu můžemeodstranit pokud zafixujeme zkracování intervalu na jedné hodnotě a to γ = lim F N−1F N.Tuto novou metodu nazveme metodou zlatého řezu. Metoda zlatého řezu je založenana rozdělení každého intervalu I k na dva intervaly v k a m k (viz obrázek 3.3) tak,I kv km kObr. 3.3: Algoritmus zlatého řezu - nástin dělení intervaluaby poměr větší části v k k menší části m k byl stejný jako poměr celého intervalu I kk větší části v k , tj. platív k= I k= γ = konst., (3.1)m k v kI k = v k + m k . (3.2)
3.2 Fibonacciovské dělení a zlatý řez 19Rovnici (3.2) upravíme naa s využitím (3.1) dostanemeI kv k= 1 + m kv k(3.3)γ = 1 + 1 γ(3.4)Z toho snadno odvodíme, že γ = 1+√ 52.Metoda zlatého řezu je obdobně jako metoda bisekce určena <strong>pro</strong> hledání minimaunimodální funkce f : R → R v intervalu ⟨a, b⟩. Tato metoda opět generujeposloupnost intervalůI 0 ⊃ I 1 ⊃ I 2 ⊃ . . . ⊃ I k−1 ⊃ I k ⊃ . . . , I k = ⟨a k , b k ⟩.Všechny intervaly dané posloupnosti obsahují hledané minimum funkce f. Zvolmev intervalu I k−1 = ⟨a k−1 , b k−1 ⟩ následující body d k−1 := b k−1−a k−1+ aγ k−1 a c k−1 :== a k−1 + b k−1 − d k−1 . Pokud porovnáme funkční hodnoty v bodech c k−1 , d k−1 a využijemetvrzení věty 3.4, získáme interval I k (viz obrázek 3.4). Algoritmus ukončímev okamžiku, kdy velikost intervalu I k bude menší než požadovaná hodnota. Minimumfunkce f bude a<strong>pro</strong>ximováno středem tohoto intervalu. Podrobný algoritmusje uveden níže.1. iteracea c d b2. iteracea c d bObr. 3.4: Algoritmus zlatého řezu
20 Minimalizace bez derivacíAlgoritmus 3.2 Zlatý řez.1) ε > 0 (přesnost), γ := 1+√ 52, a 0 , b 0 , d 0 := b 0−a 0γ+ a 0 , c 0 := a 0 + b 0 − d 0 , k := 02) while b k − a k ≧ εi) if f(c k ) < f(d k )(a) a k+1 := a k(b) b k+1 := d k(c) d k+1 := c k(d) c k+1 := a k+1 + b k+1 − d k+1ii) elseif f(d k ) < f(c k )(a) a k+1 := c k(b) b k+1 := b k(c) c k+1 := d k(d) d k+1 := a k+1 + b k+1 − c k+1iii) elseif f(c k ) = f(d k )(a) a k+1 := c k(b) b k+1 := d k(c) d k+1 := b k+1−a k+1+ aγk+1(d) c k+1 := a k+1 + b k+1 − d k+1iv) end3) k := k + 14) end5) x k+1 := a k+1+b k+12a<strong>pro</strong>ximuje minimum funkce f(x)Příklad 3.6. Proveďte dvě iterace metody zlatého řezu <strong>pro</strong> minimalizaci funkcef(x) = x 2 − 0.5x + 0.0625 na intervalu ⟨0, 1⟩.Řešení. k = 0:a 0 = 0, b 0 = 1, d 0 := b 0−a 0. .+ aγ 0 = 0.618, c0 := a 0 + b 0 − d 0 = 0.382.f(c 0 ) = 0.017424, f(d 0 ) = 0.135424.k = 1:a 1 := a 0 = 0, b 1 := d 0 = 0.618, d 1 := c 0 = 0.382, c 1 := a 1 + b 1 − d 1. = 0.236.f(c 1 ) = 0.000196, f(d 1 ) = f(c 0 ) = 0.017424.
Příklady k <strong>pro</strong>cvičení 21k = 2:a 2 := a 1 = 0, b 2 := d 1 = 0.382, d 2 := c 1 = 0.236, c 2 := a 2 + b 2 − d 2. = 0.146.Po dvou iteracích tedy víme, že minimum leží v intervalu ⟨0, 0.382⟩. x 2 := a 2+b 22== 0.191 a<strong>pro</strong>ximuje minimum funkce f(x) Poznámka 3.7. Pokud porovnáme zkracování intervalů v jednotlivých iteracíchv případě metody bisekce a zlatého řezu, zjistíme, že v případě bisekce docházík většímu zkrácení než v případě metody zlatého řezu. Na druhé straně metodabisekce vyžaduje v každé iteraci 2 vyčíslení cenové funkce, zatímco metoda zlatéhořezu potřebuje v každé iteraci pouze 1 vyčíslení (s výjimkou bodu 2)iii algoritmu 3.2).Pokud porovnáme zkrácení intervalu na 1 vyčíslení cenové funkce, snadno zjistíme,že je metoda zlatého řezu efektivnější.Příklady k <strong>pro</strong>cvičení1. Nakreslete graf funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x) = x 4 + 8x 3 + 24x 2 + 32x + 16.min f(x).x∈RTuto úlohu řešte metodou bisekce a metodou zlatého řezu. Porovnejte rychlost konvergence(tj. počty iterací) a počty vyčíslení minimalizované funkce při použití jednotlivýchmetod.2. Nakreslete graf funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x) = sin 2 x.min f(x).x∈RTuto úlohu řešte metodou bisekce a metodou zlatého řezu. Porovnejte rychlost konvergence(tj. počty iterací) a počty vyčíslení minimalizované funkce při použití jednotlivýchmetod.3. Nakreslete graf funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x) = cos 2 x.min f(x).x∈RTuto úlohu řešte metodou bisekce a metodou zlatého řezu. Porovnejte rychlost konvergence(tj. počty iterací) a počty vyčíslení minimalizované funkce při použití jednotlivýchmetod.
22Kapitola 4<strong>Metody</strong> spádových směrůNejdříve se seznámíme s variantami iteračních algoritmů <strong>pro</strong> řešení úlohymin f(x), (4.1)x∈Rn které využívají v každém kroku směr poklesu hodnoty cenové funkce f k nalezenídalší iterace s menší hodnotou f. Zaměříme se zejména na varianty gradientní metody,která využívá jako směr poklesu záporný gradient. Gradientní metoda se nazývátaké metoda největšího spádu. Alternativní název pochází z pozorování, žeminimum diferenciálu hladké funkce f : R n → R <strong>pro</strong> d ∈ R n , ‖d‖ = 1 je dosaženo<strong>pro</strong> d = −‖∇f(x)‖ −1 ∇f(x), neboťmin‖d‖=1 ∇f(x)T d ≧ − min ‖∇f(x)‖‖d‖ = −‖∇f(x)‖ = (︀‖d‖=1 ∇f(x)T −‖∇f(x)‖ −1 ∇f(x) )︀ .Jelikož spádové algoritmy jsou velmi jednoduché na implementaci, mají velminízkou cenu iterace a jsou robustní, dají se aplikovat na řešení mnoha úloh. Cenouza to je často velký počet iterací, což není překvapivé, neboť typicky využívají pouzelineární model funkce a nepoužívají explicitně informaci z předchozích iterací.4.1 Gradientní metoda <strong>pro</strong> kvadratickou funkciZáklady gradientních metod si vyložíme na minimalizaci konvexní kvadratické funkcef(x) = 1 2 xT Ax − b T x, (4.2)která je definována symetrickou pozitivně definitní maticí A a b ∈ R n . Použijemevariantu s „optimální“ délkou kroku α opt , t.j. s délkou kroku, která minimalizujehodnotu cenové funkce f v daném směru poklesu d. Jelikoždf(x − αd)dα= αd T Ad − b T d − x T Ad = αd T Ad − d T (Ax − b) = αd T Ad − d T g,
4.1 Gradientní metoda <strong>pro</strong> kvadratickou funkci 23dostaneme z podmínky minimaα opt d T Ad − d T g = 0,α opt = d T g/d T Ad.Schéma metody největšího spádu <strong>pro</strong> kvadratickou funkci s délkou kroku minimalizujícíhodnotu cenové funkce (4.2) vypadá následovně.Algoritmus 4.1 Gradientní metoda s „optimální“ délkou kroku <strong>pro</strong> kvadratickoufunkci.Je dána symetrická pozitivně definitní matice A ∈ R n×na b ∈ R n .Krok 0. {Cyklus gradientní metody.}Vyber x 0 ∈ R n , polož g 0 = Ax 0 − b, k = 0Krok 1. {Cyklus gradientní metody. }while ‖g k ‖ velkéα k = (g k ) T g k /(g k ) T Ag kx k+1 = x k − α k g kg k+1 = g k − α k Ag kk = k + 1end whileKrok 2. {Dosaď (přibližné) řešení.}̃︀x = x kPostup gradientní metody s délkou kroku, která maximalizuje pokles cenové funkce,je znázorněn na obr. 4.1.̂︀xf(x) = f(x k )x kx k+1Obr. 4.1: Gradientní metoda s „optimální“ délkou krokuZ obr 4.1 je patrna také hlavní příčina pomalé konvergence algoritmu. Je zřejmé,že největší pokles hodnoty cenové funkce ve směru největšího lokálního spádu nezaručujerozumný globální pokles. Tento aspekt je ještě lépe znázorněn na obr 4.2.
24 <strong>Metody</strong> spádových směrů̂︀xf(x) = cObr. 4.2: Pomalá konvergence metody největšího spáduDélka kroku α opt v daném směru d minimalizuje f(x k − αd) <strong>pro</strong> α > 0, tudíž<strong>pro</strong> řešení ̂︀x a α > 0 platíf(x k − α opt d) − f(̂︀x) ≦ f(x k − αd) − f(̂︀x).Označíme-li si <strong>pro</strong> libovolné x ∈ R energetickou normu x pomocípotom‖x‖ 2 A = x T Ax,‖x − ̂︀x‖ 2 A = (x − ̂︀x) T A(x − ̂︀x) = (x − A −1 b) T A(x − A −1 b) = 2 (f(x) − f(̂︀x))a <strong>pro</strong> libovolné α > 0‖x k+1 − ̂︀x‖ 2 A ≦ ‖x k − αg k − ̂︀x‖ 2 A.Snadno je vidět, že α opt neminimalizuje vzdálenost od řešení.Gradientní metodu lze použít i s vhodnou pevnou délkou kroku α, tedy s volbouα k = α, takžePomocí Â︀x = b a vlastností normyx k+1 = x k − αg k .‖x k+1 − ̂︀x‖ = ‖x k − αg k − ̂︀x‖ = ‖x k − α(Ax k − b) − ̂︀x − α(Â︀x − b)‖= ‖(I − αA)(x k − x)‖ ≦ ‖(I − αA)‖‖(x k − x)‖≦max |1 − αA)λ i|‖(x k − x)‖ = max{1 − αλ min , αλ max − 1}‖(x k − x)‖,λ i ∈σ(A)kde σ(A) značí spektrum matice A a λ min , λ max jsou extrémní vlastní čísla maticeA.Snadno se ukáže, že absolutní hodnota v posledním výrazu je menší než jedna<strong>pro</strong>α ∈ (0, 2λ −1max)
4.2 Gradientní metoda <strong>pro</strong> nelineární funkce (linesearch) 25a nabývá nejmenší hodnoty <strong>pro</strong>takže délka kroku α opt je dána předpisem1 − αλ min = αλ min − 1,α opt = 2/(λ min + λ max ).Pro tuto hodnotu dostaneme lineární rychlost konvergence gradientní metody s optimálnímpevným krokem α opt‖x k+1 − ̂︀x‖ ≦ 1 −kde κ(A) = λ max /λ min je číslo podmíněnosti matice A.2λ min(λ min + λ max ) ‖xk − ̂︀x‖ = κ(A) − 1κ(A) + 1 ‖xk − ̂︀x‖, (4.3)4.2 Gradientní metoda <strong>pro</strong> nelineární funkce (linesearch)Metodu nejmenšího spádu můžeme použít i <strong>pro</strong> obecnější diferencovatelné funkce,pokud dokážeme najít nebo alespoň a<strong>pro</strong>ximovat gradient cenové funkce. Většinounebudeme schopni najít přesné řešení jednorozměrné minimalizační úlohy. Gradientnímetodu budeme <strong>pro</strong>to chápat jako obecné schéma, které můžeme specifikovati s případným využitím znalostí <strong>pro</strong>blému. Obecné schéma metody největšího spádubez specifikace délky kroku vypadá následovně.Algoritmus 4.2 Metoda největšího spádu <strong>pro</strong> nelineární funkce.Je dána diferencovatelná funkce f : R n → R.Krok 0. {Inicializace.}Vyber x 0 ∈ R n , polož g 0 = ∇f (x 0 ), k = 0Krok 1. {Cyklus gradientní metody. }while ‖g k ‖ velkéVyber α k > 0x k+1 = x k − α k g kg k+1 = ∇f (︀ x k+1)︀k = k + 1end whileKrok 2. {Dosaď (přibližné) řešení.}̃︀x = x k
26 <strong>Metody</strong> spádových směrůDélka krokuK úplnosti algoritmu je třeba specifikovat délku kroku. Nejpřirozenější volba délkykroku vyplývá z úvahy, že se vyplatí maximálně využít daný směr poklesu obdobnějako jsme to udělali při minimalizaci kvadratické funkce, tedy použít minimalizačnípravidloα k ≈ arg maxα>0 f (︀ x − αg k)︀ . (4.4)Snadnější je použít minimalizační pravidlo s omezením, t.j. najít <strong>pro</strong> vhodně zvolenédané s > 0α k ≈ arg maxα∈(0,s⟩ f (︀ x − αg k)︀ . (4.5)Při praktické implementaci, typicky realizované pomocí některé z metod popsanýchv předchozí kapitole, nemůžeme očekávat, že se nám podaří najít minimumpřesně, a musíme se spokojit se splněním nějakého volnějšího ukončovacího kriteria,které nám pokud možno zaručí alespoň konvergenci algoritmu. Pouhý poklescenové funkce totiž nezaručuje konvergenci k lokálnímu minimu ani k stacionárnímubodu. Intuitivně je třeba zabránit dlouhým krokům s malým poklesem, které jsouna obr. 4.3, a krátkým krokům s malým poklesem, které jsou na obr. 4.4. V žádnémz uvedených příkladů nemusí být hromadné body vyobrazených posloupnostístacionárními body f.Obr. 4.3: Příliš dlouhý krokObr. 4.4: Příliš krátký krokNejčastěji se používá Armijovo pravidlo. Pravidlo používá tři pevně zvolené parametrys > 0, 0 < β < 1, a 0 < σ < 1. Délka kroku je rovna α k = β m s, kde m jenejmenší nezáporné číslo, <strong>pro</strong> kteréf(x k ) − f(x k − β m sd) ≧ −σβ m s∇f(x k ) T d. (4.6)Tato podmínka zaručuje dostatečný pokles úměrný gradientu, čímž vylučuje obanepříznivé případy. Podmínka se dá aplikovat i na jiné směry poklesu než je zápornýgradient, například na Newtonův směr nebo jeho a<strong>pro</strong>ximace popsané v kapitole 6.
4.3 A<strong>pro</strong>ximace gradientu pomocí konečných diferencí 27Robustnost gradientního směruDůležitou vlastností gradientních metod je jejich robustnost. Z obr. 4.5 je patrné,že i když ∂∂g je relativně velká perturbace gradientu g, vector −g − ∂∂g je stálesměrem poklesu, zatímco malá perturbace ∂∂p optimálního směru p může způsobit,že −p − ∂∂p není ani směrem poklesu.−ĝ︀x−p − ∂∂p−p−g − ∂∂gf(x) = cObr. 4.5: Robustnost gradientu a směru maximálního poklesu g a p4.3 A<strong>pro</strong>ximace gradientu pomocí konečných diferencíNěkteré důležité cenové funkce jsou diferencovatelné, avšak není možno zadat explicitnípravidlo <strong>pro</strong> výpočet gradientu. Jako příklad si uveďme typickou úlohu tvarové<strong>optimalizace</strong> v mechanice, kde x ∈ R n jsou tzv. návrhové <strong>pro</strong>měnné popisující tvartělesa, ale cenový funkcionál f je zadán pomocí funkceJ : R ns → Rdefinované <strong>pro</strong> tzv. stavové <strong>pro</strong>měnné u ∈ R ns , které splňují stavové rovniceK(x)u = f(x).V mechanice mohou být stavové <strong>pro</strong>měnné posunutí a výše uvedená rovnice jerovnice rovnováhy definovaná pozitivně definitní maticí K(x) a vektorem f(x) ∈ R ns .K výpočtu hodnoty cenové funkcef(x) = J (︀ u(x) )︀<strong>pro</strong> dané x je tak třeba najít řešení u = u(x) poměrně rozsáhlé (tisíce až milionyneznámých) soustavy rovnic rovnováhy. Návrhových <strong>pro</strong>měnných bývá obvyklemnohem méně, řádově desítky až stovky.
28 <strong>Metody</strong> spádových směrůKonečné diferencePrvní derivace potřebné k vyčíslení gradientu mohou být nejsnáze vyčísleny pomocídopředných diferencí∂∂f(x k )x i≈ 1 h(︀f(x k + εe i ) − f(x k ) )︀ , (4.7)kde e i je i-tý sloupec jednotkové matice a ε > 0 je malé číslo. V přesné aritmetice byplatilo čím menší, tím lepší, avšak při praktické počítačové implementaci je třebatoto pravidlo sladit s faktem, že čím menší ε, tím větší je vliv zaokrouhlovacích chybzpůsobených počítačovou aritmetikou.Dopředné diference jsou přesné pouze <strong>pro</strong> lineární funkce. Vyšší přesnosti jemožno dosáhnout s centrálními diferencemi∂∂f(x k )x i≈ 1 h(︀f(x k + εe i ) − f(x k − εe i ) )︀ , (4.8)které jsou přesné <strong>pro</strong> kvadratické polynomy, avšak cena výpočtu je dvojnásobná.V řadě případů lze využít speciálního tvaru funkce k efektivnějšímu implicitnímuvýpočtu hodnoty gradientu.4.4 Ukončovací podmínkyJako ukončovací podmínku používáme v této kapitole velikost gradientu, tj. ‖g k ‖ == ∇f (︀ x k)︀ . Tímto testem ověřujeme, zda je bod x k dostatečně přesnou a<strong>pro</strong>ximacístacionárního bodu funkce f. Alternativní ukončovací podmínkou může být test navelikost kroku, tj. ‖x k+1 − x k ‖. Jinou možností je ukončovat iterační minimalizační<strong>pro</strong>ces při dostatečně malé změně funkční hodnoty, tj. ‖f (︀ x k+1)︀ − f (︀ x k)︀ ‖.Vhodnou ukončovací podmínkou je také test na relativní velikost gradientu.Příklady k <strong>pro</strong>cvičení1. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = x 2 1 + x 2 2.min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou největšího spádu s analyticky vypočteným gradientem a potémetodou největšího spádu s numericky vypočteným gradientem. Úlohu počítejte s ukončujícípodmínkou na velikost gradientu i délku kroku.
Příklady k <strong>pro</strong>cvičení 292. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = x 4 1 + x 2 1 + x 2 2.min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou největšího spádu s analyticky vypočteným gradientem a potémetodou největšího spádu s numericky vypočteným gradientem. Úlohu počítejte s ukončujícípodmínkou na velikost gradientu i délku kroku.3. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = 100x 4 1 + x 2 2.min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou největšího spádu s analyticky vypočteným gradientem a potémetodou největšího spádu s numericky vypočteným gradientem. Úlohu počítejte s ukončujícípodmínkou na velikost gradientu i délku kroku.4. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = sin 2 x 1 + cos 2 x 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou největšího spádu s analyticky vypočteným gradientem a potémetodou největšího spádu s numericky vypočteným gradientem. Úlohu počítejte s ukončujícípodmínkou na velikost gradientu i délku kroku.5. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = (x 1 − x 2 2) 2 + (1 − x 1 ) 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou největšího spádu s analyticky vypočteným gradientem a potémetodou největšího spádu s numericky vypočteným gradientem. Úlohu počítejte s ukončujícípodmínkou na velikost gradientu i délku kroku.
30 <strong>Metody</strong> spádových směrů6. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = (x 1 − x 2 2) 2 + 100(1 − x 1 ) 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou největšího spádu s analyticky vypočteným gradientem a potémetodou největšího spádu s numericky vypočteným gradientem. Úlohu počítejte s ukončujícípodmínkou na velikost gradientu i délku kroku.7. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = 100(x 3 1 − x 2 2) 2 + (1 − x 1 ) 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou největšího spádu s analyticky vypočteným gradientem a potémetodou největšího spádu s numericky vypočteným gradientem. Úlohu počítejte s ukončujícípodmínkou na velikost gradientu i délku kroku.8. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = 100(x 1 − x 2 2) 2 + (1 − x 1 ) 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou největšího spádu s analyticky vypočteným gradientem a potémetodou největšího spádu s numericky vypočteným gradientem. Úlohu počítejte s ukončujícípodmínkou na velikost gradientu i délku kroku.
31Kapitola 5Metoda sdružených gradientůV této kapitole se budeme věnovat minimalizaci kvadratických funkcí, tj. zaměřímese na řešení úlohymin f(x), (5.1)x∈Rn kde f(x) = 1 2 xT Ax − x T b, b je sloupcový vektor s n složkami a A je symetrickápozitivně definitní nebo pozitivně semidefinitní matice řádu n × n. Zejména násbudou zajímat úlohy, kde n je velké a matice A je řídká a „dobře“ podmíněná. Jesnadné ukázat, že řešení úlohy (5.1) je stejné jako řešení soustavy lineárních rovnicAx = b.K této minimalizaci budeme využívat gradientní informaci, ale důmyslnějšímzpůsobem než v předchozí kapitole. Pro řešení uvedené úlohy zkonstruujeme tzv.metodu sdružených gradientů. Tato metoda při počítání v přesné aritmetice najdeřešení po n krocích. Jde tedy o tzv. finitní metodu. Obvykle se ale metoda používájako iterační a po k (k ≪ n) krocích je výpočetní <strong>pro</strong>ces ukončen nalezeníma<strong>pro</strong>ximace hledaného řešení.Nakonec ukážeme, jak tuto metodu sdružených gradientů použít i <strong>pro</strong> minimalizacifunkcí, které nejsou kvadratické.5.1 Metoda sdružených směrů <strong>pro</strong> kvadratické funkceMetoda sdružených směrů je založena na několika jednoduchých pozorováních. Nyní<strong>pro</strong>vedeme první z nich, které nám umožňuje redukovat řešení úlohy (5.1) na řešeníposloupnosti úloh jednorozměrné minimalizace.Předpokládejme, že matice A ∈ R n×n je symetrická a pozitivně definitní a dálepředpokládejme, že máme nenulové vektory p 1 , . . . , p n , <strong>pro</strong> které platí(p i , p j ) A := (p i ) T A p j = 0 <strong>pro</strong> i ≠ j.
32 Metoda sdružených gradientůTakové vektory nazýváme A-konjugované nebo zkráceně konjugované. Pro tyto vektoryplatí, že jsou i lineárně nezávislé, jak snadno nyní ověříme. Jestliže máme ξ 1 ažξ n , <strong>pro</strong> které platíξ 1 p 1 + . . . + ξ n p n = o.Pak přenásobením této rovnice zleva výrazem (p i ) T A a užitím konjugace dostanemeξ 1(︀pi )︀ TAp 1 + . . . + ξ n(︀pi )︀ TAp n = ξ i(︀pi )︀ TAp i = 0.Protože matice A je symetrická pozitivně definitní, tak (p i ) T Ap i > 0 a z tohovyplývá, že ξ i = 0.Z lineární nezávislosti vektorů p 1 , . . . , p n plyne, že tyto vektory tvoří bázi vektorového<strong>pro</strong>storu R n a libovolný vektor x ∈ R n může být zapsán jakox = ξ 1 p 1 + · · · + ξ n p n .Substitucí do f a použitím konjugace dostaneme(︂ )︂ (︂ )︂1 1f(x) =2 ξ2 1(p 1 ) T A p 1 − ξ 1 b T p 1 + · · · +2 ξ2 n(p n ) T A p n − ξ n b T p nZ toho plyne= f(ξ 1 p 1 ) + · · · + f(ξ n p n ).f(̂︀x) = min f(x) = min f(ξ 1p 1 ) + · · · + min f(ξ np n ).x∈Rn ξ 1 ∈R ξ n∈RTím se nám povedlo převést původní úlohu (5.1) na n úloh jednorozměrné minimalizace.Protožedf (ξp i )dξ ⃒ = ξ i (p i ) T A p i − b T p i = 0,ξipak řešení ̂︀x úlohy (5.1) je dáno předpisem̂︀x = ξ 1 p 1 + · · · + ξ n p n , ξ i = b T p i /(p i ) T Ap i , i = 1, . . . , n. (5.2)Pokud je n, které určuje dimenzi <strong>pro</strong>blému (5.1) „velké“, je úkol najít jehořešení ̂︀x příliš náročný a drahý. V takovém případě je rozumné modifikovat schéma,které jsme popsali tak, abychom místo přesného řešení ̂︀x <strong>pro</strong>blému (5.1) obdrželijeho a<strong>pro</strong>ximaci ̃︀x s využitím počáteční a<strong>pro</strong>ximace x 0 a „několika“ vektorů p 1 ažp k , k ≪ n. Přirozenou možností, jak získat a<strong>pro</strong>ximaci ̃︀x je vektor x k , ve kterémje dosaženo minima funkce f na množině S k = x 0 + ⟨p 1 , . . . , p k ⟩ 1 . Abychom tutoa<strong>pro</strong>ximaci získali, všimněme si, že libovolný vektor x ∈ S k lze zapsat ve tvarux = x 0 + ξ 1 p 1 + · · · + ξ k p k .1 ⟨v 1 , . . . , v k ⟩ označuje lineární obal vektorů v 1 , . . . , v k
5.1 Metoda sdružených směrů <strong>pro</strong> kvadratické funkce 33Po substituci do f a využitím toho, že p 1 , . . . , p k jsou konjugované, dostaneme(︂ 1 (︀f(x) = f(x 0 ) +2 ξ2 1(p 1 ) T A p 1 + ξ 1 A x 0 − b )︀ Tp1)︂+ . . .(︂ 1 (︀+2 ξ2 k(p k ) T A p k + ξ k A x 0 − b )︀ Tpk)︂.Označme reziduum g 0 = g(x 0 ) = ∇f(x 0 ) = Ax 0 − b aDostávámeaf 0 (x) = 1 2 xT A x + x T g 0 .f(x) = f(x 0 ) + f 0 (ξ 1 p 1 ) + · · · + f 0 (ξ k p k )f(x k ) = minx∈S k f(x) = f(x 0 ) + minξ 1 ∈R f 0(ξ 1 p 1 ) + · · · + minξ k ∈R f 0(ξ k p k ). (5.3)Tím jsme opět převedli naši úlohu na řešení posloupnosti jednoduchých jednorozměrnýchúloh. A<strong>pro</strong>ximace řešení x k je daná předpisem<strong>pro</strong>tožex k = x 0 + ξ 1 p 1 + · · · + ξ k p k , ξ i = −(g 0 ) T p i /(p i ) T Ap i , i = 1, . . . , k, (5.4)df (ξp i )dξProtože podle (5.3) <strong>pro</strong> k ≧ 1⃒ = ξ i (p i ) T A p i + (g 0 ) T p i = 0.ξif(x k ) = minx∈S k f(x) = f(x k−1 ) + minξ∈R f 0(ξp k ), (5.5)můžeme snadno generovat a<strong>pro</strong>ximace x k iteračně. Metoda sdružených směrů začínálibovolnou počáteční a<strong>pro</strong>ximací x 0 . Jestliže a<strong>pro</strong>ximace x k−1 je daná, pak a<strong>pro</strong>ximacix k získáme pomocí vztahux k = x k−1 − α k p k , α k = (g 0 ) T p i /(p i ) T Ap i . (5.6)Tzn. f(x k−1 +ξp k ) dosahuje svého minima v ξ = −α k a rutina splňuje to, že postupnéiterace x k jsou minimy funkce f na množinách S k .Pro koeficienty α k můžeme odvodit alternativní vztah ke vztahu (5.6). Snadnolze ukázat, že z definice množiny S k plyneProtože <strong>pro</strong> i ≧ 1 platí(g k ) T p i = 0, i = 1, . . . , k. (5.7)g i = Ax i − b = A (︀ x i−1 − α i p i)︀ − b = (︀ Ax i−1 − b )︀ − α i Ap i= g i−1 − α i Ap i ,
34 Metoda sdružených gradientůdostaneme <strong>pro</strong> k ≧ 1 a i = 1, . . . , k − 1, s využitím konjugace rovnost(g i ) T p k = (g i−1 ) T p k − α i (p i ) T Ap k = (g i−1 ) T p k .Z toho plynea(g 0 ) T p k = (g 1 ) T p k = · · · = (g k−1 ) T p kα k =(g0 ) T p k(p k ) T Ap = · · · = (gk−1 ) T p k. (5.8)k (p k ) T Apk 5.2 Metoda sdružených gradientů <strong>pro</strong> kvadratickéfunkceNyní se budeme zabývat <strong>pro</strong>blémem, jak efektivně získat konjugované vektory p 1 ažp n . Připomeňme si, jak vytvořit systém konjugovaných směrů pomocí Gramm–Schmidtova <strong>pro</strong>cesu. Předpokládejme, že p 1 , . . . , p k jsou nenulové konjugované směry,1 ≦ k < n a najděme způsob, jak použít vektor h k /∈ ⟨p 1 , . . . , p k ⟩ tak, abychom obdrželinový vektor p k+1 ve tvarup k+1 = h k + β k1 p 1 + · · · + β kk p k . (5.9)Protože p k+1 má být konjugovaný k p 1 , . . . , p k , platí0 = (p i ) T Ap k+1 = (p i ) T Ah k + β k1 (p i ) T Ap 1 + · · · + β kk (p i ) T Ap k= (p i ) T Ah k + β ki (p i ) T Ap i , i = 1, . . . , k.Z toho plyneZřejmě platí tvrzeníβ ki = − (pi ) T Ah k, i = 1, . . . , k. (5.10)(p i ) T Api ⟨p 1 , . . . , p k+1 ⟩ = ⟨p 1 , . . . , p k , h k ⟩.Pokud máme lineárně nezávislé vektory h 0 , . . . , h k−1 , můžeme zvolit p 1 = h 0 a použítvztahy (5.9) a (5.10) k získání množiny vzájemně A-konjugovaných směrů p 1 ažp k takových, že⟨h 0 , . . . , h i−1 ⟩ = ⟨p 1 , . . . , p i ⟩, i = 1, . . . , k.Pro obecnou množinu vektorů h 0 , . . . , h k−1 je nalezení množiny A-konjugovanýchsměrů velmi náročné. Tato náročnost je způsobena jak paměťovými nároky,tak výpočetními nároky. Proto je vhodné zvolit jinou cestu. Touto alternativou jekonstrukce konjugovaných směrů výše uvedenou <strong>pro</strong>cedurou, kterou aplikujeme navektory z Krylovových <strong>pro</strong>storůK k = K k (A, g 0 ) = ⟨g 0 , Ag 0 , . . . , A k−1 g 0 ⟩,k = 1, . . . , n,
5.2 Metoda sdružených gradientů <strong>pro</strong> kvadratické funkce 35kde g 0 = Ax 0 − b, x 0 je vhodná počáteční a<strong>pro</strong>ximace a K 0 = {o}. Tato efektivnímetoda je opět založena na několika pozorováních.Nejprve předpokládejme, že p 1 , . . . , p i tvoří konjugovanou bázi <strong>pro</strong>storu K i , i == 1, . . . , k, a všimněme si, že jestliže x k označuje minimum funkce f na množiněx 0 + K k , pak je gradient g k = ∇f(x k ) ortogonální ke Krylovovu <strong>pro</strong>storu K k . Tzn.(g k ) T x = 0 <strong>pro</strong> libovolné x ∈ K k .Z toho přímo plyne, že jestliže g k ≠ o, potomg k /∈ K k .Protože platí g k ∈ K k+1 , můžeme použít (5.9), kde h k = g k , k rozšíření konjugovanébáze <strong>pro</strong>storu K k na konjugovanou bázi <strong>pro</strong>storu K k+1 . Snadno ověříme, že platíK k (A, g 0 ) = ⟨g 0 , . . . , g k−1 ⟩.Dále si všimněme, že <strong>pro</strong> libovolné x ∈ K k−1 a k ≧ 1 platíAx ∈ K k ,nebo stručně zapsáno AK k−1 ⊆ K k . Protože p i ∈ K i ⊆ K k−1 , i = 1, . . . , k − 1, pakplatí(Ap i ) T g k = (p i ) T Ag k = 0, i = 1, . . . , k − 1.Z toho vyplývá, žeβ ki = − (pi ) T Ag k(p i ) T Ap i = 0, i = 1, . . . , k − 1.Výše uvedené využijeme <strong>pro</strong> následující odvození. Jestliže máme množinu takovýchkonjugovaných vektorů p 1 , . . . , p k , <strong>pro</strong> které platí⟨p 1 , . . . , p i ⟩ = K i , i = 1, . . . , k,pak vztah (5.9) použitý na p 1 , . . . , p k a na h k = g k se zredukuje nakdep k+1 = g k + β k p k , (5.11)β k = β kk = − (pk ) T Ag k. (5.12)(p k ) T Apk Na závěr si všimněme, že z ortogonality g k k <strong>pro</strong>storu ⟨p 1 , . . . , p k ⟩ a vztahu(5.11) vyplývá, že‖p k+1 ‖ ≧ ‖g k ‖. (5.13)A dále platí, že jestliže g k−1 ≠ o, potom p k ≠ o. Tzn., že vztah (5.12) je dobředefinován a navíc platí g k−1 ≠ o.
36 Metoda sdružených gradientůV předcházejícím textu této kapitoly jsme zjistili, že konjugované směry můžemes výhodou použít <strong>pro</strong> redukci minimalizace konvexní kvadratické n-rozměrnéfunkce na minimalizaci posloupnosti jednorozměrných funkcí. Dále jsme zjistili, žetyto konjugované směry mohou být generovány velmi efektivně pomocí Krylovových<strong>pro</strong>storů. Kombinací těchto dvou pozorování dostáváme velmi účinnou metodu -metodu sdružených gradientů.Algoritmus začíná počáteční iterací x 0 , g 0 = Ax 0 − b, a p 1 = g 0 . Jestliže mámedány x k−1 a g k−1 , kde k ≧ 1, pak algoritmus nejprve ověří, zda x k−1 je řešení. Pokudnejde o řešení, pak algoritmus zkonstruuje další iteracix k = x k−1 − α k p kkde α k = (g k−1 ) T p k /(p k ) T A p kag k = Ax k −b = A (︀ x k−1 − α k p k)︀ −b = (︀ Ax k−1 − b )︀ −α k Ap k = g k−1 −α k Ap k . (5.14)Nakonec je zkonstruován nový konjugovaný směr p k+1 pomocí vztahů (5.11) a (5.12).Rozhodnutí, zda je x k−1 „dostatečně přesným“ řešením je obvykle učiněno nazákladě velikosti hodnoty ‖g k−1 ‖. Takže norma gradientu musí být vyčíslena v každéiteraci. Tato norma může být také použita k nahrazení skalárních součinů obsahujícíchgradient ve vztazích <strong>pro</strong> výpočet α k a β k . Abychom odvodili nové vztahy <strong>pro</strong>výpočet α k a β k , nahradíme k v (5.11) číslem k − 1 a vynásobíme výsledný vztahvektorem (g k−1 ) T . S využitím ortogonality získámea po dosazení do (5.8) máme(g k−1 ) T p k = ‖g k−1 ‖ 2 + β k−1 (g k−1 ) T p k−1 = ‖g k−1 ‖ 2 (5.15)α k = ‖gk−1 ‖ 2. (5.16)(p k ) T Apk Pro odvození vztahu <strong>pro</strong> β k si všimněme, že α k > 0 <strong>pro</strong> g k−1 ≠ o a ze vztahu (5.14)dostanemeAp k = − 1 α k(g k − g k−1 ),z čehož plyneaα k (g k ) T A p k = −(g k ) T (g k − g k−1 ) = −‖g k ‖ 2β k = − (pk ) T Ag k(p k ) T Ap = ‖g k ‖ 2k α k (p k ) T Ap = ‖gk ‖ 2k ‖g k−1 ‖ = (gk ) T (g k − g k−1 ). (5.17)2 ‖g k−1 ‖ 2Metoda sdružených gradientů je shrnuta v algoritmu 5.1.
5.2 Metoda sdružených gradientů <strong>pro</strong> kvadratické funkce 37Algoritmus 5.1 Metoda sdružených gradientů (CG).Mějme symetrickou positivně definitní matici A ∈ R n×na b ∈ R n .Krok 0. {Inicializace.}Zvolme ε > 0 (přesnost), x 0 ∈ R n , označme g 0 = Ax 0 − b,p 1 = g 0 , k = 1Krok 1. {Základní cyklus <strong>pro</strong> sdružené gradienty. }while ‖g k−1 ‖ ≧ εα k = ‖g k−1 ‖ 2 /(p k ) T Ap kx k = x k−1 − α k p kg k = g k−1 − α k Ap kβ k = ‖g k ‖ 2 /‖g k−1 ‖ 2 = (gk ) T (g k −g k−1 )‖g k−1 ‖ 2p k+1 = g k + β k p kk = k + 1end whileKrok 2. {Řešení.}̂︀x = x kPoznámka 5.1. Každá iterace metody sdružených gradientů může být implementovánatak, aby obsahovala pouze jedno násobení matice a vektoru. Toto násobeníHessiánem A je výpočetně nejnáročnější část jedné iterace. Do paměti se v průběhuvýpočtu ukládají obvykle pouze vektory x k , p k , a g k .Připomeňme, že algoritmus najde v každé iteraci minimum x k funkce f na množiněx 0 + K k = x 0 + K k (A, g 0 ) a rozšíří konjugovanou bázi <strong>pro</strong>storu K k na bázi<strong>pro</strong>storu K k+1 tak, že g k ≠ o. Protože dimenze <strong>pro</strong>storu K k je menší nebo rovna k,vyplývá z toho, že <strong>pro</strong> nějaké k ≦ n platíK k = K k+1 .Protože g k ∈ K k+1 a g k je ortogonální k K k , pak algoritmus 5.1, který je implementovanýv přesné aritmetice najde řešení ̂︀x <strong>pro</strong>blému (5.1) v nejvýše n iteracích.Nejdůležitější vlastnosti algoritmu 5.1 můžeme shrnout v následující větě.
38 Metoda sdružených gradientůVěta 5.2. Nechť {x k } je posloupnost generována algoritmem 5.1 <strong>pro</strong> nalezení řešení̂︀x úlohy (5.1). Počáteční iterace je zvolena jako x 0 ∈ R n . Pak platí, že algoritmusje dobře definován a existuje k ≦ n takové, že x k = ̂︀x. Navíc platí následujícítvrzení <strong>pro</strong> i = 1, . . . , k:(i) f(x i ) = min{f(x) : x ∈ x 0 + K i (A, g 0 )}.(ii) ‖p i+1 ‖ ≧ ‖g i ‖.(iii) (g i ) T g j = 0 <strong>pro</strong> i ≠ j.(iv) (p i ) T Ap j = 0 <strong>pro</strong> i ≠ j.(v) K i (A, g 0 ) = ⟨g 0 , . . . , g i−1 ⟩ = ⟨p 1 , . . . , p i ⟩.Poznámka 5.3. Obvykle je dostačující nalézt x k takové, že číslo ‖g k ‖ je malé.Například, pokud máme malé ε > 0, můžeme považovat |g k ‖ za malé, pokud platíPotom je ̃︀x = x k přibližné řešení splňující‖g k ‖ ≦ ε‖b‖.‖A(̃︀x − ̂︀x)‖ ≦ ε‖b‖, ‖̃︀x − ̂︀x‖ ≦ ελ min (A) −1 ,kde λ min (A) označuje nejmenší vlastní číslo matice A. Snadno můžeme ověřit, žepřibližné řešení ̃︀x je řešením perturbované úlohy1min ̃︀f(x) =x∈R n 2 xT Ax − ̃︀b T x, ̃︀b = b + g k .5.3 Rychlost konvergenceUveďme nyní bez důkazu odhad rychlosti konvergence metody sdružených gradientů(<strong>pro</strong> kvadratické funkce).Věta 5.4. Nechť {x k } je posloupnost generována algoritmem 5.1 <strong>pro</strong> nalezení řešení̂︀x úlohy (5.1). Počáteční iterace je zvolena jako x 0 ∈ R n . Potom chybae k = x k − ̂︀xsplňuje‖e k ‖ A ≦ 2(︃√︀κ(A) − 1√︀κ(A) + 1)︃ k‖e 0 ‖ A , (5.18)kde κ(A) = λ max /λ min je číslo podmíněnosti matice A a ‖x‖ 2 A = xT Ax označujeenergetickou normu x.
5.4 Metoda sdružených gradientů <strong>pro</strong> nelineární funkce 395.4 Metoda sdružených gradientů <strong>pro</strong> nelineárnífunkceMetodu sdružených gradientů můžeme použít i <strong>pro</strong> obecnější funkce než kvadratické.Stačí pokud jsou tyto funkce diferencovatelné a jsme schopni najít nebo aspoňa<strong>pro</strong>ximovat jejich gradient. K a<strong>pro</strong>ximaci můžeme použít opět metodu konečnýchdiferencí z předchozí kapitoly. Abychom mohli použít <strong>pro</strong> minimalizaci funkce, kteránení kvadratická, metodu sdružených gradientů, musíme učinit následující úpravy.Vztah (5.16), který používáme <strong>pro</strong> určení délky kroku α k v algoritmu 5.1 (totoα k minimalizuje funkci f v bodě x k−1 ve směru −p k ), nahradíme rutinou <strong>pro</strong>vádějícíjednorozměrnou minimalizaci funkce f v bodě x k−1 ve směru −p k , tj. α k == arg minα>0 f(xk−1 − αp k ). K tomu můžeme využít například některý z algoritmůz kapitoly 3.Dále musíme nahradit reziduum g k = g(x k ) = Ax k − b = g k−1 − α k Ap k , které jegradientem kvadratické funkce f(x) = 1 2 xT Ax−x T b v bodě x k gradientem nelineárnífunkce f, tj. g k = ∇f(x k ).Pro výpočet β k , které se v případě kvadratické funkce rovná ‖g k ‖ 2 /‖g k−1 ‖ 2i (gk ) T (g k −g k−1 )‖g k−1 ‖ 2, použijeme jeden z těchto vztahů. V případě nelineární funkce, aletyto vztahy nedávají stejnou hodnotu β k . V případě použití β k = ‖g k ‖ 2 /‖g k−1 ‖ 2nazýváme tuto metodu metodou Fletcher-Reeves. Pokud použijeme vztah β k == (g k ) T (g k − g k−1 )/‖g k−1 ‖ 2 mluvíme o metodě Polak-Ribiere.Algoritmus 5.2 Metoda nelineárních sdružených gradientů (CG).Krok 0. {Inicializace.}Zvolme ε > 0 (přesnost), x 0 ∈ R n , označme g 0 = ∇f(x 0 ),p 1 = g 0 , k = 1Krok 1. {Základní cyklus <strong>pro</strong> nelineární sdružené gradienty. }while ‖g k−1 ‖ ≧ εα k = arg minα>0 f(xk−1 − αp k )x k = x k−1 − α k p kg k = ∇f(x k )β k = ‖g k ‖ 2 /‖g k−1 ‖ 2 (Fletcher-Reeves)β k = (g k ) T (g k − g k−1 )/‖g k−1 ‖ 2 (Polak-Ribiere)p k+1 = g k + β k p kk = k + 1end whileKrok 2. {Řešení.}̂︀x = x kPoznámka 5.5. Protože v případě použití metody nelineárních sdružených gradi-
40 Metoda sdružených gradientůentů už není zaručena konjugovanost vektorů p 1 , . . . , p n , může nastat <strong>pro</strong>blém, ževektor p k je „téměř kolmý“ k vektoru g k−1 = ∇f(x k−1 ), tj. vektor −p k není směrpoklesu a algoritmus 5.2 pak při linesearch α k = arg minα>0 f(xk−1 −αp k ) najde α k ≈ 0.To znamená, že g k = ∇f(x k ) ≈ g k−1 = ∇f(x k−1 ).Pokud použijeme metodu Fletcher-Reeves (tj. β k = ‖g k ‖ 2 /‖g k−1 ‖ 2 ), pak β k ≈ 1a p k+1 ≈ g k + p k . V případě, že ‖g k ‖ ≪ ‖p k ‖, pak p k+1 ≈ p k . V tom případě sealgoritmus 5.2 „zacyklí“ v okolí bodu x k a není schopen nalézt a<strong>pro</strong>ximaci minimafunkce f.Pokud použijeme metodu Polak-Ribiere (tj. β k = (g k ) T (g k −g k−1 )/‖g k−1 ‖ 2 ), pakβ k ≈ 0 a p k+1 ≈ g k . V tom případě je vektor −p k+1 ≈ −g k směrem poklesu a algoritmus5.2 <strong>pro</strong>vede v další iteraci jeden krok gradientní metody a začne znovu budovatkonjugované vektory jako na začátku iteračního <strong>pro</strong>cesu metody nelineárních sdruženýchgradientů (p k+1 ≈ g k ). V tomto případě algoritmus 5.2 pokračuje v hledánía<strong>pro</strong>ximace minima funkce f. Metoda Polak-Ribiere je <strong>pro</strong>to stabilnější než metodaFletcher-Reeves.Příklady k <strong>pro</strong>cvičení1. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = x 2 1 + x 2 2.min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou nelineárních sdružených gradientů.2. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = x 4 1 + x 2 1 + x 2 2.min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou nelineárních sdružených gradientů.3. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = 100x 4 1 + x 2 2.min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou nelineárních sdružených gradientů.
Příklady k <strong>pro</strong>cvičení 414. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = sin 2 x 1 + cos 2 x 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou nelineárních sdružených gradientů.5. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = (x 1 − x 2 2) 2 + (1 − x 1 ) 2 .minx∈R 2 f(x 1, x 2 ).Tuto úlohu řešte metodou nelineárních sdružených gradientů.6. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = (x 1 − x 2 2) 2 + 100(1 − x 1 ) 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou nelineárních sdružených gradientů.7. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = 100(x 3 1 − x 2 2) 2 + (1 − x 1 ) 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou nelineárních sdružených gradientů.8. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = 100(x 1 − x 2 2) 2 + (1 − x 1 ) 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou nelineárních sdružených gradientů.
42Kapitola 6Newtonova metodaV této kapitole se seznámíme s Newtonovou metodou, což je spádová metoda <strong>pro</strong>minimalizaci alespoň dvakrát spojitě diferencovatelné funkce f využívající kvadratickýmodel f. Pokud je f alespoň dvakrát spojitě diferencovatelná a konvexnív okolí řešení, pak podle Taylorovy věty kvadratický model dobře a<strong>pro</strong>ximuje cenovoufunkci v okolí řešení a můžeme očekávat velmi rychlou konvergenci. Cenou zato je vyšší cena iterace a menší robustnost Newtonova směru. Pokud není možnonajít počáteční a<strong>pro</strong>ximaci blízko řešení, je třeba Newtonowu metodu modifikovatpomocí vhodné globalizační strategie.6.1 Newtonova metodaNewtonova metoda využívá kvadratický model f definovaný v okolí iterace x k ,f(x) ≈ m(x) = m k (x) = f(x k )+(x−x k ) T ∇f(x k )+ 1 2 (x−xk ) T ∇ 2 f(x k )(x−x k ). (6.1)Minimum m je dosaženo v x, které řeší∇m(x) = o, tzn. ∇f(x k ) + ∇ 2 f(x k )(x − x k ) = o.Odtud dostáváme předpis <strong>pro</strong> Newtonovu iteracix k+1 = x k − ∇ 2 f(x k ) −1 ∇f(x k ). (6.2)Označíme-li si d k = −∇ 2 f(x k ) −1 ∇f(x k ), dostaneme <strong>pro</strong> pozitivně definitní Hessián∇ 2 f(x k ) a ∇f(x k ) ≠ o∇f(x k ) T d k = −∇f(x k ) T ∇ 2 f(x k ) −1 ∇f(x k ) < 0,takže Newtonův směr je směr poklesu a Newtonův krok lze považovat za krok variantymetody spádových směrů s pevně zvoleným krokem α k = 1. Poslední nerovnostplyne z pozorování, že inverzní matice k pozitivně definitní matici A je pozitivně
6.2 Kvadratická rychlost konvergence 43definitní, neboť každé x ∈ R n lze napsat ve tvaru x = A −1 y a <strong>pro</strong> pozitivně definitnímatici A platíx T A −1 x = (Ay) T A −1 Ay = y T Ay > 0.Použijeme-li k zajištění délky kroku Armijovo pravidlo (4.6) s počáteční délkou krokus = 1, pak lze dokázat, že v blízkém okolí nesingulárního řešení není třeba dělatžádnou redukci. Tento výsledek není příliš překvapivý, neboť Newtonova metoda jezaložena na kvadratickém modelu funkce, který je blízko řešení věrný. Použijeme-liNewtonovu metodu k minimalizaci striktně konvexní kvadratické funkce, dostanemeřešení v jediném kroku.Na druhé straně, pokud nejsme blízko řešení, tak Newtonův krok nemusí být anisměrem poklesu, neboť není zaručeno, že ∇ 2 f(x k ) je pozitivně definitní. Newtonovametodu je <strong>pro</strong>to nutné kombinovat s vhodnou globalizační strategií, která nahradíNewtonův krok nějakým krokem ve směru poklesu s přiměřenou délkou kroku.6.2 Kvadratická rychlost konvergenceJelikož Newtonova metoda používá věrnější model funkce než gradientní metoda,dá se očekávat, že její rychlost konvergence v okolí řešení bude větší než je rychlostkonvergence gradientní metody nebo metody sdružených gradientů, alespoň pokudměříme rychlost konvergence počtem kroků a nezohledňujeme pracnost metod.Věta 6.1. Nechť f je dvakrát spojitě diferencovatelná funkce, která má minimumv ̂︀x a splňuje v okolí řešeníd T ∇ 2 f(x)d ≧ λ‖d| 2 , λ > 0.Potom existuje okolí ̂︀x, ve kterém Newtonova metoda definovaná (6.2) konvergujesuperlineárně, t.j. platí‖x k+1 − ̂︀x‖limk→∞ ‖x k − ̂︀x‖= lim o(‖x k+1 − ̂︀x‖)k→∞ ‖x k − ̂︀x‖= 0.Důkaz. Označme si <strong>pro</strong> stručnostg(x) = ∇f(x), x ∈ R n ,takže si můžeme přepsat Newtonův krok (6.2) do tvarux k+1 = x k − ∇g(x k ) −1 g(x k ). (6.3)Potom g(̂︀x) = o a podle Taylorovy věty
44 Newtonova metodag(̂︀x) = g (︀ x k + (̂︀x − x k ) )︀ = g(x k ) + ∇g(x k ) (︀̂︀x T − x k)︀ + o(‖x k − ̂︀x‖).Odtud dostaneme po přenásobení zleva ∇g(x k ) −1 a elementární úpravěx k − ̂︀x − ∇g(x k ) −1 g(x k ) = o(‖x k − ̂︀x‖).Použijeme-li definici Newtonova kroku (6.3), dostanemeax k+1 − ̂︀x = o(‖x k − ̂︀x‖)x k+1 − ̂︀x‖x k − ̂︀x‖ = o(‖xk − ̂︀x‖)‖x k − ̂︀x‖ .6.3 Newtonova metoda s modifikací HessiánuZ našich dosavadních úvah o Newtonově metodě vyplývá, že konverguje velmi rychlev okolí řešení, avšak obecně nemusí generovat ani směr poklesu, který bychom mohlipoužít k přiblížení řešení. Našim prvním krokem k zajištění globální konvergencetedy bude zajistit, aby kvadratický model m k funkce f v x k byl striktně konvexní,t.j. aby Hessián H k byl pozitivně definitní. Tím se současně zajistí, aby modifikovanáNewtonova metoda generovala směr poklesu, neboť <strong>pro</strong> pozitivně definitní matici H ka d = −H −1k∇f(xk ) platíd T ∇f(x k ) = −∇f(x k ) T H −1k ∇f(xk ) < 0.Pokud si nejsme jisti konvexitou cenové funkce, musíme tedy v každém kroku otestovat,zda je Hessián cenové funkce pozitivně definitní.Násobek jednotkové maticeJe-li počet neznámých velmi malý, můžeme testovat pozitivní definitnost pomocíSylvesterova pravidla. Pokud nahradíme v Newtonově kroku Hessián násobkem jednotkovématice cI, dostaneme směr poklesu gradientní metody ax k+1 = x k − c −1 I ∇f(x k ),tedy krok gradientní metody s fixní délkou kroku. Výsledkem je pomalá konvergence,což není překvapivé, neboť při tom nijak nevyužíváme informaci druhého řádu.Další možností <strong>pro</strong> nalezení spektra matice H k a tím ověření její pozitivní definitnostije aplikovat na Hessián Geršgorinovu větu. Díky této větě získám informacio rozložení vlastních čísel Hessiánu a přičtením vhodného násobku jednotkové maticek Hessiánu získáme jeho pozitivně definitní a<strong>pro</strong>ximaci.
6.3 Newtonova metoda s modifikací Hessiánu 45Choleského rozkladEfektivní alternativou k <strong>pro</strong>sté náhradě Hessiánu jinou pozitivně definitní maticíje využití Choleského rozkladu, který umožňuje rozložit pozitivně definitní A nasoučinA = LL T , (6.4)kde L je regulární dolní trojúhelníková matice s kladnými diagonálními prvky.Metoda vyčíslení faktoru L se nazývá Choleského faktorizace. Choleského faktorL může být vypočten po sloupcích. Pokud[︂ ]︂[︂ ]︂a11 aA =T 1l11 oa L =,A 22 L 22a 1pak po dosazení za A a L do (6.4) a po porovnání odpovídajících prvků dostanemel 11 = √ a 11 ,l 1l 1 = l −111 a 1 , L 22 L T 22 = A 22 − l 1 l T 1 . (6.5)Tímto postupem získáme první sloupec matice L a zbývající blok L 22 je Choleskéhofaktor Schurova doplňku A 22 − l 1 l T 1 . Protože je Schurův doplněk pozitivně definitní,můžeme najít jeho první sloupec výše uvedeným postupem atd. Tuto rutinu můžemeimplementovat tak, abychom využili řídký charakter matice A. Např. když A == [a ij ] ∈ R n×n je pásová matice, kde a ij = 0 <strong>pro</strong> |i − j| > b, b ≪ n.Pokud je matice A ∈ R n×n pouze pozitivně semidefinitní, může nastat, že a 11 = 0.Potom0 ≦ x T Ax = y T A 22 y + 2x 1 a T 1 y<strong>pro</strong> libovolný vektor x = [︀ x 1 , y T ]︀ T. Z nerovnosti vyplývá, že a1 = o, <strong>pro</strong>tože jinakbychom mohli zvolit y = −a 1 a velké x 1 takové, žey T A 22 y + 2x 1 a T 1 y = a T 1 A 22 a 1 − 2x 1 ‖a 1 ‖ 2 < 0.Tedy <strong>pro</strong> symetrickou pozitivně definitní matici A a a 11 = 0 se (6.5) redukuje nal 11 = 0, l 1 = o, L 22 L T 22 = A 22 . (6.6)
46 Newtonova metodaPříklady k <strong>pro</strong>cvičení1. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = x 2 1 + x 2 2.minx∈R 2 f(x 1, x 2 ).Tuto úlohu řešte Newtonovou metodou s analyticky vypočteným gradientem i Hessiánema poté Newtonovou metodou s numericky vypočteným gradientem i Hessiánem.Úlohu počítejte s ukončující podmínkou na velikost gradientu i délku kroku.2. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = x 4 1 + x 2 1 + x 2 2.min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte Newtonovou metodou s analyticky vypočteným gradientem i Hessiánema poté Newtonovou metodou s numericky vypočteným gradientem i Hessiánem.Úlohu počítejte s ukončující podmínkou na velikost gradientu i délku kroku.3. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = 100x 4 1 + x 2 2.min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte Newtonovou metodou s analyticky vypočteným gradientem i Hessiánema poté Newtonovou metodou s numericky vypočteným gradientem i Hessiánem.Úlohu počítejte s ukončující podmínkou na velikost gradientu i délku kroku.4. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = sin 2 x 1 + cos 2 x 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte Newtonovou metodou s analyticky vypočteným gradientem i Hessiánema poté Newtonovou metodou s numericky vypočteným gradientem i Hessiánem.Úlohu počítejte s ukončující podmínkou na velikost gradientu i délku kroku.
Příklady k <strong>pro</strong>cvičení 475. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = (x 1 − x 2 2) 2 + (1 − x 1 ) 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte Newtonovou metodou s analyticky vypočteným gradientem i Hessiánema poté Newtonovou metodou s numericky vypočteným gradientem i Hessiánem.Úlohu počítejte s ukončující podmínkou na velikost gradientu i délku kroku.6. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = (x 1 − x 2 2) 2 + 100(1 − x 1 ) 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte Newtonovou metodou s analyticky vypočteným gradientem i Hessiánema poté Newtonovou metodou s numericky vypočteným gradientem i Hessiánem.Úlohu počítejte s ukončující podmínkou na velikost gradientu i délku kroku.7. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = 100(x 3 1 − x 2 2) 2 + (1 − x 1 ) 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte Newtonovou metodou s analyticky vypočteným gradientem i Hessiánema poté Newtonovou metodou s numericky vypočteným gradientem i Hessiánem.Úlohu počítejte s ukončující podmínkou na velikost gradientu i délku kroku.8. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = 100(x 1 − x 2 2) 2 + (1 − x 1 ) 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte Newtonovou metodou s analyticky vypočteným gradientem i Hessiánema poté Newtonovou metodou s numericky vypočteným gradientem i Hessiánem.Úlohu počítejte s ukončující podmínkou na velikost gradientu i délku kroku.
48Kapitola 7Trust regionJak jsme viděli výše, efektivnost Newtonovy metody <strong>pro</strong> minimalizaci hladké funkcef bez omezení záleží na věrnosti kvadratického modelu v okolí jeho minima. Doposudjsme <strong>pro</strong>blém s případným rozdílem mezi cenovou funkcí a jejím lokálním modelemřešili zkrácením kroku. Alternativně však můžeme omezit platnost modelu také specifikacíokolí Ω k dané iterace x k , na kterém je model věrný, a další iteraci volitpodlex k+1 = x k + d k ,d k = arg mind∈Ω km k (x k + d).Lze očekávat, že model funkce bude tímto způsobem využit lépe než by tomu bylou Newtonovy metody, která by zkrátila Newtonův krok tak, aby další iterace patřilado Ω k , a to za cenu minimalizace komplikované omezením. <strong>Metody</strong> založené naminimalizaci modelu funkce na omezeném okolí dané iterace se anglicky nazývajímetody typu trust region, t.j. něco jako metody důvěryhodné oblasti.Okolí Ω k volíme tak, aby bylo možno minimum efektivně spočítat, nejčastějipomocí l ∞ -normy nebo pomocí eukleidovské normy, které jsou <strong>pro</strong> y = [y i ] ∈ R ndefinovány po řadě předpisy√︁‖y‖ ∞ = max i|i=1,...,na ‖y‖ = y1 2 + · · · + yn.2V dalších kapitolách si ukážeme efektivní algoritmy <strong>pro</strong> hledání minima konvexníkvadratické funkce na okolí určeném l ∞ -normou ve tvaruΩ k = {x ∈ R n : ‖x − x k ‖ ∞ ≦ δ k }.V této kapitole se zaměříme na využití okolí určeného eukleidovskou normouΩ k = {x ∈ R n : |x i − x k i | 2 ≦ δ k }.Pro zjednodušení výkladu se omezíme na konvexní funkce, metodu však lze adaptovatna nalezení stacionárního bodu libovolné funkce.
7.1 Penalizační lemma 497.1 Penalizační lemmaNáš výklad bude založen na výsledku, který nám umožní převést minimalizaci naeukleidovském okolí na minimalizaci modifikované cenové funkce bez omezení.Věta 7.1. Nechť f je striktně konvexní kvadratická funkce, x ∈ R n , δ > 0, a nechťd ∈ R n je řešením <strong>pro</strong>blémuPotom existuje c > 0 tak, žef(x + d) = min f(x + d). (7.1)‖d‖≦δ(︁f(x + d) = min f(x + d) + c )︁d∈R n 2 ‖d‖2 . (7.2)Důkaz. Jestliže řešení d <strong>pro</strong>blému (7.2) splňuje ‖d‖ < δ, pak zřejmě stačí položitc = 0. Pokud tomu tak není, potom z obr. 7.1 plyne, že existuje c > 0 tak, že platíOdtudcd = −∇ d f(x + d).∇ d(︁f(x + d) + c 2 ‖d‖2 )︁⃒⃒⃒d=d= ∇ d f(x + d) + cd = 0,což je podmínka <strong>pro</strong> minimum funkce na pravé straně rovnosti (7.2).dx−∇ d f(x + d)Obr. 7.1: Ilustrace penalizační věty
50 Trust region7.2 Levenberg-Marquardtova implementaceBudeme používat kvadratický model f v okolí iterace x k , který zahrnuje omezeníminimalizace na okolí Ω k pomocí δ k ≧ 0, takžem k (x k + d) = f(x k ) + d T ∇f(x k ) + 1 2 dT (︀ ∇ 2 f(x k ) + δ k I )︀ d. (7.3)Algoritmus nejprve najde „zkušební“ délku kroku d k přibližným řešenímd k ≈ arg mind∈R n m k(x k + d).Tento krok odpovídá podle věty 7.1 minimalizaci m k na nějakém okolí Ω k určenémimplicitně δ k . Pak se rozhodne, zda ho přijme podle toho, zda se podařilo dosáhnoutdostatečného poklesu cenové funkce. V dalším kroku se aktualizuje δ k , t.j. velikostokolí, na kterém se <strong>pro</strong>vádí minimalizace. Celý algoritmus potom vypadá následovně.Algoritmus 7.1 Základní Trust Region algoritmus.Je dána konvexní funkce f, zvolíme 0 < η 1 ≦ η 2 < 1,0 < γ 1 < 1 < γ 2 , x 0 , k = 0, δ 0 > 0.Krok 0. {Cyklus gradientní metody.}while ‖∇f(x k )‖ velkéKrok 1. {Minimalizace modelu m k .}d k ≈ arg mind∈R n m k(x k + d).Krok 2. {Aktualizace x k .}ρ k = f(xk ) − f(x k + d k )m k (x k ) − m k (x k + d k )if ρ k ≧ η 1then x k+1 = x k + d kelse x k+1 = x kend ifKrok 3. {Trust region aktualizace (pomocí aktualizace δ k ).}⎧⎨ γ 2 δ k if ρ k > η 2δ k = δ k if ρ k ∈ ⟨η 1 , η 2 ⟩⎩γ 1 δ k if ρ k < η 1k = k + 1end whileKrok 4. {Dosaď (přibližné) řešení.}̃︀x = x k
Příklady k <strong>pro</strong>cvičení 51Algoritmus 7.1 lze považovat též za <strong>pro</strong>totyp algoritmu tzv. sekvenčního kvadratického<strong>pro</strong>gramování (sequential quadratic <strong>pro</strong>gramming-SQP). Modifikací pravidlaaktualizace δ k ho lze snadno upravit tak, aby hledal stacionární bod i <strong>pro</strong> funkce,které nejsou konvexní. Zde jsme se omezili na konvexní funkce částečně <strong>pro</strong> jednoduchost,částečně <strong>pro</strong>to, abychom se vyhnuli použití věty 7.1 <strong>pro</strong> nekonvexní funkce.Poznamenejme, že věta 7.1 platí i <strong>pro</strong> nekonvexní funkce, její důkaz je téměř triviálníaplikace podmínky minima funkce s omezením, kterou si však odvodíme ažv dalších kapitolách.Příklady k <strong>pro</strong>cvičení1. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = x 2 1 + x 2 2.min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte Trust region metodou. Úlohu počítejte s ukončující podmínkou navelikost gradientu i délku kroku.2. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = x 4 1 + x 2 1 + x 2 2.min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte Trust region metodou. Úlohu počítejte s ukončující podmínkou navelikost gradientu i délku kroku.3. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = 100x 4 1 + x 2 2.min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte Trust region metodou. Úlohu počítejte s ukončující podmínkou navelikost gradientu i délku kroku.
52 Trust region4. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = sin 2 x 1 + cos 2 x 2 .minx∈R 2 f(x 1, x 2 ).Tuto úlohu řešte Trust region metodou. Úlohu počítejte s ukončující podmínkou navelikost gradientu i délku kroku.5. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = (x 1 − x 2 2) 2 + (1 − x 1 ) 2 .minx∈R 2 f(x 1, x 2 ).Tuto úlohu řešte Trust region metodou. Úlohu počítejte s ukončující podmínkou navelikost gradientu i délku kroku.6. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = (x 1 − x 2 2) 2 + 100(1 − x 1 ) 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte Trust region metodou. Úlohu počítejte s ukončující podmínkou navelikost gradientu i délku kroku.7. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = 100(x 3 1 − x 2 2) 2 + (1 − x 1 ) 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte Trust region metodou. Úlohu počítejte s ukončující podmínkou navelikost gradientu i délku kroku.8. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = 100(x 1 − x 2 2) 2 + (1 − x 1 ) 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte Trust region metodou. Úlohu počítejte s ukončující podmínkou navelikost gradientu i délku kroku.
53Kapitola 8<strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu -BFGS8.1 Heuristické odvození základních myšlenek metodyBFGSV této kapitole vybudujeme minimalizační algoritmus <strong>pro</strong> metodu, která používáNewtonův krok. Ale narozdíl od Newtonovy metody je informace druhého řádu(tj. v případě funkce jedné <strong>pro</strong>měnné druhá derivace a v případě funkce více <strong>pro</strong>měnnýchHessián) a<strong>pro</strong>ximována na základě znalostí předcházejících iterací. Takovémetodě budeme říkat kvazi-Newtonova. K této a<strong>pro</strong>ximaci informace druhéhořádu použijeme v případě funkce jedné <strong>pro</strong>měnné tzv. metodu sečen (viz obrázek8.1) určenou <strong>pro</strong> hledání řešení rovnice f(x) = 0. Tato metoda a<strong>pro</strong>ximujeff (︀ x k)︀f (︀ x k−1)︀x k+1 x k x k−1Obr. 8.1: Algoritmus metody sečentoto řešení průsečíkem sečny ke grafu funkce f v bodech x k a x k−1 s osou x, tzn.
54 <strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu - BFGSx k+1 = x k − f(x k )≈ f ′ (x k ). Pokud použijeme metodux k −x k−1sečen <strong>pro</strong> řešení rovnice f ′ (x) = 0, dostaneme vztahx k −x k−1a f(xk )−f(x k−1 )f(x k )−f(x k−1 )f ′ (x k ) − f ′ (x k−1 ) = b (︀ x k − x k−1)︀ , (8.1)který použijeme <strong>pro</strong> a<strong>pro</strong>ximaci druhé derivace v bodě x k (b ≈ f ′′ (x k )). V případěfunkce více <strong>pro</strong>měnných použijeme zobecnění vztahu (8.1):∇f(x k ) − ∇f(x k−1 ) = B (︀ x k − x k−1)︀ , (8.2)který použijeme <strong>pro</strong> a<strong>pro</strong>ximaci Hessiánu v bodě x k (B ≈ ∇ 2 f(x k )). Tento vztahjiž nestačí <strong>pro</strong> jednoznačné určení matice B a <strong>pro</strong>to musíme k jejímu určení přidatdalší podmínku. Tu nám poskytne lemma uvedená v další podkapitole.8.2 Minimalizační lemmaLemma 8.1. Nechť y, s ∈ R n , kde y T s > 0, a množina Q(y, s) je dána Q(y, s) == {B ∈ R n,n : Bs = y}. Pak platí:kdemin ‖B − A‖ = ‖A + − A‖, (8.3)B∈Q(y,s)A + = A +(y − As)sTs T sDůkaz. Ukážeme nejprve, že platí tvrzení ∀B ∈ Q(y, s) :‖A + − A ‖ ≦ ‖B − A‖.. (8.4)K tomu použijeme vztah (8.4), definici množiny Q(y, s) a vlastnost normy ‖MN‖ ≦≦ ‖M‖‖N‖, která platí <strong>pro</strong> všechny matice M, N ∈ R n,n .Tzn.‖A + − A ‖ = ‖A + (y−As)sTs T s≦ ‖B − A‖ ‖ssT ‖. s T s− A ‖ = ‖ (y−As)sTs T s‖ = ‖ (Bs−As)sTs T s‖ = ‖(B − A) ssTs T s ‖ ≦Pokud využijeme toho, že norma matice je indukovaná vektorovou normou a tedyplatí{︂ }︂‖Mx‖‖M‖ = max‖x‖: x ∈ Rn , x ≠ o ,pak je snadné dokázat, že platí‖ss T ‖s T s = 1.
8.3 Symetrická pozitivně definitní a<strong>pro</strong>ximace Hessiánu 55Z toho plyne‖B − A‖ ‖ssT ‖s T sa tím jsme ověřili platnost ∀B ∈ Q(y, s) := ‖B − A‖‖A + − A ‖ ≦ ‖B − A‖.Je snadné ověřit, že platí A + ∈ Q(y, s). Tím jsme ukázali, že ‖B − A‖ nabývásvého minima v A + , které je dáno vztahemA + = A +(y − As)sTs T s.8.3 Symetrická pozitivně definitní a<strong>pro</strong>ximace HessiánuV této části si vybudujeme symetrickou pozitivně definitní a<strong>pro</strong>ximaci Hessiánu nazákladě znalostí gradientů funkce f z předcházejících iterací. V případě funkce jedné<strong>pro</strong>měnné platí f ′ (x + h) − f ′ (x) = f ′′ (ξ)h ≈ f ′′ (x)h. Pokud tuto rovnost zobecnímedo více dimenzí, dostanemeH k s = y, (8.5)kdes = x k − x k−1 , y = ∇f(x k ) − ∇f(x k−1 ). (8.6)Předpokládejme, že máme k dispozici Choleského rozklad matic H k a H k−1 :Dosaďme vztah (8.7) do vztahu (8.5), tím dostanemeH k = JJ T , (8.7)H k−1 = LL T . (8.8)JJ T s = y. (8.9)Označme v = J T s a tím dostaneme Jv = y.Zvolme matici J tak, aby splňovala Jv = y a současně byla její vzdálenost odmatice L minimální. K tomu můžeme použít tvrzení lemmy 8.1. DostanemeJ = L +(y − Lv)vTv T vV rovnici v = J T s dosaďme za J ze vztahu (8.10):L T s + v(y − Lv)T sv T v. (8.10)= v. (8.11)
56 <strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu - BFGSDále upravme (8.11) a dostanemea po další úpravěL T s + vyT s − vv T L T sv T v= v (8.12)L T s + yT s − v T L T sv = v. (8.13)v T vOznačme v (8.13) zlomek konstantou k:A upravme (8.13) a získámePokud označíme11−kk = yT s − v T L T s. (8.14)v T vL T s = (1 − k)v. (8.15)jako α, přepíšeme vztah (8.15) naDosaďme do (8.11) za v ze vztahu (8.16) a dostanemea po úpravěDále upravímea nakonecαL T s = v. (8.16)L T s + α yT s − αs T LL T sL T s = αL T s (8.17)α 2 s T LL T sL T s + α yT sL T sα 2 s T LL T s − LT s = αL T s. (8.18)α 2 =α =y T sαs T LL T syT ss T LL T s =(8.19)yT ss T H k−1 s . (8.20)V případě, že je splněna podmínka y T s > 0 1 , pak vyjádříme α:√︂yT sα =s T H k−1 s . (8.21)Pokud podmínka y T s > 0 není splněna, pak je třeba zvolit H k = H k−1 , abychomměli nadále zaručenu pozitivní definitnost a<strong>pro</strong>ximace Hessiánu.1 Tato podmínka je splněna, pokud je funkce f konvexní v bodě x k , neboť z toho plyne, že maticeH k je symetrická pozitivně definitní a <strong>pro</strong>to y T s = s T H T s = s T Hs > 0. V případě, že funkce fnení konvexní, pak je podmínka splněna pokud <strong>pro</strong> délku kroku αs navíc vyžadujeme tzv. Wolfehopodmínku ∇f(x k−1 +αs) T s ≧ β∇f(x k−1 )s, 0 < β < 1. A to <strong>pro</strong>to, že y T s = ∇f(x k )s−∇f(x k−1 )sa ∇f(x k−1 )s < 0 platí, <strong>pro</strong>tože s je směr poklesu.
8.3 Symetrická pozitivně definitní a<strong>pro</strong>ximace Hessiánu 57Po dosazení do (8.16):√︂yT sv =s T H k−1 s LT s. (8.22)Dosaďme do (8.7) vztah (8.10):H k = JJ T =(︂L +(y − Lv)vTv T vPoužijeme (8.22) a odvodíme)︂ (︂L +(y − Lv)vTv T v)︂ T= LL T + yyTv T v − LvvT L T.v T v(8.23)av T v = s T LL T y T sss T H k−1 s = sT H k−1 y T sss T H k−1 s = yT s ⇒ yyTv T v = yyTy T s(8.24)vv T =yT ss T H k−1 s LT ss T L ⇒ LvvT L T= yT s LL T ss T LL T= Hk−1 ss T H k−1.v T v s T H k−1 s y T s s T H k−1 s(8.25)Po dosazení (8.24) a (8.25) do (8.23) získáme vztah <strong>pro</strong> symetrickou pozitivnědefinitní a<strong>pro</strong>ximaci Hessiánu v bodě x k :H k = H k−1 + yyTy T s − Hk−1 ss T H k−1. (8.26)s T H k−1 s
58 <strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu - BFGS8.4 Algoritmus BFGSVztah (8.26) je základním kamenem metody BFGS (Broyden-Fletcher-Goldfarb--Shanno). Při budování symetrické pozitivně definitní a<strong>pro</strong>ximace Hessiánu pomocítohoto vztahu je rozumné zvolit jako H 0 jednotkovou matici I.Algoritmus 8.1 Metoda BFGS.Krok 0. {Inicializace.}Zvolme ε > 0 (přesnost), x 0 ∈ R n , označme g 0 = ∇f(x 0 ), H 0 = I(jednotková matice), k = 1Krok 1. {Základní cyklus <strong>pro</strong> metodu BFGS. }while ‖g k−1 ‖ ≧ εx k = x k−1 − (︀ H k−1)︀ −1gk−1g k = ∇f(x k )y = g k − g k−1s = x k − x k−1if y T s > 0H k = H k−1 + yyT − Hk−1 ss T H k−1y T s s T H k−1 s(symetrická pozitivně definitní a<strong>pro</strong>ximace Hessiánu)elseendk = k + 1end whileKrok 2. {Řešení.}̂︀x = x kH k = H k−1Příklady k <strong>pro</strong>cvičení1. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = x 2 1 + x 2 2.min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou BFGS. Úlohu počítejte s ukončující podmínkou na velikostgradientu i délku kroku.2. Nakreslete graf a vrstevnice funkcef(x 1 , x 2 ) = x 4 1 + x 2 1 + x 2 2.
Příklady k <strong>pro</strong>cvičení 59Řešte úlohu <strong>optimalizace</strong> bez omezenímin f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou BFGS. Úlohu počítejte s ukončující podmínkou na velikostgradientu i délku kroku.3. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = 100x 4 1 + x 2 2.minx∈R 2 f(x 1, x 2 ).Tuto úlohu řešte metodou BFGS. Úlohu počítejte s ukončující podmínkou na velikostgradientu i délku kroku.4. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = sin 2 x 1 + cos 2 x 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou BFGS. Úlohu počítejte s ukončující podmínkou na velikostgradientu i délku kroku.5. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = (x 1 − x 2 2) 2 + (1 − x 1 ) 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou BFGS. Úlohu počítejte s ukončující podmínkou na velikostgradientu i délku kroku.6. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = (x 1 − x 2 2) 2 + 100(1 − x 1 ) 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou BFGS. Úlohu počítejte s ukončující podmínkou na velikostgradientu i délku kroku.
60 <strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu - BFGS7. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = 100(x 3 1 − x 2 2) 2 + (1 − x 1 ) 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou BFGS. Úlohu počítejte s ukončující podmínkou na velikostgradientu i délku kroku.8. Nakreslete graf a vrstevnice funkceŘešte úlohu <strong>optimalizace</strong> bez omezeníf(x 1 , x 2 ) = 100(x 1 − x 2 2) 2 + (1 − x 1 ) 2 .min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou BFGS. Úlohu počítejte s ukončující podmínkou na velikostgradientu i délku kroku.
62 Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností∇f(̂︀x)∇h(x)̂︀xh(̂︀x) = 0f(x) = f(̂︀x)Obr. 9.1: Minimum kvadratické funkce na přímceJelikož minimum f bez omezení je dosaženo ve společném středu všech kružnicpopsaných pomocí rovnic f(x) = c, c > 0, je z obrázku vidět, že nejmenší z kružnic,na nichž leží alespoň jeden přípustný bod, je právě ta kružnice, která se dotýkápřípustné množiny. Ve společném bodě ̂︀x platí, že gradient f je násobkem gradientuh, tedy existuje λ ∈ R tak, že∇f(̂︀x) + λ∇h(̂︀x) = o.Dostali jsme tak algebraickou formu našeho pozorování. Jelikož řešení musí býtpřípustné, můžeme napsat rovnice, které v našem případě určují řešení:∇f(x) + λ∇h(x) = o,h(x) = o.Jelikož první rovnice je vektorová, můžeme si je přepsat jako tři skalární rovnice2x 1 − λ = 0, 2x 2 − λ = 0, x 1 + x 2 = 4.Jejich řešením dostaneme složky řešení ̂︀x 1 = ̂︀x 2 = 2, λ = 4. Povšimněte si, že jsmezískali nejen řešení úlohy (9.2), ale také hodnotu λ, na kterou se nás nikdo neptal.V dalším výkladu uvidíme, že λ je důležitá veličina, jejíž pochopení nám umožnízavést nové algoritmy a dodatečnou informaci o kvalitě řešení.9.2 Úloha kvadratického <strong>pro</strong>gramování s rovnostmia LagrangiánOdvodíme si nyní podmínky minima <strong>pro</strong> úlohu konvexního kvadratického <strong>pro</strong>gramovánímin f(x), f(x) =x∈Ω xT Ax − b T x, Ω = {x ∈ R n : Bx = c}, (9.3)
9.2 Úloha kvadratického <strong>pro</strong>gramování s rovnostmi a Lagrangián 63kde A je symetrická pozitivně definitní matice řádu n, B je typu m×n a c ∈ H(B) 1 .Předpokládáme, že B ≠ O a že hodnost B je různá od n, takže nulový <strong>pro</strong>storN (B) ≠ {o} 2 , avšak nevyžadujeme, aby B měla nezávislé řádky. Je snadné ukázat,že Ω je neprázdná uzavřená konvexní množina.Přípustná množina Ω je afinní <strong>pro</strong>stor tvaruΩ = x + N (B),kde x je jakýkoliv vektor, který splňujeBx = c.Provedeme-li substituci x = x+z, z ∈ N (B), můžeme převést (9.3) na minimalizacif x (z) = 1 2 zT Az − (b − Ax) T z (9.4)na lineárním <strong>pro</strong>storu N (B). Když se nám to bude hodit, můžeme <strong>pro</strong>to předpokládat,že c = o v definici Ω.Užitečným nástrojem k analýze a řešení <strong>pro</strong>blémů s omezením je LagrangiánL 0 : R n+m → R definovaný pomocíL 0 (x, λ) = f(x) + λ T (Bx − c) = 1 2 xT Ax − b T x + (Bx − c) T λ. (9.5)Povšimněme si, že se nám gradient Lagrangiánu objevil při algebraické formulacipodmínek minima v našem úvodním příkladu. Zřejmě∇ 2 xxL 0 (x, λ) = ∇ 2 f(x) = A, (9.6)∇ x L 0 (x, λ) = ∇f(x) + B T λ = Ax − b + B T λ, (9.7)L 0 (x + d, λ) = L 0 (x, λ) + (Ax − b + B T λ) T d + 1 2 dT Ad. (9.8)Lagrangián je v případě kvadratického <strong>pro</strong>gramování definován tak, že pokud sena něho díváme jako na funkci x, potom je jeho Hessián a restrikce na Ω identickás f, avšak jeho gradient ∇ x L 0 (x, λ) závisí na hodnotě λ. Odtud plyne, že je-li fkonvexní, potom L 0 je konvexní <strong>pro</strong> jakékoliv pevně zvolené λ, a globální minimumL 0 vzhledem k x se rovněž mění s λ. Uvidíme, že je možné zformulovat podmínky<strong>pro</strong> A, B, a b tak, že s vhodnou volbou λ = ̂︀λ se řešení <strong>pro</strong>blému (9.3) s omezenímredukuje na minimalizaci L 0 bez omezení tak jako na obr. 9.2.1 H(B) označuje obor hodnot matice B.2 N (B) označuje nulový <strong>pro</strong>stor (jádro) matice B.
64 Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovnostíL 0 (x, ̂︀λ) = L 0 (̂︀x, ̂︀λ) + cx 0̂︀xΩ Ef(x) = f(x 0 ) + cObr. 9.2: Geometrický význam Lagrangiánu9.3 Podmínky minima <strong>pro</strong> kvadratické <strong>pro</strong>gramovánís rovnostmiHlavní otázky týkající se podmínek optimality a řešitelnosti (9.3) jsou zformuloványv následujícím tvrzení.Věta 9.1. Nechť je <strong>pro</strong>blém (9.3) definován pomocí symetrické matice A ∈ R n×n ,matice omezení B ∈ R m×n se sloupcovou hodností menší než n, a vektorů b ∈ R n ,c ∈ H(B). Potom platí:(i) Vektor x ∈ Ω je řešení (9.3) právě když A|N (B) je pozitivně semidefinitní a<strong>pro</strong> každé d ∈ N (B).(Ax − b) T d = 0 (9.9)(ii) Vektor x ∈ Ω je řešení (9.3) právě když A|N (B) je pozitivně semidefinitnía existuje vektor λ ∈ R m tak, žeAx − b + B T λ = o. (9.10)Důkaz. (i) Nechť x je řešení <strong>pro</strong>blému (9.3), takže <strong>pro</strong> každé d ∈ N (B) a α ∈ R0 ≦ f(x + αd) − f(x) = α(Ax − b) T d + α22 dT Ad. (9.11)Zvolíme-li d ∈ N (B) a α dostatečně velké, dostaneme z nezápornosti pravé strany(9.11), že d T Ad ≧ 0. Tedy A|N (B) musí být pozitivně semidefinitní. Na druhéstraně, <strong>pro</strong> dostatečně malé hodnoty α a (Ax − b) T d ≠ 0, znaménko pravé stranyrovnosti (9.11) je určeno znaménkem α(Ax−b) T d. Jelikož si můžeme zvolit znaménko
9.4 Nutné podmínky <strong>pro</strong> úlohy nelineárního <strong>pro</strong>gramování 65α libovolně a pravá strana (9.11) je nezáporná, dojdeme k závěru že (9.9) platí <strong>pro</strong>každé d ∈ N (B).Předpokládejme nyní, že (9.9) platí <strong>pro</strong> vektor x ∈ Ω a že A|N (B) je pozitivněsemidefinitní. Potomf(x + d) − f(x) = 1 2 dT Ad ≧ 0<strong>pro</strong> každé d ∈ N (B), takže x je řešení (9.3).(ii) Nechť x je řešení (9.3), takže podle (i) A|N (B) je pozitivně semidefinitní a x splňuje(9.9) <strong>pro</strong> každé d ∈ N (B). Poslední podmínka je ekvivalentní Ax−b ∈ H (︀ B T )︀ ,takže existuje λ ∈ R m tak, že platí (9.10).Nechť A|N (B) je pozitivně semidefinitní. Jestliže existuje λ a x ∈ Ω tak, že platí(9.10), potom podle Taylorova rozvojef(x + d) − f(x) = L 0 (x + d, λ) − L 0 (x, λ) = 1 2 dT Ad ≧ 0<strong>pro</strong> každé d ∈ N (B), takže x je řešením (9.3).Z věty 9.1 vyplývá, že řešení úlohy (9.3) je řešením soustavy rovnic, kterou simůžeme zapsat v blokovém tvaru[︂ ]︂ [︂ ]︂ [︂ ]︂A BT x b= . (9.12)B O λ cDvojici (x, λ) která splňuje (9.12), budeme nazývat Karush-Kuhn-Tuckerova dvojicenebo stručně KKT-dvojice. Soustavu (9.12) nazýváme Karush-Kuhn-Tuckerovoupodmínkou nebo stručně KKT-podmínkou.9.4 Nutné podmínky <strong>pro</strong> úlohy nelineárního <strong>pro</strong>gramováníVraťme se nyní k minimalizaci nelineární funkce s omezením ve tvaru rovností (9.1).Hlavní komplikace je v nelineárních rovnostech, které komplikují charakteristikupřípustných přírůstků argumentu v okolí lokálního řešení x, tedy takových vektorůd ∈ R n , <strong>pro</strong> které platíx + d ∈ ΩNemusí totiž existovat přípustné směry, t.j. vektory d <strong>pro</strong> které platíx + αd ∈ Ω <strong>pro</strong> α dostatečně malé.Lze si to snadno ověřit na množině Ω = {x ∈ R 2 : x 2 1 + x 2 2 = 2} v x 1 = x 2 = 1.Problematiku si vysvětlíme podrobněji na tečných směrech, které si zavedemepomocí přípustné křivky. Křivkou zde nazýváme množinu
66 Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovnostíC = {x(t) : t ∈ ⟨t 0 , t 1 ⟩},kde t 0 < t 1 a x : R → R n je <strong>pro</strong>sté zobrazení, které má alespoň dvě spojité derivace.Křivka C se nazývá přípustnou křivkou množiny Ω, jestliže C ⊆ Ω. V dalším se omezímena křivky, které <strong>pro</strong>chází daným lokálním řešením x, takže existuje t ∈ ⟨t 1 , t 2 ⟩tak, že platí x = x(t). Budeme navíc předpokládat, že taková křivka existuje a t = 0(toho můžeme dosáhnout posunutím argumentu t), takžePrvní derivace x(t) je vektorx = x(0).x ′ (t) = dxdt ,který určuje směr tečny k x(t) v t. Je-li tedy x řešením (9.1), potomtakže platíf(x) = f (︀ x(0) )︀ =min f(︀ x(t) )︀ ,t∈⟨t 0 ,t 1 ⟩ddt f(︀ x(t) )︀ | t=0 = x ′ (t) T ∇f (︀ x(t) )︀ | t=0 = x ′ (0) T ∇f(x) = 0. (9.13)Definice 9.2. Označme siT Ω (x) = {d ∈ R n : d = x ′ (0) <strong>pro</strong> přípustnou křivku x množiny Ω}.Množina T Ω (x) doplněná nulovým vektorem se nazývá tečný kužel a v x k množiněΩ.a Množinu K ⊆ R n nazveme (konvexním) kuželem, jestliže αx ∈ K <strong>pro</strong> všechny α ≧ 0 a x ∈ K.Pomocí nového označení a (9.13) můžeme definovat podmínku <strong>pro</strong> řešení x vetvaru<strong>pro</strong> všechna d ∈ T Ω (x), t.j.d T ∇f(x) = 0∇f(x)⊥T (x). (9.14)Praktické použití kužele T Ω (x) k charakteristice minima je velmi <strong>pro</strong>blematické,neboť jeho popis je komplikovaný a tečný kužel je v obecném případě pouze podmnožinounulového <strong>pro</strong>storem ∇h(x) T . Abychom si ověřili druhé tvrzení, stačí sivšimnout, že h i(︀x(t))︀= 0 <strong>pro</strong> t ∈ ⟨t0 , t 1 ⟩, takže <strong>pro</strong> libovolnou přípustnou křivkux(t) platí
9.4 Nutné podmínky <strong>pro</strong> úlohy nelineárního <strong>pro</strong>gramování 67h ′ i(x(t) )︀ = x ′ (t) T ∇h i(︀x(t))︀= 0.Použijeme-li tento vztah <strong>pro</strong> t = 0, dostaneme snadno<strong>pro</strong> všechna d ∈ T Ω (x), tedyd T ∇h i (x) = 0T Ω (x) ⊆ N (︀ ∇h(x) T )︀ . (9.15)Naštěstí je tečný kužel v typických případech shodný s nulovým <strong>pro</strong>storem∇h(x). Toto tvrzení si snadno ověříme <strong>pro</strong> lineární vazby definované pomocí h(x) == Bx−c. K tomu si stačí všimnout, že B = ∇h(x) T , takže d patří do jádra Jacobiánuh v libovolném x ∈ R n , právě když Bd = o, a <strong>pro</strong> x(t) = td − c platítedy d ∈ T Ω (x) ax ′ (t) = x ′ (t) = d,Zobecníme-li si definici Lagrangiánu pomocíT Ω (x) = N (︀ ∇h(x) T )︀ . (9.16)L 0 (x, λ) = f(x) + h(x) T λ,můžeme shrnout naše pozorování do následující věty.Věta 9.3. Nechť je <strong>pro</strong>blém (9.1) definován pomocí diferencovatelných zobrazeníf a h. Nechť <strong>pro</strong>blém (9.1) má lokální minimum v x a nechťPotom existuje λ ∈ R m tak, žeN (︀ ∇h(x) T )︀ = T Ω (x). (9.17)∇ x L 0 (x, λ) = ∇f(x) + ∇h(x) T λ = o. (9.18)Podmínka (9.17) je splněna, když h je afinní zobrazení.Důkaz. Z předpokladu, (9.14) a (9.16) plyne, že ∇f(x) je ortogonální k N (︀ ∇h(x) T )︀ ,t.j. ∇f(x) ∈ H (∇h(x)).Pomocí věty o implicitní funkci a důvtipu lze dokázat rovnost (9.17) i <strong>pro</strong> případ, žehodnost ∇h(x) je rovna m. My si toto poslední tvrzení odvodíme jiným způsobemv 11. kapitole.Dvojici (x, λ), která splňuje (9.18), budeme opět nazývat Karush-Kuhn-Tuckerovadvojice nebo stručně KKT-dvojice. Soustavu (9.18) s podmínkou h(x) = onazýváme Karush-Kuhn-Tuckerovou podmínkou nebo stručně KKT-podmínkou.
68 Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovnostíPodmínku optimality <strong>pro</strong> úlohu s rovnostním omezením lze zavést i pomocí jinégeometrické konstrukce než té, která využívá tečný kužel. K tomu si musíme závéstdalší charakteristiku omezujících podmínek a tou je normálový kužel.Definice 9.4. Množinu N Ω (x) nazveme normálový kužel v x k množině Ω, pokudje ortogonálním doplňkem tečného kuželu v x k množině Ω, tzn.N Ω (x) = {︀ v|v T w ≦ 0 ∀w ∈ T Ω (x) }︀ . (9.19)Pomocí normálového kužele můžeme podmínku optimality shrnout v následujícívětě.Věta 9.5. Nechť je <strong>pro</strong>blém (9.1) definován pomocí diferencovatelných zobrazeníf a h. Nechť <strong>pro</strong>blém (9.1) má lokální minimum v x, pako ∈ ∇f(x) + N Ω (x). (9.20)Poznámka 9.6. Pokud budeme vyžadovat, aby byla v bodě x splněna přísnějšípodmínka <strong>pro</strong> rovnostní omezení h dostaneme dokonce nejen existenci (tato podmínkatotiž zaručuje platnost podmínky (9.17)), ale navíc i jednoznačnost λ splňujícípodmínku (9.18). Touto podmínkou je regularita bodu x. Pro rovnostní vazby ji zavedemev následující definici.Definice 9.7. Mějme minimalizační úlohu (9.1). Přípustný bod x nazveme regulární,jestliže gradienty rovnostních vazeb jsou lineárně nezávislé. Tzn. soustavaα 1 ∇h 1 (x) + α 2 ∇h 2 (x) + . . . α m ∇h m (x) = omá jediné řešeníα 1 = α 2 = . . . = α m = 0.Poznámka 9.8. Přípustný bod, který splňuje podmínku regularity, bývá v některýchtextech označován jako bod splňující klasifikaci omezení na lineární nezávislost 1 .Poznámka 9.9. Je dobré si uvědomit, že podmínka regularity v přípustném boděx nám zaručuje jednoznačnost λ splňující podmínku (9.18), ale v případě „větších“úloh je značně komplikované ji ověřit a <strong>pro</strong>to je v tomto případě její použití omezené.Příklad 9.10. Mějme následující minimalizační úlohu s jedním rovnostním omezenímmin(x 1 ,x 2 )∈Ω x 1 + x 2 , Ω = {x ∈ R : x 2 1 + x 2 2 = 2}.Napište Karush-Kuhn-Tuckerovu podmínku <strong>pro</strong> tuto úlohu a najděte Karush-Kuhn--Tuckerovy dvojice, které ji splňují.1 V anglické literatuře najde čtenář tuto podmínku pod názvem Linear Independence ConstraintQualification či pod zkratkou LICQ.
9.4 Nutné podmínky <strong>pro</strong> úlohy nelineárního <strong>pro</strong>gramování 69Řešení. Pomůžeme si obrázkem 9.3, na kterém jsou znázorněny čárkovaně vrstevnicefunkce f a nepřerušovanou čarou je znázorněna kružnice, která představujepřípustnou množinu. Minimum je dosaženo v bodě ̂︀x.∇h(̂︀x)̂︀x∇f(̂︀x)h(x) = 0f(x) = f(̂︀x)Obr. 9.3: Minimum lineární funkce na přípustné množiněKarush-Kuhn-Tuckerova podmínka <strong>pro</strong> tuto úlohu je ve tvaru(︀∇ (x1 ,x 2 ) (x 1 + x 2 ) + λ∇ (x1 ,x 2 ) x21 + x 2 2 − 2 )︀ = o, x 2 1 + x 2 2 = 2.Z tohoto systému dostaneme po derivování následující systém rovnic1 + 2λx 1 = 0, 1 + 2λx 2 = 0, x 2 1 + x 2 2 − 2 = 0.Jejich řešením dostaneme složky řešení̂︀x 1 = ̂︀x 2 = −1, λ = 0.5 a ̂︀x 1 = ̂︀x 2 = 1, λ = −0.5.Dá se ukázat, že řešením minimalizační úlohy je bod o složkácĥ︀x 1 = ̂︀x 2 = −1.Příklad 9.11. Mějme následující minimalizační úlohu s jedním rovnostním omezenímmin(x 1 ,x 2 )∈Ω x2 1 + x 2 2, Ω = {x ∈ R : x 2 = −5}.Napište Karush-Kuhn-Tuckerovu podmínku <strong>pro</strong> tuto úlohu a najděte Karush-Kuhn--Tuckerovy dvojice, které ji splňují.
70 Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovnostíf(x) = f(̂︀x)̂︀x ∇h(̂︀x) h(x) = 0∇f(̂︀x)Obr. 9.4: Minimum kvadratické funkce na přípustné množiněŘešení. Pomůžeme si obrázkem 9.4, na kterém jsou znázorněny čárkovaně kruhovévrstevnice funkce f a nepřerušovanou čarou je znázorněna přímka, která představujepřípustnou množinu. Minimum je dosaženo v bodě ̂︀x.Karush-Kuhn-Tuckerova podmínka <strong>pro</strong> tuto úlohu je ve tvaru∇ (x1 ,x 2 )(︀x21 + x 2 2)︀+ λ∇(x1 ,x 2 ) (x 2 + 5) = o, x 2 = −5.Z tohoto systému dostaneme po derivování následující systém rovnic2x 1 = 0, 2x 2 + λ = 0, x 2 + 5 = 0.Jejich řešením dostaneme složky řešení̂︀x 1 = 0, ̂︀x 2 = −5, λ = 10.Dá se ukázat, že řešením minimalizační úlohy je bod o složkácĥ︀x 1 = 0, ̂︀x 2 = −5.Příklad 9.12. Mějme následující minimalizační úlohu se dvěma rovnostními omezenímimin(x 1 ,x 2 )∈Ω x2 1 + x 2 2, Ω = {x ∈ R : x 1 + x 2 = 2, x 1 − x 2 = 1}.Napište Karush-Kuhn-Tuckerovu podmínku <strong>pro</strong> tuto úlohu a najděte Karush-Kuhn--Tuckerovy dvojice, které ji splňují.Řešení. Pomůžeme si obrázkem 9.5, na kterém jsou znázorněny čárkovaně kruhovévrstevnice funkce f a nepřerušovanou čarou jsou znázorněny přímky, které představujípřípustnou množinu. Minimum je dosaženo v bodě ̂︀x.
9.5 Odvození Snellova zákona lomu 71h(x) = 0∇h(̂︀x)̂︀x ∇f(̂︀x)∇h(̂︀x)f(x) = f(̂︀x) h(x) = 0Obr. 9.5: Minimum kvadratické funkce na přípustné množiněKarush-Kuhn-Tuckerova podmínka <strong>pro</strong> tuto úlohu je ve tvaru∇ (x1 ,x 2 )(︀x21 + x 2 2)︀+ λ1 ∇ (x1 ,x 2 ) (x 1 + x 2 − 2) + λ 2 ∇ (x1 ,x 2 ) (x 1 − x 2 − 1) = o,x 1 + x 2 = 2, x 1 − x 2 = 1.Z tohoto systému dostaneme po derivování následující systém rovnic2x 1 + λ 1 + λ 2 = 0, 2x 2 + λ 1 − λ 2 = 0, x 1 + x 2 = 2, x 1 − x 2 = 1.Jejich řešením dostaneme složky řešení̂︀x 1 = 1.5, ̂︀x 2 = 0.5, λ 1 = −2, λ 2 = −1.Dá se ukázat, že řešením minimalizační úlohy je bod o složkácĥ︀x 1 = 1.5, ̂︀x 2 = 0.5.9.5 Odvození Snellova zákona lomuNyní si ukážeme aplikaci Karush-Kuhn-Tuckerových podmínek při odvození Snellovazákona lomu. Uvažujme hladkou dvojrozměrnou křivku popsanou rovnicí h(x) = 0,kde funkce h : R 2 → R je spojitě diferencovatelná. Nechť tato křivka rozděluje jakona obrázku 9.6 rovinu na dvě oblasti a rychlost světla je v každé z těchto oblastírůzná. Dále nechť y a z jsou body ležící na opačných stranách křivky h(x) = 0.Předpokládejme, že světlo, které <strong>pro</strong>jde cestu z bodu y do z, <strong>pro</strong>tíná křivku h(x) = 0v bodě x * . Označme rychlost světla v oblasti s bodem y jako v y a rychlost světlav oblasti s bodem z jako v z , tzn. že světelný paprsek <strong>pro</strong>jde úsečku −→ yx * rychlostí v y
72 Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovnostía úsečku −→ x * z rychlostí v z . Normála ke křivce h(x) = 0 v bodě x * je popsána vektorem∇h (x * ). Dále si označme úhel mezi normálou ke křivce h(x) = 0 v bodě x * a úsečkou−→yx * jako φ y a úhel mezi normálou ke křivce h(x) = 0 v bodě x * a úsečkou −→ zx * jakoφ z . Vše je ilustrováno opět na obrázku 9.6.∇h (x * )x *φ yyφ zh(x) = 0zObr. 9.6: Snellův zákon lomuDle Fermatova principu <strong>pro</strong>jde světlo z bodu y do z po cestě s minimální délkoutrvání průchodu světla. Na základě toho můžeme najít polohu bodu x * ležícího nakřivce h(x) = 0 jako řešení minimalizační úlohy s omezením na rovnostmin f(x), (9.21)h(x)=0kde funkce f popisuje čas, za který světelný paprsek <strong>pro</strong>jde z bodu y přes bod x dobodu z. Funkce f je dána taktof(x) =‖y − x‖v y+‖z − x‖v z.Pro nalezení bodu x * , který je řešením úlohy (9.21), použijeme větu 9.3 a podmínku(9.18). Vzhledem k tomu, že předpokládáme ∇h (x * ) ≠ o, je bod x * regulárnía z toho plyne existence x * a λ * , <strong>pro</strong> které platí (dle věty 9.3 a podmínky (9.18))Karush-Kuhn-Tuckerova podmínka∇ x L 0 (x * , λ * ) = ∇f (x * ) + ∇h (x * ) T λ * = o. (9.22)To znamená, že vektor ∇f (x * ) je skalární násobek vektoru ∇h (x * ). Vektor∇f (x * ) =x* − yv y ‖x * − y‖ +x* − zv z ‖x * − z‖ . (9.23)
9.5 Odvození Snellova zákona lomu 73Abychom mohli použít podmínku (9.22), zavedeme vektoryy = x * +y − x*v y ‖y − x * ‖z = x * +z − x*v z ‖z − x * ‖ . (9.24)Navíc zavedeme rovnoběžník se stranami −→ x * y a −→ x * z. Podle (9.23) je vektor −∇f (x * )úhlopříčkou tohoto rovnoběžníku a navíc je podle (9.22) tento vektor kolmý ke křivceh(x) = 0 v bodě x * . Vše je zobrazeno na obrázku 9.7.∇h (x * )yx *φ y¯y¯zφ z−∇f (x * )zObr. 9.7: Snellův zákon lomu - odvozeníZ rovnoběžnosti stran rovnoběžníku plyne, že vzdálenosti bodů y a z od přímky,na které leží vektory −∇f (x * ) a ∇h (x * ), jsou stejné. Označme tyto vzdálenostijako l. Z obrázku 9.7 plynesin φ y =Protože ‖y − x * ‖ = 1v ya ‖z − x * ‖ = 1v zl‖y − x * ‖ , sin φ z =platíl‖z − x * ‖ .l = sin φ y ‖y − x * ‖ = sin φ yv y, l = sin φ z ‖z − x * ‖ = sin φ zv z.Z toho již snadno odvodímesin φ yv y= sin φ zv z,což je hledaný Snellův zákon lomu.
74Kapitola 10<strong>Metody</strong> řešení úloh s rovnostmiV této kapitole se seznámíme se základními algoritmy <strong>pro</strong> nalezení minima nelineárnífunkce vzhledem k omezením ve tvaru rovností. Seznámíme se postupně setřemi metodami redukce naší úlohy na úlohu minimalizace bez omezení, s modifikacígradientní metody <strong>pro</strong> řešení úloh s omezením. V klasické analýze se řešeníúloh minimalizace s rovnostními vazbami nazývají také podmíněné extrémy. Projednoduchost budeme předpokládat, že f je konvexní a že úloha má jediné řešení.10.1 Vnější penaltaPravděpodobně nejjednodušší metoda převedení úlohy s omezením (9.1) spočíváv zahrnutí rovnostních vazeb do cenové funkce tak, že k ní přičteme vhodný člen,který penalizuje porušení vazeb. Omezíme se zde na nejčastěji používanou metodukvadratické penalty, která a<strong>pro</strong>ximuje řešení ̂︀x úlohy (9.1) řešením ̂︀x ρ úlohymin f ρ(x), f ρ (x) = f(x) + 1x∈R n 2 ρ‖h(x)‖2 , (10.1)kde ρ > 0 je penalizační parametr a ‖h(x)‖ 2 je penalizační funkce.Intuitivně je zřejmé, že když je penalizační parametr ρ velký, tak řešení ̂︀x ρ , vekterém je dosaženo minima penalizované funkce f ρ , nemůže být daleko od přípustnémnožiny. Je dokonce zřejmé, že kdyby ρ = ∞, pak by bylo minimum f ρ řešenímpůvodní úlohy (9.1). Můžeme tedy očekávat, že <strong>pro</strong> dostatečně velké hodnoty penalizačníhoparametru ρ bude řešení ̂︀x úlohy (9.1) blízko ̂︀x ρ . Efekt penalizace je naobr. 10.1. Z obrázku je patrné, že řešení penalizované úlohy je typicky blízko přípustnémnožiny, avšak nepatří do ní. Proto se naše penalizační metoda nazývá takémetoda externí penalty.Penalizační efekt si ukážeme na rozšířeném LagrangiánuL ρ (x, λ) = L 0 (x, λ) + ρ 2 ‖h(x)‖2 = f(x) + h(x) T λ + ρ 2 ‖h(x)‖2 . (10.2)
10.1 Vnější penalta 75f ρ (⃗x) = c∇f̂︀x 0̂︀x ρ̂︀xf(x) = cΩObr. 10.1: Význam kvadratické penaltyPro x ∈ Ω tedy platí L 0 (x, λ) = L ρ (x, λ). Předpokládejme, že λ ∈ R m je libovolné,ale předem zvolené a že min L 0 (x, λ) existuje a je dosaženo v jediném argumentu,takže si můžeme označitPotom řešení ̂︀x splňujê︀x 0 = arg min L 0 (x, λ) a ̂︀x ρ = arg min L ρ (x, λ).x xL 0 (̂︀x 0 , λ) ≦ L 0 (̂︀x ρ , λ) + ρ 2 ‖h(̂︀x ρ)‖ 2 = L ρ (̂︀x ρ , λ) ≦ L ρ (̂︀x, λ) = f(̂︀x),takže s použitím L 0 (̂︀x 0 , λ) ≦ L 0 (̂︀x ρ , λ) dostaneme‖h(̂︀x ρ )‖ 2 ≦ 2 ρ(︀f(̂︀x) − L0 (̂︀x ρ , λ) )︀ ≦ 2 ρ(︀f(̂︀x) − L0 (̂︀x 0 , λ) )︀ . (10.3)Odtud snadno plyne, že narušení rovnostních vazeb ‖h(̂︀x ρ )‖ může být libovolně malépři dostatečně velkém ρ.Než se podíváme jak ̂︀x ρ splňuje nutnou podmínku minima (9.18), připomeňmesi, že rozšířený Lagrangián je definován pomocí (10.2), takže∇ x L ρ (x, λ) = ∇f(x) + ∇h(x)λ + ρ∇h(x)h(x) = ∇f(x) + ∇h(x) (︀ λ + ρh(x) )︀a ̂︀x ρ splňujeZavedeme-li si označení∇ x L ρ (̂︀x ρ , λ) = ∇f(̂︀x ρ ) + ∇h(̂︀x ρ ) (︀ λ + ρh(̂︀x ρ ) )︀ = o.̃︀λ = λ + ρh(x), (10.4)
76 <strong>Metody</strong> řešení úloh s rovnostmipotom můžeme poslední rovnost přepsat ve tvar∇f(̂︀x ρ ) + ∇h(̂︀x ρ )̃︀λ = o. (10.5)takže (̂︀x ρ , ̃︀λ) splňuje nutnou podmínku minima (9.18) přesně. Je-li λ nějaká a<strong>pro</strong>ximacevektoru Lagrangeových multiplikátorů řešení úlohy (2.1), potom z našich úvahvyplývá, že ̃︀λ je lepší a<strong>pro</strong>ximace vektoru Lagrangeových multiplikátorů řešení úlohy(2.1). Z nerovnosti (10.3) lze odvodit, že (̂︀x ρ , ̃︀λ) může za rozumných předpokladůa<strong>pro</strong>ximovat řešení úlohy (2.1) i příslušný vektor Lagrangeových multiplikátorů s libovolnoupřesností.10.2 Metoda oboru hodnot <strong>pro</strong> kvadratické <strong>pro</strong>gramováníJak jsme si ukázali v sekci 9.3, KKT-dvojice řešení úlohy (9.3) splňuje[︂ ]︂ [︂ ]︂ [︂ ]︂A BT x b= .B O λ cJe-li matice A pozitivně definitní, můžeme první blokový řádek přenásobit −BA −1a pak přičíst výsledek ke druhému řádku, čímž vyloučíme x a po změně znaménkadostaneme soustavuBA −1 B T λ = BA −1 b − c,která neobsahuje x. Jejím řešením dostaneme multiplikátor řešení λ, který je jedinýprávě když jsou řádky B lineárně nezávislé. Po dosazení λ do první rovnicedostaneme řešení ̂︀x ve tvarû︀x = A −1 (b − B T λ).Pokud je dimenze úlohy velká a pokud má matice A speciální strukturu, nemusíbýt výhodné sestavovat matici BA −1 B T explicitně. Alternativou je řešení pomocívhodné iterační metody, na příklad pomocí metody sdružených gradientů s předpodmíněním.Tento postup se často používá při řešení velkých (řádově miliony ažmiliardy) úloh kvadratického <strong>pro</strong>gramování vznikajících při řešení úloh mechanikyči magnetostatiky pomocí metod rozložení oblasti.
10.3 Metoda nulového <strong>pro</strong>storu <strong>pro</strong> kvadratické <strong>pro</strong>gramování 7710.3 Metoda nulového <strong>pro</strong>storu <strong>pro</strong> kvadratické<strong>pro</strong>gramováníAlternativou k metodě oboru hodnot (range space method) je metoda nulového<strong>pro</strong>storu (null space method), kterou můžeme použít, když máme bázi Z nulového<strong>pro</strong>storu N (B) a x 0 takové, že platíBx 0 = c.Jelikož Ω = {x 0 + Zy : y ∈ R d }, kde d je dimenze nulového <strong>pro</strong>storu N (B), můžemedosadit do (9.3) a zredukovat tak původní <strong>pro</strong>blém na <strong>pro</strong>blémmin f(x) = min f(x 0 + Zy) = 1x∈Ω y∈R d 2 yT Z T AZy − (b − Ax 0 ) T Zy + 1 2 xT 0 Ax 0 .Řešení tohoto <strong>pro</strong>blému bez omezení splňuje gradientní podmínkujejíž řešení vypočteme jakoaZ T AZy = Z T (b − Ax 0 ),y = (Z T AZ) −1 Z T (b − Ax 0 )x = x 0 + Z T y.Pokud řešíme soustavu metodou sdružených gradientů, potom můžeme metodu nulového<strong>pro</strong>storu použít beze změny i <strong>pro</strong> řešení úlohy s pozitivně semidefinitní maticíA a B se závislými řádky.10.4 <strong>Metody</strong> Uzawova typuMetoda penalty se sice často používá <strong>pro</strong> svoji jednoduchost, avšak získání dobréa<strong>pro</strong>ximace řešení touto metodou vyžaduje velké hodnoty penalizačního parametruρ, což často vede k vážným <strong>pro</strong>blémům při počítačové implementaci. Možnou nápravusi vysvětlíme na následující analýze řešení úlohy kvadratického <strong>pro</strong>gramovánís pozitivně definitním Hessiánem.Předpokládejme, že máme řešení x ρ penalizovaného <strong>pro</strong>blému (10.1). Potom můžememodifikovat lineární člen f pomocí vhodného λ tak, že minimum bez omezenímodifikované cenové funkce f = L 0 bez penalizačního členu je dosaženo znovu v x ρ .Pak můžeme čekat, že najdeme lepší a<strong>pro</strong>ximaci řešení tak, že přičteme penalizačníčlen k f, čímž dostaneme L ρ , třeba se stejnou hodnotou penalizačního parametru,a budeme hledat argument minima f ρ tak, jak je naznačeno na obr. 10.2. Výsledkem
78 <strong>Metody</strong> řešení úloh s rovnostmiL(x, λ k+1 , ρ) = L(x k+1 , λ k+1 , ρ) + cx k+1x kL(x, λ k , ρ) = L(x k , λ k , ρ) + cΩObr. 10.2: Iterace metody rozšířených Lagrangiánůje klasická metoda rozšířených (augmented) Lagrangiánů, známá též jako metodamultiplikátorů, která byla navržena Hestenesem a Powelem v roce 1969.Popíšeme si zde variantu metody rozšířených Lagrangiánů jejímž speciálnímipřípady jsou Uzawův algoritmus z roku 1958, který dostaneme volbou ρ k = 0, k == 0, 1, . . . , a původní metoda multiplikátorů, která odpovídá r k = ρ k . Náš algoritmusmetody rozšířených Lagrangiánů si můžeme napsat v následujícím tvaru.Algoritmus 10.1 Metoda rozšížených Lagrangiánů.Mějme symetrickou pozitivně definitní matici A ∈ R n×n ,B ∈ R m×n , b ∈ R n a c ∈ H(B).Krok 0. {Inicializace.}Zvolme λ 0 ∈ R m , r > 0, r k ≧ r, ρ k ≧ 0for k=0,1,2,. . .Krok 1. {Minimalizace vzhledem k <strong>pro</strong>měnné x.}x k = arg min{L(x, λ k , ρ k ) : x ∈ R n }Krok 2. {Aktualizace Lagrangeových multiplikátorů.}λ k+1 = λ k + r k (Bx k − c)end forJelikož v x k je dosaženo minimum Lagrangiánu L vzhledem k první <strong>pro</strong>měnné,platí∇ x L(x k , λ k , ρ k ) = (A + ρ k B T B)x k − b − ρ k B T c + B T λ k = o,takže krok 1 algoritmu 10.1 může být implementován řešením soustavy(A + ρ k B T B)x k = b + ρ k B T c − B T λ k . (10.6)Abychom pochopili nový algoritmus lépe, podíváme se na jeho jinou formulaci, kte-
10.4 <strong>Metody</strong> Uzawova typu 79rou dostaneme eliminací x k z algoritmu 10.1. Označíme-li si <strong>pro</strong> každé ρ ∈ RA ρ = A + ρB T B,můžeme použít (10.6) k odvozeníx k = A −1ρ k(b + ρ k B T c − B T λ k ).Po substituci x k do kroku 2 algoritmu 10.1 a jednoduchých manipulacích dostanemenáš algoritmus rozšířených Lagrangiánů ve tvaruZvolme λ 0 ∈ R m , (10.7)λ k+1 = λ k − r k(︀BA−1ρ kB T λ k − BA −1ρ k(b + ρ k B T c) + c )︀ . (10.8)Výraz ve vnější závorce (10.8) je gradient funkceneboť platíθ ρ (λ) = 1 2 λT BA −1ρB T λ − (︀ BA −1 (b + ρB T c) + c )︀ λ,ρ∇θ ρk (λ k ) = BA −1ρ kB T λ k − BA −1ρ k(b + ρ k B T c) + c. (10.9)Porovnáme-li poslední výraz s (10.8), můžeme si druhý krok Uzawova algoritmupřepsat na tvarλ k+1 = λ k − r k ∇θ ρk (λ k ).Iterace algoritmu metody rozšířených Lagrangiánů je tedy totožná s krokem gradientnímetody <strong>pro</strong> hledání min θ ρ (λ) s délkou kroku r k . Poznamenejme zde, žefunkce θ ρ je až na znaménko a konstantu totožná s duální funkcí spojenou s penalizovaným<strong>pro</strong>blémem (10.1) a platíOpakováním úvah ze sekce 4.2 dostanemeλ k = arg min θ ρk (λ).λ‖λ k+1 − ̂︀λ‖ ≦ max{1 − r k λ min (BAB T ), r k λ max (BAB T ) − 1}‖(λ k − ̂︀λ)‖,kde λ min (BAB T ) a λ max (BAB T ) značí nejmenší a největší vlastní čísla matice BAB T .Další výsledky lze získat analýzou spektra matice BAB T .
80 <strong>Metody</strong> řešení úloh s rovnostmi10.5 SMALETuto kapitolu ukončíme popisem algoritmu SMALE, který připouští přibližné řešeníminimalizační úlohy v prvním kroku algoritmu rozšířených Lagrangiánů. Nepřesnýalgoritmus je založen na pozorování, že <strong>pro</strong> dostatečně velké r a přibližné minimumx ρ rozšířeného Lagrangiánu L ρ (x, λ, ) vzhledem k x můžeme modifikovat λ tak, žex ρ je také přibližné minimum L 0 (x, ̃︀λ), kde ̃︀λ = λ + r(Bx − c). Tak můžeme doufat,že najdeme lepší a<strong>pro</strong>ximaci multiplikátoru minimalizací L ρ (x, ̃︀λ). Jelikož lepšía<strong>pro</strong>ximaci odpovídá větší hodnota Lagrangiánu, je přirozené zvyšovat hodnotu penalizačníhoparametru (nebo zvyšovat přesnost řešení vnitřní úlohy) dokud nebudezajištěn růst Lagrangiánu v následujících iteracích. Teorie ukazuje, že hodnota penalizačníhoparametru ρ (nebo parametru M) není velká (malá) a nezávisí na matici B.Celý algoritmus pak vypadá následovně.Algoritmus 10.2 Metoda semimonotónních rozšířených Lagrangiánů - Semimonotonicaugmented Lagrangians (SMALE).Dána SPD matice A ∈ R n×n , B ∈ R m×n , b ∈ R n , a c ∈ H(B).Krok 0. {Inicializace.}Zvolte η > 0, β > 1, M > 0, ρ 0 > 0, λ 0 ∈ R mfor k=0,1,2,. . .Krok 1. {Vnitřní iterace s adaptivní kontrolou přesnosti.}Nalezněte x k tak, aby platilo‖g(x k , λ k , ρ k )‖ ≦ min{M‖Bx k − c‖, η}. (10.10)Krok 2. {Aktualizace Lagrangeových multiplikátorů.}λ k+1 = λ k + ρ k (Bx k − c) (10.11)Krok 3. {Aktualizace ρ v případě že růst Lagrangiánu není dostatečný.}if k > 0 aL(x k , λ k , ρ k ) < L(x k−1 , λ k−1 , ρ k−1 ) + ρ k2 ‖Bxk − c‖ 2 (10.12)ρ k+1 = βρ kelseρ k+1 = ρ k .end ifend forV kroku 1 lze použít jakýkoliv konvergentní algoritmus <strong>pro</strong> minimalizaci striktněkonvexní funkce jako je metoda sdružených gradientů s předpodmíněním.
Příklady k <strong>pro</strong>cvičení 81Příklady k <strong>pro</strong>cvičení1. Nakreslete graf a vrstevnice funkcef(x 1 , x 2 ) = x 4 1 + x 2 1 + x 2 2.Řešte úlohu <strong>optimalizace</strong> s omezením na rovnostmin f(x 1, x 2 ), Ω = {x ∈ R 2 : x 1 + 3x 2 − 5 = 0}.x∈ΩUvedenou úlohu s omezením na rovnost řešte pomocí metody vnější penalty.2. Mějme funkcif(x 1 , x 2 , x 3 ) = x 4 1 + x 2 1 + x 2 2 + x 4 3.Řešte úlohu <strong>optimalizace</strong> s omezeními na rovnostmin f(x 1, x 2 , x 3 ), Ω = {x ∈ R 3 : x 1 + 3x 2 + 3x 3 − 5 = 0, 2x 1 − x 3 − 3 = 0}.x∈ΩUvedenou úlohu s omezeními na rovnost řešte pomocí metody vnější penalty.3. Minimum kvadratické funkcef(x) = 1 2 xT Ax − b T xa<strong>pro</strong>ximuje (až na jednotky) průhyb struny zatížené jednotkovou silou a uchycené naobou koncích (x 1 = x n = 0), kde A ∈ R n×n , b ∈ R n a⎡1 0 0 0 0 . . . 0 0 0 0⎤00 2 −1 0 0 . . . 0 0 0 0 00 −1 2 −1 0 . . . 0 0 0 0 00 0 −1 2 −1 . . . 0 0 0 0 00 0 0 −1 2 . . . 0 0 0 0 0A = (n − 1). . . . . . .. . . . . .,0 0 0 0 0 . . . 2 −1 0 0 00 0 0 0 0 . . . −1 2 −1 0 0⎢ 0 0 0 0 0 . . . 0 −1 2 −1 0⎥⎣ 0 0 0 0 0 . . . 0 0 −1 2 0 ⎦0 0 0 0 0 . . . 0 0 0 0 1⎡ ⎤01 ⎥b = − 1n − 1Najděte průhyb struny v případě, že její druhá čtvrtina je vázaná tak, že se pohybujevodorovně, tedyx [n/4] = x [n/4+1] = · · · = x [n/2] .Uvedenou úlohu s omezeními na rovnost řešte pomocí metody vnější penalty.⎢⎣.10.⎥⎦
82Kapitola 11Podmínky minima <strong>pro</strong> úlohys omezením ve tvaru nerovnostíV této kapitole se budeme zabývat řešením dalšího typu optimalizačních úloh s omezením.V technických úlohách takové omezení vzniká například potřebou zahrnoutdo formulace úlohy omezení zdrojů, které máme k dispozici, požadavky na pevnostkonstrukcí nebo omezení objemu či tvaru hledaného optimálního tělesa při úloze tvarové<strong>optimalizace</strong>. Nyní budeme pracovat s omezeními ve tvaru nerovností a ukážemesi, jak poznat řešení úlohymin f(x), Ω = {x ∈x∈Ω Rn : g(x) ≦ o}, g : R n → R r , r < n. (11.1)Budeme při tom předpokládat, že f je dvakrát spojitě diferencovatelná funkce a g jespojitě diferencovatelná. Množina Ω se nazývá přípustná množina. Navíc zde zavedememnožinu aktivních nerovnostních vazeb v bodě x (nebo také aktivní množinuv bodě x). Tuto množinu označíme jako A(x) a definujeme jiA(x) := {i : g i (x) = 0}.11.1 Geometrická ilustrace podmínky minimaZačneme s řešením jednoduché úlohymin f(x), f(x) = x 2 1 + x 2 2, g(x) = 4 − x 1 − x 2 . (1<strong>1.2</strong>)g(x)≦0Pomůžeme si obrázkem 11.1, na kterém jsou znázorněny čárkovaně kruhové vrstevnicefunkce f a nepřerušovanou čarou je znázorněna přímka, která představujehranici přípustné množiny. Přípustná množina je vyšrafována plnými čarami. Minimumje dosaženo v bodě ̂︀x.Jelikož minimum f bez omezení je dosaženo ve společném středu všech kružnicpopsaných pomocí rovnic f(x) = c, c > 0, je z obrázku vidět, že nejmenší z kružnic,
1<strong>1.2</strong> Úloha kvadratického <strong>pro</strong>gramování s nerovnostmi a Lagrangián 83∇f(̂︀x)∇g(̂︀x)̂︀xg(x) = 0f(x) = f(̂︀x)Obr. 11.1: Minimum kvadratické funkce na poloroviněna nichž leží alespoň jeden přípustný bod, je právě ta kružnice, která se dotýkápřípustné množiny. Ve společném bodě ̂︀x platí, že gradient f je násobkem gradientug, tedy existuje μ ∈ R tak, že∇f(̂︀x) + μ∇g(̂︀x) = o.Dostali jsme tak algebraickou formu našeho pozorování. Jelikož řešení musí býtpřípustné, můžeme napsat rovnici a nerovnici, které v našem případě určují řešení:∇f(x) + μ∇g(x) = o,g(x) ≦ o.Jelikož rovnice je vektorová, můžeme si systém přepsat jako dvě skalární rovnicea jednu nerovnici2x 1 − μ = 0, 2x 2 − μ = 0, x 1 + x 2 ≧ 4.Jejich řešením dostaneme složky řešení ̂︀x 1 = ̂︀x 2 = 2, μ = 4. Povšimněte si, že jsmezískali nejen řešení úlohy (1<strong>1.2</strong>), ale také hodnotu μ, na kterou se nás nikdo neptal.V dalším výkladu uvidíme, že μ je důležitá veličina, jejíž pochopení nám umožnízavést nové algoritmy a dodatečnou informaci o kvalitě řešení. Také si všimněme, žeμ je <strong>pro</strong> naši úlohu kladné.1<strong>1.2</strong> Úloha kvadratického <strong>pro</strong>gramování s nerovnostmia LagrangiánPředpokládejme, že máme úlohu kvadratického <strong>pro</strong>gramování s přípustnou množinou,která je určena lineárními nerovnostmi. Takové množiny nazýváme také polyhedrálnímimnožinami. Tzn. máme úlohumin f(x), f(x) =x∈Ω xT Ax − b T x, Ω = {x ∈ R n : Bx ≦ c}, (11.3)
84 Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovnostíkde A je symetrická pozitivně definitní matice řádu n, B je typu r × n a c ∈ R m .Předpokládáme, že Ω ≠ ∅.V každém přípustném bodě x definujeme aktivní množinu následujícím předpisemA(x) = {i ∈ {1, . . . , r} : b i x = c i }.Polyhedrální množinyAbychom lépe porozuměli podmínkám řešitelnosti úlohám s omezeními ve tvarunerovností (11.3), je užitečné zaměřit se na geometrii polyhedrálních množin. K tomuzavedeme některé nové pojmy.Připomeňme, že množinu C ⊆ R n nazveme (konvexním) kuželem, jestliže αx ∈ C<strong>pro</strong> všechny α ≧ 0 a x ∈ C. Dále si zaveďme pojem polyhedrální kužel, který definujemepředpisemC = {x ∈ R n : Bx ≦ o},kde B ∈ R m×n je daná matice. Všimněme si, že polyhedrální kužel je uzavřenákonvexní množina.Polyhedrální množinu Ω můžeme popsat jako součet konvexního obalu konečnémnožiny bodů a polyhedrálního kužele, jehož prvky jsou vektory z množiny Ω. Tototvrzení zformulujeme v následující větě, kterou ponecháme bez důkazu.Věta 11.1. Množina Ω ⊆ R n je polyhedrální tehdy a jen tehdy, jestliže existujeneprázdná množina n-rozměrných vektorů {x 1 , . . . , x k } a polyhedrální kužel C ⊆ R ntakový, že platíΩ = C + conv{x 1 , . . . , x k }.Farkasova větaAbychom mohli převést geometrické podmínky minima <strong>pro</strong> úlohu s nerovnostnímiomezeními do algebraické podoby s Lagrangeovými multiplikátory, potřebujeme následujícítvzení - Farkasovu větu.Předtím než tuto větu zformulujeme, budeme potřebovat ještě jedno tvrzení,které charakterizuje <strong>pro</strong>jekci P Ω na (uzavřenou) konvexní množinu Ω ⊂ R n jakozobrazení, které přiřazuje každému x ∈ R n nejbližší bod ̂︀x ∈ Ω (viz obrázek 1<strong>1.2</strong>).O existenci tohoto bodu se vyjadřuje následující tvrzení (které necháme bez důkazu).Věta 1<strong>1.2</strong>. Nechť Ω ⊆ R n je neprázdná uzavřená konvexní množina a x ∈ R n .Potom existuje právě jeden bod ̂︀x ∈ Ω, který má minimální vzdálenost od x a <strong>pro</strong>každý y ∈ Ω platí(x − ̂︀x) T (y − ̂︀x) ≦ 0. (11.4)Nyní už můžeme zformulovat Farkasovu větu
1<strong>1.2</strong> Úloha kvadratického <strong>pro</strong>gramování s nerovnostmi a Lagrangián 85x̂︀xyΩObr. 1<strong>1.2</strong>: Projekce na konvexní množinuVěta 11.3. Nechť B ∈ R m×n a h ∈ R n . Pak právě jedna z následujících úloh mářešení:(I) Najdi d ∈ R n takové, že Bd ≦ o a h T d > 0.(II) Najdi y ∈ R m takové, že B T y = h a y ≧ o.Důkaz. Nejprve předpokládáme, že úloha (II) má řešení. To znamená, že existujey ≧ o takové, že B T y = h. Nechť d ∈ R n je takové, že Bd ≦ o. Pakh T d = (︀ B T y )︀ Td = y T Bd ≦ 0,tedy úloha (I) nemá řešení.Nyní předpokládejme, že úloha (II) nemá řešení a označmeΩ = {x ∈ R n : x = B T y, y ≧ o}.Náš předpoklad pak znamená, že h /∈ Ω. Označme symbolem ̂︀h ∈ Ω <strong>pro</strong>jekci h namnožinu Ω a d = h − ̂︀h. Ze vztahu (11.4) plyne, že <strong>pro</strong> libovolné x ∈ Ω platínebod T (x − ̂︀h) = (h − ̂︀h) T (x − ̂︀h) ≦ 0d T x ≦ d T̂︀h = α.Díky tomu, že o ∈ Ω, platí α ≧ 0 a navíc dosazením x = B T y, získáme <strong>pro</strong> libovolnéy ≧ oy T Bd = d T B T y ≦ α.Protože složky y mohou být libovolně velké, platí Bd ≦ o. To znamená, že d splňujeprvní podmínku úlohy (I). Abychom ověřili druhou podmínku, připomeňme, že podlepředpokladu h /∈ Ω. Z toho plyne platnost d ≠ o, dále d T (h − ̂︀h) = ‖d‖ 2 > 0 aTakže d je řešení úlohy (I).d T h > d T̂︀h = α ≧ 0.
86 Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovnostíTvzení Farkasovy věty je nutno použít při důkazu KKT podmínek <strong>pro</strong> kvadratickéúlohy s nerovnostními omezeními. Geometrická ilustrace Farkasovy věty je naobrázku 11.3.hhb 1b 2 b 3db 4b 1b 2 b 3b 4Obr. 11.3: Farkasova věta: řešení úlohy (I) (vlevo) a (II) (vpravo)11.3 Podmínky minima <strong>pro</strong> kvadratické <strong>pro</strong>gramovánís nerovnostmiÚloha kvadratického <strong>pro</strong>gramování s nerovnostmi (11.3) je výrazně komplikovanějsínež úloha kvadratického <strong>pro</strong>gramování s rovnostmi (9.3). Hlavní otázky týkající sepodmínek optimality a řešitelnosti (11.3) jsou zformulovány v následujícím tvrzení.Věta 11.4. Nechť je <strong>pro</strong>blém (11.3) definován pomocí symetrické maticeA ∈ R n×n , matice omezení B ∈ R r×n se sloupcovou hodností menší než n,a vektorů b ∈ R n , c ∈ H(B). Nechť C označuje kužel přípustných směrů množinyΩ. Potom platí:(i) Jestliže úloha (11.3) má řešení, pak je A|C pozitivně semidefinitní.(ii) Jestliže x ∈ Ω je řešení (11.3), pak<strong>pro</strong> každé přípustné d z množiny Ω v bodě x.(Ax − b) T d ≧ 0 (11.5)(iii) Jestliže x ∈ Ω je řešení (11.3), pak existuje vektor μ ∈ R r tak, žeμ ≧ o, Ax − b + B T μ = o a μ T (Bx − c) = 0. (11.6)Důkaz. (i) Nechť x je řešení <strong>pro</strong>blému (11.3), takže <strong>pro</strong> každé d ∈ R n a α ∈ R0 ≦ f(x + αd) − f(x) = α(Ax − b) T d + α22 dT Ad. (11.7)
11.4 Nutné podmínky <strong>pro</strong> úlohy nelineárního <strong>pro</strong>gramování 87Zvolíme-li d ∈ C a α dostatečně velké, dostaneme z nezápornosti pravé strany (11.7)že d T Ad ≧ 0. Tedy A|C musí být pozitivně semidefinitní.(ii) Nechť x je řešení <strong>pro</strong>blému (11.3) a d označuje přípustný směr z Ω v bodě x,pak pravá stranaf(x + αd) − f(x) = α(Ax − b) T d + α22 dT Ad (11.8)je nezáporná <strong>pro</strong> všechny dostatečně malé α > 0. Abychom dokázali (11.5), stačízvolit dostatečně malé α > 0 tak, že z nezápornosti pravé strany (11.8) plyneα(Ax − b) T d ≧ 0.(iii) Nejprve si všimněme, že jestliže x je řešením (11.3), pak d je přípustný vektormnožiny Ω v bodě x tehdy a jen tehdy, pokud d je přípustný vektor množinyΩ = {x ∈ R n : B A* x ≦ c A }v bodě x, kde A = A(x) je aktivní množina v bodě x. Takže podle (ii) je x řešenímtakémin f(x), Ω = {x ∈ R n : B A* x ≦ c A }.x∈ΩOznačme h = −(Ax − b), z (ii) pak plyne, že úloha nalézt d ∈ R n tak, žeB A* d ≦ o a h T d > 0,nemá řešení. Díky tomu, můžeme použít Farkasovu větu 11.3, abychom získaliy ∈ R m tak, že(B A* ) T y = h A a y ≧ o.Označme μ ∈ R m jako vektor získaný z vektoru y tak, že [μ] i = 0 <strong>pro</strong> i /∈ A a μ A = y.Je snadné ověřit, že vektor μ splňuje podmínky (11.6).Podmínky (11.6) nazýváme KKT podmínkami <strong>pro</strong> úlohy s omezením ve tvaru nerovností.Poslední z těchto podmínek, rovnost μ T (Bx−c) = 0, nazýváme podmínkoukomplementarity.11.4 Nutné podmínky <strong>pro</strong> úlohy nelineárního <strong>pro</strong>gramováníVraťme se nyní k minimalizaci nelineární funkce s omezením ve tvaru nerovností(11.1). Abychom mohli zkoumat podmínku minima nelineární funkce s nelineárnímiomezeními potřebujeme tečný kužel v bodě x k množině Ω, který jsme si zavedliv kapitole 9. Připomeňme, že jsme si tento tečný kužel v bodě x k množině Ωzavedli jako množinuT Ω (x) = {d ∈ R n : d = x ′ (0) <strong>pro</strong> přípustnou křivku x množiny Ω} ∪ {o }.
88 Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovnostíDále si potřebujeme zavést ještě dvě speciální mnnožiny - kužel přípustných směrůa kužel směrů poklesu.Definice 11.5. Kužel přípustných směrů v x k množině Ω = {x ∈ R n : g(x) ≦ o}zavedeme jako množinuV Ω (x) = {d ∈ R n : ∇g i (x) T d ≦ 0,i ∈ A(x)}.Kužel směrů poklesu funkce f v x zavedeme jako množinuD(x) = {d ∈ R n : ∇f(x) T d < 0}.Pomocí uvedených kuželů si zavedeme nutné podmínky minima <strong>pro</strong> úlohu (11.1).Nejprve využijeme <strong>pro</strong> podmínku minima kužel přípustných směrů a kužel směrůpoklesu.Věta 11.6. Nechť <strong>pro</strong>blém (11.1) má lokální minimum v x. Pak existuje vektorLagrangeových multiplikátorů μ se složkami μ j , j ∈ I := {1, . . . , r} takovými, ženásledující systém je splněn v (x, μ):tehdy a jen tehdy, pokud platí podmínka∇ x L (x, μ) = ∇f(x) + ∇g(x) T μ = o, (11.9)μ j ≧ o, ∀j ∈ I, (11.10)μ j · g j (x) = 0, ∀j ∈ I, (11.11)D(x) ∩ V Ω (x) = ∅. (11.12)Nyní využijeme <strong>pro</strong> podmínku minima tečný kužel a kužel směrů poklesu.Věta 11.7. Nechť <strong>pro</strong>blém (11.1) má lokální minimum v x. Pak platí podmínkaD(x) ∩ T Ω (x) = ∅. (11.13)Ze dvou předchozích vět můžeme v případě, že platíT Ω (x) = V Ω (x), (11.14)zavést výsledné tvrzení.
11.4 Nutné podmínky <strong>pro</strong> úlohy nelineárního <strong>pro</strong>gramování 89Věta 11.8. Nechť <strong>pro</strong>blém (11.1) má lokální minimum v x. Jestliže v bodě x platíT Ω (x) = V Ω (x), (11.15)pak existuje vektor Lagrangeových multiplikátorů μ se složkami μ j , j ∈ I := {1 ažr} takovými, že následující systém je splněn v (x, μ):∇ x L (x, μ) = ∇f(x) + ∇g(x) T μ = o, (11.16)μ j ≧ o, ∀j ∈ I, (11.17)μ j · g j (x) = 0, ∀j ∈ I. (11.18)Poznámka 11.9. Přípustný bod, který splňuje podmínkuT Ω (x) = V Ω (x), (11.19)bývá v některých textech označován jako kvaziregulární bod.Podmínku optimality <strong>pro</strong> úlohu s nerovnostním omezením lze zavést i pomocíjiné geometrické konstrukce než té, která využívá tečný kužel. K tomu si musímezávést další charakteristiku omezujících podmínek a tou je normálový kužel.Definice 11.10. Množinu N Ω (x) nazveme normálový kužel v x k množině Ω, pokudje ortogonálním doplňkem tečného kuželu v x k množině Ω, tzn.N Ω (x) = {︀ v|v T w ≦ 0 ∀w ∈ T Ω (x) }︀ . (1<strong>1.2</strong>0)Pomocí normálového kužele můžeme podmínku optimality shrnout v následujícívětě.Věta 11.11. Nechť je <strong>pro</strong>blém (11.1) definován pomocí diferencovatelných zobrazeníf a g. Nechť <strong>pro</strong>blém (11.1) má lokální minimum v x, pako ∈ ∇f(x) + N Ω (x). (1<strong>1.2</strong>1)Podmínky Fritze - JohnaNejprve si zavedeme obecné podmínky minima, které nepotřebují splnění žádnýchdodatečných podmínek na nerovnostní vazby.
90 Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovnostíVěta 11.12. Nechť <strong>pro</strong>blém (11.1) má lokální minimum v x. Pak existuje vektorLagrangeových multiplikátorů μ se složkami μ j , j ∈ {0, . . . , r} takovými, ženásledující systém je splněn v (x, μ):∇f(x)μ 0 + ∇g(x) T μ = o, (1<strong>1.2</strong>2)μ j ≧ 0, ∀j ∈ {0, . . . , r} a ∃j ∈ {0, . . . , r} : μ j ≠ 0, (1<strong>1.2</strong>3)μ j · g j (x) = 0, ∀j ∈ I. (1<strong>1.2</strong>4)Systém (1<strong>1.2</strong>2), (1<strong>1.2</strong>3) a (1<strong>1.2</strong>4) s podmínkou g(x) ≦ o nazýváme Fritz-Johnovoupodmínkou.KKT podmínkyNyní si zavedeme podmínky minima, <strong>pro</strong> jejichž použití je nezbytné splnění dalšípodmínky na nerovnostní vazby. Touto podmínkou je podmínka regularity.Definice 11.13. Mějme minimalizační úlohu (11.1). Přípustný bod x nazvemeregulární, jestliže gradienty aktivních nerovnostních vazeb jsou lineárně nezávislé.Poznámka 11.14. Přípustný bod, který splňuje podmínku regularity, bývá v některýchtextech označován jako bod splňující klasifikaci omezení na lineární nezávislost1 .Podmínky minima, které jsou speciálním případem Fritz-Johnovy podmínky,v případě, že bod x je regulární, nazveme Karush-Kuhn-Tuckerovou podmínkoua zavedeme si ji v následujícím tvrzení. Toto tvrzení získáme snadno. Uvědomme si,že z regularity x plyne, že <strong>pro</strong>∇f(x)μ 0 + ∇g(x) T μ = o, (1<strong>1.2</strong>5)kde μ j (j ∈ {1, . . . , r}) nejsou všechny nulové, je μ 0 ≠ 0. Nyní již stačí podělitposlední rovnost multiplikátorem μ 0 a dostaneme se k tvrzení následující věty.Věta 11.15. Nechť <strong>pro</strong>blém (11.1) má lokální minimum v x a nechť je <strong>pro</strong> tentobod splněna podmínka regularity. Pak existuje jediný vektor Lagrangeových multiplikátorůμ se složkami μ j , j ∈ I := {1, . . . , r} takovými, že následující systémje splněn v (x, μ):∇ x L (x, μ) = ∇f(x) + ∇g(x) T μ = o, (1<strong>1.2</strong>6)μ j ≧ o, ∀j ∈ I, (1<strong>1.2</strong>7)μ j · g j (x) = 0, ∀j ∈ I. (1<strong>1.2</strong>8)1 V anglické literatuře najde čtenář tuto podmínku pod názvem Linear Independence ConstraintQualification či pod zkratkou LICQ.
11.4 Nutné podmínky <strong>pro</strong> úlohy nelineárního <strong>pro</strong>gramování 91Dvojici (x, μ) která splňuje (1<strong>1.2</strong>6), (1<strong>1.2</strong>7) a (1<strong>1.2</strong>8) s podmínkou g(x) ≦ o ,budeme nazývat Karush-Kuhn-Tuckerova dvojice nebo stručně KKT-dvojice. Systém(1<strong>1.2</strong>6), (1<strong>1.2</strong>7) a (1<strong>1.2</strong>8) s podmínkou g(x) ≦ o nazýváme Karush-Kuhn-Tuckerovoupodmínkou nebo stručně KKT-podmínkou.Poznámka 11.16. Je dobré si uvědomit, že podmínka regularity v přípustnémbodě x nám zaručuje jednoznačnost λ splňující podmínky (1<strong>1.2</strong>6), (1<strong>1.2</strong>7) a (1<strong>1.2</strong>8),ale v případě „větších“ úloh je značně komplikované ji ověřit a <strong>pro</strong>to je v tomtopřípadě její použití omezené. V poslední části této kapitoly ukážeme, jak tuto podmínkunahradit „slabšími“ podmínkami tak, abychom měli zajištěnu alespoň existenciLagrangeových multiplikátorů.Nyní si uvedeme příklad, který nesplňuje podmínku regularity v minimu.Příklad 11.17. Mějme následující minimalizační úlohu s nerovnostními omezenímimin x 1 + x 2 , Ω = {x ∈ R : (x 1 − 1) 2 + x 2 2 ≦ 1, −(x 1 − 2) 2 − x 2 2 ≦ −4}.(x 1 ,x 2 )∈ΩNapište Fritz-Johnovu a Karush-Kuhn-Tuckerovu podmínku <strong>pro</strong> tuto úlohu a najdětedvojice, které je splňují.Řešení. Pomůžeme si obrázkem 11.4, na kterém jsou znázorněny čárkovaně vrstevnicefunkce f a nepřerušovanou čarou jsou znázorněny kružnice, které představujíhranici přípustné množiny. Je snadné ukázat, že jediným přípustným bodem, kterýje řešením minimalizační úlohy je bod o složkácĥ︀x 1 = 0, ̂︀x 2 = 0.̂︀x∇f(̂︀x)∇g(̂︀x)g(x) = 0∇g(̂︀x)g(x) = 0f(x) = f(̂︀x)Obr. 11.4: Minimum lineární funkce na přípustné množiněFritz-Johnovy podmínky <strong>pro</strong> tuto úlohu jsou ve tvaruμ 0 ∇ (x1 ,x 2 ) (x 1 + x 2 ) + μ 1 ∇ (x1 ,x 2 )(︀(x1 − 1) 2 + x 2 2 − 1 )︀ +
92 Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností+μ 2 ∇ (x1 ,x 2 )(︀−(x1 − 2) 2 − x 2 2 + 4 )︀ = o,μ 1,2 ≧ 0,μ 1 · (︀(x1 − 1) 2 + x 2 2 − 1 )︀ = 0, μ 2 · (︀−(x1 − 2) 2 − x 2 2 + 4 )︀ = 0,(x 1 − 1) 2 + x 2 2 ≦ 1, −(x 1 − 2) 2 − x 2 2 ≦ −4.Z tohoto systému dostaneme po derivování následující systém rovnic a nerovnicμ 0 + 2μ 1 (x 1 − 1) − 2μ 2 (x 1 − 2) = 0, μ 0 + 2μ 1 x 2 − 2μ 2 x 2 = 0,μ 1,2 ≧ 0, μ 1 · (︀(x1 − 1) 2 + x 2 2 − 1 )︀ = 0, μ 2 · (︀−(x1 − 2) 2 − x 2 2 + 4 )︀ = 0,(x 1 − 1) 2 + x 2 2 ≦ 1, −(x 1 − 2) 2 − x 2 2 ≦ −4.Jejich řešením dostaneme multiplikátoryμ 0 = 0, μ 1 = 2μ 2 > 0.Karush-Kuhn-Tuckerovy podmínky <strong>pro</strong> tuto úlohu jsou ve tvaru∇ (x1 ,x 2 ) (x 1 + x 2 ) + μ 1 ∇ (x1 ,x 2 )(︀(x1 − 1) 2 + x 2 2 − 1 )︀ ++μ 2 ∇ (x1 ,x 2 )(︀−(x1 − 2) 2 − x 2 2 + 4 )︀ = o,μ 1,2 ≧ 0,μ 1 · (︀(x1 − 1) 2 + x 2 2 − 1 )︀ = 0, μ 2 · (︀−(x1 − 2) 2 − x 2 2 + 4 )︀ = 0,(x 1 − 1) 2 + x 2 2 ≦ 1, −(x 1 − 2) 2 − x 2 2 ≦ −4.Z tohoto systému dostaneme po derivování následující systém rovnic a nerovnic1 + 2μ 1 (x 1 − 1) − 2μ 2 (x 1 − 2) = 0, 1 + 2μ 1 x 2 − 2μ 2 x 2 = 0,μ 1,2 ≧ 0, μ 1 · (︀(x1 − 1) 2 + x 2 2 − 1 )︀ = 0, μ 2 · (︀−(x1 − 2) 2 − x 2 2 + 4 )︀ = 0,(x 1 − 1) 2 + x 2 2 ≦ 1, −(x 1 − 2) 2 − x 2 2 ≦ −4.Pro tento systém neexistují multiplikátory μ, které by jej splnily.Pro tuto úlohu je tedy splněna obecnější Fritz-Johnova podmínka, ale není splněnaKarush-Kuhn-Tuckerova podmínka.V následujících příkladech již bude podmínka regularity splněna a <strong>pro</strong>to másmysl ověřovat splnění Karush-Kuhn-Tuckerovy podmínky.Příklad 11.18. Mějme následující minimalizační úlohu s jedním nerovnostním omezenímmin(x 1 ,x 2 )∈Ω x 1 + x 2 , Ω = {x ∈ R : x 2 1 + x 2 2 ≦ 2}.Napište Karush-Kuhn-Tuckerovu podmínku <strong>pro</strong> tuto úlohu a najděte Karush-Kuhn--Tuckerovy dvojice, které ji splňují.
11.4 Nutné podmínky <strong>pro</strong> úlohy nelineárního <strong>pro</strong>gramování 93∇f(̂︀x)∇g(̂︀x) ̂︀x g(x) = 0f(x) = f(̂︀x)Obr. 11.5: Minimum lineární funkce na přípustné množiněŘešení. Pomůžeme si obrázkem 11.5, na kterém jsou znázorněny čárkovaně vrstevnicefunkce f a nepřerušovanou čarou je znázorněna kružnice, která představujehranici přípustné množiny. Přípustná množina je vyšrafována plnými čarami. Minimumje dosaženo v bodě ̂︀x.Karush-Kuhn-Tuckerovy podmínky <strong>pro</strong> tuto úlohu jsou ve tvaru∇ (x1 ,x 2 ) (x 1 + x 2 ) + μ∇ (x1 ,x 2 )(︀x21 + x 2 2 − 2 )︀ = o,μ ≧ 0,μ · (x 2 1 + x 2 2 − 2) = 0,x 2 1 + x 2 2 ≦ 2.Z tohoto systému dostaneme po derivování následující systém rovnic a nerovnic1 + 2μx 1 = 0, 1 + 2μx 2 = 0,μ ≧ 0, μ · (x 2 1 + x 2 2 − 2) = 0,x 2 1 + x 2 2 ≦ 2.Jejich řešením dostaneme složky řešení̂︀x 1 = ̂︀x 2 = −1, μ = 0.5.Dá se ukázat, že řešením minimalizační úlohy je bod o složkácĥ︀x 1 = ̂︀x 2 = −1.
94 Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovnostíPříklad 11.19. Mějme následující minimalizační úlohu s jedním nerovnostním omezenímmin(x 1 ,x 2 )∈Ω x2 1 + x 2 2, Ω = {x ∈ R : x 2 ≦ −5}.Napište Karush-Kuhn-Tuckerovu podmínku <strong>pro</strong> tuto úlohu a najděte Karush-Kuhn--Tuckerovy dvojice, které ji splňují.Řešení. Pomůžeme si obrázkem 11.6, na kterém jsou znázorněny čárkovaně kruhovévrstevnice funkce f a nepřerušovanou čarou je znázorněna přímka, která představujehranici přípustné množiny. Přípustná množina je vyšrafována plnými čarami.Minimum je dosaženo v bodě ̂︀x.f(x) = f(̂︀x)̂︀x ∇g(̂︀x) g(x) = 0∇f(̂︀x)Obr. 11.6: Minimum kvadratické funkce na přípustné množiněKarush-Kuhn-Tuckerovy podmínky <strong>pro</strong> tuto úlohu jsou ve tvaru(︀∇ (x1 ,x 2 ) x21 + x2)︀ 2 + μ∇(x1 ,x 2 ) (x 2 + 5) = o,μ ≧ 0,μ · (x 2 + 5) = 0,x 2 ≦ −5.Z tohoto systému dostaneme po derivování následující systém rovnic a nerovnic2x 1 = 0, 2x 2 + μ = 0,μ ≧ 0, μ · (x 2 + 5) = 0,x 2 ≦ −5.Jejich řešením dostaneme složky řešení̂︀x 1 = 0, ̂︀x 2 = −5, μ = 10.
11.4 Nutné podmínky <strong>pro</strong> úlohy nelineárního <strong>pro</strong>gramování 95Dá se ukázat, že řešením minimalizační úlohy je bod o složkácĥ︀x 1 = 0, ̂︀x 2 = −5.Příklad 1<strong>1.2</strong>0. Mějme následující minimalizační úlohu s jedním nerovnostním omezenímmin(x 1 ,x 2 )∈Ω x2 1 + x 2 2, Ω = {x ∈ R : x 2 ≧ −5}.Napište Karush-Kuhn-Tuckerovu podmínku <strong>pro</strong> tuto úlohu a najděte Karush-Kuhn--Tuckerovy dvojice, které ji splňují.Řešení. Pomůžeme si obrázkem 11.7, na kterém jsou znázorněny čárkovaně kruhovévrstevnice funkce f a nepřerušovanou čarou je znázorněna přímka, která představujehranici přípustné množiny. Přípustná množina je vyšrafována plnými čarami.Minimum je dosaženo v bodě ̂︀x.f(x) = f(̂︀x)̂︀x∇g(̂︀x)g(x) = 0Obr. 11.7: Minimum kvadratické funkce na přípustné množiněKarush-Kuhn-Tuckerovy podmínky <strong>pro</strong> tuto úlohu jsou ve tvaru(︀∇ (x1 ,x 2 ) x21 + x2)︀ 2 + μ∇(x1 ,x 2 ) (−x 2 − 5) = o,μ ≧ 0,μ · (−x 2 − 5) = 0,x 2 ≧ −5.Z tohoto systému dostaneme po derivování následující systém rovnic a nerovnic2x 1 = 0, 2x 2 − μ = 0,μ ≧ 0, μ · (−x 2 − 5) = 0,
96 Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovnostíx 2 ≧ −5.Jejich řešením dostaneme složky řešení̂︀x 1 = 0, ̂︀x 2 = 0, μ = 0.Dá se ukázat, že řešením minimalizační úlohy je bod o složkácĥ︀x 1 = 0, ̂︀x 2 = 0.Příklad 1<strong>1.2</strong>1. Mějme následující minimalizační úlohu se dvěma nerovnostnímiomezenímimin(x 1 ,x 2 )∈Ω x2 1 + x 2 2, Ω = {x ∈ R : x 1 + x 2 ≧ 1, x 1 − x 2 ≦ 1}.Napište Karush-Kuhn-Tuckerovu podmínku <strong>pro</strong> tuto úlohu a najděte Karush-Kuhn--Tuckerovy dvojice, které ji splňují.Řešení. Pomůžeme si obrázkem 11.8, na kterém jsou znázorněny čárkovaně kruhovévrstevnice funkce f a nepřerušovanou čarou jsou znázorněny přímky, které představujíhranici přípustné množiny. Přípustná množina je vyšrafována plnými čarami.Minimum je dosaženo v bodě ̂︀x.∇f(̂︀x)̂︀xf(x) = f(̂︀x)∇g(̂︀x)∇g(̂︀x)g(x) = 0g(x) = 0Obr. 11.8: Minimum kvadratické funkce na přípustné množiněKarush-Kuhn-Tuckerovy podmínky <strong>pro</strong> tuto úlohu jsou ve tvaru(︀∇ (x1 ,x 2 ) x21 + x2)︀ 2 + μ1 ∇ (x1 ,x 2 ) (−x 1 − x 2 + 1) + μ 2 ∇ (x1 ,x 2 ) (x 1 − x 2 − 1) = o,μ 1,2 ≧ 0,μ 1 · (−x 1 − x 2 + 1) = 0, μ 2 · (x 1 − x 2 − 1) = 0,
11.5 Klasifikace omezení <strong>pro</strong> úlohy s omezeními ve tvaru rovností a nerovností 97x 1 + x 2 ≧ 1, x 1 − x 2 ≦ 1.Z tohoto systému dostaneme po derivování následující systém rovnic a nerovnic2x 1 − μ 1 + μ 2 = 0, 2x 2 − μ 1 − μ 2 = 0,μ 1,2 ≧ 0, μ 1 · (−x 1 − x 2 + 1) = 0, μ 2 · (x 1 − x 2 − 1) = 0,x 1 + x 2 ≧ 1, x 1 − x 2 ≦ 1.Jejich řešením dostaneme složky řešení̂︀x 1 = ̂︀x 2 = 0.5, μ 1 = 1, μ 2 = 0.Dá se ukázat, že řešením minimalizační úlohy je bod o složkácĥ︀x 1 = ̂︀x 2 = 0.5.11.5 Klasifikace omezení <strong>pro</strong> úlohy s omezenímive tvaru rovností a nerovnostíNyní se budeme zabývat úlohou <strong>optimalizace</strong> s omezeními ve tvaru rovností i nerovnostímin f(x), Ω = {x ∈x∈Ω Rn : h(x) = o, g(x) ≦ o}, (1<strong>1.2</strong>9)kde h : R n → R m , g : R n → R r , m < n, r < n. Budeme při tom opět předpokládat,že f je dvakrát spojitě diferencovatelná funkce a h a g jsou spojitě diferencovatelné.Pro tento případ můžeme zobecnit definici kužele přípustných směrů.Definice 1<strong>1.2</strong>2. Kužel přípustných směrů v x k množině Ω = {x ∈ R n : h(x) == o, g(x) ≦ o} zavedeme jako množinuV Ω (x) = {d ∈ R n : ∇h i (x) T d = 0, ∇g j (x) T d ≦ 0,j ∈ A(x)}.Pro úlohu s omezeními ve tvaru rovností a nerovností s využitím právě uvedenédefinice kužele přípustných směrů můžeme zobecnit tvrzení věty 11.8 a tím získámetvrzení následující věty.
98 Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovnostíVěta 1<strong>1.2</strong>3. Nechť <strong>pro</strong>blém (1<strong>1.2</strong>9) má lokální minimum v x. Jestliže v bodě xplatíT Ω (x) = V Ω (x), (11.30)pak existuje vektor Lagrangeových multiplikátorů μ se složkami μ j , j ∈ {0, . . . , r}a λ se složkami λ i , i ∈ {1, . . . , m} takovými, že následující systém je splněnv (︀ x, λ, μ )︀ :∇ x L (︀ x, λ, μ )︀ = ∇f(x) + ∇h(x) T λ + ∇g(x) T μ = o, (11.31)μ j ≧ o, ∀j ∈ I, (11.32)μ j · g j (x) = 0, ∀j ∈ I. (11.33)Poznámka 1<strong>1.2</strong>4. Přípustný bod, který splňuje podmínkuT Ω (x) = V Ω (x), (11.34)bývá v některých textech označován jako kvaziregulární bod i <strong>pro</strong> množinu Ω z úlohy(1<strong>1.2</strong>9).Pro naši obecnější úlohu je možné také zobecnit podmínku optimality obsaženouve větě 11.11, která je formulována pomocí normálového kužele k množině Ω. Definicetohoto kužele je uvedena v definici 11.10. Toto zobecnění je obsaženo v následujícívětě.Věta 1<strong>1.2</strong>5. Nechť je <strong>pro</strong>blém (1<strong>1.2</strong>9) definován pomocí diferencovatelných zobrazeníf, h a g. Nechť <strong>pro</strong>blém (1<strong>1.2</strong>9) má lokální minimum v x, pako ∈ ∇f(x) + N Ω (x). (11.35)Pro tento obecnější případ také můžeme přeformulovat věty 11.12 a 11.15 následujícímzpůsobem.Věta 1<strong>1.2</strong>6. Nechť <strong>pro</strong>blém (1<strong>1.2</strong>9) má lokální minimum v x. Pak existuje vektorLagrangeových multiplikátorů μ se složkami μ j , j ∈ {0, . . . , r} a λ se složkami λ i ,i ∈ {1, . . . , m} takovými, že následující systém je splněn v (︀ x, λ, μ )︀ :∇f(x)μ 0 + ∇h(x) T λ + ∇g(x) T μ = o, (11.36)μ j ≧ 0, ∀j ∈ {0, . . . , r} a μ 0 , λ 1 , . . . , λ m , μ 1 , . . . , μ r nejsou všechny rovny 0,(11.37)μ j · g j (x) = 0, ∀j ∈ I. (11.38)Systém (11.36), (11.37) a (11.38) s podmínkou g(x) ≦ o podobně jako u úlohypouze s nerovnostními omezeními nazýváme Fritz-Johnovou podmínkou.
11.5 Klasifikace omezení <strong>pro</strong> úlohy s omezeními ve tvaru rovností a nerovností 99Věta 1<strong>1.2</strong>7. Nechť <strong>pro</strong>blém (1<strong>1.2</strong>9) má lokální minimum v x a nechť je <strong>pro</strong> tentobod splněna podmínka regularity. Pak existuje jediný vektor Lagrangeových multiplikátorůμ se složkami μ j , j ∈ I := {1, . . . , r} a λ se složkami λ i , i ∈ {1, . . . , m}takovými, že následující systém je splněn v (︀ x, λ, μ )︀ :∇ x L (︀ x, λ, μ )︀ = ∇f(x) + ∇h(x) T λ + ∇g(x) T μ = o, (11.39)μ j ≧ o, ∀j ∈ I, (11.40)μ j · g j (x) = 0, ∀j ∈ I. (11.41)Dvojici (x, (λ, μ)) která splňuje (11.39), (11.40) a (11.41) s podmínkou g(x) ≦≦ o , budeme podobně jako u úlohy pouze s nerovnostními omezeními nazývatKarush-Kuhn-Tuckerova dvojice nebo stručně KKT-dvojice. Systém (11.39), (11.40)a (11.41) s podmínkou g(x) ≦ o nazýváme Karush-Kuhn-Tuckerovou podmínkounebo stručně KKT-podmínkou.Nyní se seznámíme s jinými podmínkami, které ve větě 1<strong>1.2</strong>7 nahradí podmínkuregularity tak, aby byla zajištěna existence Lagrangeových multiplikátorů, kterésplňují podmínky (11.39), (11.40) a (11.41) s podmínkou g(x) ≦ o. Těmto podmínkámbudeme říkat klasifikace omezení 1 . Tyto podmínky jsou „slabší“ než podmínkaregularity a zaručují pouze existenci a nikoliv jednoznačnost Lagrangeových multiplikátorův systému (11.39), (11.40) a (11.41) s podmínkou g(x) ≦ o.První z těchto klasifikací omezení je klasifikaci omezení na linearitu/konkávnost.Věta 1<strong>1.2</strong>8. (o klasifikaci omezení na linearitu/konkávnost) a Nechť <strong>pro</strong>blém(1<strong>1.2</strong>9) má lokální minimum v x a nechť je splněna následující podmínka.Složky h i jsou lineární a g j jsou konkávní.Pak existuje vektor Lagrangeových multiplikátorů λ se složkami λ i , i ∈ E := {1 ažm} a μ se složkami μ i , i ∈ I := {1, . . . , r} takovými, že následující systém jesplněn v (︀ x, λ, μ )︀ :∇ x L (︀ x, λ, μ )︀ = ∇f(x) + ∇h(x) T λ + ∇g(x) T μ = o, (11.42)μ i ≧ o, ∀i ∈ I, (11.43)μ i · g i (x) = 0, ∀i ∈ I. (11.44)a V anglické literatuře najde čtenář tuto podmínku pod názvem Linear/Concave ConstraintQualification.1 V anglické literatuře najde čtenář tyto podmínky pod názvem Constraint Qualifications či podzkratkou CQ.
100 Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovnostíDalší z těchto klasifikací omezení je Mangasarian-Fromovitzova klasifikace omezení.Věta 1<strong>1.2</strong>9. (o Mangasarian-Fromovitzově klasifikaci omezení) a Nechť <strong>pro</strong>blém(1<strong>1.2</strong>9) má lokální minimum v x a nechť jsou <strong>pro</strong> tento bod splněny následujícípodmínky.Gradienty ∇h i (x), i ∈ E := {1, . . . , m} jsou lineárně nezávislé a existuje vektord takový, že∇h i (x) T d = 0, ∀i ∈ E, ∇g j (x) T d < 0, ∀j ∈ A (x) . (11.45)Pak existuje vektor Lagrangeových multiplikátorů λ se složkami λ i , i ∈ E a μ sesložkami μ i , i ∈ I takovými, že následující systém je splněn v (︀ x, λ, μ )︀ :∇ x L (︀ x, λ, μ )︀ = ∇f(x) + ∇h(x) T λ + ∇g(x) T μ = o, (11.46)μ i ≧ o, ∀i ∈ I, (11.47)μ i · g i (x) = 0, ∀i ∈ I. (11.48)a V anglické literatuře najde čtenář tuto podmínku pod názvem Mangasarian-Fromovitz ConstraintQualification či pod zkratkou MFCQ.Na závěr si uvedeme Slaterovu klasifikace omezení.Věta 11.30. (o Slaterově klasifikaci omezení) a Nechť <strong>pro</strong>blém (1<strong>1.2</strong>9) má lokálníminimum v x a nechť jsou <strong>pro</strong> tento bod splněny následující podmínky.Složky h i jsou lineární a g j jsou konvexní. Dále existuje přípustný bod x takový, žeg j (x) < 0, ∀j ∈ A (x) . (11.49)Pak existuje vektor Lagrangeových multiplikátorů λ se složkami λ i , i ∈ E a μ sesložkami μ i , i ∈ I takovými, že následující systém je splněn v (︀ x, λ, μ )︀ :∇ x L (︀ x, λ, μ )︀ = ∇f(x) + ∇h(x) T λ + ∇g(x) T μ = o, (11.50)μ i ≧ o, ∀i ∈ I, (11.51)μ i · g i (x) = 0, ∀i ∈ I. (11.52)a V anglické literatuře najde čtenář tuto podmínku pod názvem Slater Constraint Qualificationči pod zkratkou SCQ.
101Kapitola 12<strong>Metody</strong> řešení úloh s nerovnostmiV této kapitole se seznámíme se základními algoritmy <strong>pro</strong> nalezení minima nelineárnífunkce vzhledem k omezením ve tvaru nerovností. Seznámíme se postupněse třemi metodami řešení této úlohy. V klasické analýze se řešení úloh minimalizaces nerovnostními vazbami nazývají také podmíněné extrémy. Pro jednoduchostbudeme předpokládat, že f je konvexní a že úloha má jediné řešení.12.1 Metoda vnitřního bodu - bariéryPrvní jednoduchou možností, jak řešit úlohu s nerovnostními vazbami je metodabariéry. Ta využívá tzv. bariérovou funkci, kterou si zavedeme dále v textu.Definice 12.1. Definujme <strong>pro</strong> množinu Ω z úlohy (11.1) funkci b : R n → R, kterásplňuje b| Ω ≧ 0 a b(x) → +∞ <strong>pro</strong> g(x) → 0. Takovou funkci b nazveme bariérovoufunkcí příslušnou přípustné množině Ω.∑︀Bariérovou funkci můžeme obecně zavést takto b := m φ (g i (x)), kde φ(y) ≧ 0<strong>pro</strong> y ≦ 0 a φ(y) → +∞ <strong>pro</strong> y → 0 − .Příklad 12.2. Sestrojte bariérovou funkci příslušnou přípustné množiněi=1Ω = {x ∈ R n : g(x) ≦ o},g : R n → R m , m < n.Řešení. Příkladem bariérové funkce příslušnou množině Ω jsou funkcem∑︁ c ib(x) := −g i (x)čib(x) := −kde c i ∈ R jsou vhodné konstanty.i=1m∑︁c i ln (−g i (x)),i=1
102 <strong>Metody</strong> řešení úloh s nerovnostmiPomocí bariérové funkce můžeme úlohu s omezením ve tvaru nerovností (11.1)převést na úlohu bez omezeníminμ≧0infn{f(x)+ μb(x) : g(x) ≦ o}. (12.1)x∈RNení těžké si uvědomit, že řešení této pomocné úlohy leží vždy uvnitř přípustnémnožiny. Proto se tato bariérová metoda často označuje jako tzv. metoda vnitřníhobodu.Příklad 12.3. Mějme následující minimalizační úlohu s jedním nerovnostním omezenímmin x, Ω = {x ∈ R : −x + 1 ≦ 0}.x∈ΩSestrojte bariérovou funkci <strong>pro</strong> tuto úlohu a převeďte tuto úlohu na úlohu bez omezení.Řešení. Příkladem bariérové funkce příslušnou množině Ω = {x ∈ R : −x + 1 ≦ 0}je funkceb(x) := − 1−x + 1 .S využitím této bariérové funkce můžeme přejít od úlohy s omezením −x + 1 ≦ 0k úloze bez omezeníminμ≧0inf {x −x∈Rμ−x + 1: −x + 1 ≦ 0}.Uveďme si bez důkazu následující tvrzení.Věta 12.4. Nechť μ → 0 + , pak řešení úlohykonverguje k řešení úlohy (11.1).infx∈Rn{f(x) + μb(x) : g(x) ≦ o}Toto tvrzení nás může inspirovat k následujícímu algoritmu metody bariéry <strong>pro</strong>řešení úlohy (11.1).
12.2 Metoda aktivních (pracovních) množin - vnější penalta 103Algoritmus 12.1 Metoda bariéry.Krok 0. {Inicializace.}Zvolme ε > 0 (přesnost), x 0 ∈ Ω = {x ∈ R n : g(x) ≦ o}, μ > 0,β ∈ (0, 1), k = 1Krok 1. {Základní cyklus <strong>pro</strong> metodu bariéry. }for k = 0, 1, 2, . . .x k = arg min{f(x) + μb(x) : g(x) ≦ o}if μb < εbreakelseμ = βμendk = k + 1end forKrok 2. {Řešení.}̂︀x = x k12.2 Metoda aktivních (pracovních) množin - vnějšípenaltaDalší velmi jednoduchá metoda převedení úlohy s omezením (11.1) spočívá v zahrnutínerovnostních vazeb do cenové funkce tak, že k ní přičteme vhodný člen, kterýpenalizuje porušení vazeb. Omezíme se zde, podobně jako v kapitole 10, na nejčastějipoužívanou metodu kvadratické penalty, která a<strong>pro</strong>ximuje řešení ̂︀x úlohy (11.1)řešením ̂︀x ρ úlohymin f ρ(x), f ρ (x) = f(x) + 1x∈R n 2 ρ‖α(x)‖2 , α(x) = max{g(x), o}, (12.2)kde ρ > 0 je penalizační parametr a ‖α(x)‖ 2 je penalizační funkce.Intuitivně je zřejmé, že když je penalizační parametr ρ velký, tak řešení ̂︀x ρ , vekterém je dosaženo minimum penalizované funkce f ρ nemůže být daleko od přípustnémnožiny. Je dokonce zřejmé, že kdyby ρ = ∞, pak by bylo minimum f ρřešením původní úlohy (11.1). Můžeme tedy očekávat, že <strong>pro</strong> dostatečně velké hodnotypenalizačního parametru ρ bude řešení ̂︀x úlohy (11.1) blízko ̂︀x ρ . Je zřejmé, žeřešení penalizované úlohy je typicky blízko přípustné množiny, avšak nepatří do ní.Proto se naše penalizační metoda nazývá také metoda externí penalty.
104 <strong>Metody</strong> řešení úloh s nerovnostmi12.3 SMALBENásledující algoritmus je modifikací algoritmu SMALE ze sekce 10.5. Jediným rozdílemje, že algoritmus SMALBE řeší ve vnitřní smyčce úlohu s jednoduchými omezenímizdola s přesností, která je řízena eukleidovskou normou <strong>pro</strong>jektovaného gradientu1 . Celý algoritmus pak vypadá následovně.Algoritmus 12.2Metoda semimonotónních rozšířených Lagrangiánů - Semimonotonicaugmented Lagrangians (SMALBE).Dána SPD matice A ∈ R n×n , B ∈ R m×n , l ∈ R n .Krok 0. {Inicializace.}Zvolte η > 0, β > 1, M > 0, ρ 0 > 0, λ 0 ∈ R mfor k = 0, 1, 2, . . .Krok 1. {Vnitřní iterace s adaptivní kontrolou přesnosti.}Nalezněte x k ≧ l tak, aby platilo‖g P (x k , λ k , ρ k )‖ ≦ min{M‖Bx k ‖, η} (12.3)Krok 2. {Aktualizace Lagrangeových multiplikátorů.}λ k+1 = λ k + ρ k Bx k (12.4)Krok 3. {Aktualizace ρ v případě že růst Lagrangiánu není dostatečný.}if k > 0 aL(x k , λ k , ρ k ) < L(x k−1 , λ k−1 , ρ k−1 ) + ρ k2 ‖Bxk ‖ 2 (12.5)ρ k+1 = βρ kelseρ k+1 = ρ kend ifend forPříklady k <strong>pro</strong>cvičení1. Nakreslete graf a vrstevnice funkcef(x 1 , x 2 ) = x 4 1 + x 2 1 + x 2 2.Řešte úlohu <strong>optimalizace</strong> s omezením na nerovnostmin f(x 1, x 2 ), Ω = {x ∈ R 2 : −x 1 − 3x 2 + 5 ≦ 0}.x∈Ω1 Projektovaným gradientem myslíme gradient „<strong>pro</strong>jektovaný na“ přípustnou množinu Ω == {x ∈ R n : Bx = c ∧ x ≧ l}. Tento gradient označíme jako g P .
Příklady k <strong>pro</strong>cvičení 105Uvedenou úlohu s omezením na nerovnost řešte pomocí metody vnější penalty.2. Nakreslete graf a vrstevnice funkcef(x 1 , x 2 ) = x 4 1 + x 2 1 + x 2 2.Řešte úlohu <strong>optimalizace</strong> s omezeními na nerovnostmin f(x 1, x 2 ), Ω = {x ∈ R 2 : −2x 1 − 3x 2 − 1 ≦ 0, −x 1 + x 2 + 5 ≦ 0}.x∈ΩUvedenou úlohu s omezeními na nerovnost řešte pomocí metody vnější penalty.3. Minimum kvadratické funkcef(x) = 1 2 xT Ax − b T xa<strong>pro</strong>ximuje (až na jednotky) průhyb struny zatížené jednotkovou silou a uchycené naobou koncích (x 1 = x n = 0), kde A ∈ R n×n , b ∈ R n a⎡A = (n − 1)⎢⎣1 0 0 0 0 . . . 0 0 0 0 00 2 −1 0 0 . . . 0 0 0 0 00 −1 2 −1 0 . . . 0 0 0 0 00 0 −1 2 −1 . . . 0 0 0 0 00 0 0 −1 2 . . . 0 0 0 0 0. . . . .. .. . . . . .0 0 0 0 0 . . . 2 −1 0 0 00 0 0 0 0 . . . −1 2 −1 0 00 0 0 0 0 . . . 0 −1 2 −1 00 0 0 0 0 . . . 0 0 −1 2 00 0 0 0 0 . . . 0 0 0 0 1b = − 1n − 1Minimum kvadratické funkce f za podmínky x i ≧ l i , kde l i < 0 definuje překážku,popisuje průhyb struny nad tuhou překážkou. Otestujte metodu vnější penalty na<strong>pro</strong>blémech s překážkou určenou hodnotou τ < 0.⎡⎢⎣01.10⎤.⎥⎦⎤,⎥⎦
106Kapitola 13Dualita v konvexním<strong>pro</strong>gramováníV této kapitole si ukážeme alternativní formulace konvexních úloh kvadratického<strong>pro</strong>gramování, jejichž vzájemný vztah je charakterizován pojmem dualita. Připomeňmesi, že podle Wikipedie „a duality (in mathematics) translates concepts, theoremsor mathematical structures into other concepts, theorems or structures, ina one-to-one fashion, often involution“. Dualita nás zajímá zejména <strong>pro</strong>to, že častoumožňuje přeformulovat původní úlohu na úlohu, jejíž řešení je mnohem snazší.13.1 Dualita <strong>pro</strong> kvadratické <strong>pro</strong>gramování s rovnostnímivazbamiZákladní myšlenku si nejprve vyložíme na úloze konvexního kvadratického <strong>pro</strong>gramovánís rovnostmimin f(x) = 1x∈Ω 2 xT Ax − b T x, Ω = {x ∈ R n : Bx = c}, (13.1)kde A je pozitivně definitní a B má plnou řádkovou hodnost. Z našeho předpokladuplyne, že příslušná KKT soustava∇ x L 0 (x, λ) = Ax − b + B T λ = o, (13.2)∇ λ L 0 (x, λ) = Bx − c = o (13.3)má jediné řešení (̂︀x, ̂︀λ), které můžeme najít tak, že si nejprve vyjádříme x z (13.2)a následně dosadíme za x do (13.3), takže dostaneme rovnici <strong>pro</strong> ̂︀λ. Tyto dva krokysi nyní spojíme se dvěma optimalizačními <strong>pro</strong>blémy.Nejprve si všimněme, že rovnici (13.2) můžeme považovat za podmínku minima,jejímž splnění zaručuje, že
13.1 Dualita <strong>pro</strong> kvadratické <strong>pro</strong>gramování s rovnostními vazbami 107L 0 (x, λ) = 1 2 xT Ax − b T x + λ T (Bx − c)dosahuje v x minimum vzhledem k x. Pro dané λ ∈ R m je tedy první krok ekvivalentnínalezení argumentu minimax = x(λ) = A −1 (b − B T λ)Lagrangiánu L 0 (x, λ) vzhledem k x. Pomocí tohoto pozorování si můžeme vyjádřitexplicitně duální funkcia její gradientΘ(λ) = infx∈R n L 0(x, λ) = minx∈R n L 0(x, λ) = L 0 (x(λ), λ) (13.4)= − 1 2 λT BA −1 B T λ + (BA −1 b − c) T λ − 1 2 bT A −1 b∇Θ(λ) = −BA −1 B T λ + (BA −1 b − c). (13.5)Abychom našli interpretaci druhého kroku, dosaďme si za x = x(λ) do (13.3),čímž dostaneme−BA −1 B T λ + (BA −1 b − c) = o.Porovnáme-li levou stranu poslední rovnice s explicitním výrazem (13.5) <strong>pro</strong> ∇Θ(λ),můžeme si poslední rovnici zapsat ve tvaru∇Θ(λ) = o.Jelikož BA −1 B T , Hessián −Θ, je podle předpokladu pozitivně definitní, dostávámetak, že poslední výraz je ekvivalentmí podmínce minima (2.7) <strong>pro</strong> argument minima−Θ, což je současně argument maxima Θ. Proto KKT dvojice (̂︀x, ̂︀λ) <strong>pro</strong> <strong>pro</strong>blém(13.1) s rovnostními vazbami řeší též min-max <strong>pro</strong>blém̂︀λ řeší duální <strong>pro</strong>blémL 0 (̂︀x, ̂︀λ) = max min L 0(x, λ), (13.6)λ∈Rm x∈R na <strong>pro</strong>tože ̂︀x je přípustný vektor, platíNavíc zřejmě platíΘ(̂︀λ) = max Θ(λ), (13.7)λ∈Rm f(̂︀x) = L 0 (̂︀x, λ) = L 0 (̂︀x, ̂︀λ) = Θ(̂︀λ). (13.8)f(̂︀x) = L 0 (̂︀x, ̂︀λ) = minx∈R n L 0(x, ̂︀λ) ≦ L 0 (x, ̂︀λ), x ∈ R n . (13.9)
108 Dualita v konvexním <strong>pro</strong>gramováníExistuje ještě jeden ekvivalentní <strong>pro</strong>blém související s penalizační metodou. Jelikožsup L 0 (x, λ) = ∞ for x /∈ Ω a sup L 0 (x, λ) = f(x) for x ∈ Ω,λ∈R m λ∈R mplatí, že řešení ̂︀x KKT soustavy (13.2)-(13.3) splňujef(̂︀x) = min sup L 0 (x, λ). (13.10)x∈R n λ∈R mPorovnáním (13.10) s (13.6) a (13.8) dostaneme relaci dualitymax min L 0(x, λ) = min sup Lλ∈Rm 0 (x, λ). (13.11)x∈R n x∈R n λ∈R mPoužijeme-li (13.8) a (13.9), dostaneme, že (̂︀x, ̂︀λ) řeší sedlobodový <strong>pro</strong>blém najít(̂︀x, ̂︀λ) tak, aby <strong>pro</strong> každé x ∈ R n a λ ∈ R m platiloL 0 (̂︀x, λ) ≦ L 0 (̂︀x, ̂︀λ) ≦ L 0 (x, ̂︀λ). (13.12)Odvodili jsme si tak dva <strong>pro</strong>blémy bez omezení, které jsou ekvivalentní původnímu<strong>pro</strong>blému s rovnostními omezeními (13.1). Sedlobodová formulace obsahujeexplicitně Lagrangeovy multiplikátory a je bez omezení za cenu použití dvou sad<strong>pro</strong>měnných, zatímco duální formulace má často malou dimenzi za cenu použitísložitějších matic. Duální <strong>pro</strong>blém je často lépe podmíněný. Povšimněte si, že levánerovnost v (13.12) může být nahrazena rovností. Duální formulace je základem tzv.FETI metod rozložení oblasti <strong>pro</strong> paralelní řešení rozsáhlých úloh mechaniky.13.2 Dualita <strong>pro</strong> kvadratické <strong>pro</strong>gramování s nerovnostnímivazbamiZopakujeme si, s nezbytnými modifikacemi, předchozí postup <strong>pro</strong> úlohu konvexníhokvadratického <strong>pro</strong>gramování s nerovnostmiminx∈Ω f(x) = 1 2 xT Ax − b T x, Ω = {x ∈ R n : Bx ≦ c}, (13.13)kde A je opět pozitivně definitní a B má plnou řádkovou hodnost. Z našeho předpokladuplyne, že příslušná KKT soustava∇ x L 0 (x, λ) = Ax − b + B T λ = o, (13.14)∇ λ L 0 (x, λ) = Bx − c ≦ o, (13.15)λ ≧ o, (13.16)λ T (Bx − c) = 0 (13.17)
13.2 Dualita <strong>pro</strong> kvadratické <strong>pro</strong>gramování s nerovnostními vazbami 109má jediné řešení (̂︀x, ̂︀λ). Vyjádřeme si opět x z (13.14) a následně dosaďme za x do(13.15). Rovnici (13.14) můžeme opět považovat za podmínku , jejíž splnění zaručuje,žeL 0 (x, λ) = 1 2 xT Ax − b T x + λ T (Bx − c)dosahuje v x minimum vzhledem k x. Pro dané λ ∈ R m je tedy první krok opětekvivalentní nalezení argumentu minimax = x(λ) = A −1 (b − B T λ)Lagrangiánu L 0 (x, λ) vzhledem k x. Pomocí tohoto pozorování si můžeme znovuvyjádřit explicitně duální funkcia její gradientΘ(λ) = − 1 2 λT BA −1 B T λ + (BA −1 b − c) T λ − 1 2 bT A −1 b (13.18)∇Θ(λ) = −BA −1 B T λ + (BA −1 b − c). (13.19)Dosadíme-li si nyní za x = x(λ) do (13.15), dostaneme nerovnost−BA −1 B T λ + (BA −1 b − c) ≦ o.Porovnáme-li levou stranu poslední nerovnosti s explicitním výrazem (13.19) <strong>pro</strong>∇Θ(λ), můžeme si poslední nerovnost zapsat ve tvarucož je totéž jakonebo∇Θ(λ) ≦ o,∇Θ(λ) + Iμ = o, μ ≧ o, μ T ∇Θ(λ) = 0(−∇Θ(λ) − Iμ = o, μ ≧ o, μ T ∇Θ(λ) = 0. (13.20)Z (13.17) pak dostaneme podmínku komplementarityλ T ∇Θ(λ) = 0. (13.21)Jelikož BA −1 B T , Hessián −Θ, je podle předpokladu pozitivně definitní, dostávámetak, že (13.20) je ekvivalentní KKT podmínce <strong>pro</strong> argument minima −Θ za podmínky−λ ≦ o, což je současně argument maxima Θ vzhledem k λ ≧ o. ProtoKKT dvojice (̂︀x, ̂︀λ) <strong>pro</strong> <strong>pro</strong>blém (13.13) s nerovnostními vazbami řeší též min-max<strong>pro</strong>blémL 0 (̂︀x, ̂︀λ) = max min L 0(x, λ), (13.22)λ∈Rm x∈R n
110 Dualita v konvexním <strong>pro</strong>gramování̂︀λ řeší duální <strong>pro</strong>blémΘ(̂︀λ) = max Θ(λ), (13.23)λ∈Rm a <strong>pro</strong>tože ̂︀x je přípustný vektor, který splňuje podmínku komplementarity (13.21),platíNavíc zřejmě platíf(̂︀x) = L 0 (̂︀x, λ) = L 0 (̂︀x, ̂︀λ) = Θ(̂︀λ). (13.24)f(̂︀x) = L 0 (̂︀x, ̂︀λ) = minx∈R n L 0(x, ̂︀λ) ≦ L 0 (x, ̂︀λ), x ∈ R n . (13.25)Existuje také ještě jeden ekvivalentní <strong>pro</strong>blém související s penalizační metodou.Jelikožsup L 0 (x, λ) = ∞ for x /∈ Ω a sup L 0 (x, λ) = f(x) for x ∈ Ω,λ∈R m λ∈R mplatí, že řešení ̂︀x KKT soustavy (13.14)-(13.15) splňujef(̂︀x) = min sup L 0 (x, λ). (13.26)x∈R n λ∈R mPorovnáním (13.26) s (13.22) a (13.24) dostaneme relaci dualitymax min L 0(x, λ) = min sup Lλ∈Rm 0 (x, λ). (13.27)x∈R n x∈R n λ∈R mPoužijeme-li (13.24) a (13.25), dostaneme, že (̂︀x, ̂︀λ) řeší sedlobodový <strong>pro</strong>blém najít(̂︀x, ̂︀λ) tak, aby <strong>pro</strong> každé x ∈ R n a λ ∈ R m platiloL 0 (̂︀x, λ) ≦ L 0 (̂︀x, ̂︀λ) ≦ L 0 (x, ̂︀λ). (13.28)Odvodili jsme si tak dva <strong>pro</strong>blémy bez omezení, které jsou ekvivalentní původnímu<strong>pro</strong>blému s rovnostními omezeními (13.13). Sedlobodová formulace obsahujeexplicitně Lagrangeovy multiplikátory a je bez omezení za cenu použití dvou sad <strong>pro</strong>měnných,zatímco duální formulace má často malou dimenzi s podmínkou nezápornostiza cenu použití složitějších matic. Nahrazení obecnějších nerovností podmínkounezápornosti je velkým přínosem <strong>pro</strong> numerické řešení, neboť je v tomto případěvelmi snadné implementovat eukleidovskou <strong>pro</strong>jekci na přípustnou množinu. Duální<strong>pro</strong>blém je často lépe podmíněný. Duální formulace je základem efektivních FETImetod rozložení oblasti <strong>pro</strong> paralelní řešení rozsáhlých kontaktních úloh mechaniky.
13.3 Vizualizační lemma 11113.3 Vizualizační lemmaPojmy a základní myšlenky spojené s dualitou <strong>pro</strong> obecnější konvexní <strong>pro</strong>blémmin f(x) (13.29)h(x)≦okterý je zadaný pomocí dostatečně hladkých funkcí f : R n → R a h : R n → R ma má řešení (̂︀x, ̂︀λ), si můžeme znázornit pomocí nadrovin v R m+1 a zobrazeníkteré je definováno předpisemΦ : R n ↦→ R n+1 ,Φ(x) = (︀ f(x), h(x) )︀ .Budeme přitom sledovat výklad Bertsekase [1]. Pro náš účel je nadrovina H přirozenězadaná normálovým vektorem n ∈ R n+1 , n = (n f , n h ), n f ∈ R, n h ∈ R ma konstantou c ∈ R pomocíH = {(y f , y h ) ∈ R n+1 : n T f y f + n h y h = c}.Známe-li tedy nějaký bod y = (y f , y h ) ∈ R m+1 , potomH = {(y f , y h ) ∈ R n+1 : n T f y f + n T h y h = n f y f + n T h y h }.Tyto nadroviny definují dva polo<strong>pro</strong>story, a to kladný polo<strong>pro</strong>stora záporný polo<strong>pro</strong>storH + = {(y f , y h ) ∈ R n+1 : n T f y f + n h y h ≧ n f y f + n T h y h }H − = {(y f , y h ) ∈ R n+1 : n T f y f + n h y h ≦ n f y f + n T h y h }.Nadroviny s normálou n = (n f , n h ), <strong>pro</strong> kterou platí n f = 0 se nazývá vertikální,v opačném případě, tedy když n f ≠ 0, se n nazývá nevertikální. Nevertikální normálase nazývá normalizovaná, jestliže n f = 1. Tyto definice nám umožňují spojit teoriiLagrangeových multiplikátorů s geometrií oboru hodnot Φ v následujícím lemmatu,které je ilustrováno na obr. 13.1.Lemma 13.1. (Vizualizační lemma)(i) Nadrovina s normálou (1, λ), ve které leží bod (︀ f(x), h(x) )︀ , <strong>pro</strong>tíná svislou osu{(z, o) : z ∈ R} vz = L (︀ f(x), h(x) )︀ .(ii) Nejvyššího průsečíku nadroviny H = {(y f , y h ) ∈ R n+1 : 1y f + λ T y h = c}, kterásplňuje H + ⊇ H (Φ), se svislou osou {(z, o) : z ∈ R} je dosaženo vz = infx∈R n L(︀ x, λ )︀ .
112 Dualita v konvexním <strong>pro</strong>gramování(iii) ̂︀λ je Lagrangeův multiplikátor <strong>pro</strong> řešení konvexní úlohy (13.29), právě když̂︀λ ≧ o a nejvyššího průsečíku nadroviny H = {(y f , y h ) ∈ R n+1 : 1y f + λ T y h = c},která splňuje H + ⊇ H (Φ), se svislou osou {(z, o) : z ∈ R}, je dosaženo v y f = f(̂︀x).f(f(x), h(x))f(̂︀x) = L(̂︀x, ̂︀λ)hObr. 13.1: Ilustrace vizualizačního lematuDůkaz. (i) Nadrovina určená normálou (1, λ) a bodem (f(x), h(x)) je množina všech(y f , y h ), které splňujíy f + λ T y h = f(x) + λ T h(x) = L(x, λ).Jediný vektor na svislé ose {(z, o) : z ∈ R} je (L(x, λ), o).(ii) Nadrovina s normálou (1, λ), která <strong>pro</strong>tíná vertikální osu ve výšce c je množinavektorů, které splňují rovniciy f + λy h = c,a tato nadrovina obsahuje množinu S = H (Φ) ve svém kladném polo<strong>pro</strong>storu, právěkdyžL(x, λ) = f(x) + λ T h(x) ≧ c.
113Kapitola 14Lineární <strong>pro</strong>gramováníLineární <strong>pro</strong>gramování se zabývá minimalizací cenového funkcionálu na polyedru, t.j.na průniku polo<strong>pro</strong>storů. Je to specifická optimalizační úloha, která sice patří meziúlohy spojité <strong>optimalizace</strong>, avšak lze ji řešit i metodami, které jsou blízké diskretníoptimalizaci. V této kapitole se seznámíme s různými formulacemi úlohy lineárního<strong>pro</strong>gramování, s fakty z geometrie polyedru, a se dvěma zcela odlišnými přístupyk řešení.14.1 Formulace úlohy lineárního <strong>pro</strong>gramováníBudeme se zabývat řešením úlohy najítminx∈Ω bT x, Ω = {x ∈ R n : B E x = c E a B I x ≦ c I }, (14.1)kde Ω ⊂ R n , b ∈ R n , c ∈ R m , B ∈ R m×n , a E, I je rozklad množiny indexů{1, . . . , m}.Formulace úlohy (14.1) je sice obecná, avšak není vhodná k řešení. Ukazuje se,že vhodnější je nahradit obecné lineární nerovnosti nezáporným omezením pomocínové <strong>pro</strong>měnnétakže x ∈ Ω, právě kdyžy = c I − B I x,B E x = c E , B I x + y = c I a y ≧ 0.Pro některé algoritmy je dále výhodné, když jsou všechny <strong>pro</strong>měnné nezáporné.Toho dosáhneme snadno, když položímeOznačíme-li six = z − w, z ≧ 0, a w ≧ 0.
114 Lineární <strong>pro</strong>gramováníA =[︂BE −B E OB I −B I I⎡]︂, x = ⎣zwy⎤⎡⎦ , b = ⎣b−bo⎤⎦ ,můžeme zapsat úlohu lineárního <strong>pro</strong>gramování ve standardním tvarumin b T x, Ω = {x ∈ R n+|I| : Ax = c a x ≧ o}. (14.2)x∈Ω14.2 Podmínky minima a dualitaNapíšeme-li si podmínky minima <strong>pro</strong> úlohu minima ve standardním tvarudostanememinx∈Ω bT x, Ω = {x ∈ R n : Ax = c a x ≧ o}, (14.3)b − A T λ − μ = o, μ ≧ o, Ax = c, x ≧ o, x T μ = o. (14.4)Lagrangián <strong>pro</strong> úlohu (14.3) má tvarL(x, λ, μ) = b T x + λ T (c − Ax) − μ T x,takže si můžeme odvodit duální funkci <strong>pro</strong> λ ∈ R n a μ ≧ o ve tvaruΘ(λ, μ) = infx∈R nL(x, λ, μ) = infx∈R nbT x + λ T (c − Ax) − μ T x= infx∈R xT (b − A T λ) + λ T c − μ T x{︂ nλ=T c <strong>pro</strong> b − A T λ ≧ o, x ≧ o,−∞ <strong>pro</strong> některé i ∈ E, [b − A T λ] i < 0, x i < 0.Duální <strong>pro</strong>blém je tedy opět lineární <strong>pro</strong>blém, jehož cílem je najít λ ∈ R m , kteréřešíλ ∈ R m , maxu≧oΘ(λ, μ) = maxλ∈R m λT c <strong>pro</strong> A T λ ≦ b.Jak již víme, složky λ a μ (= b−A T λ) popisují citlivost cenové funkce na narušenívazeb. V ekonomických aplikacích je lze často interpretovat jako stínové ceny. Duálníformulace je užitečná <strong>pro</strong> odvození některých efektivních algoritmů <strong>pro</strong> řešení úlohlineárního <strong>pro</strong>gramování.
14.3 Metoda vnitřního bodu 11514.3 Metoda vnitřního boduNyní si stručně ukážeme, jak adaptovat metodu vnitřního bodu na řešení úlohylineárního <strong>pro</strong>gramování ve standardním tvarumin b T x, Ω = {x ∈ R n : Ax = c a x ≧ o}. (14.5)x∈ΩBudeme přitom předpokládat, že řádky vazební matice A jsou lineárně nezávislé,a zapíšeme si duální úlohu ve tvarumaxλ∈R λT c <strong>pro</strong> A T λ + μ = b, μ ≧ o. (14.6)mPodmínky minima <strong>pro</strong> úlohu (14.5) si zapišme ve standardním tvaruA T λ + μ = b,Ax = c,x T μ = o,x ≧ o,μ ≧ o.K řešení této soustavy použijeme variantu Newtonovy metody, a to tak, že budemev každém kroku zajišťovat splnění podmínky nezápornosti x, μ. Povšimněte si, žeostatní relace jsou buď lineární nebo mírně nelineární.Přepišme si nejprve podmínku komplementarity ve tvaruXSe = o, X = diag[x 1 , . . . , x n ], S = diag[μ 1 , . . . , μ n ], e = [1, . . . 1] Ta definujme si zobrazení F : R 2n+m → R 2n+m pomocí⎡⎤A T λ + μ − bF (x, λ, μ) = ⎣ Ax − cXSe⎦ .Snadno si ověříme, že Jacobián F má tvar⎡O A T I⎤J(x, λ, μ) = ⎣ A O O ⎦ ,S O Xtakže Newtonův směr je definován rovnicí⎡F (x, λ, μ) + J(x, λ, μ) ⎣△x△λ△μ⎤⎦ = o.
116 Lineární <strong>pro</strong>gramováníJe-li (x k , λ k , μ k ) přípustná vnitřní iterace, t.j. x k > o, μ k > o, pak definujeme novouiteraci pomocí(x k+1 , λ k+1 , μ k+1 ) = (x k , λ k , μ k ) + α(△x k , △λ k , △μ k ),kde α ∈ (0, 1) zvolíme tak, aby nová iterace byla opět vnitřní iterace.Ukazuje se, že přirozený požadavek na splnění podmínky komplementarity vedek příliš krátkému kroku. Lepší výsledek se obvykle dosáhne, když se poslední podmínkačástečně uvolní. Provede se to tak, že si zavedeme průměrnou míru narušenípodmínky komplementarityδ = xT μna vhodný centralizující parametr σ k > 0, s jejichž pomocí zapíšeme relaxovanourovnici <strong>pro</strong> Newtonův směr ve tvaru⎡⎤ ⎡ ⎤ ⎡⎤O A T I △x k b − A T λ k − μ k⎣ A O O ⎦ ⎣ △λ k ⎦ = ⎣ c − Ax k ⎦ .S k O X k △μ k −X k S k e + σ k δ k eKonvergenci k řešení zajistíme zmenšováním σ k .14.4 Geometrie simplexové metodyV sekci 14.3 jsme si ukázali, že úlohy lineárního řešení je možné řešit metodami,které byly navrženy <strong>pro</strong> řešení obecnějších nelineárních úloh. Úloha lineárního <strong>pro</strong>gramovánímá však specifickou strukturu, kterou je možno využít <strong>pro</strong> navržení zcelajiného algoritmu. Hlavní myšlenka simplexové metody, která využívá tuto specifickoustrukturu, je patrná z obr. 14.1.Podle obr. 14.1 se dá především očekávat, že minimum nemůže být dosaženove vnitřku přípustné množiny Ω, ale někde na hranici. Toto pozorování si můžemesnadno dokázat, když si uvědomíme, že přípustná množina Ω je konvexní t.j. <strong>pro</strong>libovolné α ∈ (0, 1) a y, z ∈ Ω platíαy + (1 − α)z ∈ Ω,a lineární cenová funkce f(x) = c T x je konkávní, tedy splňujef(αy + (1 − α)z) ≧ αf(y) + (1 − α)f(z) ≧ min{f(y), f(z)}.Obrázek však naznačuje nejen, že při hledání minima můžeme vynechat vnitřníbody Ω, ale že minimum je dosaženo v bodech lomu hranice, což jsou body konvexníhranice Ω. Toto tvrzení lze dokázat (za předpokladu, že přípustná množina Ω jeneprázdná) i formálně, a to i v případě, že Ω je větší než konvexní obal bodů konvexníhranice, tak jako v našem případě. My si ho dokážeme v příští sekci.
14.4 Geometrie simplexové metody 117x 0 x 1c T x = c T ̂︀xc T x = constx 2 = ̂︀xObr. 14.1 Geometrické znázornění simplexové metodyPostup řešení úlohy (14.3) simplexovou metodou spočívá v systematickém <strong>pro</strong>cházeníbodů konvexní hranice, počínaje vrcholem x 0 . Jako další iteraci zvolíme jedenze sousedních bodů hranice, obvykle ve směru nejbližším zápornému gradientucenové funkce, tedy −c. Hlavním <strong>pro</strong>blémem je algebraicky popsat body konvexníhranice a pravidlo nalezení další iterace, tedy přechodu od vrcholu k vrcholu s menšíhodnotou cenové funkce, což si ukážeme v další sekci.
118 Lineární <strong>pro</strong>gramování14.5 Konvexní hranice simplexuObsahem následující věty je algebraická reprezentace bodů konvexní hranice přípustnémnožiny Ω.Věta 14.1. NechťΩ = {x ∈ R n : Ax = c a x ≧ o, }Ω ≠ ∅ a A je m × n matice plné hodnosti, m < n, jejíž sloupce lze uspořádat tak,žeA = [B, N],kde B je regulární matice řádu M.Potom x je bodem konvexní hranice Ω právě když[︂ ]︂ [︂xB Bx = =−1 cox N]︂Důkaz. Ukažme si nejprve, že x nelze zapsat jako konvexní kombinaci žádných bodůy, z ∈ Ω, y ≠ z, t.j. z x = αy + (1 − α, α ∈ (0, 1) plyne α = 0 nebo α = 1. Skutečně,z y ≧ o, z ≧ o a předpokladu plyne bez<strong>pro</strong>středně, že y N = z N = o, takžeAx = Bx N = By N = Bz N = c,tedy y N = z N = B −1 c a x = y = z, což je spor.Obráceně, předpokládejme, že x je bod konvexní hranice. Bez újmy na obecnostimůžeme předpokládat, že x má dvě komponenty, nenulovou x B ∈ R p a nulovoux N . Ukážeme si sporem, že sloupce a 1 , . . . , a p matice A odpovídající nenulovýmkomponentám jsou nezávislé. Předpokládejme tedy, že jsou lineárně závislé, takžeexistují α 1 , . . . , α p tak, že nejsou všechny nulové aα 1 a 1 + · · · + α p a p = o.Pro vektor α dimenze n, jehož nenulové složky jsou právě α 1 , . . . , α p , tedy platíAα = o a α ≠ o.Jelikož x N > o, bude <strong>pro</strong> dostatečně malé nenulové α platitx + αα ∈ Ω a x − αα ∈ Ω,takže x lze zapsat ve sporu s předpokladem jako konvexní kombinaci dvou různýchpřípustných vektorů ve tvaru
14.5 Konvexní hranice simplexu 119x = 1 2 (x + αα) + 1 (x + αα).2Tím jsme dokázali, že sloupce a 1 , . . . , a p jsou nezávislé, z čehož také vyplývá, žep ≦ m. Pokud m = p, označme si B = [a 1 , . . . , a m ], N = [a m+1 , . . . , a n ], takžeA = [B, N], a označme si x B a x N vektory odpovídajících složek x. Pak x N = o aAx = Bx B = c,tedy x B = B −1 c, což je důkaz tvrzení <strong>pro</strong> m = p. Pokud p < m, doplníme a 1 , . . . a po další sloupce do báze oboru hodnot matice A (tedy R m ) a přeuspořádáme x, Atak, že doplňující vektory vzájemně zaměníme.Jak jsem se zmínili výše, simplexový algoritmus je založen na tvrzení, že minimumje dosaženo v bodech konvexní hranice. Přirozený důkaz je založen na konkávnosticenové funkce a na reprezentaci Ω pomocí konvexní kombinace bodů konvexníhranice a nezáporné kombinace tzv. extrémních směrů. Důkaz potřebné věty o reprezentacije však za hranicí tohoto úvodního textu, uvedeme si <strong>pro</strong>to jiný důkaz,který je podobný důkazu věty 14.1.Věta 14.2. Nechť úloha (14.2) má řešení. Potom existuje řešení x, které je bodemkonvexní hranice přípustné množiny Ω.Důkaz. Nechť x je řešení s nejmenším počtem nenulových komponent p. Bez újmyna obecnosti můžeme předpokládat, že x má dvě komponenty, nenulovou x B ∈ R pa nulovou x N .Dokážeme si nejprve sporem, že sloupce matice A odpovídající nenulovým komponentámx jsou nezávislé, takže existují α 1 , . . . , α p tak, že nejsou všechny nulovéaα 1 a 1 + · · · + α p a p = o.Pro vektor α dimenze n, jehož nenulové složky jsou právě α 1 , . . . , α p , tedy platíAα = o a α ≠ o.Jelikož x N > o, bude <strong>pro</strong> dostatečně malé nenulové α platitPro každé x ∈ Ω však platítakže <strong>pro</strong> dostatečně malé α dostanemex + αα ∈ Ω a x − αα ∈ Ω.f(x) = b T x ≦ b T x = f(x),
120 Lineární <strong>pro</strong>gramováníb T x ≦ b T (x + αα) a b T x ≦ b T (x − αα) ,tedy <strong>pro</strong> jakékoliv α, které je dostatečně malé v absolutní hodnotě, platíb T x = b T (x + αα) .Pro vhodnou volbu α tedy můžeme dosáhnout toho, že vektorx α = x + ααmá p + 1 nulových složek, což je spor s předpokladem, že x je řešení s nejmenšímpočtem nenulových komponent.Dokázali jsme tedy, že sloupce matice A s indexy nenulových složek vektorux jsou nezávislé. Pokud p < m, doplníme a 1 , . . . a p o další sloupce do báze oboruhodnot matice A (tedy R m ). Po vhodném přeuspořádání x, A bude mít vektor xsložky s indexy m + 1, . . . , n nulové a prvních m sloupců A bude nezávislých. Podlevěty 14.1 je tedy x bodem konvexní hranice.14.6 Krok simplexové metodyNejprve využijeme větu 14.2 k zápisu podmínky, kterou splňuje řešení úlohy (14.2),ve vhodnější formě než jsou standardní KKT podmínky.Nechť x je bod konvexní hranice, jehož prvních m komponent je nenulových,takže podle věty 14.2 platíx =[︂xBx N]︂=[︂ B −1 coPro libovolný bod y ∈ Ω s vektorovými složkami y B , y N platí]︂.takžeAy = By b + Ny n = c,y B = B −1 c − B −1 Ny Na <strong>pro</strong> cenovou funkci určenou vektorem b s vektorovými složkami b B , b N dostanemeb T y = b T By B + b T Ny N = b T BB −1 c + (b T N − b T BB −1 N)y N= b T x + (b T N − b T BB −1 N)y N .Jelikož y N ≧ o, je x řešení právě kdyžb T N − b T BB −1 N ≧ o.
14.6 Krok simplexové metody 121Jestliže tedy x není řešení, pak existuje j > m tak, že platíb j − b T BB −1 a j < 0.Budeme <strong>pro</strong>to hledat bod y konvexní hranice Ω, který sousedí s x tak, aby y j > 0.Budeme ho hledat ve tvaruy = x + λd, λ > 0, d N = e j−m ,kde e je sloupec jednotkové matice řádu n − m. Má-li platit y ∈ Ω, pak musí platitAy = Ax + λ(Bd B + Nd N ) = Ax + λ(Bd B + a j ) = c.Jelikož Ax = c, dostáváme takBd B + a j = 0, t.j. d =[︂dBSnadno si ověříme, že <strong>pro</strong> cenovou funkce v y platíd N]︂ [︂ −B=−1 a je j−mf(y) = b T y = b T x + λ(b j − b T BB −1 a j ).Pro λ > 0 tedy bude platit f(y) < f(x), neboť analyzujeme případ b j −b T B B−1 a j < 0.Pro další postup budeme rozlišovat dva případy.i. Ve směru d je možný neomezený pokles Nechť d B = −B −1 a j ≧ o. V tomtopřípadě x + λd ∈ Ω <strong>pro</strong> každé λ > 0 alim = −∞λ→∞neboť předpokládáme b j − b T B B−1 a j < 0. Tento případ nemůže nastat když úloha(14.2) má řešení.ii. Ve směru d je bod konvexní hranice s menší hodnotou cenové funkceNechť existuje i ∈ {1, . . . , m} tak, že d i < 0. V tomto případě položme]︂,Snadno se ověří, žeλ = max {λ > 0 : x + λd ∈ Ω}.y = x + λdje bod konvexní hranice, <strong>pro</strong> který platí f(x) < f(y).Tak jsme si ukázali, že pokud máme bod konvexní hranice s m kladnými složkami(takové body nazýváme také regulární ), je to buď bod, ve kterém je dosaženo minima,nebo můžeme najít jiný bod konvexní hranice s menší hodnotou cenové funkce.
122 Lineární <strong>pro</strong>gramováníPostup lze modifikovat (i když to není zcela triviální) i <strong>pro</strong> body konvexní hranice,které nejsou regulární. Jelikož bodů konvexní hranice je konečný počet a žádný bodse nevygeneruje dvakrát (cenová funkce klesá v každé iteraci), najde se uvedenýmalgoritmem řešení <strong>pro</strong>blému v konečném počtu kroků.Poznamenejme, že předchozí úvaha nezaručuje, že se <strong>pro</strong> větší úlohy řešeníopravdu najde. Důvodem je počet bodů konvexní hranice, který se rovná(︂ )︂ np = .mJsou dokonce známé <strong>pro</strong>blémy, <strong>pro</strong> které je opravdu možné najít řešení až po pkrocích. Simplexový algoritmus má <strong>pro</strong>to exponenciální složitost. Ve většině případůje však k řešení třeba 2m až 3m kroků. Nalezení algoritmu s polynomiální složitostíbyla událost, kterou zaznamenal i Time magazín.
123Kapitola 15Úvod do metod nehladké<strong>optimalizace</strong>V této kapitole se zaměříme na řešení úlohymin f(x), (15.1)x∈Rn kde funkce f je pouze spojitá, a není tedy zaručena její diferencovatelnost. K tomutoúčelu se nejprve budeme podrobně věnovat základním nástrojům potřebným<strong>pro</strong> práci s funkcemi, které nejsou spojitě diferencovatelné. Podíváme se na rozšířeníklasického diferenciálního počtu <strong>pro</strong> spojitě diferencovatelné (hladké) funkce.Toto rozšíření nám přináší Clarkeův kalkul zavádějící zobecněný gradient i v bodechfunkce, kde uvažovaná funkce není spojitě diferencovatelná. Clarkeův kalkul je <strong>pro</strong>své vlastnosti vhodný k algoritmizaci hledání minima funkcí, jež nejsou spojitě diferencovatelné.Jiným kalkulem, který je vhodný <strong>pro</strong> práci s nehladkými funkcemije Morduchovičův kalkul. Ten nám umožňuje „přísnější“ ověření podmínek optimality.Tento kalkul jde však nad rámec tohoto textu a <strong>pro</strong>to se mu nadále věnovatnebudeme. Mnoho informací o těchto kalkulech lze najít v [3] a [13]. Nakonec sepodíváme na možnosti řešení některých nehladkých <strong>pro</strong>blémů. Buď nepřímo převedenímna hladkou úlohu anebo přímo použitím některého z algoritmů vhodného <strong>pro</strong>nehladkou optimalizaci.15.1 Základní pojmyNyní se seznámíme s některými základními pojmy z oblasti nehladké analýzy.
124 Úvod do metod nehladké <strong>optimalizace</strong>Definice 15.1. Nechť množina M ⊂ R n , funkce f : R n → R a K je nezápornéreálné číslo:(i) Nechť <strong>pro</strong> funkci f je splněna podmínka|f(x ′ ) − f(x ′′ )| ≦ K||x ′ − x ′′ || ∀x ′ , x ′′ ∈ M.Pak řekneme, že funkce f je lipschitzovsky spojitá (s modulem K) na množině M.(ii) Nechť <strong>pro</strong> funkci f je splněna podmínka∃ε > 0 : |f(x ′ ) − f(x ′′ )| ≦ K||x ′ − x ′′ || ∀x ′ , x ′′ ∈ x + εB,kde B je jednotková koule. Pak řekneme, že funkce f je lipschitzovsky spojitáv okolí bodu x ∈ R n (s modulem K).(iii) Nechť funkce f je lipschitzovsky spojitá v okolí každého x ∈ R n . Pak řekneme,že funkce f je lokálně lipschitzovsky spojitá na R n .Je zřejmé, že lipschitzovská spojitost na množině je silnější podmínka než lokálnílipschitzovská spojitost. Např. funkce f(x) = x 2 je na R lokálně lipschitzovskáspojitá, ale není lipschitzovsky spojitá.Následující tvrzení nám dává informaci o „velikosti“ podmnožiny definičníhooboru, ve které funkce, která je lokálně lipschitzovsky spojitá funkce na R n , nenídiferencovatelná.Věta 15.2. (Rademacher) Nechť funkce f : R n → R je lokálně lipschitzovskyspojitá na R n a nechť D = {x ∈ R n |f je diferencovatelná v x}. Potom Lebesguovamíra μ množiny bodů, ve kterých funkce f není diferencovatelná, tj. množiny(R n ∖ D), je nula.Z předchozího tvrzení plyne, že v případě lokálně lispchitzovsky spojité funkcemáme zaručenu její diferencovatelnost „skoro všude“. V dalším textu se budemevěnovat řešení úlohy (15.1), kde funkce f je lokálně lispchitzovsky spojitá. Nyní sizavedeme základní pojmy Clarkeova kalkulu.Definice 15.3. Nechť funkce f : R n → R je lipschitzovsky spojitá v okolí bodu xa nechť v je vektor v R n . Clarkeova zobecněná směrová derivace funkce f v boděx ve směru v, kterou značíme f 0 (x; v) je definována předpisemf 0 (x; v) = lim supy→x,t↓0kde y je vektor v R n a t je kladné reálné číslo.f(y + tv) − f(y),t
15.1 Základní pojmy 125Definice 15.4. Nechť funkce f : R n → R je lipschitzovsky spojitá v okolí bodu x.Clarkeův zobecněný gradient funkce f v bodě x, který značíme ∂∂f(x), je množina∂∂f(x) = {ζ ∈ R n |f 0 (x; v) ≧ ⟨ζ, v⟩∀v ∈ R n }.Prvky ∂∂f(x) nazýváme Clarkeovými subgradienty funkce f v bodě x.Poznámka 15.5. V některých textech - zejména v těch, které se věnují analýzekonvexních nehladkých funkcí - se místo pojmu zobecněný gradient používá pojemsubdiferenciál. V tomto textu budeme použivat pojem zobecněný gradient.Poznámka 15.6. Jestliže funkce f je spojitě diferencovatelná v bodě x, pakf 0 (x; v) = f ′ (x; v) = ⟨∇f(x), v⟩, ∀v ∈ R n a z toho vyplývá ∂∂f(x) = ∇f(x).Vztah mezi Clarkeovou směrovou derivací a Clarkeovým zobecněným gradientempopisuje následující věta.Věta 15.7. Nechť funkce f : R n → R je lipschitzovsky spojitá v okolí bodu x. Pakplatí∀v ∈ R n : f 0 (x; v) = max{⟨ζ, v⟩ : ζ ∈ ∂∂f(x)}.Díky Rademacherovu teorému (u lokálně lipschitzovsky spojitých funkcí mámezaručenu diferencovatelnost téměř všude ve smyslu Lebesguovy míry) máme takéjinou možnost, jak zkonstruovat Clarkeův zobecněný gradient. Tuto alternativnímožnost nabízí níže uvedená věta.Věta 15.8. Nechť funkce f : R n → R je lipschitzovsky spojitá v okolí bodu x.Potom{︁}︁∂∂f(x) = conv lim ∇f(x i) | x i → x, x i /∈ Ω f ,i→∞kde Ω f = {x ∈ R n |f není diferencovatelná v x}.Pro ilustraci pojmu Clarkeův zobecněný gradient použijeme funkci f(x) = |x|(viz obrázek 15.1).Tato funkce je lokálně lipschitzovsky spojitá na R a <strong>pro</strong>to je diferencovatelnáskoro všude. Jediným bodem, kde tato funkce není diferencovatelná je bod 0. Zobecněnýgradient této funkce je na obrázku 15.2.Pro hledání lokálních extrémů funkcí, které nejsou spojitě diferencovatelné, potřebujemenástroj, který nám umožní rozpoznat, zda funkce f má v bodě x lokálníextrém. To nám poskytuje následující věta.Věta 15.9. (O lokálním extrému) Jestliže funkce f, která je lokálně lipschitzovskyspojitá na R n , nabývá v bodě x svého lokálního maxima nebo minima, potom platío ∈ ∂∂f(x).
126 Úvod do metod nehladké <strong>optimalizace</strong>yf(x)xObr. 15.1: Graf f(x) = |x|y∂∂f(x)xObr. 15.2: Zobecněný gradient ∂∂f(x) funkce f(x) = |x|Body splňující výše uvedenou podmínku nazýváme Clarkeovými stacionární bodyoptimalizační úlohymin f(x),x∈Rn kde funkce f je lokálně lipschitzovsky spojitá na R n .Např. funkcef(x) = |x|má Clarkeův zobecněný gradient v bodě 0 dán takto ∂∂f(0) = ⟨−1, 1⟩, jak bylo ilustrovánona obrázku 15.2. Bod x = 0 je Clarkeův stacionární bod.Uveďme si ještě další příklad funkce, která není diferencovatelná v celém svém definičnímoboru. Takovouto funkcí je funkce f(x) = max {︀ 0, 1 2 (x2 − 1) }︀ (viz obrázek15.3).
15.1 Základní pojmy 127yf(x)x−1 1Obr. 15.3: Graf f(x) = max {︀ 0, 1 2 (x2 − 1) }︀Příklad 15.10. Mějme funkci f(x) = max {︀ 0, 1 2 (x2 − 1) }︀ . Najděte Clarkeův zobecněnýgradient této funkce ve všech bodech jejího definičního oboru.Řešení. Tato funkce je lokálně lipschitzovsky spojitá na R a <strong>pro</strong>to je diferencovatelnáskoro všude. Jedinými body, kde tato funkce není diferencovatelná jsou body −1 a 1.Uvedená funkce{︂f(x) = max 0, 1 (︀x 2 − 1 )︀}︂2má Clarkeův zobecněný gradient v intervale (−1, 1) dán takto ∂∂f(x) = ∇f(x) = 0,v bodě −1 je její Clarkeův zobecněný gradient ∂∂f(−1) = ⟨−1, 0⟩ a v bodě 1 je jejíClarkeův zobecněný gradient ∂∂f(1) = ⟨0, 1⟩. Mimo interval ⟨−1, 1⟩ je její Clarkeůvzobecněný gradient ∂∂f(x) = ∇f(x) = x. Vše je ilustrováno na obrázku 15.4. Bodyz intervalu ⟨−1, 1⟩ jsou jejími Clarkeovými stacionárními body.y∂∂f(x)−11xObr. 15.4: Zobecněný gradient ∂∂f(x) funkce f(x) = max {︀ 0, 1 2 (x2 − 1) }︀
128 Úvod do metod nehladké <strong>optimalizace</strong>Další důležitou vlastností funkce, kterou využijeme na konci této kapitoly, jepolohladkost, která souvisí se vztahem mezi směrovou derivací funkce f a jejímClarkeovým zobecněnéným gradientem.Definice 15.11. O funkci f : R n → R řekneme, že je polohladká v bodě x, jestližefunkce f je lipschitzovsky spojitá v okolí bodu x a dále platí, že <strong>pro</strong> všechny v ∈ Rexistuje limitalim {V v ′ }.V ∈∂∂f(x+tv ′ )v ′ →v,t↓0O funkci f : R n → R řekneme, že je slabě polohladká v bodě x, jestliže funkce fje lipschitzovsky spojitá v okolí bodu x a dále platí, že <strong>pro</strong> všechny v ∈ R existujelimitalimV ∈∂∂f(x+tv)t↓0{V v}.Je zřejmé, že polohladkost funkce v bodě implikuje slabou polohladkost.Pro stanovování podmínek optimality úloh omezené <strong>optimalizace</strong> je nyní potřebnézavést dva další pojmy a to Clarkeův tečný a Clarkeův normálový kužel.Definice 15.12. Nechť množina Ω je podmnožinou R n a bod x ∈ Ω. Potom Clarkeůvtečný kužel k množině Ω v bodě x, který označujeme jako T Ω (x), definujemepředpisemT Ω (x) = {v ∈ R n | dist 0 Ω(x; v) = 0},kde dist Ω (x) = inf ||x − y||.y∈ΩDefinice 15.13. Nechť množina Ω je podmnožinou R n a bod x ∈ Ω. PotomClarkeův normálový kužel k množině Ω v bodě x, který označujeme jako N Ω (x),definujeme předpisemN Ω (x) = {ζ ∈ R n | ⟨ζ, v⟩ ≦ 0 ∀v ∈ T Ω (x)}.S využitím Clarkeova normálového kuželu můžeme zavést podmínku optimality<strong>pro</strong> úlohu omezené <strong>optimalizace</strong>.
15.2 Nepřímé metody 129Věta 15.14. Nechť Ω je uzavřená podmnožina R n a x ∈ Ω. Dále nechť funkcef : R m → R n je lipschitzovsky spojitá v okolí bodu x a nechť bod x je (vázané)lokální minimum funkce f na množině Ω. Pak platío ∈ ∂∂f(x) + N Ω (x).Body splňující výše uvedenou podmínku nazýváme Clarkeovy stacionární bodyoptimalizační úlohyminx∈Ω f(x).15.2 Nepřímé metodyNyní se seznámíme s některými algoritmy, které jsou určeny k řešení úloh nehladké<strong>optimalizace</strong>. Nejméně <strong>pro</strong>pracovanou možností, jak minimalizovat funkci, která neníspojitě diferencovatelná, je a<strong>pro</strong>ximovat tuto funkci funkcí spojitě diferencovatelnou.Toho lze dosáhnout například pomocí penalizace (viz následující ukázka). Nevýhodoutohoto postupu je jednak velmi omezené použití pouze na úzký okruh <strong>pro</strong>blémůa dále nutnost volit velikost penalty předem bez znalosti struktury <strong>pro</strong>blému.minx∈R nm∑︁i=1|f i (x)|,kde funkce f i (x) jsou spojitě diferencovatelné. Pomocí penalty o velikosti ε > 0modifikujeme výše uvedenou úlohu na hladkou úlohuminx∈R nm∑︁i=1(︀fi (x) 2 + ε )︀ 1 2.Tuto modifikaci můžeme předvést <strong>pro</strong> jednoduchý případ, kdy m = 1, f 1 (x) = xa penalta ε = 0.05. Původní funkci f(x) = |x| zobrazuje obrázek 15.5, modifikovanoufunkci f(x) = (x 2 + ε) 1 2 najdeme na obrázku 15.6.15.3 Subgradientní metodyNyní se již budeme věnovat metodám, které přímo pracují s nehladkými <strong>pro</strong>blémy.Další možností <strong>pro</strong> řešení úloh nehladké <strong>optimalizace</strong> je použití subgradientní metody.Subgradientní metoda potřebuje <strong>pro</strong> své fungování existenci <strong>pro</strong>cedury, kteráje schopna v každém bodě x ∈ R n vypočítat hodnotu funkce f(x) a jeden (libovolný)Clarkeův subgradient g ∈ ∂∂f(x). Tato metoda pak na základě znalostitohoto jednoho subgradientu vygeneruje (jednotkový) směr kroku d <strong>pro</strong> stávajícíiteraci. Hlavní nevýhodami této metody je neexistence implementovatelné ukončujícípodmínky a neexistence „dobré“ strategie <strong>pro</strong> určování délky kroku t k (nelzepoužít line search, směr d nemusí být směr poklesu). Tím je způsoben malý řád
130 Úvod do metod nehladké <strong>optimalizace</strong>yyxxObr. 15.5: Graf f(x) = |x|Obr. 15.6: Graf f(x) = (x 2 + ε) 1 2konvergence metody. Subgradientní metoda je tedy metoda největšího spádu, kteránemá line search, ale volba délky kroku je <strong>pro</strong>vedena předem. Dá se ukázat, že délkakroku t k musí splňovat následující omezení:at k > 0 a lim t k = 0 (15.2)∞∑︁t k = +∞. (15.3)k=0Základní algoritmus subgradientní metody můžeme implementovat takto.Algoritmus 15.1 Subgradientní metoda.Je dána funkce f : R n → R.Krok 0. {Inicializace.}Vyber x 0 ∈ R n , polož k = 0Krok 1. {Cyklus subgradientní metody. }while ‖x k − x k−1 ‖ velkéVyber libovolné g k ∈ ∂∂f (︀ x k)︀d k = − gk||g k ||t k je určeno a-priori dle (15.2) a (15.3)(příkladem takovéto posloupnosti je např. t k = 1)kx k+1 = x k + t k d kk = k + 1end whileKrok 2. {Dosaď (přibližné) řešení.}̃︀x = x k
15.4 Svazkové metody 13115.4 Svazkové metodyDalší širokou skupinou algoritmů, které jsou určeny <strong>pro</strong> minimalizaci nehladkýchfunkcí jsou bundle metody a jejich modifikace. Základní verze bundle metod bylavyvinuta nezávisle C. Lemarechalem a P. Wolfem a publikována byla v roce 1975.Tato metoda potřebuje opět <strong>pro</strong>ceduru, která vrací v každém bodě x ∈ R n funkčníhodnotu f(x) a jeden (libovolný) Clarkeův subgradient g ∈ ∂∂f(x).Narozdíl od subgradientní metody ale bundle metoda uchovává subgradientníinformaci nejen z aktuální iterace x k , ale též subgradienty g i z minulých iterací y i ,množinu indexů sbgradientů z minulých iterací uchovávaných ve svazku označímeJ k . Na základě těchto informací pak bundle metoda a<strong>pro</strong>ximuje Clarkeův zobecněnýgradient v aktuální iteraci, tj. metoda má „úplnější“ informaci o chování funkce.Tyto uložené subgradienty g i modelují funkci f v aktuálním bodě x k s různou přesností.Tato přesnost, která udává vzdálenost g i ∈ ∂∂f(y i ) od Clarkeova zobecněnéhogradientu ∂∂f(x k ), je dána u konvexních funkcí jakoα(x k , y i ) = α k i = f(x k ) − (f(y i ) + g T i (x k − y i )).U nekonvexních funkcí popisuje tuto vzdálenost funkceβ(x k , y i ) = β k i = max{α k i , ||x k − y i || 2 }.Díky znalosti a<strong>pro</strong>ximace Clarkeova zobecněného gradientu je snadné implementovatukončující podmínku (s využitím věty 15.9). Pro směr poklesu generovanýbundle metodou v bodě x k platí d k = −z k , přičemž z k je určeno konvexní kombinacísubgradientů ze svazku. Navíc platí, že čím je větší chyba subgradientu βik (příp.αi k ), tím méně ovlivňuje daný subgradient g i směr poklesu d k .Bundle metoda má také vypracovanou strategii volby délky kroku - u základníverze je to klasický line search a tím má tato metoda zaručen vyšší řád konvergencenež subgradientní metoda.Bundle metoda se také umí vyrovnat s případným „špatným“ směrem d k . Pokudsměr d k nalezený bundle metodou v bodě x k na základě a<strong>pro</strong>ximovaného Clarkeovazobecněného gradientu nevede k dostatečnému poklesu funkční hodnoty, <strong>pro</strong>vedemetzv. null step, tj. obohatíme náš model přidáním dalšího subgradientu v blízkostibodu x k a tím „vylepšíme“ a<strong>pro</strong>ximaci Clarkeova zobecněného gradientu v bodě x ka zůstaneme v bodě x k+1 = x k .V opačném případě (při dostatečném poklesu funkční hodnoty ve směru d k )<strong>pro</strong>vedeme tzv. serious step, tj. přejdeme do nového bodu x k+1 = x k + td k , kdevelikost kroku t je generována pomocí line search.Protože velikost počítačové paměti je omezená a také kvůli zajištění efektivnostivýpočtu je nutné omezit počet subgradientů, kterými modelujeme Clarkeův zobecněnýgradient. K tomu slouží tzv. reset, tj. při překročení únosného počtu subgradientůvybereme pouze některé subgradienty z původního svazku a zbylé z něj vymažeme.Lemarechalův algoritmus <strong>pro</strong> minimalizaci nehladkých nekonvexních funkcí
132 Úvod do metod nehladké <strong>optimalizace</strong>realizovaný v jazyce Fortran vedl k úloze vyhledávání směru ve tvaru kvadratického<strong>pro</strong>gramu ⃦ min⎧⎪ 1 ∑︀ ⃦⃦⃦⃦22λ i g i ,⃦i∈J k⎨ s omezenímλ i ≧ 0, i ∈ J k ,(15.4)∑︀λ i = 1,i∈J∑︀ k⎪ ⎩ λ i βi k ≦ ε k .i∈J kSměr d k = − ∑︀ λ k i g i , kde λ k i , i ∈ J k je řešením kvadratického <strong>pro</strong>gramu (15.4).i∈J kSlabým místem takto navrženého algoritmu je nutnost volit dopředu koeficient ε k .Další modifikaci bundle metod zajistilo využití cutting plane method. Na základěcutting plane method modifikujeme bundle metodu tak, že odstraníme nepříjemnouvolbu ε k a priori, tj. volbu velikosti oblasti, na které se a<strong>pro</strong>ximuje Clarkeůvzobecněný gradient ∂∂f(x k ). Cutting plane method převádí <strong>pro</strong>blém minimalizacenehladké nekonvexní funkce min f(x) na iterační <strong>pro</strong>blémx∈Rn kde^f k (x k + d) = maxi∈J kmind^fk (x k + d) + 12t k||d|| 2 ,{︀f(yi ) + gi T (x k + d − y i ) }︀ {︀ }︀= f(x k ) + max gTi d − βik .i∈J kŘešení dané úlohy označíme d k a toto d k je opět směr poklesu, ve kterém <strong>pro</strong>vedemeline search následovaný serious stepem či null stepem stejně jako v předchozímpřípadě. Z numerických důvodů je výhodné řešit duální formulaci výše uvedenéúlohy, tím dostaneme opět úlohu kvadratického <strong>pro</strong>gramování, <strong>pro</strong> kterou existujírychlé řešiče.Duální formulace úlohy vypadá takto⎧ ⃦⃦ min 1 ∑︀ ⃦⃦⃦⃦22λ⎪⎨ ⃦ i g ii∈J ks omezenímλ∑︀ i ≧ 0, i ∈ J k ,⎪⎩ λ i = 1.i∈J k∑︀Směr poklesu d k dostaneme jako d k = −t k+ 1t k∑︀i∈J kλ i β k i ,(15.5)i∈J kλ k i g i , kde λ k i , i ∈ J k je řešením kvadratického<strong>pro</strong>gramu (15.5). Očekávaný pokles ve směru d k , je modelován funkcí⃦ ⃦ ⃦⃦⃦⃦ ∑︁ ⃦⃦⃦⃦2v(t k ) = −t k λ i g i − ∑︁ λ i βi k .i∈J k i∈J k
15.4 Svazkové metody 133Problematickým místem takto navrženého algoritmu je nyní nutnost volit dopředukoeficient t k . Toto slabé místo je odstraněno použitím strategie <strong>pro</strong> určování délkykroku, kterou používá trust region metoda (podrobněji v kapitole 7). Připomeňme,že hlavní myšlenka trust region metody je minimalizace funkce f pouze na okolí bodux k , ve kterém očekáváme „dobrou“ shodu funkce f s jejím modelem. Toto okolí,přesněji velikost tohoto okolí se mění v průběhu výpočtu. To je implementovánonásledujícím způsobem.Algoritmus 15.2 Trust region přístup.1) Jestliže (skutečný pokles ≦ k 1· očekávaný pokles), pak zvětšete velikost okolí,na kterém minimalizujete funkci2) Jestliže (skutečný pokles ≧ k 2· očekávaný pokles), pak zmenšete velikost okolí,na kterém minimalizujete funkci3) Jinak neměňte velikost okolí, na kterém minimalizujete funkciMezi parametry k 1 a k 2 je následující vztah 0 < k 2 ≦ k 1 < 1. Touto strategiínahrazujeme line search v předchozí verzi bundle metody.Spojením této strategie určování délky kroku a bundle metody vzniklé na základěcutting plane method dostáváme tzv. bundle trust metodu. Její stručný kompletníalgoritmus uvádíme níže.
134 Úvod do metod nehladké <strong>optimalizace</strong>Algoritmus 15.3 Algoritmus bundle trust metody.Krok 0. {Inicializace.}Zvolte počáteční bod x 1 ∈ R n a parametry T > 0, 0
15.4 Svazkové metody 135Algoritmus 15.4 Vnitřní iterace x k → x k+1 .1) Vyberte t 1 = t k−1 . Položte l 1 = 0, u 1 = T a j = <strong>1.2</strong>) Spočtěte řešení (v j , d j ) = (v(t j ), d(t j )) úlohy (15.5). Jestliže 1 t j ‖d j ‖ ≦ ε a −− 1 t j ‖d j ‖ 2 − v k ≦ ε, potom skončete: x k je „téměř stacionární“. Jinak položtey j = x k + d j a spočtěte g j ∈ ∂∂f(y j ).3) 1. Jestliže je splněna podmínka f(y j )−f(x k ) < m 1 v j , potom <strong>pro</strong>veďte SeriousStep, tj. x k+1 = y k+1 = y j , g k+1 = g j a skončete.2. Jestliže je splněna podmínka f(y j ) − f(x k ) ≧ m 1 v j a současně α(x k , y j ) ≦≦ m 3 σ k−1 nebo |f(x k )−f(y j )| ≦ ||z k−1 ||+σ k−1 a ještě podmínka (g j ) T d j −− β k,j ≧ m 2 v j , potom <strong>pro</strong>veďte Null Step, tj. x k+1 = x k , y k+1 = y j , g k+1 == g j a skončete.3. Jestliže je splněna podmínka f(y j ) − f(x k ) ≧ m 1 v j a současně α(x k , y j ) ≦≦ m 3 σ k−1 nebo |f(x k )−f(y j )| ≦ ||z k−1 ||+σ k−1 , ale není splněna podmínka(g j ) T d j − β k,j ≧ m 2 v j , potom:(a) Jestliže platí |f(x k ) − f(y j )| ≦ ||z k−1 || + σ k−1 , potom položte d k = d j ,v k = v j a <strong>pro</strong>veďte line search podél x k + sd k , s ≧ 0.(b) Jinak položte u j+1 = t j , l j+1 = l j , t j+1 = 1 2 (uj+1 + l j+1 ), j = j + 1a vraťte se do 2.4. Jestliže je splněna podmínka f(y j ) − f(x k ) ≧ m 1 v j , ale není splněna podmínkaα(x k , y j ) ≦ m 3 σ k−1 nebo |f(x k ) − f(y j )| ≦ ||z k−1 || + σ k−1 položteu j+1 = t j , l j+1 = l j , t j+1 = 1 2 (uj+1 + l j+1 ), j = j + 1 a vraťte se do 2.
136 Úvod do metod nehladké <strong>optimalizace</strong>Nyní se ještě v krátkosti podívejme na konvergenci bundle trust metody <strong>pro</strong> nekonvexnía lokálně lipschitzovské funkce na R n v případě, že v předchozím algoritmuplatí ε = 0.Věta 15.15. Nechť funkce f je slabě polohladká a lokálně lipschitzovsky spojitá naR n . Jestliže funkce f je omezená zdola a posloupnost iterací generována bundletrust metodou {x k } k∈N je omezená, pak existuje hromadný bod ¯x posloupnosti{x k } k∈N takový, že platí 0 ∈ ∂∂f(¯x).
137Kapitola 16Úvod do metod globální<strong>optimalizace</strong>V této kapitole se zaměříme z metod globální <strong>optimalizace</strong> na Nelder-Meadovu modifikacizákladní simplexové metody. Tato metoda bývá obvykle označována jakoNelder-Meadova metoda. Jde o metodu, která obdobně jako jiné metody globální<strong>optimalizace</strong>, nepoužívají derivace (či gradienty) minimalizovaných funkcí ani a<strong>pro</strong>ximacetěchto derivací (či gradientů). Tyto metody můžeme tedy obdobně jako v kapitole3 označit jako metody bez derivací (derivative-free methods).Hlavní výhodou těchto metod je, jak jsme již zmínili i v kapitole 3, je velmisnadná implementace a technická realizace těchto metod. Velká výhoda je v tom, ženení třeba hledat ani Hessián ani gradient během iteračního <strong>pro</strong>cesu. Další výhodouje, že zatímco metody prvního a druhého řádu selhávají mimo jiné při minimalizacinediferencovatelných či nespojitých funkcí, metody globální <strong>optimalizace</strong> jsouschopny najít minima i těchto funkcí. Z těchto důvodů jsou tyto metody stále v určitémíře používány, i přes existenci daleko pokročilejších optimalizačních algoritmů.16.1 Nelder-Meadova metoda simplexůNyní se budeme věnovat metodě vhodné <strong>pro</strong> vícerozměrnou optimalizaci. K tomu sipotřebujeme zavést tzv. simplex. Simplex je zjednodušeně zobecněním trojúhelníkudo libovolného n-rozměrného <strong>pro</strong>storu. Příklady simplexu v jedno, dvou a trojrozměrném<strong>pro</strong>storu jsou na obrázku 16.1.Definice 16.1. Simplex či n-simplex je konvexní obal množiny n + 1 afinně nezávislýchbodů v eukleidovském <strong>pro</strong>storu dimenze n nebo vyšší.Nelder-Meadova metoda při minimalizaci v n-rozměrném <strong>pro</strong>storu pracuje se simplexemn bodů. V tomto simplexu se metoda snaží nahradit bod s „nejhorší“ (největší)funkční hodnotou novým bodem s „lepší“ (menší) funkční hodnotou. Tento
138 Úvod do metod globální <strong>optimalizace</strong>Obr. 16.1: Simplexy v R 1 , R 2 a R 3nový bod získáme buď pomocí tzv. zrcadlení, <strong>pro</strong>dloužení či zkrácení simplexu podélpřímky dané „nejhorším“ vrcholem a těžištěm zbylých bodů simplexu. Pokudtímto nenajdeme „lepší“ bod, pak zachováme bod s „nejlepší“ (nejmenší) funkčníhodnotou a zúžíme celý simplex posunutím všech zbylých vrcholů simplexu směremk tomuto bodu. Podrobně je uvedený postup ilustrován v následujícím algoritmu(algoritmus 16.1).
16.1 Nelder-Meadova metoda simplexů 139Algoritmus 16.1 Nelder-Meadova metoda.1) ε > 0 (přesnost), S := simplex (n+1 bodů) z R n2) while f(z n+1 ) − f(z 1 ) ≧ εi) sestrojme z(−1) a spočtěme f −1 = f(z(−1)) (zrcadlení )ii) if f(z 1 ) ≦ f −1 ≦ f(z n )(a) z n+1 := z(−1)iii) elseif f −1 < f(z 1 )(a) sestrojme z(−2) a spočtěme f −2 = f(z(−2)) (<strong>pro</strong>dloužení )(b) if f −2 < f −1(c) z n+1 := z(−2)(d) else(e)(f) endz n+1 := z(−1)iv) elseif f −1 ≧ f(z n )(a) if f(z n ) ≦ f −1 ≦ f(z n+1 )(b) sestrojme z(− 1 2 ) a spočtěme f − 1 2= f(z(− 1 )) (vnější zkrácení )2(c) if f −1 < f −12(d) z n+1 := z(− 1)2(e)(f) elseend(g) sestrojme z( 1 2 ) a spočtěme f 1 2= f(z( 1 )) (vnitřní zkrácení )23) end(h) if f 1 < f n+12(i) z n+1 := z( 1)2(j)else(k) z i := 1 2 (z 1 + z i ), i = 2, 3, . . . , n + 1 (zúžení simplexu směrem k z 1 )(l)(m) endv) endend4) z 1 a<strong>pro</strong>ximuje minimum funkce f(x)z n+1 je bod, který má mezi body simplexu S největší hodnotu. z 1 je bod, kterýmá mezi body simplexu S nejmenší hodnotu (f(z 1 ) ≦ f(z 2 ) ≦ . . . ≦ f(z n+1 )). ¯z jetěžiště bodů z 1 , z 2 , . . . , z n , z(t) = ¯z + t(z n+1 − ¯z) jsou body na přímce dané body
140 Úvod do metod globální <strong>optimalizace</strong>z n+1 a ¯z.Předchozí Nelder-Meadova metoda se dá modifikovat pomocí řízeného náhodnéhovýběru (Controlled Random Search). Parametr t, který určuje nový bod simplexuz(t) je v tomto případě volen náhodně. Touto modifikací dostaneme následujícíalgoritmus (Algoritmus 16.2). Mnohem více informací k tomuto algoritmu, který jepoužitelný <strong>pro</strong> minimalizaci funkcí s „menším“ počtem <strong>pro</strong>měnných, u nichž je složitézískat gradientní informaci, lze nalézt v [8].Algoritmus 16.2 Nelder-Meadova metoda - úprava MCRS (Modified ControlledRandom Search).1) ε > 0 (přesnost), α ∈ ⟨4, 8⟩, P := populace N náhodně vybraných bodů z R n2) while f(z max ) − f(z min ) ≧ εi) S := náhodný simplex (n+1 bodů) z populace Pii) z := g − t(x − g), kde x je náhodně zvolený bod ze simplexu S, g je těžištězbylých bodů simplexu a t ∈ ⟨0, α) je vybráno náhodněiii) if f(z) ≦ f(z max )(a) z max := ziv) end3) end4) z min a<strong>pro</strong>ximuje minimum funkce f(x)z max je bod, který má mezi N body populace P největší hodnotu. z min je bod,který má mezi N body populace P nejmenší hodnotu.
141Literatura[1] D. P. Bertsekas: Nonlinear Programming Athena Scientific (1999).[2] J. Frédéric Bonnans, Jean Charles Gilbert, Claude Lemaréchal, Claudia A. Sagastizábal:Numerical Optimization: Theoretical and Practical Aspects Springer(2006).[3] F. H. Clarke: Optimization and Nonsmooth Analysis Wiley (1983).[4] O. Došlý: Základy konvexní analýzy a <strong>optimalizace</strong> v R n Masarykova univerzitav Brně (2005).[5] Z. Dostál: Optimal quadratic <strong>pro</strong>gramming algorithms: with applications to variationalinequalities Springer (2009).[6] Z. Dostál, V. Vondrák: Lineární algebra. Text vytvořený při realizaci <strong>pro</strong>jektu„<strong>Matematika</strong> <strong>pro</strong> inženýry <strong>21.</strong> století“, Vysoká škola báňská - Technická univerzitaOstrava (2012). (http://mi<strong>21.</strong>vsb.cz/modul/linearni-algebra)[7] R. Fletcher: Practical Methods of Optimization Wiley (1997).[8] J. Haslinger, D. Jedelský, T. Kozubek, J. Tvrdík: Genetic and Random SearchMethods in Optimal Shape Design Problems Journal of Global Optimizations16 (2000).[9] T. Kozubek, T. Brzobohatý, V. Hapla, M. Jarošová, A. Markopoulos: Lineárníalgebra s Matlabem. Text vytvořený při realizaci <strong>pro</strong>jektu „<strong>Matematika</strong> <strong>pro</strong> inženýry<strong>21.</strong> století“, Vysoká škola báňská - Technická univerzita Ostrava (2012).(http://mi<strong>21.</strong>vsb.cz/modul/linearni-algebra-s-matlabem)[10] J. Kuben, Š. Mayerová, P. Račková, P. Šarmonová: Diferenciální počet funkcívíce <strong>pro</strong>měnných. Text vytvořený při realizaci <strong>pro</strong>jektu „<strong>Matematika</strong> <strong>pro</strong> inženýry<strong>21.</strong> století“, Vysoká škola báňská - Technická univerzita Ostrava (2012).(http://mi<strong>21.</strong>vsb.cz/modul/diferencialni-pocet-funkci-vice-<strong>pro</strong>mennych)[11] R. M. Lewis, V. Torczon, M. W. Trosset: Direct search methods: then and nowJournal of Computational and Applied Mathematics 124 (2000).
142 Literatura[12] J. Nocedal, S. Wright: Numerical Optimization. Springer (2006).[13] R. T. Rockafellar, R. J-B. Wets: Variational Analysis. Springer (1998).[14] P. Venkataraman: Applied Optimization with MATLAB Programming. Wiley(2009).[15] V. Vondrák, L. Pospíšil: Numerické metody 1. Text vytvořený při realizaci <strong>pro</strong>jektu„<strong>Matematika</strong> <strong>pro</strong> inženýry <strong>21.</strong> století“, Vysoká škola báňská - Technickáuniverzita Ostrava (2012).(http://mi<strong>21.</strong>vsb.cz/modul/numerick%C3%A9-metody-1)
143RejstříkAA-konjugované vektory, 32aktivní množina, 82, 84aktivní nerovnostní vazby, 82a<strong>pro</strong>ximace gradientu, 27, 28Armijovo pravidlo, 26, 43Bbariérová funkce, 101bariérová metoda, 102, 103BFGS, 53, 58bisekce, 15–17bundle metoda, 131bundle trust metoda, 134, 135Ccenová funkce, 1cenový funkcionál, 1centrální diference, 28Clarkeova zobecněná derivace, 124Clarkeův stacionární bod, 126Clarkeův subgradient, 125Clarkeův tečný kužel, 128Clarkeův zobecněný gradient, 125Constraint Qualifications, 99CQ, 99Ddélka kroku, 26dopředné diference, 28dualita<strong>pro</strong> kvadratické <strong>pro</strong>gramovánís nerovnostními vazbami, 108s rovnostními vazbami, 106<strong>pro</strong> rovnosti, 108, 110v konvexním <strong>pro</strong>gramování, 106duální funkce, 107duální <strong>pro</strong>blém<strong>pro</strong> rovnosti, 107, 109FFibonacciova posloupnost, 18Fritz-Johnova podmínka, 90, 98funkceduální, 107konvexní, 11striktně konvexní, 11Gglobalizační strategie, 42globální <strong>optimalizace</strong>, 5globální řešení, 1gradientní metoda, 22–25Gramm–Schmidtův <strong>pro</strong>ces, 34ChCholeského rozklad, 45, 55Iisoperimetrický <strong>pro</strong>blém, 2KKarush-Kuhn-Tuckerova dvojice, 65, 67,76, 91, 99Karush-Kuhn-Tuckerova podmínka<strong>pro</strong> úlohy s omezením ve tvaru nerovností,87, 91, 99<strong>pro</strong> úlohy s omezením ve tvaru rovností,65, 67, 71, 72kladný polo<strong>pro</strong>stor, 111klasifikace omezení, 99na linearitu/konkávnost, 99na lineární nezávislost, 68, 90
144 Rejstříkkonečné diference, 27, 28konjugované vektory, 31, 32, 34konvexnífunkce, 11hranice, 11kombinace, 11množina, 10obal, 11konvexní <strong>pro</strong>gramování, 3Krylovovův <strong>pro</strong>stor, 34, 35kužel, 66, 84polyhedrální, 84kužel přípustných směrů, 88, 97kužel směrů poklesu, 88kvadratické <strong>pro</strong>gramování, 4kvazi-Newtonova metoda, 53kvaziregulární bod, 89, 98LLagrangeova funkce, 62, 63, 83Lagrangián, 62, 63, 83LICQ, 68, 90Linear Independence Constraint Qualification,68, 90Linear/Concave Constraint Qualification,99lineární <strong>pro</strong>gramování, 113Lineární <strong>pro</strong>gramování, 4linesearch, 14, 26lipschitzovská spojitostlokální, 124, 125na množině, 124v okolí bodu, 124, 125lokální řešení, 3MMangasarian-Fromovitz Constraint Qualification,100Mangasarian-Fromovitzova klasifikaceomezení, 100maticepásová, 45MCRS metoda, 140metodatrust region, 48, 133Levenberg-Marquardtova implementace,50metoda bariéry, 102, 103metoda BFGS, 53, 58metoda bundle, 131metoda kvadratické penalty, 74, 103metoda kvazi-Newtonova, 53metoda multiplikátorů, 78metoda největšího spádu, 22–25metoda Nelder-Meadova, 137, 139, 140metoda nepřímá, 129metoda Newtonova, 42, 43s modifikací Hessiánu, 44metoda nulového <strong>pro</strong>storu <strong>pro</strong> kvadratické<strong>pro</strong>gramování, 77metoda oboru hodnot <strong>pro</strong> kvadratické<strong>pro</strong>gramování, 76metoda rozšířených (augmented) Lagrangiánů,78metoda sdružených gradientů, 31<strong>pro</strong> kvadratické funkce, 34, 37<strong>pro</strong> nelineární funkce, 39, 40Fletcher-Reeves, 39, 40Polak-Ribiere, 39, 40metoda sdružených směrů<strong>pro</strong> kvadratické funkce, 31, 33metoda sečen, 53metoda simplexová, 116metoda SMALBE, 104metoda SMALE, 80metoda subgradientní, 129, 130metoda svazková, 131metoda Uzawova typu, 77metoda vnější (externí) penalty, 74, 103metoda vnitřního bodu, 102, 115metody globální <strong>optimalizace</strong>, 137MFCQ, 100min-max <strong>pro</strong>blém, 107, 109minimalizace bez derivací, 14, 137minimalizace bez omezení, 4minimalizace s omezením, 61, 82
Rejstřík 145Nnadrovina, 111návrhové <strong>pro</strong>měnné, 3nehladká <strong>optimalizace</strong>, 5, 123Nelder-Meadova metoda, 137, 139, 140nelineární <strong>pro</strong>gramování, 5neomezená optimalizaci, 3nepřímá metoda, 129Newtonova metoda, 42, 43s modifikací Hessiánu, 44Newtonův krok, 42, 53normálový kužel, 68, 89null step, 131Oomezená optimalizaci, 3<strong>optimalizace</strong> bez omezení, 3<strong>optimalizace</strong> s omezením, 3Ppodmínka komplementarity, 87podmínky minima<strong>pro</strong> dvojnásobně diferencovatelnoufunkci, 9<strong>pro</strong> kvadratické úlohy s omezenímve tvaru nerovností, 83, 86ve tvaru rovností, 62, 64<strong>pro</strong> kvadratickou funkci, 8<strong>pro</strong> nelineární úlohy s omezenímve tvaru nerovností, 87, 89, 90ve tvaru rovností, 65<strong>pro</strong> úlohy s omezenímve tvaru nerovností, 83ve tvaru rovností, 61, 62polohladká funkce, 128polyhedrální kužel, 84polyhedrální množiny, 83<strong>pro</strong>jekce na konvexní množinu, 84přípustná křivka, 66přípustná množina, 1, 3přípustný směr, 65Rregularita<strong>pro</strong> nerovnostní vazby, 90<strong>pro</strong> rovnostní vazby, 68reset, 131rozšířený Lagrangián, 74SSCQ, 100serious step, 131simplex, 137simplexová metoda, 116slabě polohladká funkce, 128Slater Constraint Qualification, 100Slaterova klasifikace omezení, 100Snellův zákon lomu, 71, 73spojitá <strong>optimalizace</strong>, 4subdiferenciál, 125subgradientní metoda, 129, 130svazková metoda, 131Ttečný kužel, 66, 87Trust region, 48, 133Levenberg-Marquardtova implementace,50Uukončovací podmínky, 28unimodální funkce, 15Uzawův algoritmus, 78Vvěta Farkasova, 84, 85věta o lokálním extrému nehladké funkce,125věta o podmínce minima kvadratickéfunkce, 8věta o podmínce minima <strong>pro</strong> dvojnásobnědiferencovatelnou funkci,9věta Rademacherova, 124věta Taylorova, 6, 7WWolfeho podmínka, 56
146 RejstříkZzáporný polo<strong>pro</strong>stor, 111zlatý řez, 18–20