Metody optimalizace - Matematika pro inženýry 21. stoletà - Vysoká ...
Metody optimalizace - Matematika pro inženýry 21. stoletà - Vysoká ...
Metody optimalizace - Matematika pro inženýry 21. stoletà - Vysoká ...
- 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.
Vysoká škola báňská – Technická univerzita OstravaZápadočeská univerzita v PlzniMETODY OPTIMALIZACE -INTERAKTIVNÍ VERZEObsahZDENĚK DOSTÁL,PETR BEREMLIJSKI1. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Obsah2. strana ze 333Zdeněk Dostál, Petr Beremlijski<strong>Metody</strong> <strong>optimalizace</strong> - interaktivní verze◭ ◭ ◮ ◮◭◮Zavřít dokumentc○ Zdeněk Dostál, Petr Beremlijski, 2012Celá obrazovka ⧸︀ Okno
PředmluvaUčební text, který dostáváte do rukou, byl připraven na základě zkušeností z vedení přednášeka cvičení různých variant předmětu <strong>Metody</strong> <strong>optimalizace</strong>, který garantuje Katedraaplikované matematiky od svého vzniku <strong>pro</strong> studenty inženýrských, magisterských i doktorskýchstudijní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 metodiky zpracování. Text je <strong>pro</strong>to vhodný <strong>pro</strong> studentynejrůznějšího zaměření, a zejména <strong>pro</strong> ty, kteří hodlají využít metody <strong>optimalizace</strong> v technicképraxi.Obsah3. strana ze 333◭ ◭ ◮ ◮◭◮Ú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šudenebo 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í3Zavřít dokumentCelá obrazovka ⧸︀ Okno
úlohy vznikají typicky při řešení praktických úloh, když chceme dosáhnout co nejlepšího výsledkuv rámci našich možností. Ve výkladu se 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 jedůležité <strong>pro</strong> pochopení teorie a co je skutečně důležité vědět <strong>pro</strong> řešení reálných úloh. Teoriizde chápeme jako nástroj <strong>pro</strong> výběr metod řešení konkrétních technických <strong>pro</strong>blémů, výběrsoftware, 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 na odvozeníSnellova zákona. Při psaní textu jsme využili i našich zkušeností z řešení rozsáhlýchoptimalizač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ých metod 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 se sezná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].Obsah4. strana ze 333◭ ◭ ◮ ◮◭◮Autoři textu chtějí poděkovat Ondřeji Zjevíkovi za pečlivé přečtení textu, řadu cennýchpřipomínek a přípravu animací, které napomáhají porozumění textu.Zavřít dokument4Celá obrazovka ⧸︀ Okno
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ému TEX ve formátupdf L A TEX. Výukový materiál je obohacen řadou autotestů, které pomohou čtenáři ověřitjeho pochopení dané <strong>pro</strong>blematiky. Dále jsou k textu k dispozici animace ilustrující fungováníněkterých základních optimalizačních metod a zdrojové kódy v Matlabu, které ukazujímožnou implementaci některých optimalizačních metod.Animace ilustrující vybrané základní optimalizační metody jsou obsažené v tomto appletu.Tento applet byl vytvořen v software Mathematica. Pro použití appletu musíte mítnainstalován Wolfram CDF Player. Zdrojové kódy v Matlabu, které ukazují možnou implementacioptimalizačních metod z kapitol 3, 4, 5, 6, 7, 8, 10, 12, 15 a 16 najdete zkomprimovanév tomto souboru.Obsah5. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokument5Celá obrazovka ⧸︀ Okno
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ách rychle sevyví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 Plzni v období 2009 – 2012.Hlavní motivací <strong>pro</strong>jektu je potřeba reagovat na změny významu jednotlivých partiímatematiky při řešení praktických <strong>pro</strong>blémů, způsobenou zejména velkým pokrokem v matematickémmodelování, dramatickým zlepšováním software a rychlým zvyšováním výpočetníchkapacit 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 kurzechmatematiky buďto nesetkají vůbec nebo v nevhodné formě. Na druhé straně prezentaceněkterých pojmů v základních kurzech neodráží z nejrůznějších důvodů potřeby odbornýchkateder. Bohužel tento stav ztěžuje studentům aktivní používání získaných vědomostí v odbornýchpředmětech i orientaci v 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řístupnitprakticky 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 matematiky budoucích inženýrůchceme dosáhnout po stránce formální využitím nových informačních technologií přípravyelektronických studijních materiálů a po stránce věcné pečlivým výběrem vyučované látkys důsledným využíváním zavedených pojmů v celém kurzu matematiky s <strong>pro</strong>myšlenou integracímoderního matematického aparátu do vybraných inženýrských předmětů. Metodikuvýuky matematiky a její atraktivnost <strong>pro</strong> studenty chceme zlepšit důrazem na motivacia důsledným používáním postupu „od <strong>pro</strong>blému k řešení“.6Obsah6. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
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, teoriegrafů, statistiky a několika odborných kurzů. Všechny hotové výukové materiály jsou volněk dispozici na webových stránkách <strong>pro</strong>jektu http://mi<strong>21.</strong>vsb.cz.V Ostravě 1. 8. 2012Zdeněk Dostál a Petr BeremlijskiObsah7. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokument7Celá obrazovka ⧸︀ Okno
ObsahPředmluva 31 Optimalizační úlohy 131.1 Úloha <strong>optimalizace</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.2 Klasifikace optimalizačních úloh . . . . . . . . . . . . . . . . . . . . . . . . . 182 Podmínky minima <strong>pro</strong> minimalizaci bez omezení 222.1 Taylorova věta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2 Podmínky minima kvadratické funkce . . . . . . . . . . . . . . . . . . . . . 252.3 Podmínky lokálního minima diferencovatelné funkce . . . . . . . . . . . . . 282.4 Konvexita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.5 Interaktivní test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 Minimalizace bez derivací 423.1 Bisekce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.2 Fibonacciovské dělení a zlatý řez . . . . . . . . . . . . . . . . . . . . . . . . 483.3 Interaktivní test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Příklady k <strong>pro</strong>cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Obsah8. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokument8Celá obrazovka ⧸︀ Okno
4 <strong>Metody</strong> spádových směrů 564.1 Gradientní metoda <strong>pro</strong> kvadratickou funkci . . . . . . . . . . . . . . . . . . 574.2 Gradientní metoda <strong>pro</strong> nelineární funkce (linesearch) . . . . . . . . . . . . . 614.3 A<strong>pro</strong>ximace gradientu pomocí konečných diferencí . . . . . . . . . . . . . . 644.4 Ukončovací podmínky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664.5 Interaktivní ukázka použití metody největšího spádu . . . . . . . . . . . . . 664.6 Interaktivní test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Příklady k <strong>pro</strong>cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735 Metoda sdružených gradientů 775.1 Metoda sdružených směrů <strong>pro</strong> kvadratické funkce . . . . . . . . . . . . . . . 785.2 Metoda sdružených gradientů <strong>pro</strong> kvadratické funkce . . . . . . . . . . . . . 825.3 Rychlost konvergence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895.4 Metoda sdružených gradientů <strong>pro</strong> nelineární funkce . . . . . . . . . . . . . . 895.5 Interaktivní ukázka použití metody sdružených gradientů . . . . . . . . . . 92Příklady k <strong>pro</strong>cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 926 Newtonova metoda 966.1 Newtonova metoda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976.2 Kvadratická rychlost konvergence . . . . . . . . . . . . . . . . . . . . . . . . 996.3 Newtonova metoda s modifikací Hessiánu . . . . . . . . . . . . . . . . . . . 1006.4 Interaktivní ukázka použití Newtonovy metody . . . . . . . . . . . . . . . . 1036.5 Interaktivní test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103Příklady k <strong>pro</strong>cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111Obsah9. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokument9Celá obrazovka ⧸︀ Okno
7 Trust region 1157.1 Penalizační lemma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1177.2 Levenberg-Marquardtova implementace . . . . . . . . . . . . . . . . . . . . 119Příklady k <strong>pro</strong>cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1218 <strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu - BFGS 1258.1 Heuristické odvození základních myšlenek metody BFGS . . . . . . . . . . . 1258.2 Minimalizační lemma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1278.3 Symetrická pozitivně definitní a<strong>pro</strong>ximace Hessiánu . . . . . . . . . . . . . . 1298.4 Algoritmus BFGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1328.5 Interaktivní ukázka použití metody BFGS . . . . . . . . . . . . . . . . . . . 134Příklady k <strong>pro</strong>cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1349 Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 1389.1 Geometrická ilustrace podmínky minima . . . . . . . . . . . . . . . . . . . . 1399.2 Úloha kvadratického <strong>pro</strong>gramování s rovnostmi a Lagrangián . . . . . . . . 1419.3 Podmínky minima <strong>pro</strong> kvadratické <strong>pro</strong>gramování s rovnostmi . . . . . . . . 1449.4 Nutné podmínky <strong>pro</strong> úlohy nelineárního <strong>pro</strong>gramování . . . . . . . . . . . . 1469.5 Odvození Snellova zákona lomu . . . . . . . . . . . . . . . . . . . . . . . . . 1569.6 Interaktivní test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15910 <strong>Metody</strong> řešení úloh s rovnostmi 18410.1 Vnější penalta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18410.2 Metoda oboru hodnot <strong>pro</strong> kvadratické <strong>pro</strong>gramování . . . . . . . . . . . . . 18810.3 Metoda nulového <strong>pro</strong>storu <strong>pro</strong> kvadratické <strong>pro</strong>gramování . . . . . . . . . . . 18910.4 <strong>Metody</strong> Uzawova typu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19010Obsah10. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
10.5 SMALE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194Příklady k <strong>pro</strong>cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19611 Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 19811.1 Geometrická ilustrace podmínky minima . . . . . . . . . . . . . . . . . . . . 19911.2 Úloha kvadratického <strong>pro</strong>gramování s nerovnostmi a Lagrangián . . . . . . . 20111.3 Podmínky minima <strong>pro</strong> kvadratické <strong>pro</strong>gramování s nerovnostmi . . . . . . . 20411.4 Nutné podmínky <strong>pro</strong> úlohy nelineárního <strong>pro</strong>gramování . . . . . . . . . . . . 20711.5 Klasifikace omezení <strong>pro</strong> úlohy s omezeními ve tvaru rovností a nerovností . 22311.6 Interaktivní test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23012 <strong>Metody</strong> řešení úloh s nerovnostmi 25212.1 Metoda vnitřního bodu - bariéry . . . . . . . . . . . . . . . . . . . . . . . . 25212.2 Metoda aktivních (pracovních) množin - vnější penalta . . . . . . . . . . . . 25512.3 SMALBE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25612.4 Interaktivní ukázka použití metod <strong>pro</strong> řešení úloh s nerovnostmi . . . . . . 258Příklady k <strong>pro</strong>cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258Obsah11. strana ze 333◭ ◭ ◮ ◮◭◮13 Dualita v konvexním <strong>pro</strong>gramování 26113.1 Dualita <strong>pro</strong> kvadratické <strong>pro</strong>gramování s rovnostními vazbami . . . . . . . . 26113.2 Dualita <strong>pro</strong> kvadratické <strong>pro</strong>gramování s nerovnostními vazbami . . . . . . . 26513.3 Vizualizační lemma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26914 Lineární <strong>pro</strong>gramování 27314.1 Formulace úlohy lineárního <strong>pro</strong>gramování . . . . . . . . . . . . . . . . . . . 27314.2 Podmínky minima a dualita . . . . . . . . . . . . . . . . . . . . . . . . . . . 27511Zavřít dokumentCelá obrazovka ⧸︀ Okno
14.3 Metoda vnitřního bodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27614.4 Geometrie simplexové metody . . . . . . . . . . . . . . . . . . . . . . . . . . 27814.5 Konvexní hranice simplexu . . . . . . . . . . . . . . . . . . . . . . . . . . . 28114.6 Krok simplexové metody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28515 Úvod do metod nehladké <strong>optimalizace</strong> 28915.1 Základní pojmy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29115.2 Nepřímé metody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29915.3 Subgradientní metody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30115.4 Svazkové metody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30415.5 Interaktivní test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31116 Úvod do metod globální <strong>optimalizace</strong> 31916.1 Nelder-Meadova metoda simplexů . . . . . . . . . . . . . . . . . . . . . . . . 320Literatura 326Rejstřík 328Obsah12. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokument12Celá obrazovka ⧸︀ Okno
13Kapitola 1Optimalizační úlohyObsahV 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 klasifikaci optimalizač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í.13. strana ze 333◭ ◭ ◮ ◮◭◮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ší posuzujeme pomocí 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émy cenového funkcionálu častoZavřít dokumentCelá obrazovka ⧸︀ Okno
Optimalizační úlohy 14hledáme na přípustné množině Ω ⊆ D. Jelikož minimum funkce f je stejné jako maximumfunkce −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é polohy kuličkyhmotnosti m zavěšené na pružině, která visí nad překážkou. Tento <strong>pro</strong>blém můžeme vyjádřitjako minimalizaci funkce potenciální energie tohoto systému. Přípustná množina námpopisuje ne<strong>pro</strong>nikání kuličky do překážky. Tuto úlohu pak zapíšeme jako úlohu najít x ∈ Ωtak, aby platilof(x) ≦ f(x), x ∈ Ω, (1.2)kde f(x) = x 2 1 + x2 2 + mx 2 a Ω = {x ∈ R 2 : x 1 + x 2 + 1 ≧ 0, −x 1 + x 2 + 3 ≧ 0} (vizobrázek 1.1).Obsah14. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Optimalizační úlohy 15x 2x 1mObr. 1.1: Rovnovážný stav kuličky na pružiněOdkazy na takto obecně formulované úlohy najdeme již ve starověku. Patří mezi něi úloha, která je pojmenovaná podle princezny Dido z řecké mytologie. Didonina úloha senazývá také isoperimetrický <strong>pro</strong>blém. Dido měla dostat pruh kůže z jednoho vola s tím, ať sivybere pozemek, který se dá tímto pruhem omezit. Snaha získat co největší pozemek vedena <strong>pro</strong>blém najít spojitou křivku dané délky, která ohraničuje největší plochu. Přirozenoupřípustnou množinu D zde tvoří množina hladkých uzavřených křivek x : ⟨0, 1⟩ → R 2 danédélky, x(0) = x(1), které tvoří hranici jednoduše souvislé oblasti Ω x . Cenová funkce pak mátvar∫︁f(x) = f(s)dΩ.Ω xObsah15. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Optimalizační úlohy 16Pro detaily viz obrázek 1.2.xxObr. 1.2: 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. Analytickylze vyřešit i úlohu najít tvar (průběh vertikálního rozměru x(d)) nejlehčího vetknutéhonosníku obdélníkového průřezu a × x(d), zatíženého na volném konci (ve vzdálenosti d = lod vetknutí) osamělou silou F . Tuto úlohu zformuloval a částečně vyřešil Galilei ve své knizeDvě nové nauky z roku 1638.Obsah16. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Optimalizační úlohy 17V tomto textu se zaměříme na numerické metody řešení optimalizačních úloh definovanýchna R n , kdy cenová funkce f je reálná funkce n <strong>pro</strong>měnných, která je spojitá i s některýmiderivacemi. V tomto případě nazýváme argumenty f také návrhové <strong>pro</strong>měnné. Dálebudeme 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ých vazební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 rozepsat vetvaruΩ = {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íme o ú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é nelzevyřešit analyticky, což zahrnuje velkou většinu praktických úloh, jako je úloha najít tvarpólového nástavce elektromagnetu, který maximalizuje homogenitu elektromagnetickéhopole dané intensity ve vymezené oblasti. Takové úlohy se typicky a<strong>pro</strong>ximují úlohou minimalizacefunkce 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ýchjsou <strong>pro</strong>to důležité i <strong>pro</strong> numerické řešení variačních úloh.Obsah17. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Optimalizační úlohy 18Loká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ývat se hledánímlokálního řešení , které minimalizuje pouze zúžení cenové funkce na nějakém okolí U.Přesněji řečeno, je-li x ∈ Ω lokální řešení <strong>pro</strong>blému (1.1), pak existuje 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 toje možné díky speciální struktuře <strong>pro</strong>blému. Důležitý případ takové situace nastane, 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í .1.2. 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ývat především řešenímúloh spojité <strong>optimalizace</strong>, kdy jak cenová funkce f i funkce popisující rovnosti a nerovnostih jsou definované na oblasti D ⊆ R n . Zvláštní pozornost budeme věnovat minimalizaci bezomezení , 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í.Obsah18. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Optimalizační úlohy 19Lineární <strong>pro</strong>gramováníObecná úloha lineárního <strong>pro</strong>gramování je určena lineární funkcí určenou vektorem b ∈ R na lineárními omezeními určenými maticí B ∈ R m×n a vektorem c ∈ R m . Lze ji zapsat vetvarukdeNajdi 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 druhou světovouválkou <strong>pro</strong> účely plánování L. V. Kantorovičem. Řešení speciální úlohy lineá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 obsahujeobrovské množství bodů. Nalezení tzv. elipsoidového algoritmu s polynomiální složitostí N.Karmarkarem v roce 1984 bylo významnou událostí.Obsah19. strana ze 333◭ ◭ ◮ ◮◭◮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ší kvadratickoucenovou funkcí, která je určena symetrickou maticí A ∈ R n×n a 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 ∈ Ω,Zavřít dokumentCelá obrazovka ⧸︀ Okno
Optimalizační úlohy 20kde Ω 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íchrovnic. 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 některé praktickydůležité třídy úloh kvadratického <strong>pro</strong>gramování existují algoritmy s 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 spojitou alespoň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 ani o vazbách nic nevíme, jedná se všaki v tomto případě o obtížnou úlohu. Rozsáhlejší úlohy nelineárního <strong>pro</strong>gramování lze řešitpouze s použitím algoritmů, které využívají specifické charakteristiky <strong>pro</strong>blému.Nehladká <strong>optimalizace</strong>Obsah20. strana ze 333◭ ◭ ◮ ◮◭◮Úlohu nehladké <strong>optimalizace</strong> dostaneme v případě, že jsou cenová funkce i vazební funkcespojité a se spojitými alespoň prvními derivacemi až na nějakou „malou“ podmnožinu definičníhooboru. V tomto případě se dá tato částečná hladkost využít k odvození efektivníchalgoritmů. Úlohy nehladké <strong>optimalizace</strong> jsou obecně obtížnější než úlohy hladké nelineární<strong>optimalizace</strong>. První obtíž spočívá v komplikovaném popisu podmínek minima, neboť nenízaručeno, že funkce definující nehladký optimalizační <strong>pro</strong>blém jsou v řešení diferencovatelné.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Optimalizační úlohy 21Globální <strong>optimalizace</strong>Jak už jsme se zmínili, zaručené globální minimum nelineární funkce lze najít jen výjimečně.Nejobvyklejší strategií je v tomto případě systematické <strong>pro</strong>hledávání definičníhooboru, často s použitím vhodné heuristiky nebo dodatečné informace o cenové funkci a o vazebníchfunkcích.Obsah<strong>21.</strong> strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
22Kapitola 2Podmínky minima <strong>pro</strong>minimalizaci bez omezeníObsah22. strana ze 333Dříve než se pustíme do řešení optimalizačních úloh, ukážeme si, jak poznat minimumhladké funkce bez omezení, tedy řešení úlohy◭ ◭ ◮ ◮◭◮minx∈R nf(x). (2.1)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 minima poznat, jakjsme daleko od minima. Zvláštní pozornost budeme věnovat případům, kdy je zaručenajednoznač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říklad při studiuZavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> minimalizaci bez omezení 23fyziky a technických aplikací. I když je „ruční“ řešení akademických úloh velmi často založenona řešení rovnic (a nerovnic) které formálně popisují podmínky minima, počítačovéřešení rozsáhlejších praktických úloh je obvykle založeno na jiných postupech, popsanýchv 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žívat v následujícímtvaru.Věta 2.1. (Taylor) Nechť f : R n → R je spojitě diferencovatelná a x, d ∈ R n . Potomexistuje α ∈ 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á, potomObsah23. strana ze 333◭ ◭ ◮ ◮◭◮f(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 bodu xlineárním modelem (diferenciálem).l(d) = l x (d) = g T d, g = g(x) = ∇f(x) =[︂ ∂∂f∂∂x 1, . . . , ∂∂f∂∂x n]︂ TZavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> minimalizaci bez omezení 24nebo 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⎤⎥⎦ .pak ∇f(x) = Ax − b, ∇ 2 f(x) = A, a přírůstek má tvarf(x) = 1 2 xT Ax − b T x, A = A T , (2.4)m 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á ε, bude výraz v závorcezáporný <strong>pro</strong> všechna dostatečně malá ε pokud g T d < 0. Dostali jsme tak dodatečnoupodmínku <strong>pro</strong> směr poklesu.Obsah24. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> minimalizaci bez omezení 252.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×na 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í.Obsah25. strana ze 333◭ ◭ ◮ ◮◭◮Důkaz. (i) Jestliže x a d značí libovolné n-vektory a α ∈ R, potom můžeme použít Taylorůvrozvoj (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ápornostipravé strany d T Ad ≧ 0, takže A je pozitivně semidefinitní. Na druhé straně,Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> minimalizaci bez omezení 26<strong>pro</strong> α dostatečně malé je znaménko výrazu na pravé straně určeno lineárním členem, takžez 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í, pakje 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í ab ∈ H(A) 1 . (2.8)Označíme-li si pomocí R matici, jejíž sloupce tvoří bázi nulového <strong>pro</strong>storu matice A,můžeme si podmínku řešitelnosti úlohy (2.6) přepsat ve tvaruObsah26. strana ze 333◭ ◭ ◮ ◮◭◮b T R = o.Tato podmínka má jednoduchou mechanickou interpretaci: je li mechanický systém v rovnováze,potom vnější síly musí být kolmé k tuhým pohybům..1 H(A) označuje obor hodnot matice A.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> minimalizaci bez omezení 27Je-li dimenze n <strong>pro</strong>blému (2.6) velká, může se ukázat, že snaha najít řešení, které splňujegradientní podmínku (2.7) přesně, je příliš ambiciózní. Přirozený nápad pak vede 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 jeregulá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ňuje podmínku(2.9). Pomocí Taylorova rozvoje (2.3) dostanemeObsahf(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)27. strana ze 333◭ ◭ ◮ ◮◭◮= 1 2 (x − ̂︀x)T A (x − ̂︀x).Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> minimalizaci bez omezení 282.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ího nebokvadratické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) jepozitivně semidefinitní.(ii) Jestliže vektor g(x) = ∇f(x) = o a H(x) = ∇ 2 f(x) je pozitivně definitní, pak je v xdosaženo lokálního minima f.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α 2(︂ )︂12 dT Hd + o(‖α 2 ‖) = α 2 2 dT Hd + o(α 2 ‖d‖)/α 2 ≧ 0.Jelikož lim o(α 2 ‖d‖)/α 2 = 0, dostáváme odsud d T Hd ≧ 0.α→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íα 2(︂ )︂12 dT Hd + o(‖α 2 ‖) = α 2 2 dT Hd + o(α 2 ‖d‖)/α 2 > 0.Obsah28. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> minimalizaci bez omezení 29Povšimněte si, že věta 2.3 je založena na jednoduchém pozorování: je-li v x dosaženominimum, 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žina není konvexní, pokudexistuje dvojice bodů z dané množiny, která neobsahuje úsečku, která je spojuje (tak jakona obrázku 2.2).ObsahDefinice 2.4. Formálněji, podmnožina Ω množiny R n je konvexní , jestliže <strong>pro</strong> každé xa y v Ω a α ∈ (0, 1) leží vektor s = αx + (1 − α)y také v Ω.Definice 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=129. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> minimalizaci bez omezení 30Obr. 2.1: Konvexní množinaObr. 2.2: Nekonvexní množinaDefinice 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é nemohou být vyjádřenyjako konvexní kombinace jiných vektorů z Ω.Obsah30. strana ze 333◭ ◭ ◮ ◮◭◮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ích množinje opět konvexní. Jako příklady konvexních množin si uveďme kruh, čtverec a množinydefinované konečnou množinou lineárních rovnic jako b T x = c nebo nerovnic jako b T x ≦ c.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> minimalizaci bez omezení 31Definice 2.8. Zobrazení h : Ω → R definované na konvexní množině Ω ∈ R n se nazý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ž<strong>pro</strong> všechna x, y ∈ Ω, x ≠ y, a α ∈ (0, 1).h (αx + (1 − α)y) < αh(x) + (1 − α)h(y)Pojem konvexní funkce je ilustrován na obr. 2.3.Obsah31. strana ze 333◭ ◭ ◮ ◮◭◮Obr. 2.3: Konvexní funkceZavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> minimalizaci bez omezení 32Uveď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, dostanemeObsah32. strana ze 333f(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 = y jeekvivalentní 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í minimum jeglobální minimum.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> minimalizaci bez omezení 33Věta 2.10. Nechť f je konvexní funkce a Ω ⊆ R n konvexní množina. Potom je každélokální minimum globálním minimem. Je-li navíc Ω uzavřená, pak minimum existuje,a je-li f striktně konvexní, pak je dosaženo v jediném bodě.Dů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í, dostaneme<strong>pro</strong> každé α ∈ (0, 1). Jelikož platíf(y α ) = f(αx + (1 − α)y) ≦ αf(x) + (1 − α)f(y) < f(y)‖y − y α ‖ = α‖y − x‖,pak výše uvedená nerovnost je ve sporu s předpokladem že v y je dosaženo lokálního minima.Zbývající část důkazu tvrzení přenecháváme čtenáři, který má rád analýzu.2.5. Interaktivní testNásledující test byl vytvořen pomocí balíčku acrotex. Test zahájíte kliknutím na tlačítko„Zacátek testu“. U otázek, kde lze volit jen jednu odpověď (test nedovolí zaškrtnout více odpovědí),je správná odpověď bodována počtem bodů uvedených v závorce u zadání a špatnáodpověď je bodována 0 body. U otázek, kde lze volit více správných odpovědí, je součetbodů správných odpovědí uveden v závorce u zadání a za každou špatnou odpověď budeodečten jeden či více bodů.Obsah33. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> minimalizaci bez omezení 341. (1b.) Matice A =[︂ 1 00 1pozitivně definitní.negativně definitní.indefinitní.]︂je2. (1b.) Matice A =pozitivně definitní.[︂ −2 00 3negativně definitní.]︂jeObsah34. strana ze 333◭ ◭ ◮ ◮◭◮indefinitní.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> minimalizaci bez omezení 353. (1b.) Matice A =pozitivně definitní.negativně definitní.indefinitní.[︂ 200 00 2]︂je4. (1b.) Pro funkci f(x 1 , x 2 ) = x 2 1 + x 2 2 platí ∇f(x 1 , x 2 ) = o v bodě(x 1 , x 2 ) = (−1, −1).(x 1 , x 2 ) = (0, 0).(x 1 , x 2 ) = (3, 2).Obsah35. strana ze 333◭ ◭ ◮ ◮◭◮5. (1b.) Pro funkci f(x 1 , x 2 ) = 100x 4 1 + (x 2 − 1) 2 platí ∇f(x 1 , x 2 ) = o v bodě(x 1 , x 2 ) = (0, −2).(x 1 , x 2 ) = (3, 1).(x 1 , x 2 ) = (0, 1).Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> minimalizaci bez omezení 366. (1b.) Pro funkci f(x 1 , x 2 ) = 100x 2 1 + (x 2 − 1) 2 platí ∇f(x 1 , x 2 ) = o v bodě(x 1 , x 2 ) = (−1, −2).(x 1 , x 2 ) = (0, 1).(x 1 , x 2 ) = (2, 2).7. (1b.) Pro funkci f(x 1 , x 2 ) = (x 1 + 2) 2 + 5 platí ∇f(x 1 , x 2 ) = o v bodě(x 1 , x 2 ) = (−2, 87).(x 1 , x 2 ) = (0, 0).(x 1 , x 2 ) = (−2, 0).Obsah36. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> minimalizaci bez omezení 378. (2b.) Funkce f(x 1 , x 2 ) = x 2 1 + x 2 2 má v bodě (x 1 , x 2 ) = (1, 2) Hessián roven matici[︂ ]︂ 2 0.0 2[︂ 2 00 4[︂ 1 00 2]︂.]︂.9. (2b.) Funkce f(x 1 , x 2 ) = x 2 1 + x 2 2 má v bodě (x 1 , x 2 ) = (0, 0) Hessián roven matici[︂ ]︂ 2 0.0 4[︂ 2 00 2[︂ 0 00 0]︂.]︂.Obsah37. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> minimalizaci bez omezení 3810. (2b.) Funkce f(x 1 , x 2 ) = x 4 1 + x 2 2 má v bodě (x 1 , x 2 ) = (1, 2) Hessián roven matici[︂ ]︂ 0 0.0 2[︂ 12 00 2[︂ 4 00 2]︂.]︂.11. (2b.) Funkce f(x 1 , x 2 ) = 100x 4 1 + x 2 2 má v bodě (x 1 , x 2 ) = (0, 0) Hessián roven matici[︂ ]︂ 0 0.0 2[︂ 1200 00 2[︂ 100 00 1]︂.]︂.Obsah38. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> minimalizaci bez omezení 3912. (2b.) Funkce f(x 1 , x 2 ) = 100x 2 1 + (x 2 − 1) 2 má v bodě (x 1 , x 2 ) = (0, 1) Hessián rovenmatici[︂ ]︂ 0 0.0 0[︂ 200 00 2[︂ 1 00 1]︂.]︂.13. (2b.) Funkce f(x 1 , x 2 ) = (x 1 + 2) 2 + 5 má v bodě (x 1 , x 2 ) = (−2, 87) Hessián rovenmatici[︂ ]︂ 2 0.0 0[︂ 0 00 2[︂ 0 00 0]︂.]︂.Obsah39. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> minimalizaci bez omezení 4014. (2b.) Funkce f(x 1 , x 2 ) = (x 1 + 2) 2 + 5 má v bodě (x 1 , x 2 ) = (−2, 0) Hessián rovenmatici[︂ ]︂ 0 1.0 2[︂ 1 00 5[︂ 2 00 0]︂.]︂.15. (3b.) Funkce f(x 1 , x 2 ) = x 2 1 + x 2 2 má lokální minimum v bodě(1, 2).(3, 5).Obsah40. strana ze 333◭ ◭ ◮ ◮◭◮(0, 0).Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> minimalizaci bez omezení 4116. (3b.) Funkce f(x 1 , x 2 ) = 100x 2 1 + (x 2 − 1) 2 má lokální minimum v bodě(0, 1).(2, 2).(0, −1).17. (3b.) Funkce f(x 1 , x 2 ) = (x 1 + 2) 2 + 5 má lokální minimum v bodě(0, 1).(−2, 0).(−2, 87).Správně zodpovězené otázky:Získané body:Procento úspěšnosti:Obsah41. strana ze 333◭ ◭ ◮ ◮◭◮Pro ukončení testu je třeba kliknout na tlačítko „Konec testu“. Opravení testu se <strong>pro</strong>vedekliknutím na tlačítko „Výsledky“, správné odpovědi budou označeny zeleně a červeněbudou označeny odpovědi chybné.Zavřít dokumentCelá obrazovka ⧸︀ Okno
42Kapitola 3Minimalizace bez derivacíObsahV této části se budeme zabývat metodami minimalizujícími funkce bez omezení. Metodamibez 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ěchto derivací (č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ývatmetodami bisekce, Fibonacciovským dělením a metodou zlatého řezu. Všechny tyto metodyjsou 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í (direct search methods)1 byly rozvíjeny a používány zejména v šedesátých letech dvacátého století. Důvodů1 Někdy se <strong>pro</strong> ně používá také označení metody nultého řádu.42. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Minimalizace bez derivací 43bylo 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 byly metody nultého řádu na začátkušedesátých let „spolehlivější“ než metody prvního a druhého řádu. Armijo-Goldsteinovypodmínky, které se nyní používají <strong>pro</strong> zajištění konvergence, byly publikovány až v roce1966. 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či nespojitých funkcí. Zatímco metody nultého řádu jsou schopny najítminima i těchto funkcí. 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 hledatani Hessián ani gradient během iteračního <strong>pro</strong>cesu. Z těchto důvodů jsou tyto metody stálev určité míře používány, i přes existenci daleko pokročilejších optimalizačních algoritmů.Podrobný přehled metod z této kapitoly může čtenář nalézt v [11].Obsah3.1. BisekceV této i následující podkapitole se budeme zabývat metodami <strong>pro</strong> hledání minima tzv.unimodálních funkcí.43. strana ze 333◭ ◭ ◮ ◮◭◮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 f nemusíbýt v intervalu ⟨a, b⟩ ani diferencovatelná a dokonce ani spojitá (viz obrázek 3.1).Zavřít dokumentCelá obrazovka ⧸︀ Okno
Minimalizace bez derivací 44a 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ěmi unimodální.Obsah44. strana ze 333◭ ◭ ◮ ◮◭◮Věta 3.4. Nechť funkce f je unimodální v ⟨a, b⟩ a nabývá svého minima v 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 .Zavřít dokumentCelá obrazovka ⧸︀ Okno
Minimalizace bez derivací 45Dů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 , kde a ≦ 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 odtudf(x 2 ) < f(x 1 ), což je spor s předpokladem.ii) Dále platí f(x 1 ) > f(x 2 ) ∧ x * ≦ x 1 . Odtud plyne, že f je rostoucí v ⟨x * , b⟩ a odtudf(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ě, žex * ≦ x 1 ) je f rostoucí v ⟨x * , b⟩ a odtud f(x 2 ) > f(x 1 ), což je spor s předpokladem.Anebo (v případě, že x * ≧ x 2 ) je f klesající v ⟨a, x * ⟩ a odtud f(x 2 ) < f(x 1 ), což je opětspor 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 intervaluprávě jedno minimum. S využitím věty 3.4 lze snadno navrhnout algoritmus <strong>pro</strong> hledáníminima unimodální funkce. Tento algoritmus bude generovat posloupnost 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ě metodybisekce bude poměr délek dvou po sobě jdoucích intervalů 1 ku 2. Zvolme v intervalu I k−1 == ⟨a k−1 , b k−1 ⟩ následující body c k−1 := a k−1+b k−12, d 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−1 a využijeme tvrzení věty3.4, získáme interval I k (viz obrázek 3.2). Algoritmus ukončíme v okamžiku, kdy velikostintervalu I k bude menší než požadovaná hodnota. Minimum funkce f bude a<strong>pro</strong>ximovánostředem tohoto intervalu c k . Podrobný algoritmus je uveden níže.Obsah45. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Minimalizace bez derivací 46Algoritmus 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 )Obsah46. strana ze 333◭ ◭ ◮ ◮◭◮(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)Zavřít dokumentCelá obrazovka ⧸︀ Okno
Minimalizace bez derivací 471. iteracea d c e b2. iteracea d c e bObsah47. strana ze 333Obr. 3.2: Algoritmus bisekcePří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 02= 0.5, d 0 := a 0+c 02= 0.25, e 0 := c 0+b 02= 0.75.f(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 12= 0.125, e 1 := c 1+b 12= 0.375.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Minimalizace bez derivací 48f(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.Po dvou iteracích tedy víme, že minimum leží v intervalu ⟨0.125, 0.375⟩. x 2 := c 2 = 0.25a<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ím předpisemObsahF 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í siukážeme, jak pomocí této posloupnosti sestrojit sekvenci intervalů, ve kterých leží minimumunimodální funkce f : R → R v intervalu ⟨0, 1⟩. Neprve zvolme počet členů této sekvence jakoN ∈ N, tím také určíme apriori přesnost a<strong>pro</strong>ximace hledaného minima. Nechť x 1 = F N−1F Na x 2 = F N−2F N. Pokud porovnáme funkč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 nebox 1 a dopočteme v něm bod x 3 = 0 + F N−3F Nnebo x 3 = 1 − F N−3F N. A takto postupujemedále až do bodu x N−1 . Nevýhodou tohoto postupu je, že pokud se rozhodneme zpřesnita<strong>pro</strong>ximaci hledaného řešení (čehož docílíme zvětšením hodnoty N) musíme všechny body48. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Minimalizace bez derivací 49x 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. Tutonovou metodu nazveme metodou zlatého řezu. Metoda zlatého řezu je založena na rozděleníkaždého intervalu I k na dva intervaly v k a m k (viz obrázek 3.3) tak, aby poměr větší částiI kv km kObsah49. strana ze 333◭ ◭ ◮ ◮Obr. 3.3: Algoritmus zlatého řezu - nástin dělení intervaluv k k menší části m k byl stejný jako poměr celého intervalu I k k větší části v k , tj. platí◭◮Rovnici (3.2) upravíme nav km k= I kv k= γ = konst., (3.1)I k = v k + m k . (3.2)I kv k= 1 + m kv k(3.3)Zavřít dokumentCelá obrazovka ⧸︀ Okno
Minimalizace bez derivací 50a s využitím (3.1) dostanemeγ = 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í minima unimodálnífunkce f : R → R v intervalu ⟨a, b⟩. Tato metoda opět generuje posloupnost 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. Zvolme v intervaluI 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žijeme tvrzení věty3.4, získáme interval I k (viz obrázek 3.4). Algoritmus ukončíme v okamžiku, kdy velikostintervalu I k bude menší než požadovaná hodnota. Minimum funkce f bude a<strong>pro</strong>ximovánostředem tohoto intervalu. Podrobný algoritmus je uveden níže.Obsah50. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Minimalizace bez derivací 51Algoritmus 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 )Obsah51. strana ze 333◭ ◭ ◮ ◮◭◮(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)Zavřít dokumentCelá obrazovka ⧸︀ Okno
Minimalizace bez derivací 5<strong>21.</strong> iteracea c d b2. iteracea c d bObsah52. strana ze 333Obr. 3.4: Algoritmus zlatého řezuPříklad 3.6. Proveďte dvě iterace metody zlatého řezu <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, 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.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Minimalizace bez derivací 53f(c 1 ) = 0.000196, f(d 1 ) = f(c 0 ) = 0.017424.k = 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.191a<strong>pro</strong>ximuje minimum funkce f(x)Poznámka 3.7. Pokud porovnáme zkracování intervalů v jednotlivých iteracích v 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ě metoda bisekce vyžaduje v každé iteraci2 vyčíslení cenové funkce, zatímco metoda zlatého řezu potřebuje v každé iteraci pouze 1vyčíslení (s výjimkou bodu 2)iii algoritmu 3.2). Pokud porovnáme zkrácení intervalu na 1vyčíslení cenové funkce, snadno zjistíme, že je metoda zlatého řezu efektivnější.Obsah53. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Minimalizace bez derivací 543.3. Interaktivní testKvíz.1. Funkce f(x) = xje unimodální v R. není unimodální v R.2. Funkce f(x) = x 2je unimodální v R. není unimodální v R.3. Funkce −x 2je unimodální v ⟨−1, 2⟩. není unimodální v ⟨−1, 2⟩.Obsah54. strana ze 3334. Funkce sin xje unimodální v ⟨0, 4π⟩.není unimodální v ⟨0, 4π⟩.◭ ◭ ◮ ◮◭◮5. Funkce sin xje unimodální v ⟨0, π⟩.není unimodální v ⟨0, π⟩.6. Funkce sin xje unimodální v ⟨π, 2π⟩.není unimodální v ⟨π, 2π⟩.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Minimalizace bez derivací 55Pří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ých metod.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ých metod.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ých metod.Obsah55. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
56Kapitola 4<strong>Metody</strong> spádových směrůObsahNejdří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é metodanejvětšího spádu. Alternativní název pochází z pozorování, že minimum 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í velmi nízkoucenu iterace a jsou robustní, dají se aplikovat na řešení mnoha úloh. Cenou za to je často56. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> spádových směrů 57velký počet iterací, což není překvapivé, neboť typicky využívají pouze lineární model funkcea 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žijeme variantus „optimální“ délkou kroku α opt , t.j. s délkou kroku, která minimalizuje hodnotu cenovéfunkce f v daném směru poklesu d. JelikožObsahdf(x − αd)dαdostaneme z podmínky minima= αd T Ad − b T d − x T Ad = αd T Ad − d T (Ax − b) = αd T Ad − d T g,α 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ě.Postup gradientní metody s délkou kroku, která maximalizuje pokles cenové funkce, jeznázorněn na obr. 4.1.Z 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čuje rozumnýglobální pokles. Tento aspekt je ještě lépe znázorněn na obr 4.2.57. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> spádových směrů 58Algoritmus 4.1 Gradientní metoda s „optimální“ délkou kroku <strong>pro</strong> kvadratickoufunkci.Je dána symetrická pozitivně definitní matice A ∈ R n×n a 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 kObsah58. strana ze 333◭ ◭ ◮ ◮◭◮Dé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í‖x‖ 2 A = x T Ax,Zavřít dokumentpotomCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> spádových směrů 59̂︀xf(x) = f(x k )x kx k+1Obr. 4.1: Gradientní metoda s „optimální“ délkou krokuObsah59. strana ze 333◭ ◭ ◮ ◮‖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žex k+1 = x k − αg k .Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> spádových směrů 60̂︀xf(x) = cObr. 4.2: Pomalá konvergence metody největšího spáduPomocí Â︀x = b a vlastností normy‖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 matice A.Snadno se ukáže, že absolutní hodnota v posledním výrazu je menší než jedna <strong>pro</strong>Obsah60. strana ze 333◭ ◭ ◮ ◮◭◮a nabývá nejmenší hodnoty <strong>pro</strong>α ∈ (0, 2λ −1max)1 − αλ min = αλ min − 1,takže délka kroku α opt je dána předpisemα opt = 2/(λ min + λ max ).Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> spádových směrů 62Algoritmus 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(︁α k ≈ arg max f x − αg k)︁ . (4.5)α∈(0,s⟩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 minimum přesně, a musímese spokojit se splněním nějakého volnějšího ukončovacího kriteria, které nám pokudmožno zaručí alespoň konvergenci algoritmu. Pouhý pokles cenové funkce totiž nezaručujekonvergenci k lokálnímu minimu ani k stacionárnímu bodu. Intuitivně je třeba zabránitdlouhým krokům s malým poklesem, které jsou na obr. 4.3, a krátkým krokům s malýmObsah62. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> spádových směrů 63poklesem, které jsou na obr. 4.4. V žádném z 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 je nejmenšínezáporné číslo, <strong>pro</strong> kteréObsah63. strana ze 333◭ ◭ ◮ ◮◭◮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 oba nepříznivépřípady. Podmínka se dá aplikovat i na jiné směry poklesu než je záporný gradient, napříkladna Newtonův směr nebo jeho a<strong>pro</strong>ximace popsané v kapitole 6.Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> spádových směrů 64Robustnost 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ále směrem poklesu, zatímcomalá perturbace ∂∂p optimálního směru p může způsobit, že −p−∂∂p není ani směrem poklesu.−ĝ︀x−pf(x) = c−p − ∂∂p−g − ∂∂gObsahObr. 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í64. strana ze 333◭ ◭ ◮ ◮◭◮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í tvar tě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é rovniceZavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> spádových směrů 65K(x)u = f(x).V mechanice mohou být stavové <strong>pro</strong>měnné posunutí a výše uvedená rovnice je rovnicerovnováhy definovaná pozitivně definitní maticí K(x) a vektorem f(x) ∈ R ns . K výpočtuhodnoty 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ž miliony neznámých)soustavy rovnic rovnováhy. Návrhových <strong>pro</strong>měnných bývá obvykle mnohem méně, řádovědesítky až stovky.Konečné diferencePrvní derivace potřebné k vyčíslení gradientu mohou být nejsnáze vyčísleny pomocí dopřednýchdiferencí∂∂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řeba totopravidlo sladit s faktem, že čím menší ε, tím větší je vliv zaokrouhlovacích chyb způsobenýchpočítačovou aritmetikou.Dopředné diference jsou přesné pouze <strong>pro</strong> lineární funkce. Vyšší přesnosti je možnodosáhnout s centrálními diferencemiObsah65. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> spádových směrů 66∂∂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ímu výpočtu hodnotygradientu.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 bodufunkce f. Alternativní ukončovací podmínkou může být test na velikost 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.Obsah66. strana ze 333◭ ◭ ◮ ◮4.5. Interaktivní ukázka použití metody největšího spádu◭◮Pro ilustraci fungování metody největšího spádu (steepest descent method) a její porovnánís některými dalšími základními optimalizačními metodami je vhodné využít tento applet.Tento applet byl vytvořen v software Mathematica. Pro použití appletu musíte mít nainstalovánWolfram CDF Player.V appletu je možné si vybrat minimalizaci některé z osmi funkcí dvou <strong>pro</strong>měnných, zvolitsi počáteční bod x 0 iteračního <strong>pro</strong>cesu, ovlivňovat zobrazení grafu minimalizované funkcei některá nastavení metody největšího spádu. Aplikace Vám umožní sledovat iterační <strong>pro</strong>cesZavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> spádových směrů 67hledání minima pomocí metody největšího spádu i dalších metod. Můžete také porovnatpočty iterací jednotlivých metod, které jsou potřeba k nalezení minima zvolené funkce.4.6. Interaktivní testNásledující test byl vytvořen pomocí balíčku acrotex. Test zahájíte kliknutím na tlačítko„Zacátek testu“. U otázek lze volit jen jednu odpověď (test nedovolí zaškrtnout více odpovědí),správná odpověď je bodována počtem bodů uvedených v závorce u zadání a špatnáodpověď je bodována 0 body.1. (2b.) Funkce f(x 1 , x 2 ) = x 2 1 + x 2 2 má v bodě (x 1 , x 2 ) = (1, 1) gradient ∇f(x 1 , x 2 ) roven(1, 1).(2, 2).(−2, −2).Obsah67. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> spádových směrů 682. (2b.) Funkce f(x 1 , x 2 ) = x 2 1 +2x 2 2 má v bodě (x 1 , x 2 ) = (2, 1) gradient ∇f(x 1 , x 2 ) roven(2, 2).(1, 2).(4, 4).3. (2b.) Funkce f(x 1 , x 2 ) = 2x 2 1 + 3x 2 2 má v bodě (x 1 , x 2 ) = ( 3 4 , 1 2 ) gradient ∇f(x 1, x 2 )roven(3, 3).(2, 3).(4, 6).Obsah68. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> spádových směrů 694. (6b.) Zapište kvadratickou funkci f(x 1 , x 2 ) = x 2 1 + x 2 2 ve tvaru (4.2), tj. jako f(x) == 1 2 xT Ax − b T x.⎡f(x 1 , x 2 ) = 1 2 [x 1, x 2 ] ⎣⎤⎦[︂x1x 2]︂−[︃]︃ T [︂ ]︂x1x 25. (6b.) Zapište kvadratickou funkci f(x 1 , x 2 ) = x 2 1 + 2x 2 2 ve tvaru (4.2), tj. jako f(x) == 1 2 xT Ax − b T x.⎡f(x 1 , x 2 ) = 1 2 [x 1, x 2 ] ⎣⎤⎦[︂x1x 2]︂−[︃]︃ T [︂ ]︂x1x 26. (6b.) Zapište kvadratickou funkci f(x 1 , x 2 ) = 2x 2 1 + 3x 2 2 ve tvaru (4.2), tj. jako f(x) == 1 2 xT Ax − b T x.⎡f(x 1 , x 2 ) = 1 2 [x 1, x 2 ] ⎣⎤⎦[︂x1x 2]︂−[︃]︃ T [︂ ]︂x1x 2Obsah69. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> spádových směrů 707. (5b.) Proveďte jeden krok Algoritmu 4.1 <strong>pro</strong> funkci f(x 1 , x 2 ) = x 2 1 + x 2 2 s počátečnímbodem x 0 = (1, 1). Počítejte s přesností aspoň na dvě desetinná místa.α 0 = (g 0 ) T g 0 /(g 0 ) T Ag 0 =x 1 = x 0 − α 0 g 0 =[︃]︃g 1 = g 0 − α 0 Ag 0 =[︃]︃Obsah70. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> spádových směrů 718. (5b.) Proveďte jeden krok Algoritmu 4.1 <strong>pro</strong> funkci f(x 1 , x 2 ) = x 2 1 + 2x 2 2 s počátečnímbodem x 0 = (2, 1). Počítejte s přesností aspoň na dvě desetinná místa.α 0 = (g 0 ) T g 0 /(g 0 ) T Ag 0 =x 1 = x 0 − α 0 g 0 =[︃]︃g 1 = g 0 − α 0 Ag 0 =[︃]︃Obsah71. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> spádových směrů 729. (5b.) Proveďte jeden krok Algoritmu 4.1 <strong>pro</strong> funkci f(x 1 , x 2 ) = 2x 2 1 + 3x 2 2 s počátečnímbodem x 0 = ( 3 4 , 1 ). Počítejte s přesností aspoň na dvě desetinná místa.2α 0 = (g 0 ) T g 0 /(g 0 ) T Ag 0 =x 1 = x 0 − α 0 g 0 =[︃]︃g 1 = g 0 − α 0 Ag 0 =[︃]︃Obsah72. strana ze 333◭ ◭ ◮ ◮Správně zodpovězené otázky:Získané body:Procento úspěšnosti:◭◮Pro ukončení testu je třeba kliknout na tlačítko „Konec testu“. Opravení testu se <strong>pro</strong>vedekliknutím na tlačítko „Výsledky“, správné odpovědi budou označeny zeleně a červeněbudou označeny odpovědi chybné. Při použití otázky s tvořenou odpovědí se správná odpo-Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> spádových směrů 73věď zobrazí v rámečku umístěném vpravo dole v navigačním panelu po kliknutí na tlačítko„Ans“.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é metodounejvětšího spádu s numericky vypočteným gradientem. Úlohu počítejte s ukončující podmínkouna velikost gradientu i délku kroku.2. Nakreslete graf a vrstevnice funkcef(x 1 , x 2 ) = x 4 1 + x 2 1 + x 2 2.Obsah73. strana ze 333◭ ◭ ◮ ◮◭◮Řešte úlohu <strong>optimalizace</strong> bez omezeníminx∈R 2 f(x 1, x 2 ).Tuto úlohu řešte metodou největšího spádu s analyticky vypočteným gradientem a poté metodounejvětšího spádu s numericky vypočteným gradientem. Úlohu počítejte s ukončující podmínkouna velikost gradientu i délku kroku.Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> spádových směrů 743. 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é metodounejvětšího spádu s numericky vypočteným gradientem. Úlohu počítejte s ukončující podmínkouna 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é metodounejvětšího spádu s numericky vypočteným gradientem. Úlohu počítejte s ukončující podmínkouna velikost gradientu i délku kroku.Obsah74. strana ze 333◭ ◭ ◮ ◮◭◮5. Nakreslete graf a vrstevnice funkcef(x 1 , x 2 ) = (x 1 − x 2 2) 2 + (1 − x 1 ) 2 .Řešte úlohu <strong>optimalizace</strong> bez omezenímin f(x 1, x 2 ).x∈R 2Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> spádových směrů 75Tuto úlohu řešte metodou největšího spádu s analyticky vypočteným gradientem a poté metodounejvětšího spádu s numericky vypočteným gradientem. Úlohu počítejte s ukončující podmínkouna 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 metodou největšího spádu s analyticky vypočteným gradientem a poté metodounejvětšího spádu s numericky vypočteným gradientem. Úlohu počítejte s ukončující podmínkouna 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 .Obsah75. strana ze 333◭ ◭ ◮ ◮◭◮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é metodounejvětšího spádu s numericky vypočteným gradientem. Úlohu počítejte s ukončující podmínkouna velikost gradientu i délku kroku.8. Nakreslete graf a vrstevnice funkcef(x 1 , x 2 ) = 100(x 1 − x 2 2) 2 + (1 − x 1 ) 2 .Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> spádových směrů 76Řešte úlohu <strong>optimalizace</strong> bez omezení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é metodounejvětšího spádu s numericky vypočteným gradientem. Úlohu počítejte s ukončující podmínkouna velikost gradientu i délku kroku.Obsah76. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
77Kapitola 5Metoda sdružených gradientůObsahV této kapitole se budeme věnovat minimalizaci kvadratických funkcí, tj. zaměříme se 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ás budou zajímat úlohy,kde n je velké a matice A je řídká a „dobře“ podmíněná. Je snadné ukázat, že řešení úlohy(5.1) je stejné jako řešení soustavy lineárních rovnic Ax = b.K této minimalizaci budeme využívat gradientní informaci, ale důmyslnějším způsobemnež v předchozí kapitole. Pro řešení uvedené úlohy zkonstruujeme tzv. metodu sdruženýchgradientů. Tato metoda při počítání v přesné aritmetice najde řešení po n krocích. Jde tedyo tzv. finitní metodu. Obvykle se ale metoda používá jako iterační a po k (k ≪ n) krocíchje výpočetní <strong>pro</strong>ces ukončen nalezením a<strong>pro</strong>ximace hledaného řešení.77. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Metoda sdružených gradientů 78Nakonec 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>vedemeprvní 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ále př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.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 , . . . , ξ 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 dostanemeObsah78. strana ze 333◭ ◭ ◮ ◮◭◮ξ 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 toho vyplý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 .Zavřít dokumentCelá obrazovka ⧸︀ Okno
Metoda sdružených gradientů 79Substitucí 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 n= f(ξ 1 p 1 ) + · · · + f(ξ n p n ).Z toho plynef(̂︀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 popsalitak, abychom místo přesného řešení ̂︀x <strong>pro</strong>blému (5.1) obdrželi jeho a<strong>pro</strong>ximaci ̃︀x s využitímpočáteční a<strong>pro</strong>ximace x 0 a „několika“ vektorů p 1 , . . . , p k , k ≪ n. Přirozenou možností,jak získat a<strong>pro</strong>ximaci ̃︀x je vektor x k , ve kterém je dosaženo minima funkce f na množiněS k = x 0 + ⟨p 1 , . . . , p k ⟩ 1 . Abychom tuto a<strong>pro</strong>ximaci získali, všimněme si, že libovolný vektorx ∈ 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 kObsah79. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Metoda sdružených gradientů 80Po substituci do f a využitím toho, že p 1 , . . . , p k jsou konjugované, dostaneme(︂ 1f(x) = f(x 0 ) +2 ξ2 1(p 1 ) T A p 1 (︀+ ξ 1 A x 0 − b )︀ Tp1)︂+ . . .(︂ 1+2 ξ2 k (pk ) T A p k (︀+ ξ k A x 0 − b )︀ Tpk)︂.Označme reziduum g 0 = g(x 0 ) = ∇f(x 0 ) = Ax 0 − b af 0 (x) = 1 2 xT A x + x T g 0 .Dostávámeaf(x) = f(x 0 ) + f 0 (ξ 1 p 1 ) + · · · + f 0 (ξ k p k )f(x k ) = minx∈S k f(x) = f(x0 ) + 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ředpisemObsah80. strana ze 333◭ ◭ ◮ ◮◭◮x 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)<strong>pro</strong>tožeProtože podle (5.3) <strong>pro</strong> k ≧ 1df (︀ ξp i)︀dξ ⃒ = ξ i (p i ) T A p i + (g 0 ) T p i = 0.ξif(x k ) = minx∈S k f(x) = f(xk−1 ) + minξ∈R f 0(ξp k ), (5.5)Zavřít dokumentCelá obrazovka ⧸︀ Okno
Metoda sdružených gradientů 81můžeme snadno generovat a<strong>pro</strong>ximace x k iteračně. Metoda sdružených směrů začíná libovolnoupočá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>ximaci x k získámepomocí 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). Snadno lze ukázat,že z definice množiny S k plyne(g k ) T p i = 0, i = 1, . . . , k. (5.7)Protože <strong>pro</strong> i ≧ 1 platí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 ,dostaneme <strong>pro</strong> k ≧ 1 a i = 1, . . . , k − 1, s využitím konjugace rovnostObsah81. strana ze 333◭ ◭ ◮ ◮◭◮Z toho plynea(g i ) T p k = (g i−1 ) T p k − α i (p i ) T Ap k = (g i−1 ) T p k .(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 k = · · · = (gk−1 ) T p k(p k ) T . (5.8)Apk Zavřít dokumentCelá obrazovka ⧸︀ Okno
Metoda sdružených gradientů 825.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 , . . . , 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ěmezpůsob, jak použít vektor h k /∈ ⟨p 1 , . . . , p k ⟩ tak, abychom obdrželi nový vektor p k+1 ve tvaruProtože p k+1 má být konjugovaný k p 1 , . . . , p k , platíp k+1 = h k + β k1 p 1 + · · · + β kk p k . (5.9)Z toho plyneZřejmě platí tvrzení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.β ki = − (pi ) T Ah k(p i ) T , i = 1, . . . , k. (5.10)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 , . . . , 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ých smě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 je konstrukce konjugovanýchObsah82. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Metoda sdružených gradientů 83směrů výše uvedenou <strong>pro</strong>cedurou, kterou aplikujeme na vektory 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,kde g 0 = Ax 0 − b, x 0 je vhodná počáteční a<strong>pro</strong>ximace a K 0 = {o}. Tato efektivní metodaje 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 ažk, a všimněme si, že jestliže x k označuje minimum funkce f na množině x 0 + K k , pak jegradient 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íObsah83. strana ze 333◭ ◭ ◮ ◮◭◮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, pak platí(Ap i ) T g k = (p i ) T Ag k = 0, i = 1, . . . , k − 1.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Metoda sdružených gradientů 84Z toho vyplývá, žeβ ki = − (pi ) T Ag k(p i ) T = 0, i = 1, . . . , k − 1.Api Výše uvedené využijeme <strong>pro</strong> následující odvození. Jestliže máme množinu takových konjugovanýchvektorů 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 nap k+1 = g k + β k p k , (5.11)kdeβ k = β kk = − (pk ) T Ag k(p k ) T . (5.12)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ře definována navíc platí g k−1 ≠ o.V předcházejícím textu této kapitoly jsme zjistili, že konjugované směry můžeme s výhodoupoužít <strong>pro</strong> redukci minimalizace konvexní kvadratické n-rozměrné funkce na minimalizaciposloupnosti jednorozměrných funkcí. Dále jsme zjistili, že tyto konjugované směrymohou být generovány velmi efektivně pomocí Krylovových <strong>pro</strong>storů. Kombinací těchtodvou pozorování dostáváme velmi účinnou metodu - metodu sdružených gradientů.Obsah84. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Metoda sdružených gradientů 85Algoritmus začíná počáteční iterací x 0 , g 0 = Ax 0 − b, a p 1 = g 0 . Jestliže máme dányx k−1 a g k−1 , kde k ≧ 1, pak algoritmus nejprve ověří, zda x k−1 je řešení. Pokud nejdeo ř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 ka(︁g 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 na základěvelikosti hodnoty ‖g k−1 ‖. Takže norma gradientu musí být vyčíslena v každé iteraci. Tatonorma může být také použita k nahrazení skalárních součinů obsahujících gradient 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 kv (5.11) číslem k−1 a vynásobíme výsledný vztah vektorem (g k−1 ) T . S využitím ortogonalityzíská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)a po dosazení do (5.8) mámeα k = ‖gk−1 ‖ 2(p k ) T . (5.16)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 ),Obsah85. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Metoda sdružených gradientů 86z č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 k = ‖g k ‖ 2α k (p k ) T Ap k = ‖gk ‖ 2‖g k−1 ‖ 2 = (gk ) T (g k − g k−1 )‖g k−1 ‖ 2 . (5.17)Metoda sdružených gradientů je shrnuta v algoritmu 5.1.Algoritmus 5.1 Metoda sdružených gradientů (CG).Mějme symetrickou positivně definitní matici A ∈ R n×n a 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 kObsah86. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Metoda sdružených gradientů 87Pozná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 Aje výpočetně nejnáročnější část jedné iterace. Do paměti se v průběhu vý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+1tak, ž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ě.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 algoritmus je dobře definována existuje k ≦ n takové, že x k = ̂︀x. Navíc platí následující tvrzení <strong>pro</strong> i = 1, . . . , k:Obsah87. strana ze 333◭ ◭ ◮ ◮◭◮(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 ⟩.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Metoda sdružených gradientů 88Pozná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, že přibližnéřešení ̃︀x je řešením perturbované úlohyminx∈R n ̃︀f(x) =12 xT Ax − ̃︀b T x, ̃︀b = b + g k .Obsah88. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Metoda sdružených gradientů 895.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)Obsahkde κ(A) = λ max /λ min je číslo podmíněnosti matice A a ‖x‖ 2 A = xT Ax označuje energetickounormu x.89. strana ze 333◭ ◭ ◮ ◮◭◮5.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 jejichgradient. K a<strong>pro</strong>ximaci můžeme použít opět metodu konečných diferencí z předchozíkapitoly. Abychom mohli použít <strong>pro</strong> minimalizaci funkce, která není kvadratická, metodusdružených gradientů, musíme učinit následující úpravy.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Metoda sdružených gradientů 90Vztah (5.16), který používáme <strong>pro</strong> určení délky kroku α k v algoritmu 5.1 (toto α kminimalizuje funkci f v bodě x k−1 ve směru −p k ), nahradíme rutinou <strong>pro</strong>vádějící jednorozměrnouminimalizaci 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í funkcef, 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 ‖ 2 i (gk ) T (g k −g k−1 ),‖g k−1 ‖ 2použijeme jeden z těchto vztahů. V případě nelineární funkce, ale tyto vztahy nedávají stejnouhodnotu β k . V případě použití β k = ‖g k ‖ 2 /‖g k−1 ‖ 2 nazýváme tuto metodu metodouFletcher-Reeves. Pokud použijeme vztah β k = (g k ) T (g k − g k−1 )/‖g k−1 ‖ 2 mluvíme o metoděPolak-Ribiere.Poznámka 5.5. Protože v případě použití metody nelineárních sdružených gradientů užnení zaručena konjugovanost vektorů p 1 , . . . , p n , může nastat <strong>pro</strong>blém, že vektor p k je„téměř kolmý“ k vektoru g k−1 = ∇f(x k−1 ), tj. vektor −p k není směr poklesu a algoritmus5.2 pak při linesearch α k = arg minα>0 f(xk−1 − αp k ) najde α k ≈ 0. To znamená, žeg k = ∇f(x k ) ≈ g k−1 = ∇f(x k−1 ).Obsah90. strana ze 333◭ ◭ ◮ ◮◭◮Pokud použijeme metodu Fletcher-Reeves (tj. β k = ‖g k ‖ 2 /‖g k−1 ‖ 2 ), pak β k ≈ 1 ap k+1 ≈ g k + p k . V případě, že ‖g k ‖ ≪ ‖p k ‖, pak p k+1 ≈ p k . V tom případě se algoritmus5.2 „zacyklí“ v okolí bodu x k a není schopen nalézt a<strong>pro</strong>ximaci minima funkce f.Pokud použijeme metodu Polak-Ribiere (tj. β k = (g k ) T (g k −g k−1 )/‖g k−1 ‖ 2 ), pak β k ≈ 0a p k+1 ≈ g k . V tom případě je vektor −p k+1 ≈ −g k směrem poklesu a algoritmus 5.2 <strong>pro</strong>vedeZavřít dokumentCelá obrazovka ⧸︀ Okno
Metoda sdružených gradientů 91Algoritmus 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 kObsah91. strana ze 333◭ ◭ ◮ ◮◭◮v další iteraci jeden krok gradientní metody a začne znovu budovat konjugované vektoryjako na začátku iteračního <strong>pro</strong>cesu metody nelineárních sdružených gradientů (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. MetodaPolak-Ribiere je <strong>pro</strong>to stabilnější než metoda Fletcher-Reeves.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Metoda sdružených gradientů 925.5. Interaktivní ukázka použití metody sdružených gradientůPro ilustraci fungování metody sdružených gradientů a její porovnání s některými dalšímizákladními optimalizačními metodami je vhodné využít tento applet. Tento applet byl vytvořenv software Mathematica. Pro použití appletu musíte mít nainstalován Wolfram CDFPlayer.V appletu je možné si vybrat minimalizaci některé z osmi funkcí dvou <strong>pro</strong>měnných, zvolitsi počáteční bod x 0 iteračního <strong>pro</strong>cesu a ovlivňovat zobrazení grafu minimalizované funkce.Aplikace Vám umožní sledovat iterační <strong>pro</strong>ces hledání minima pomocí metody sdruženýchgradientů i dalších metod. Můžete také porovnat počty iterací jednotlivých metod, kteréjsou potřeba k nalezení minima zvolené funkce.Příklady k <strong>pro</strong>cvičení1. Nakreslete graf a vrstevnice funkcef(x 1 , x 2 ) = x 2 1 + x 2 2.Řešte úlohu <strong>optimalizace</strong> bez omezeníObsah92. strana ze 333◭ ◭ ◮ ◮◭◮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 funkcef(x 1 , x 2 ) = x 4 1 + x 2 1 + x 2 2.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Metoda sdružených gradientů 93Řešte úlohu <strong>optimalizace</strong> bez omezení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ů.4. Nakreslete graf a vrstevnice funkcef(x 1 , x 2 ) = sin 2 x 1 + cos 2 x 2 .Obsah93. strana ze 333◭ ◭ ◮ ◮◭◮Řešte úlohu <strong>optimalizace</strong> bez omezeníminx∈R 2 f(x 1, x 2 ).Tuto úlohu řešte metodou nelineárních sdružených gradientů.5. Nakreslete graf a vrstevnice funkcef(x 1 , x 2 ) = (x 1 − x 2 2) 2 + (1 − x 1 ) 2 .Zavřít dokumentCelá obrazovka ⧸︀ Okno
Metoda sdružených gradientů 94Řešte úlohu <strong>optimalizace</strong> bez omezenímin f(x 1, x 2 ).x∈R 2Tuto ú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 funkcef(x 1 , x 2 ) = 100(x 3 1 − x 2 2) 2 + (1 − x 1 ) 2 .Obsah94. strana ze 333◭ ◭ ◮ ◮◭◮Řešte úlohu <strong>optimalizace</strong> bez omezeníminx∈R 2 f(x 1, x 2 ).Tuto úlohu řešte metodou nelineárních sdružených gradientů.8. Nakreslete graf a vrstevnice funkcef(x 1 , x 2 ) = 100(x 1 − x 2 2) 2 + (1 − x 1 ) 2 .Zavřít dokumentCelá obrazovka ⧸︀ Okno
Metoda sdružených gradientů 95Řešte úlohu <strong>optimalizace</strong> bez omezenímin f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou nelineárních sdružených gradientů.Obsah95. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
96Kapitola 6Newtonova metodaObsahV této kapitole se seznámíme s Newtonovou metodou, což je spádová metoda <strong>pro</strong> minimalizacialespoň 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 podleTaylorovy věty kvadratický model dobře a<strong>pro</strong>ximuje cenovou funkci v okolí řešení a můžemeočekávat velmi rychlou konvergenci. Cenou za to je vyšší cena iterace a menší robustnostNewtonova směru. Pokud není možno najít počáteční a<strong>pro</strong>ximaci blízko řešení, je třebaNewtonowu metodu modifikovat pomocí vhodné globalizační strategie.96. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Newtonova metoda 976.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í nerovnost plynez pozorování, že inverzní matice k pozitivně definitní matici A je pozitivně definitní, neboťkaždé x ∈ R n lze napsat ve tvaru x = A −1 y a <strong>pro</strong> pozitivně definitní matici A platíObsah97. strana ze 333◭ ◭ ◮ ◮◭◮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 kroku s = 1,pak lze dokázat, že v blízkém okolí nesingulárního řešení není třeba dělat žádnou redukci.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Newtonova metoda 98Tento výsledek není příliš překvapivý, neboť Newtonova metoda je založena na kvadratickémmodelu funkce, který je blízko řešení věrný. Použijeme-li Newtonovu metodu k minimalizacistriktně 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 ani směrempoklesu, neboť není zaručeno, že ∇ 2 f(x k ) je pozitivně definitní. Newtonova metodu je <strong>pro</strong>tonutné kombinovat s vhodnou globalizační strategií, která nahradí Newtonův krok nějakýmkrokem ve směru poklesu s přiměřenou délkou kroku.Obsah98. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Newtonova metoda 996.2. Kvadratická rychlost konvergenceJelikož Newtonova metoda používá věrnější model funkce než gradientní metoda, dá seočekávat, že její rychlost konvergence v okolí řešení bude větší než je rychlost konvergencegradientní metody nebo metody sdružených gradientů, alespoň pokud měříme rychlost konvergencepočtem kroků a nezohledňujeme pracnost metod.Věta 6.1. Nechť f je dvakrát spojitě diferencovatelná funkce, která má minimum v ̂︀xa 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) konverguje superlineárně,t.j. platí‖x k+1 − ̂︀x‖limk→∞ ‖x k − ̂︀x‖= lim o(‖x k+1 − ̂︀x‖)k→∞ ‖x k = 0.− ̂︀x‖Obsah99. strana ze 333◭ ◭ ◮ ◮◭◮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)Zavřít dokumentCelá obrazovka ⧸︀ Okno
Newtonova metoda 100Potom g(̂︀x) = o a podle Taylorovy věty(︁)︁(︁̂︀x g(̂︀x) = g x k + (̂︀x − x k ) = g(x k ) + ∇g(x k ) 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), dostanemex k+1 − ̂︀x = o(‖x k − ̂︀x‖)ax 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 rychle v okolířešení, avšak obecně nemusí generovat ani směr poklesu, který bychom mohli použít k přiblíženířešení. Našim prvním krokem k zajištění globální konvergence tedy 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 generovalasměr poklesu, neboť <strong>pro</strong> pozitivně definitní matici H k a d = −H −1k∇f(xk ) platíObsah100. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Newtonova metoda 101d 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í Sylvesterovapravidla. Pokud nahradíme v Newtonově kroku Hessián násobkem jednotkové maticecI, 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í definitnosti jeaplikovat na Hessián Geršgorinovu větu. Díky této větě získám informaci o rozložení vlastníchčísel Hessiánu a přičtením vhodného násobku jednotkové matice k Hessiánu získámejeho pozitivně definitní a<strong>pro</strong>ximaci.Obsah101. strana ze 333◭ ◭ ◮ ◮◭◮Choleské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 na součinA = LL T , (6.4)Zavřít dokumentCelá obrazovka ⧸︀ Okno
Newtonova metoda 102kde 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 faktor L můžebý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 1l 11 = √ a 11 ,l 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ého faktorSchurova doplňku A 22 − l 1 l1 T . Protože je Schurův doplněk pozitivně definitní, můžeme najítjeho první sloupec výše uvedeným postupem atd. Tuto rutinu můžeme implementovat 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 yObsah102. strana ze 333◭ ◭ ◮ ◮◭◮<strong>pro</strong> libovolný vektor x = [︀ x 1 , y T ]︀ T . Z nerovnosti vyplývá, že a1 = o, <strong>pro</strong>tože jinak bychommohli 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)Zavřít dokumentCelá obrazovka ⧸︀ Okno
Newtonova metoda 1036.4. Interaktivní ukázka použití Newtonovy metodyPro ilustraci fungování Newtonovy metody a její porovnání s některými dalšími základnímioptimalizačními metodami je vhodné využít tento applet. Tento applet byl vytvořenv software Mathematica. Pro použití appletu musíte mít nainstalován Wolfram CDF Player.V appletu je možné si vybrat minimalizaci některé z osmi funkcí dvou <strong>pro</strong>měnných,zvolit si počáteční bod x 0 iteračního <strong>pro</strong>cesu a ovlivňovat zobrazení grafu minimalizovanéfunkce. Aplikace Vám umožní sledovat iterační <strong>pro</strong>ces hledání minima pomocí Newtonovymetody i dalších metod. Můžete také porovnat počty iterací jednotlivých metod, které jsoupotřeba k nalezení minima zvolené funkce.6.5. Interaktivní testNásledující test byl vytvořen pomocí balíčku acrotex. Test zahájíte kliknutím na tlačítko„Zacátek testu“. U otázek lze volit jen jednu odpověď (test nedovolí zaškrtnout více odpovědí),správná odpověď je bodována počtem bodů uvedených v závorce u zadání a špatnáodpověď je bodována 0 body.Obsah103. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Newtonova metoda 1041. (2b.) Funkce f(x 1 , x 2 ) = x 2 1 + x 2 2 má v bodě (x 1 , x 2 ) = (1, 1) gradient ∇f(x 1 , x 2 ) roven(−1, 1).(−1, −1).(2, 2).2. (2b.) Funkce f(x 1 , x 2 ) = x 2 1 +2x 2 2 má v bodě (x 1 , x 2 ) = (2, 1) gradient ∇f(x 1 , x 2 ) roven(4, 4).Obsah(2, 4).(2, 2).104. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Newtonova metoda 1053. (2b.) Funkce f(x 1 , x 2 ) = 2x 2 1 + 3x 2 2 má v bodě (x 1 , x 2 ) = ( 3 4 , 1 2 ) gradient ∇f(x 1, x 2 )roven(−2, −3).(3, 3).(2, 3).4. (2b.) Funkce f(x 1 , x 2 ) = x 2 1 + x 2 2 má v bodě (x 1 , x 2 ) = (1, 1) Hessián roven matici[︂ ]︂ 2 2.2 2[︂ 2 00 2[︂ 4 00 4]︂.]︂.Obsah105. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Newtonova metoda 1065. (2b.) Funkce f(x 1 , x 2 ) = x 2 1 + 2x 2 2 má v bodě (x 1 , x 2 ) = (2, 1) Hessián roven matici[︂ ]︂ 2 0.0 4[︂ 1 00 2[︂ 1 00 1]︂.]︂.6. (2b.) Funkce f(x 1 , x 2 ) = 2x 2 1 + 3x 2 2 má v bodě (x 1 , x 2 ) = ( 3 4 , 1 ) Hessián roven matici2⎡⎣340[︂ 4 00 6[︂ 2 00 3⎤01⎦.2]︂.]︂.Obsah106. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Newtonova metoda 1077. (2b.) Najděte matici inverzní k matici[︂ 1 00 1]︂.[︂ −1 00 −1]︂.[︂ 1000 00 1000]︂.[︂ 1 00 1]︂.8. (2b.) Najděte matici inverzní k matici[︂ 1 00 1]︂.[︂ −1 00 −2[︃ ]︃ 1 01 .02]︂.[︂ 1 00 2]︂.Obsah107. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Newtonova metoda 1089. (2b.) Najděte matici inverzní k matici⎡⎣120⎤01⎦.4[︂ −2 00 −4[︂ 1 00 1]︂.]︂.10. (2b.) Najděte matici inverzní k matici[︂ 4 00 6⎡⎣140]︂.⎤01⎦.6[︂ −4 00 −6]︂.[︂ 2 00 4[︂ 4 00 6]︂.]︂.Obsah108. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Newtonova metoda 10911. (2b.) Najděte matici inverzní k matici⎡⎣120⎤01⎦.2[︂ −2 00 −2[︂ −3 00 −3]︂.]︂.[︂ 2 00 2]︂.Obsah12. (2b.) Proveďte jeden krok Newtonovy metody, tj. Newtonovu iteraci (6.2), <strong>pro</strong> funkcif(x 1 , x 2 ) = x 2 1 + x 2 2 s počátečním bodem x 0 = (1, 1).x 1 = x 0 − ∇ 2 f(x 0 ) −1 ∇f(x 0 ) =[︃]︃109. strana ze 333◭ ◭ ◮ ◮◭◮13. (2b.) Proveďte jeden krok Newtonovy metody, tj. Newtonovu iteraci (6.2), <strong>pro</strong> funkcif(x 1 , x 2 ) = x 2 1 + 2x 2 2 s počátečním bodem x 0 = (2, 1).x 1 = x 0 − ∇ 2 f(x 0 ) −1 ∇f(x 0 ) =[︃]︃Zavřít dokumentCelá obrazovka ⧸︀ Okno
Newtonova metoda 11014. (2b.) Proveďte jeden krok Newtonovy metody, tj. Newtonovu iteraci (6.2), <strong>pro</strong> funkcif(x 1 , x 2 ) = 2x 2 1 + 3x 2 2 s počátečním bodem x 0 = ( 3 4 , 1 2 ).x 1 = x 0 − ∇ 2 f(x 0 ) −1 ∇f(x 0 ) =[︃]︃Správně zodpovězené otázky:Získané body:Procento úspěšnosti:Pro ukončení testu je třeba kliknout na tlačítko „Konec testu“. Opravení testu se <strong>pro</strong>vedekliknutím na tlačítko „Výsledky“, správné odpovědi budou označeny zeleně a červeněbudou označeny odpovědi chybné. Při použití otázky s tvořenou odpovědí se správná odpověďzobrazí v rámečku umístěném vpravo dole v navigačním panelu po kliknutí na tlačítko„Ans“.Obsah110. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Newtonova metoda 111Pří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 Newtonovou metodou s analyticky vypočteným gradientem i Hessiánem a 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 2Obsah111. strana ze 333◭ ◭ ◮ ◮◭◮Tuto úlohu řešte Newtonovou metodou s analyticky vypočteným gradientem i Hessiánem a 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 funkcef(x 1 , x 2 ) = 100x 4 1 + x 2 2.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Newtonova metoda 112Řešte úlohu <strong>optimalizace</strong> bez omezenímin f(x 1, x 2 ).x∈R 2Tuto úlohu řešte Newtonovou metodou s analyticky vypočteným gradientem i Hessiánem a 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ánem a 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.5. Nakreslete graf a vrstevnice funkceObsah112. strana ze 333◭ ◭ ◮ ◮◭◮Ř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 Newtonovou metodou s analyticky vypočteným gradientem i Hessiánem a 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.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Newtonova metoda 1136. 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ánem a 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ánem a 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.Obsah113. strana ze 333◭ ◭ ◮ ◮◭◮8. Nakreslete graf a vrstevnice funkcef(x 1 , x 2 ) = 100(x 1 − x 2 2) 2 + (1 − x 1 ) 2 .Řešte úlohu <strong>optimalizace</strong> bez omezenímin f(x 1, x 2 ).x∈R 2Zavřít dokumentCelá obrazovka ⧸︀ Okno
Newtonova metoda 114Tuto úlohu řešte Newtonovou metodou s analyticky vypočteným gradientem i Hessiánem a 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.Obsah114. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
115Kapitola 7Trust regionObsahJak jsme viděli výše, efektivnost Newtonovy metody <strong>pro</strong> minimalizaci hladké funkce f bezomezení záleží na věrnosti kvadratického modelu v okolí jeho minima. Doposud jsme <strong>pro</strong>bléms případným rozdílem mezi cenovou funkcí a jejím lokálním modelem řešili zkrácenímkroku. 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 volit podle115. strana ze 333◭ ◭ ◮ ◮◭◮x 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 bylo u Newtonovymetody, která by zkrátila Newtonův krok tak, aby další iterace patřila do Ω k , a toza cenu minimalizace komplikované omezením. <strong>Metody</strong> založené na minimalizaci modelufunkce na omezeném okolí dané iterace se anglicky nazývají metody typu trust region, t.j.něco jako metody důvěryhodné oblasti.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Trust region 116Okolí Ω k volíme tak, aby bylo možno minimum efektivně spočítat, nejčastěji pomocíl ∞ -normy nebo pomocí eukleidovské normy, které jsou <strong>pro</strong> y = [y i ] ∈ R n definovány pořadě předpisy√︁‖y‖ ∞ = max |y i| a ‖y‖ = y 2i=1,...,n1 + · · · + y2 n.V 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 adaptovat nanalezení stacionárního bodu libovolné funkce.Obsah116. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Trust region 1177.1. Penalizační lemmaNáš výklad bude založen na výsledku, který nám umožní převést minimalizaci na eukleidovskémokolí 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 nje ř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) + cd∈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žit c = 0.Pokud tomu tak není, potom z obr. 7.1 plyne, že existuje c > 0 tak, že platíObsah117. strana ze 333◭ ◭ ◮ ◮◭◮cd = −∇ d f(x + d).Odtud∇ 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).Zavřít dokumentCelá obrazovka ⧸︀ Okno
Trust region 118xdObsah118. strana ze 333−∇ d f(x + d)◭ ◭ ◮ ◮◭◮Obr. 7.1: Ilustrace penalizační větyZavřít dokumentCelá obrazovka ⧸︀ Okno
Trust region 1197.2. Levenberg-Marquardtova implementaceBudeme používat kvadratický model f v okolí iterace x k , který zahrnuje omezení minimalizacena 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ém implicitněδ k . Pak se rozhodne, zda ho přijme podle toho, zda se podařilo dosáhnout dostatečnéhopoklesu cenové funkce. V dalším kroku se aktualizuje δ k , t.j. velikost okolí, na kterém se<strong>pro</strong>vádí minimalizace. Celý algoritmus je potom uveden níže.Obsah119. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Trust region 120Algoritmus 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 .}if ρ k ≧ η 1then x k+1 = x k + d kelse x k+1 = x kend ifρ k = f(xk ) − f(x k + d k )m k (x k ) − m k (x k + d k )Krok 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 kObsah120. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Trust region 121Algoritmus 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í pravidla aktualizace δ kho 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, abychomse 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 na velikostgradientu i délku kroku.Obsah1<strong>21.</strong> strana ze 333◭ ◭ ◮ ◮◭◮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> bez omezenímin f(x 1, x 2 ).x∈R 2Zavřít dokumentCelá obrazovka ⧸︀ Okno
Trust region 122Tuto úlohu řešte Trust region metodou. Ú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.min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte Trust region metodou. Ú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 .Obsah122. strana ze 333◭ ◭ ◮ ◮◭◮min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte Trust region metodou. Úlohu počítejte s ukončující podmínkou na velikostgradientu i délku kroku.5. Nakreslete graf a vrstevnice funkcef(x 1 , x 2 ) = (x 1 − x 2 2) 2 + (1 − x 1 ) 2 .Zavřít dokumentCelá obrazovka ⧸︀ Okno
Trust region 123Řešte úlohu <strong>optimalizace</strong> bez omezenímin f(x 1, x 2 ).x∈R 2Tuto úlohu řešte Trust region metodou. Ú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 Trust region metodou. Úlohu počítejte s ukončující podmínkou na velikostgradientu i délku kroku.7. Nakreslete graf a vrstevnice funkceObsah123. strana ze 333◭ ◭ ◮ ◮◭◮Ř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 na velikostgradientu i délku kroku.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Trust region 1248. 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 na velikostgradientu i délku kroku.Obsah124. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
125Kapitola 8<strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu -BFGSObsah125. strana ze 3338.1. Heuristické odvození základních myšlenek metody BFGSV této kapitole vybudujeme minimalizační algoritmus <strong>pro</strong> metodu, která používá Newtonůvkrok. Ale narozdíl od Newtonovy metody je informace druhého řádu (tj. v případě funkcejedné <strong>pro</strong>měnné druhá derivace a v případě funkce více <strong>pro</strong>měnných Hessián) a<strong>pro</strong>ximovánana 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ázek 8.1) určenou <strong>pro</strong> hledání řešení rovnice f(x) = 0. Tato metodaa<strong>pro</strong>ximuje toto řešení průsečíkem sečny ke grafu funkce f v bodech x k a x k−1 s osou x, tzn.x k+1 = x k − f(x k x)k −x k−1≈ f ′ (x k ). Pokud použijeme metodu sečenf(x k )−f(x k−1 ) a f(xk )−f(x k−1 )x k −x k−1◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu - BFGS 126ff (︀ x k−1)︀f (︀ x k)︀x k+1 x k x k−1Obsah126. strana ze 333Obr. 8.1: Algoritmus metody sečen<strong>pro</strong> řešení rovnice f ′ (x) = 0, dostaneme vztahf ′ (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ě funkceví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)Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu - BFGS 127který použijeme <strong>pro</strong> a<strong>pro</strong>ximaci Hessiánu v bodě x k (B ≈ ∇ 2 f(x k )). Tento vztah již nestačí<strong>pro</strong> jednoznačné určení matice B a <strong>pro</strong>to musíme k jejímu určení přidat další 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ánaPak platí:Q(y, s) = {B ∈ R n,n : Bs = y}.min ‖B − A‖ = ‖A + − A‖, (8.3)B∈Q(y,s)kde(y − As)sTA + = A +s T . (8.4)sDůkaz. Ukážeme nejprve, že platí tvrzení ∀B ∈ Q(y, s) :‖A + − A ‖ ≦ ‖B − A‖.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 .Obsah127. strana ze 333◭ ◭ ◮ ◮◭◮Tzn.‖A + − A ‖ = ‖A + (y−As)sTs T s− A‖ ‖ssT ‖s T s .− A ‖ = ‖ (y−As)sTs T s‖ = ‖ (Bs−As)sTs T s‖ = ‖(B − A) ssTs T s ‖ ≦ ‖B −Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu - BFGS 128Pokud využijeme toho, že norma matice je indukovaná vektorovou normou a tedy platí{︂ }︂‖Mx‖‖M‖ = max‖x‖: x ∈ Rn , x ≠ o ,pak je snadné dokázat, že platíZ toho plyne‖ss T ‖s T s = 1.‖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éhominima v A + , které je dáno vztahemObsah128. strana ze 333◭ ◭ ◮ ◮◭◮A + = A +(y − As)sTs T s.Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu - BFGS 1298.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 na zá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íme do 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 od matice Lminimá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)Obsah129. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu - BFGS 130Dá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 T v = v. (8.13)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 sv T . (8.14)vL T s = (1 − k)v. (8.15)jako α, přepíšeme vztah (8.15) naαL T s = v. (8.16)Obsah130. strana ze 333◭ ◭ ◮ ◮◭◮Dosaďme do (8.11) za v ze vztahu (8.16) a dostanemea po úpravěL T s + α yT s − αs T LL T sα 2 s T LL T L T s = αL T s (8.17)sL T s + α yT sL T sα 2 s T LL T s − LT s = αL T s. (8.18)Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu - BFGS 131Dále upravímea nakonecα 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 α:√︂yα =T ss 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 , abychom mělinadále zaručenu pozitivní definitnost a<strong>pro</strong>ximace Hessiánu.Po dosazení do (8.16):√︂yv =T ss T H k−1 s LT s. (8.22)Dosaďme do (8.7) vztah (8.10):Obsah131. strana ze 333◭ ◭ ◮ ◮◭◮H k = JJ T =(︂L +(y − Lv)vTv T v)︂ (︂L +(y − Lv)vTv T v)︂ T= LL T + yyTv T v − LvvT L Tv T . (8.23)v1 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 f neníkonvexní, pak je podmínka splněna pokud <strong>pro</strong> délku kroku αs navíc vyžadujeme tzv. Wolfeho podmí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 )s a ∇f(x k−1 )s < 0platí, <strong>pro</strong>tože s je směr poklesu.Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu - BFGS 132Použijeme (8.22) a odvodímeav 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 Tv T v= yT s LL T ss T LL Ts T H k−1 s y T s= Hk−1 ss T H k−1s T H k−1 . (8.25)sPo 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 :8.4. Algoritmus BFGSH k = H k−1 + yyTy T s − Hk−1 ss T H k−1s T H k−1 . (8.26)sVztah (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 jerozumné zvolit jako H 0 jednotkovou matici I.Obsah132. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu - BFGS 133Algoritmus 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)︀ −1 gk−1g k = ∇f(x k )y = g k − g k−1s = x k − x k−1if y T s > 0H k = H k−1 + yyTy T s − Hk−1 ss T H k−1s T H k−1 s(symetrická pozitivně definitní a<strong>pro</strong>ximace Hessiánu)elseH k = H k−1endk = k + 1end whileKrok 2. {Řešení.}̂︀x = x kObsah133. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu - BFGS 1348.5. Interaktivní ukázka použití metody BFGSPro ilustraci fungování metody BFGS (QuasiNewton - BFGS) a její porovnání s některýmidalšími základními optimalizačními metodami je vhodné využít tento applet. Tento appletbyl vytvořen v software Mathematica. Pro použití appletu musíte mít nainstalován WolframCDF Player.V appletu je možné si vybrat minimalizaci některé z osmi funkcí dvou <strong>pro</strong>měnných, zvolitsi počáteční bod x 0 iteračního <strong>pro</strong>cesu a ovlivňovat zobrazení grafu minimalizované funkce.Aplikace Vám umožní sledovat iterační <strong>pro</strong>ces hledání minima pomocí metody BFGS i dalšíchmetod. Můžete také porovnat počty iterací jednotlivých metod, které jsou potřebak nalezení minima zvolené funkce.Příklady k <strong>pro</strong>cvičení1. Nakreslete graf a vrstevnice funkcef(x 1 , x 2 ) = x 2 1 + x 2 2.Řešte úlohu <strong>optimalizace</strong> bez omezeníObsah134. strana ze 333◭ ◭ ◮ ◮◭◮min f(x 1, x 2 ).x∈R 2Tuto úlohu řešte metodou BFGS. Úlohu počítejte s ukončující podmínkou na velikost gradientui délku kroku.2. Nakreslete graf a vrstevnice funkcef(x 1 , x 2 ) = x 4 1 + x 2 1 + x 2 2.Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu - BFGS 135Ř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 velikost gradientui 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 BFGS. Úlohu počítejte s ukončující podmínkou na velikost gradientui délku kroku.4. Nakreslete graf a vrstevnice funkceObsah135. strana ze 333◭ ◭ ◮ ◮◭◮Ř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 velikost gradientui délku kroku.Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu - BFGS 1365. 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 velikost gradientui 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 velikost gradientui délku kroku.Obsah136. strana ze 333◭ ◭ ◮ ◮◭◮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 BFGS. Úlohu počítejte s ukončující podmínkou na velikost gradientui délku kroku.Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> a<strong>pro</strong>ximace Hessiánu - BFGS 1378. 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 velikost gradientui délku kroku.Obsah137. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
138Kapitola 9Podmínky minima <strong>pro</strong> úlohys omezením ve tvaru rovnostíObsah138. strana ze 333Počínaje touto kapitolou se budeme zabývat řešením optimalizačních úloh s omezením.V technických úlohách takové omezení vzniká například potřebou zahrnout do formulaceúlohy omezení zdrojů, které máme k dispozici, nebo požadavky na pevnost konstrukcí.Začneme s omezeními ve tvaru rovností a ukážeme si, jak poznat řešení úlohy◭ ◭ ◮ ◮◭◮minx∈Ω f(x), Ω = {x ∈ Rn : h(x) = o}, h : R n → R m , m < n. (9.1)Budeme při tom předpokládat, že f je dvakrát spojitě diferencovatelná funkce a h je spojitědiferencovatelná. Množina Ω se nazývá přípustná množina.Podmínky minima <strong>pro</strong> funkce s omezením mají význam <strong>pro</strong> zodpovězení základníchteoretických otázek <strong>optimalizace</strong>. Jejich znalost je užitečná i mimo optimalizaci. UplatníZavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 139se například při studiu fyziky a technických aplikací. I když je „ruční“ řešení akademickýchúloh velmi často založeno na řešení rovnic (a nerovnic), které formálně popisujípodmínky minima, 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. Úlohy s omezením lze řešit bez počítačejen výjimečně.9.1. Geometrická ilustrace podmínky minimaZačneme s řešením jednoduché úlohymin f(x), f(x) =h(x)=0 x2 1 + x 2 2, h(x) = 4 − x 1 − x 2 . (9.2)Pomůžeme si obrázkem 9.1, na kterém jsou znázorněny čárkovaně kruhové vrstevnice funkcef a nepřerušovanou čarou je znázorněna přímka, která představuje přípustnou množinu.Minimum je dosaženo v bodě ̂︀x.Jelikož minimum f bez omezení je dosaženo ve společném středu všech kružnic popsanýchpomocí 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. Vespolečném bodě ̂︀x platí, že gradient f je násobkem gradientu h, tedy existuje λ ∈ R tak, žeObsah139. strana ze 333◭ ◭ ◮ ◮◭◮∇f(̂︀x) + λ∇h(̂︀x) = o.Dostali jsme tak algebraickou formu našeho pozorování. Jelikož řešení musí být přípustné,můžeme napsat rovnice, které v našem případě určují řešení:∇f(x) + λ∇h(x) = o,h(x) = o.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 140∇f(̂︀x)̂︀x∇h(x)h(̂︀x) = 0f(x) = f(̂︀x)ObsahObr. 9.1: Minimum kvadratické funkce na přímceJelikož první rovnice je vektorová, můžeme si je přepsat jako tři skalární rovnice140. strana ze 333◭ ◭ ◮ ◮◭◮2x 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 jsme získalinejen řešení úlohy (9.2), ale také hodnotu λ, na kterou se nás nikdo neptal. V dalšímvýkladu uvidíme, že λ je důležitá veličina, jejíž pochopení nám umožní zavést nové algoritmya dodatečnou informaci o kvalitě řešení.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 1419.2. Úloha kvadratického <strong>pro</strong>gramování s rovnostmi a 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)kde 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>stor N (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),Obsah141. strana ze 333kde 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, žec = o v definici Ω.1 H(B) označuje obor hodnot matice B.2 N (B) označuje nulový <strong>pro</strong>stor (jádro) matice B.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 142Užitečným nástrojem k analýze a řešení <strong>pro</strong>blémů s omezením je Lagrangiándefinovaný pomocíL 0 : R n+m → RL 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é formulaci podmínekminima 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 se naněho díváme jako na funkci x, potom je jeho Hessián a restrikce na Ω identická s f, avšakjeho gradient ∇ x L 0 (x, λ) závisí na hodnotě λ. Odtud plyne, že je-li f konvexní, potom L 0 jekonvexní <strong>pro</strong> jakékoliv pevně zvolené λ, a globální minimum L 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ím redukuje na minimalizaci L 0 bez omezení takjako na obr. 9.2.Obsah142. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 143L 0 (x, ̂︀λ) = L 0 (̂︀x, ̂︀λ) + cx 0̂︀xObsahf(x) = f(x 0 ) + cΩ E143. strana ze 333◭ ◭ ◮ ◮◭◮Obr. 9.2: Geometrický význam LagrangiánuZavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 1449.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ány v následujícímtvrzení.Věta 9.1. Nechť je <strong>pro</strong>blém (9.3) definován pomocí symetrické matice A ∈ R n×n , maticeomezení 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 existujevektor λ ∈ R m tak, žeAx − b + B T λ = o. (9.10)Obsah144. strana ze 333◭ ◭ ◮ ◮◭◮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> dosta-Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 145tečně malé hodnoty α a (Ax − b) T d ≠ 0, znaménko pravé strany rovnosti (9.11) je určenoznaménkem α(Ax − b) T d. Jelikož si můžeme zvolit znaménko α 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žeexistuje λ ∈ 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 si můžemezapsat 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-Tuckerovou podmínkounebo stručně KKT-podmínkou.Obsah145. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 1469.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í charakteristiku pří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 + x2 2 = 2} v x 1 = x 2 = 1.Problematiku si vysvětlíme podrobněji na tečných směrech, které si zavedeme pomocípřípustné křivky. Křivkou zde nazýváme množinuC = {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řivkaC se nazývá přípustnou křivkou množiny Ω, jestliže C ⊆ Ω. V dalším se omezíme na 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áhnoutposunutím argumentu t), takžeObsah146. strana ze 333◭ ◭ ◮ ◮◭◮První derivace x(t) je vektorx = x(0).Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 147x ′ (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.Obsah147. strana ze 333◭ ◭ ◮ ◮◭◮Pomocí nového označení a (9.13) můžeme definovat podmínku <strong>pro</strong> řešení x ve tvaru<strong>pro</strong> všechna d ∈ T Ω (x), t.j.d T ∇f(x) = 0∇f(x)⊥T (x). (9.14)Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 148Praktické 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žinou nulového<strong>pro</strong>storem ∇h(x) T . Abychom si ověřili druhé tvrzení, stačí si všimnout, že h i(︀x(t))︀= 0 <strong>pro</strong>t ∈ ⟨t 0 , t 1 ⟩, takže <strong>pro</strong> libovolnou přípustnou křivku x(t) platíh ′ 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). Tototvrzení si snadno ověříme <strong>pro</strong> lineární vazby definované pomocí h(x) = Bx − c. K tomu sistačí všimnout, že B = ∇h(x) T , takže d patří do jádra Jacobiánu h v libovolném x ∈ R n ,právě když Bd = o, a <strong>pro</strong> x(t) = td − c platíObsah148. strana ze 333◭ ◭ ◮ ◮◭◮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 λ,Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 149můž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í.ObsahDů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, že hodnost∇h(x) je rovna m. My si toto poslední tvrzení odvodíme jiným způsobem v 11. kapitole.Dvojici (x, λ), která splňuje (9.18), budeme opět nazývat Karush-Kuhn-Tuckerova dvojicenebo stručně KKT-dvojice. Soustavu (9.18) s podmínkou h(x) = o nazýváme Karush--Kuhn-Tuckerovou podmínkou nebo stručně KKT-podmínkou.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ést dalšícharakteristiku omezujících podmínek a tou je normálový kužel.149. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 150Definice 9.4. Množinu N Ω (x) nazveme normálový kužel v x k množině Ω, pokud jeortogoná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ínka totiž zaručujeplatnost podmínky (9.17)), ale navíc i jednoznačnost λ splňující podmínku (9.18). Toutopodmínkou je regularita bodu x. Pro rovnostní vazby ji zavedeme v následující definici.Obsah150. strana ze 333◭ ◭ ◮ ◮◭◮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.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 151Poznámka 9.8. Přípustný bod, který splňuje podmínku regularity, bývá v některých textechoznač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ámzaruč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 ∈ R : x 2 1 + x 2 2 = 2}.(x 1 ,x 2 )∈ΩNapište Karush-Kuhn-Tuckerovu podmínku <strong>pro</strong> tuto úlohu a najděte Karush-Kuhn-Tuckerovydvojice, které ji splňují.Řešení. Pomůžeme si obrázkem 9.3, na kterém jsou znázorněny čárkovaně vrstevnice funkcef a nepřerušovanou čarou je znázorněna kružnice, která představuje přípustnou množinu.Minimum je dosaženo v bodě ̂︀x.Karush-Kuhn-Tuckerova podmínka <strong>pro</strong> tuto úlohu je ve tvaruObsah151. strana ze 333◭ ◭ ◮ ◮◭◮∇ (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.1 V anglické literatuře najde čtenář tuto podmínku pod názvem Linear Independence Constraint Qualificationči pod zkratkou LICQ.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 152∇h(̂︀x)̂︀x∇f(̂︀x)h(x) = 0f(x) = f(̂︀x)ObsahObr. 9.3: Minimum lineární funkce na přípustné množině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}.152. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 153Napište Karush-Kuhn-Tuckerovu podmínku <strong>pro</strong> tuto úlohu a najděte Karush-Kuhn-Tuckerovydvojice, které ji splňují.Řešení. Pomůžeme si obrázkem 9.4, na kterém jsou znázorněny čárkovaně kruhové vrstevnicefunkce f a nepřerušovanou čarou je znázorněna přímka, která představuje přípustnoumnožinu. Minimum je dosaženo v bodě ̂︀x.Obsahf(x) = f(̂︀x)153. strana ze 333̂︀x ∇h(̂︀x) h(x) = 0◭ ◭ ◮ ◮◭◮∇f(̂︀x)Obr. 9.4: 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)︀+ λ∇(x1 ,x 2 ) (x 2 + 5) = o, x 2 = −5.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 154Z 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-Tuckerovydvojice, které ji splňují.Obsah154. strana ze 333◭ ◭ ◮ ◮◭◮Řešení. Pomůžeme si obrázkem 9.5, na kterém jsou znázorněny čárkovaně kruhové vrstevnicefunkce f a nepřerušovanou čarou jsou znázorněny přímky, které představují přípustnoumnož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)︀+ λ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.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 155h(x) = 0∇h(̂︀x)̂︀x ∇f(̂︀x)∇h(̂︀x)f(x) = f(̂︀x) h(x) = 0ObsahObr. 9.5: Minimum kvadratické funkce na přípustné množině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.155. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 1569.5. Odvození Snellova zákona lomuNyní si ukážeme aplikaci Karush-Kuhn-Tuckerových podmínek při odvození Snellova zákonalomu. Uvažujme hladkou dvojrozměrnou křivku popsanou rovnicí h(x) = 0, kde funkceh : R 2 → R je spojitě diferencovatelná. Nechť tato křivka rozděluje jako na obrázku 9.6rovinu na dvě oblasti a rychlost světla je v každé z těchto oblastí různá. Dále nechť y a z jsoubody ležící na opačných stranách křivky h(x) = 0. Předpokládejme, že světlo, které <strong>pro</strong>jdecestu z bodu y do z, <strong>pro</strong>tíná křivku h(x) = 0 v bodě x * . Označme rychlost světla v oblastis bodem y jako v y a rychlost světla v oblasti s bodem z jako v z , tzn. že světelný paprsek<strong>pro</strong>jde úsečku −→ yx * rychlostí v y 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) = 0v 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.Dle Fermatova principu <strong>pro</strong>jde světlo z bodu y do z po cestě s minimální délkou trváníprůchodu světla. Na základě toho můžeme najít polohu bodu x * ležícího na křivce h(x) = 0jako ř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 do boduz. Funkce f je dána takto‖y − x‖ ‖z − x‖f(x) = + .v y v zPro 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 existencex * a λ * , <strong>pro</strong> které platí (dle věty 9.3 a podmínky (9.18)) Karush-Kuhn-TuckerovaObsah156. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 157∇h (x * )x *φ yyObsahzφ z h(x) = 0Obr. 9.6: Snellův zákon lomu157. strana ze 333◭ ◭ ◮ ◮◭◮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)Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 158Abychom 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říčkoutohoto rovnoběžníku a navíc je podle (9.22) tento vektor kolmý ke křivce h(x) = 0v bodě x * . Vše je zobrazeno na obrázku 9.7.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álenosti jako l. Z obrázku 9.7plynelsin φ y =‖y − x * ‖ , sin φ lz =‖z − x * ‖ .Protože ‖y − x * ‖ = 1v ya ‖z − x * ‖ = 1v zplatíl = sin φ y ‖y − x * ‖ = sin φ yv y, l = sin φ z ‖z − x * ‖ = sin φ zv z.Obsah158. strana ze 333◭ ◭ ◮ ◮◭◮Z toho již snadno odvodímecož je hledaný Snellův zákon lomu.sin φ yv y= sin φ zv z,Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 159∇h (x * )yx *φ y¯yz¯zφ z−∇f (x * )Obsah159. strana ze 333◭ ◭ ◮ ◮◭◮9.6. Interaktivní testObr. 9.7: Snellův zákon lomu - odvozeníNásledující test byl vytvořen pomocí balíčku acrotex. Test zahájíte kliknutím na tlačítko„Zacátek testu“. U otázek, kde lze volit jen jednu odpověď (test nedovolí zaškrtnout více odpovědí),je správná odpověď bodována počtem bodů uvedených v závorce u zadání a špatnáodpověď je bodována 0 body. U otázek, kde lze volit více správných odpovědí, je součetZavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 160bodů správných odpovědí uveden v závorce u zadání a za každou špatnou odpověď budeodečten jeden či více bodů.1. (2b.) Funkce f(x 1 , x 2 ) = x 1 + x 2 + 1 má v bodě (x 1 , x 2 ) = (0, 0) gradient ∇f(x 1 , x 2 )roven(−1, 1).(−1, −1).(1, 1).Obsah2. (2b.) Funkce f(x 1 , x 2 ) = x 1 + x 2 + 1 má v bodě (x 1 , x 2 ) = (1, 1) gradient ∇f(x 1 , x 2 )roven(1, 1).160. strana ze 333◭ ◭ ◮ ◮◭◮(−1, −1).(0, 0).Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 1613. (2b.) Funkce f(x 1 , x 2 ) = x 1 + x 2 + 1 má v bodě (x 1 , x 2 ) = (2, 2) gradient ∇f(x 1 , x 2 )roven(−1, −1).(1, 1).(2, 2).4. (2b.) Funkce f(x 1 , x 2 ) = x 2 1 + x 2 2 má v bodě (x 1 , x 2 ) = (0, 0) gradient ∇f(x 1 , x 2 ) roven(2, 2).(0, 0).(−1, 1).Obsah161. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 1625. (2b.) Funkce f(x 1 , x 2 ) = x 2 1 + x 2 2 má v bodě (x 1 , x 2 ) = (1, 0) gradient ∇f(x 1 , x 2 ) roven(2, 2).(2, 0).(0, 2).6. (2b.) Funkce f(x 1 , x 2 ) = x 2 1 + x 2 2 má v bodě (x 1 , x 2 ) = (1, 1) gradient ∇f(x 1 , x 2 ) roven(2, 2).(0, 0).(1, 1).Obsah162. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 1637. (2b.) Funkce f(x 1 , x 2 ) = x 1 + x 2 má v bodě (x 1 , x 2 ) = (0, 0) gradient ∇f(x 1 , x 2 ) roven(0, 0).(1, 1, 1).(1, 1).8. (2b.) Funkce f(x 1 , x 2 ) = x 1 + x 2 má v bodě (x 1 , x 2 ) = (2, 2) gradient ∇f(x 1 , x 2 ) roven(−1, −1).(1, 1).(0, 0).Obsah163. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 1649. (2b.) Funkce f(x 1 , x 2 ) = x 1 + x 2 má v bodě (x 1 , x 2 ) = (−2, −2) gradient ∇f(x 1 , x 2 )roven(1, 1).(2, 0).(0, 2).10. (2b.) Funkce f(x 1 , x 2 ) = x 2 1 + x 2 2 + 7 má v bodě (x 1 , x 2 ) = (0, 0) gradient ∇f(x 1 , x 2 )roven(2, 2).(0, 0).(1, 1).Obsah164. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 16511. (2b.) Funkce f(x 1 , x 2 ) = x 2 1 + x 2 2 + 7 má v bodě (x 1 , x 2 ) = (1, 1) gradient ∇f(x 1 , x 2 )roven(0, 0).(1, 1).(2, 2).12. (2b.) Funkce f(x 1 , x 2 ) = 2x 2 1 +x 2 2 má v bodě (x 1 , x 2 ) = (1, 7) gradient ∇f(x 1 , x 2 ) roven(4, 2).(4, 14).(0, 0).Obsah165. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 16613. (2b.) Funkce f(x 1 , x 2 ) = 2x 2 1 + x 2 2 má v bodě (x 1 , x 2 ) = (−1, −7) gradient ∇f(x 1 , x 2 )roven(0, 0).(4, 2).(−4, −14).14. (2b.) Funkce f(x 1 , x 2 ) = x 2 má v bodě (x 1 , x 2 ) = (1, 0) gradient ∇f(x 1 , x 2 ) roven(2, 2).(0, 1).(1, 1).Obsah166. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 16715. (2b.) Funkce f(x 1 , x 2 ) = x 2 má v bodě (x 1 , x 2 ) = (0, −1) gradient ∇f(x 1 , x 2 ) roven(0, 0).(1, 1).(0, 1).16. (2b.) Funkce f(x 1 , x 2 ) = x 2 má v bodě (x 1 , x 2 ) = (1, 1) gradient ∇f(x 1 , x 2 ) roven(1, 1).(0, 1).(0, 0).Obsah167. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 16817. (2b.) Funkce h(x 1 , x 2 ) = x 2 − 1 má v bodě (x 1 , x 2 ) = (0, 0) gradient ∇f(x 1 , x 2 ) roven(1, 1).(0, −1).(0, 1).18. (2b.) Funkce h(x 1 , x 2 ) = x 2 − 1 má v bodě (x 1 , x 2 ) = (1, 1) gradient ∇f(x 1 , x 2 ) roven(0, 1).(−1, −1).(0, 0).Obsah168. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 16919. (2b.) Funkce h(x 1 , x 2 ) = x 2 − 1 má v bodě (x 1 , x 2 ) = (2, 2) gradient ∇f(x 1 , x 2 ) roven(−1, −1).(1, 2).(0, 1).20. (2b.) Funkce h(x 1 , x 2 ) = x 1 − 1 má v bodě (x 1 , x 2 ) = (0, 0) gradient ∇f(x 1 , x 2 ) roven(1, −1).(1, 0).(0, 1).Obsah169. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 170<strong>21.</strong> (2b.) Funkce h(x 1 , x 2 ) = x 1 − 1 má v bodě (x 1 , x 2 ) = (1, 0) gradient ∇f(x 1 , x 2 ) roven(2, 0).(1, 0).(0, 2).22. (2b.) Funkce h(x 1 , x 2 ) = x 1 − 1 má v bodě (x 1 , x 2 ) = (1, 1) gradient ∇f(x 1 , x 2 ) roven(1, 0).(0, 0).(1, 1).Obsah170. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 17123. (2b.) Funkce h(x 1 , x 2 ) = x 2 1 + x 2 2 − 8 má v bodě (x 1 , x 2 ) = (0, 0) gradient ∇f(x 1 , x 2 )roven(2, 2).(1, 1).(0, 0).24. (2b.) Funkce h(x 1 , x 2 ) = x 2 1 + x 2 2 − 8 má v bodě (x 1 , x 2 ) = (2, 2) gradient ∇f(x 1 , x 2 )roven(1, 1).(4, 4).(2, 2).Obsah171. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 17225. (2b.) Funkce h(x 1 , x 2 ) = x 2 1 + x 2 2 − 8 má v bodě (x 1 , x 2 ) = (−2, −2) gradient ∇f(x 1 , x 2 )roven(−4, −4).(2, 2).(1, 1).26. (2b.) Funkce h(x 1 , x 2 ) = x 1 +2x 2 má v bodě (x 1 , x 2 ) = (0, 0) gradient ∇f(x 1 , x 2 ) roven(2, 2).(1, 2).(1, 1).Obsah172. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 17327. (2b.) Funkce h(x 1 , x 2 ) = x 1 +2x 2 má v bodě (x 1 , x 2 ) = (1, 1) gradient ∇f(x 1 , x 2 ) roven(0, 0).(1, 1).(1, 2).28. (2b.) Funkce h(x 1 , x 2 ) = x 1 + 1 má v bodě (x 1 , x 2 ) = (1, 7) gradient ∇f(x 1 , x 2 ) roven(1, 1).(1, 0).(0, 0).Obsah173. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 17429. (2b.) Funkce h(x 1 , x 2 ) = x 1 + 1 má v bodě (x 1 , x 2 ) = (−1, −7) gradient ∇f(x 1 , x 2 )roven(0, 0).(1, 1).(1, 0).30. (2b.) Funkce h(x 1 , x 2 ) = x 2 + 7 má v bodě (x 1 , x 2 ) = (1, 7) gradient ∇f(x 1 , x 2 ) roven(0, 2).(0, 0).(0, 1).Obsah174. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 17531. (2b.) Funkce h(x 1 , x 2 ) = x 2 + 7 má v bodě (x 1 , x 2 ) = (−1, −7) gradient ∇f(x 1 , x 2 )roven(0, 0).(0, 2).(0, 1).32. (2b.) Funkce h(x 1 , x 2 ) = x 2 1 + x 2 2 − 1 má v bodě (x 1 , x 2 ) = (1, 0) gradient ∇f(x 1 , x 2 )roven(2, 2).(2, 0).(1, 1).Obsah175. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 17633. (2b.) Funkce h(x 1 , x 2 ) = x 2 1 + x 2 2 − 1 má v bodě (x 1 , x 2 ) = (0, −1) gradient ∇f(x 1 , x 2 )roven(0, 0).(2, 2).(0, −2).34. (2b.) Funkce h(x 1 , x 2 ) = x 2 1 + x 2 2 − 1 má v bodě (x 1 , x 2 ) = (1, 1) gradient ∇f(x 1 , x 2 )roven(1, 1).(2, 2).(0, 0).Obsah176. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 17735. (3b.) Která z následujících dvojic splňuje KKT-podmínku, tj. soustavu(9.18) (∇f(x) + ∇h(x) T λ = o) s podmínkou h(x) = o, <strong>pro</strong> úlohumin f(x), Ω = {x ∈x∈Ω R2 : h(x) = o}, h : R 2 → R,kde f(x 1 , x 2 ) = x 1 + x 2 + 1 a h(x 1 , x 2 ) = x 2 − 1.(x 1 , x 2 ) = (2, 2), λ = 1(x 1 , x 2 ) = (0, 0), λ = 0(x 1 , x 2 ) = (1, 1), λ = 1taková dvojice neexistujeObsah177. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 17836. (3b.) Která z následujících dvojic splňuje KKT-podmínku, tj. soustavu(9.18) (∇f(x) + ∇h(x) T λ = o) s podmínkou h(x) = o, <strong>pro</strong> úlohumin f(x), Ω = {x ∈x∈Ω R2 : h(x) = o}, h : R 2 → R,kde f(x 1 , x 2 ) = x 2 1 + x 2 2 a h(x 1 , x 2 ) = x 1 − 1.(x 1 , x 2 ) = (1, 1), λ = − 1 2(x 1 , x 2 ) = (1, 0), λ = −2(x 1 , x 2 ) = (0, 0), λ = 1taková dvojice neexistujeObsah178. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 17937. (3b.) Která z následujících dvojic splňuje KKT-podmínku, tj. soustavu(9.18) (∇f(x) + ∇h(x) T λ = o) s podmínkou h(x) = o, <strong>pro</strong> úlohumin f(x), Ω = {x ∈x∈Ω R2 : h(x) = o}, h : R 2 → R,kde f(x 1 , x 2 ) = x 1 + x 2 a h(x 1 , x 2 ) = x 2 1 + x 2 2 − 8.(x 1 , x 2 ) = (2, 2), λ = 1 4(x 1 , x 2 ) = (0, 0), λ = 0(x 1 , x 2 ) = (−2, −2), λ = − 1 4taková dvojice neexistujeObsah179. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 18038. (3b.) Která z následujících dvojic splňuje KKT-podmínku, tj. soustavu(9.18) (∇f(x) + ∇h(x) T λ = o) s podmínkou h(x) = o, <strong>pro</strong> úlohumin f(x), Ω = {x ∈x∈Ω R2 : h(x) = o}, h : R 2 → R,kde f(x 1 , x 2 ) = x 2 1 + x 2 2 + 7 a h(x 1 , x 2 ) = x 1 + 2x 2 .(x 1 , x 2 ) = (0, 0), λ = 5(x 1 , x 2 ) = (0, 0), λ = 0(x 1 , x 2 ) = (1, 1), λ = 0taková dvojice neexistujeObsah180. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 18139. (3b.) Která z následujících dvojic splňuje KKT-podmínku, tj. soustavu(9.18) (∇f(x) + ∇h(x) T λ = o) s podmínkou h(x) = o, <strong>pro</strong> úlohumin f(x), Ω = {x ∈x∈Ω R2 : h(x) = o}, h : R 2 → R 2 ,kde f(x 1 , x 2 ) = 2x 2 1 + x 2 2, h 1 (x 1 , x 2 ) = x 1 + 1 a h 2 (x 1 , x 2 ) = x 2 + 7.(x 1 , x 2 ) = (−1, −7), (λ 1 , λ 2 ) = (0, 0)(x 1 , x 2 ) = (1, 7), (λ 1 , λ 2 ) = (1, 2)(x 1 , x 2 ) = (−1, −7), (λ 1 , λ 2 ) = (4, 14)taková dvojice neexistujeObsah181. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 18240. (3b.) Která z následujících dvojic splňuje KKT-podmínku, tj. soustavu(9.18) (∇f(x) + ∇h(x) T λ = o) s podmínkou h(x) = o, <strong>pro</strong> úlohumin f(x), Ω = {x ∈x∈Ω R2 : h(x) = o}, h : R 2 → R,kde f(x 1 , x 2 ) = x 2 a h(x 1 , x 2 ) = x 2 1 + x 2 2 − 1.(x 1 , x 2 ) = (1, 0), λ = 1 2(x 1 , x 2 ) = (0, −1), λ = 1 2(x 1 , x 2 ) = (1, 1), λ = − 1 2taková dvojice neexistujeObsah182. strana ze 333◭ ◭ ◮ ◮◭◮Správně zodpovězené otázky:Získané body:Procento úspěšnosti:Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru rovností 183Pro ukončení testu je třeba kliknout na tlačítko „Konec testu“. Opravení testu se <strong>pro</strong>vedekliknutím na tlačítko „Výsledky“, správné odpovědi budou označeny zeleně a červeněbudou označeny odpovědi chybné.Obsah183. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
184Kapitola 10<strong>Metody</strong> řešení úloh s rovnostmiObsahV této kapitole se seznámíme se základními algoritmy <strong>pro</strong> nalezení minima nelineární funkcevzhledem k omezením ve tvaru rovností. Seznámíme se postupně se třemi metodami redukcenaší ú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 vazbaminazývají také podmíněné extrémy. Pro jednoduchost budeme předpokládat, že f je konvexnía že úloha má jediné řešení.184. strana ze 333◭ ◭ ◮ ◮◭◮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ý penalizujeporušení vazeb. Omezíme se zde na nejčastěji používanou metodu kvadratické penalty, kteráZavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s rovnostmi 185a<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 ρ , ve kterémje dosaženo minima penalizované funkce f ρ , nemůže být daleko od přípustné množiny. Jedokonce zřejmé, že kdyby ρ = ∞, pak by bylo minimum f ρ řešením původní úlohy (9.1).Můžeme tedy očekávat, že <strong>pro</strong> dostatečně velké hodnoty penalizačního parametru ρ budeřešení ̂︀x úlohy (9.1) blízko ̂︀x ρ . Efekt penalizace je na obr. 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í. Protose 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)Pro x ∈ Ω tedy platí L 0 (x, λ) = L ρ (x, λ). Předpokládejme, že λ ∈ R m je libovolné, alepředem zvolené a že min L 0 (x, λ) existuje a je dosaženo v jediném argumentu, takže simůžeme označitObsah185. strana ze 333◭ ◭ ◮ ◮◭◮̂︀x 0 = arg min L 0 (x, λ) a ̂︀x ρ = arg min L ρ (x, λ).x xPotom řešení ̂︀x splňujeL 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 ρ , λ) dostanemeZavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s rovnostmi 186f ρ (⃗x) = c∇fObsaĥ︀x 0̂︀x ρ̂︀x186. strana ze 333◭ ◭ ◮ ◮f(x) = cΩ◭◮Obr. 10.1: Význam kvadratické penaltyZavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s rovnostmi 187‖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řidostatečně velkém ρ.Než se podíváme jak ̂︀x ρ splňuje nutnou podmínku minima (9.18), připomeňme si, žerozšíř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ňuje∇ x L ρ (̂︀x ρ , λ) = ∇f(̂︀x ρ ) + ∇h(̂︀x ρ ) (︀ λ + ρh(̂︀x ρ ) )︀ = o.Zavedeme-li si označení̃︀λ = λ + ρh(x), (10.4)Obsah187. strana ze 333◭ ◭ ◮ ◮◭◮potom 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 úvah vyplývá, žẽ︀λ 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 libovolnou přesností.Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s rovnostmi 18810.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 −1 a pakpřičíst výsledek ke druhému řádku, čímž vyloučíme x a po změně znaménka dostanemesoustavuBA −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í rovnice dostaneme řešení ̂︀xve 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 postupse č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.Obsah188. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s rovnostmi 18910.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ůžeme dosaditdo (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 jakoZ T AZy = Z T (b − Ax 0 ),Obsah189. strana ze 333◭ ◭ ◮ ◮◭◮y = (Z T AZ) −1 Z T (b − Ax 0 )ax = x 0 + Z T y.Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s rovnostmi 190Pokud ř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 sezá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ž častovede k vážným <strong>pro</strong>blémům při počítačové implementaci. Možnou nápravu si vysvětlíme naná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ž dostanemeL ρ , třeba se stejnou hodnotou penalizačního parametru, a budeme hledat argument minimaf ρ tak, jak je naznačeno na obr. 10.2. Výsledkem je klasická metoda rozšířených (augmented)Lagrangiánů, známá též jako metoda multiplikátorů, která byla navržena Hestenesema Powelem v roce 1969.Popíšeme si zde variantu metody rozšířených Lagrangiánů jejímž speciálními případyjsou 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áš algoritmus metody rozšířenýchLagrangiánů si můžeme napsat v následujícím tvaru.Jelikož v x k je dosaženo minimum Lagrangiánu L vzhledem k první <strong>pro</strong>měnné, platíObsah190. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s rovnostmi 191L(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ůObsah191. strana ze 333∇ 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, kterou dostanemeeliminací x k z algoritmu 10.1. Označíme-li si <strong>pro</strong> každé ρ ∈ Rmůžeme použít (10.6) k odvozeníA ρ = A + ρB T B,Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s rovnostmi 192Algoritmus 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 forObsah192. strana ze 333x 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 dostaneme nášalgoritmus rozšířených Lagrangiánů ve tvaru◭ ◭ ◮ ◮◭◮Zvolme λ 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 funkceθ ρ (λ) = 1 2 λT BA −1ρB T λ − (︀ BA −1ρ (b + ρB T c) + c )︀ λ,Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s rovnostmi 193neboť platí∇θ ρ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 algoritmu přepsat natvarλ 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, že funkce θ ρ je až naznamé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 .Obsah193. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s rovnostmi 19410.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ý algoritmusje založen na pozorování, že <strong>pro</strong> dostatečně velké r a přibližné minimum x ρ rozšířenéhoLagrangiánu L ρ (x, λ, ) vzhledem k x můžeme modifikovat λ tak, že x ρ je také přibližnéminimum L 0 (x, ̃︀λ), kde ̃︀λ = λ + r(Bx − c). Tak můžeme doufat, že najdeme lepší a<strong>pro</strong>ximacimultiplikátoru minimalizací L ρ (x, ̃︀λ). Jelikož lepší a<strong>pro</strong>ximaci odpovídá větší hodnotaLagrangiánu, je přirozené zvyšovat hodnotu penalizačního parametru (nebo zvyšovat přesnostřešení vnitřní úlohy) dokud nebude zajištěn růst Lagrangiánu v následujících iteracích.Teorie ukazuje, že hodnota penalizačního parametru ρ (nebo parametru M) není velká(malá) a nezávisí na matici B. Celý algoritmus pak vypadá následovně.Obsah194. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s rovnostmi 195Algoritmus 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 aObsah195. strana ze 333◭ ◭ ◮ ◮◭◮L(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 forZavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s rovnostmi 196V 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í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.Obsah2. 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 rovnost196. strana ze 333◭ ◭ ◮ ◮◭◮min 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 xZavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s rovnostmi 197a<strong>pro</strong>ximuje (až na jednotky) průhyb struny zatížené jednotkovou silou a uchycené na oboukoncí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 − 1Najděte průhyb struny v případě, že její druhá čtvrtina je vázaná tak, že se pohybuje vodorovně,tedyx [n/4] = x [n/4+1] = · · · = x [n/2] .Uvedenou úlohu s omezeními na rovnost řešte pomocí metody vnější penalty.⎡⎢⎣01.10⎤.⎥⎦⎤,⎥⎦Obsah197. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
198Kapitola 11Podmínky minima <strong>pro</strong> úlohys omezením ve tvaru nerovnostíObsah198. strana ze 333V 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 zahrnout do formulaceúlohy omezení zdrojů, které máme k dispozici, požadavky na pevnost konstrukcí 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ážeme si, jak poznat řešení úlohy◭ ◭ ◮ ◮◭◮min 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 je spojitědiferencovatelná. Množina Ω se nazývá přípustná množina. Navíc zde zavedeme množinuZavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 199aktivních nerovnostních vazeb v bodě x (nebo také aktivní množinu v bodě x). Tuto množinuoznačí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) =g(x)≦0 x2 1 + x 2 2, g(x) = 4 − x 1 − x 2 . (11.2)Pomůž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ředstavuje hranici přípustnémnožiny. Přípustná množina je vyšrafována plnými čarami. Minimum je dosaženo v bodě̂︀x.Jelikož minimum f bez omezení je dosaženo ve společném středu všech kružnic popsanýchpomocí 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. Vespolečném bodě ̂︀x platí, že gradient f je násobkem gradientu g, tedy existuje μ ∈ R tak, žeObsah199. strana ze 333◭ ◭ ◮ ◮◭◮∇f(̂︀x) + μ∇g(̂︀x) = o.Dostali jsme tak algebraickou formu našeho pozorování. Jelikož řešení musí být pří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.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 200∇f(̂︀x)̂︀x∇g(̂︀x)g(x) = 0f(x) = f(̂︀x)ObsahObr. 11.1: Minimum kvadratické funkce na poloroviněJelikož rovnice je vektorová, můžeme si systém přepsat jako dvě skalární rovnice a jednunerovnici200. strana ze 333◭ ◭ ◮ ◮◭◮2x 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 jsme získalinejen řešení úlohy (11.2), ale také hodnotu μ, na kterou se nás nikdo neptal. V dalšímvýkladu uvidíme, že μ je důležitá veličina, jejíž pochopení nám umožní zavést nové algoritmya dodatečnou informaci o kvalitě řešení. Také si všimněme, že μ je <strong>pro</strong> naši úlohu kladné.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 20111.2. Úloha kvadratického <strong>pro</strong>gramování s nerovnostmi a 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ími množinami.Tzn. máme úlohumin f(x), f(x) =x∈Ω xT Ax − b T x, Ω = {x ∈ R n : Bx ≦ c}, (11.3)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ředpisemPolyhedrální množinyA(x) = {i ∈ {1, . . . , r} : b i x = c i }.Abychom lépe porozuměli podmínkám řešitelnosti úlohám s omezeními ve tvaru nerovností(11.3), je užitečné zaměřit se na geometrii polyhedrálních množin. K tomu zavedeme 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ý definujeme př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.Obsah201. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 202Polyhedrální množinu Ω můžeme popsat jako součet konvexního obalu konečné množinybodů a polyhedrálního kužele, jehož prvky jsou vektory z množiny Ω. Toto tvrzení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 existuje neprázdnámnožina n-rozměrných vektorů {x 1 , . . . , x k } a polyhedrální kužel C ⊆ R n takový, ž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ími omezenímido 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 jako zobrazení, kterépřiřazuje každému x ∈ R n nejbližší bod ̂︀x ∈ Ω (viz obrázek 11.2). O existenci tohoto boduse vyjadřuje následující tvrzení (které necháme bez důkazu).Obsah202. strana ze 333◭ ◭ ◮ ◮◭◮Věta 11.2. Nechť Ω ⊆ R n je neprázdná uzavřená konvexní množina a x ∈ R n . Potomexistuje 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ětuZavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 203x̂︀xyΩObr. 11.2: 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.Obsah203. strana ze 333◭ ◭ ◮ ◮◭◮Důkaz. Nejprve předpokládáme, že úloha (II) má řešení. To znamená, že existuje y ≧ otakové, ž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}.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 204Náš předpoklad pak znamená, že h /∈ Ω. Označme symbolem ̂︀h ∈ Ω <strong>pro</strong>jekci h na množ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ňuje prvnípodmínku úlohy (I). Abychom ověřili druhou podmínku, připomeňme, že podle předpokladuh /∈ Ω. 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.Tvzení Farkasovy věty je nutno použít při důkazu KKT podmínek <strong>pro</strong> kvadratické úlohys nerovnostními omezeními. Geometrická ilustrace Farkasovy věty je na obrázku 11.3.Obsah204. strana ze 333◭ ◭ ◮ ◮◭◮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í se podmínekoptimality a řešitelnosti (11.3) jsou zformulovány v následujícím tvrzení.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 205hhb 1b 2 b 3db 4b 1b 2 b 3b 4Obr. 11.3: Farkasova věta: řešení úlohy (I) (vlevo) a (II) (vpravo)Věta 11.4. Nechť je <strong>pro</strong>blém (11.3) definován pomocí symetrické matice A ∈ 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), pakObsah205. strana ze 333◭ ◭ ◮ ◮◭◮<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)Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 206Dů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)Zvolíme-li d ∈ C a α dostatečně velké, dostaneme z nezápornosti pravé strany (11.7) žed 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, pakpravá 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čí zvolitdostateč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žinyObsah206. strana ze 333◭ ◭ ◮ ◮◭◮Ω = {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ím také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,Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 207nemá řešení. Díky tomu, můžeme použít Farkasovu větu 11.3, abychom získali y ∈ 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. Jesnadné 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ínkou komplementarity.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ími omezenímipotřebujeme tečný kužel v bodě x k množině Ω, který jsme si zavedli v 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 }.Dále si potřebujeme zavést ještě dvě speciální mnnožiny - kužel přípustných směrů a kuželsměrů poklesu.Definice 11.5. Kužel přípustných směrů v x k množině Ω = {x ∈ R n : g(x) ≦ o} zavedemejako 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}.Obsah207. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 208Pomocí uvedených kuželů si zavedeme nutné podmínky minima <strong>pro</strong> úlohu (11.1). Nejprvevyuž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 vektor Lagrangeovýchmultipliká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, (11.9)μ j ≧ o, ∀j ∈ I, (11.10)μ j · g j (x) = 0, ∀j ∈ I, (11.11)tehdy a jen tehdy, pokud platí podmínkaD(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ínkaObsah208. strana ze 333◭ ◭ ◮ ◮◭◮Ze dvou předchozích vět můžeme v případě, že platíD(x) ∩ T Ω (x) = ∅. (11.13)zavést výsledné tvrzení.T Ω (x) = V Ω (x), (11.14)Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 209Vě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, . . . , 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ínkubývá v některých textech označován jako kvaziregulární bod.T Ω (x) = V Ω (x), (11.19)Obsah209. strana ze 333◭ ◭ ◮ ◮◭◮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íme zá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ě Ω, pokud jeortogoná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) }︀ . (11.20)Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 210Pomocí 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í fa g. Nechť <strong>pro</strong>blém (11.1) má lokální minimum v x, pako ∈ ∇f(x) + N Ω (x). (11.21)Podmínky Fritze - JohnaNejprve si zavedeme obecné podmínky minima, které nepotřebují splnění žádných dodatečnýchpodmínek na nerovnostní vazby.Věta 11.12. Nechť <strong>pro</strong>blém (11.1) má lokální minimum v x. Pak existuje vektor Lagrangeovýchmultiplikátorů μ se složkami μ j , j ∈ {0, . . . , r} takovými, že následující systémje splněn v (x, μ):∇f(x)μ 0 + ∇g(x) T μ = o, (11.22)μ j ≧ 0, ∀j ∈ {0, . . . , r} a ∃j ∈ {0, . . . , r} : μ j ≠ 0, (11.23)μ j · g j (x) = 0, ∀j ∈ I. (11.24)Obsah210. strana ze 333◭ ◭ ◮ ◮◭◮Systém (11.22), (11.23) a (11.24) s podmínkou g(x) ≦ o nazýváme Fritz-Johnovou podmínkou.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 211KKT podmínkyNyní si zavedeme podmínky minima, <strong>pro</strong> jejichž použití je nezbytné splnění další podmínkyna nerovnostní vazby. Touto podmínkou je podmínka regularity.Definice 11.13. Mějme minimalizační úlohu (11.1). Přípustný bod x nazveme regulá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ávislost 1 .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ínkou a zavedeme si ji v následujícímtvrzení. 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, (11.25)kde μ j (j ∈ {1, . . . , r}) nejsou všechny nulové, je μ 0 ≠ 0. Nyní již stačí podělit poslednírovnost multiplikátorem μ 0 a dostaneme se k tvrzení následující věty.Obsah211. strana ze 333◭ ◭ ◮ ◮◭◮1 V anglické literatuře najde čtenář tuto podmínku pod názvem Linear Independence Constraint Qualificationči pod zkratkou LICQ.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 212Věta 11.15. Nechť <strong>pro</strong>blém (11.1) má lokální minimum v x a nechť je <strong>pro</strong> tento bodsplněna podmínka regularity. Pak existuje jediný vektor Lagrangeových multiplikátorů μ sesložkami μ j , j ∈ I := {1, . . . , r} takovými, že následující systém je splněn v (x, μ):∇ x L (x, μ) = ∇f(x) + ∇g(x) T μ = o, (11.26)μ j ≧ o, ∀j ∈ I, (11.27)μ j · g j (x) = 0, ∀j ∈ I. (11.28)Dvojici (x, μ) která splňuje (11.26), (11.27) a (11.28) s podmínkou g(x) ≦ o , budemenazývat Karush-Kuhn-Tuckerova dvojice nebo stručně KKT-dvojice. Systém (11.26),(11.27) a (11.28) s podmínkou g(x) ≦ o nazýváme Karush-Kuhn-Tuckerovou podmínkounebo stručně KKT-podmínkou.Poznámka 11.16. Je dobré si uvědomit, že podmínka regularity v přípustném bodě xnám zaručuje jednoznačnost λ splňující podmínky (11.26), (11.27) a (11.28), 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é. V poslední části této kapitoly ukážeme, jak tuto podmínku nahradit „slabšími“podmínkami tak, abychom měli zajištěnu alespoň existenci Lagrangeový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ímiObsah212. strana ze 333◭ ◭ ◮ ◮◭◮min 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ěte dvojice,které je splňují.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 213Řešení. Pomůžeme si obrázkem 11.4, na kterém jsou znázorněny čárkovaně vrstevnice funkcef 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)Obsah∇g(̂︀x)g(x) = 0∇g(̂︀x)g(x) = 0213. strana ze 333◭ ◭ ◮ ◮f(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 )︀ ++μ 2 ∇ (x1 ,x 2 )(︀−(x1 − 2) 2 − x 2 2 + 4 )︀ = o,Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 214μ 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,Obsah214. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 215μ 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ěřovatsplně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 ∈ R : x 2 1 + x 2 2 ≦ 2}.(x 1 ,x 2 )∈ΩNapište Karush-Kuhn-Tuckerovu podmínku <strong>pro</strong> tuto úlohu a najděte Karush-Kuhn-Tuckerovydvojice, které ji splňují.Řešení. Pomůžeme si obrázkem 11.5, na kterém jsou znázorněny čárkovaně vrstevnice funkcef a nepřerušovanou čarou je znázorněna kružnice, která představuje hranici přípustné množiny.Přípustná množina je vyšrafována plnými čarami. Minimum je dosaženo v bodě ̂︀x.Obsah215. strana ze 333◭ ◭ ◮ ◮◭◮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,Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 216∇f(̂︀x)∇g(̂︀x) ̂︀x g(x) = 0f(x) = f(̂︀x)ObsahObr. 11.5: Minimum lineární funkce na přípustné množiněμ · (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 nerovnic216. strana ze 333◭ ◭ ◮ ◮◭◮1 + 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.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 217Jejich ř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.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}.ObsahNapište Karush-Kuhn-Tuckerovu podmínku <strong>pro</strong> tuto úlohu a najděte Karush-Kuhn-Tuckerovydvojice, které ji splňují.Řešení. Pomůžeme si obrázkem 11.6, na kterém jsou znázorněny čárkovaně kruhové vrstevnicefunkce f a nepřerušovanou čarou je znázorněna přímka, která představuje hranicipřípustné množiny. Přípustná množina je vyšrafována plnými čarami. Minimum je dosaženov bodě ̂︀x.Karush-Kuhn-Tuckerovy podmínky <strong>pro</strong> tuto úlohu jsou ve tvaru217. strana ze 333◭ ◭ ◮ ◮◭◮∇ (x1 ,x 2 )(︀x21 + x 2 2)︀+ μ∇(x1 ,x 2 ) (x 2 + 5) = o,μ ≧ 0,μ · (x 2 + 5) = 0,Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 218f(x) = f(̂︀x)̂︀x ∇g(̂︀x) g(x) = 0∇f(̂︀x)Obr. 11.6: Minimum kvadratické funkce na přípustné množiněx 2 ≦ −5.Z tohoto systému dostaneme po derivování následující systém rovnic a nerovnicObsah218. strana ze 333◭ ◭ ◮ ◮◭◮2x 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.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 219Dá se ukázat, že řešením minimalizační úlohy je bod o složkácĥ︀x 1 = 0, ̂︁x 2 = −5.Příklad 11.20. 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-Tuckerovydvojice, které ji splňují.Řešení. Pomůžeme si obrázkem 11.7, na kterém jsou znázorněny čárkovaně kruhové vrstevnicefunkce f a nepřerušovanou čarou je znázorněna přímka, která představuje hranicipřípustné množiny. Přípustná množina je vyšrafována plnými čarami. Minimum je dosaženov bodě ̂︀x.Karush-Kuhn-Tuckerovy podmínky <strong>pro</strong> tuto úlohu jsou ve tvaruObsah219. strana ze 333◭ ◭ ◮ ◮◭◮∇ (x1 ,x 2 )(︀x21 + x 2 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,Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 220f(x) = f(̂︀x)̂︀x∇g(̂︀x)g(x) = 0ObsahObr. 11.7: Minimum kvadratické funkce na přípustné množiněμ ≧ 0, μ · (−x 2 − 5) = 0,x 2 ≧ −5.Jejich řešením dostaneme složky řešení220. strana ze 333◭ ◭ ◮ ◮◭◮̂︀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.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 221Příklad 11.<strong>21.</strong> Mějme následující minimalizační úlohu se dvěma nerovnostními omezení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-Tuckerovydvojice, které ji splňují.Řešení. Pomůžeme si obrázkem 11.8, na kterém jsou znázorněny čárkovaně kruhové vrstevnicefunkce f a nepřerušovanou čarou jsou znázorněny přímky, které představují hranicipřípustné množiny. Přípustná množina je vyšrafována plnými čarami. Minimum je dosaženov bodě ̂︀x.Karush-Kuhn-Tuckerovy podmínky <strong>pro</strong> tuto úlohu jsou ve tvaru∇ (x1 ,x 2 )(︀x21 + x 2 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,x 1 + x 2 ≧ 1, x 1 − x 2 ≦ 1.Z tohoto systému dostaneme po derivování následující systém rovnic a nerovnicObsah2<strong>21.</strong> strana ze 333◭ ◭ ◮ ◮◭◮2x 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.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 222f(x) = f(̂︀x)∇f(̂︀x)̂︀x∇g(̂︀x) ∇g(̂︀x)g(x) = 0g(x) = 0ObsahObr. 11.8: Minimum kvadratické funkce na přípustné množině222. strana ze 333◭ ◭ ◮ ◮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.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 22311.5. Klasifikace omezení <strong>pro</strong> úlohy s omezeními ve 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}, (11.29)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 fje 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 11.22. 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é definicekužele přípustných směrů můžeme zobecnit tvrzení věty 11.8 a tím získáme tvrzenínásledující věty.Obsah223. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 224Věta 11.23. Nechť <strong>pro</strong>blém (11.29) má lokální minimum v x. Jestliže v bodě x platíT Ω (x) = V Ω (x), (11.30)pak existuje vektor Lagrangeových multiplikátorů μ se složkami μ j , j ∈ {0, . . . , r} a λ seslož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.31)μ j ≧ o, ∀j ∈ I, (11.32)μ j · g j (x) = 0, ∀j ∈ I. (11.33)Poznámka 11.24. 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 (11.29).Obsah224. strana ze 333◭ ◭ ◮ ◮◭◮Pro naši obecnější úlohu je možné také zobecnit podmínku optimality obsaženou vevětě 11.11, která je formulována pomocí normálového kužele k množině Ω. Definice tohotokužele je uvedena v definici 11.10. Toto zobecnění je obsaženo v následující větě.Věta 11.25. Nechť je <strong>pro</strong>blém (11.29) definován pomocí diferencovatelných zobrazení f,h a g. Nechť <strong>pro</strong>blém (11.29) má lokální minimum v x, pako ∈ ∇f(x) + N Ω (x). (11.35)Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 225Pro tento obecnější případ také můžeme přeformulovat věty 11.12 a 11.15 následujícímzpůsobem.Věta 11.26. Nechť <strong>pro</strong>blém (11.29) má lokální minimum v x. Pak existuje vektor Lagrangeovýchmultipliká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 úlohy pouzes nerovnostními omezeními nazýváme Fritz-Johnovou podmínkou.Věta 11.27. Nechť <strong>pro</strong>blém (11.29) má lokální minimum v x a nechť je <strong>pro</strong> tento bodsplně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, ženásledující systém je splněn v (︀ x, λ, μ )︀ :Obsah225. strana ze 333◭ ◭ ◮ ◮◭◮∇ 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 , budemeZavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 226podobně jako u úlohy pouze s nerovnostními omezeními nazývat Karush-Kuhn-Tuckerovadvojice nebo stručně KKT-dvojice. Systém (11.39), (11.40) a (11.41) s podmínkou g(x) ≦ onazýváme Karush-Kuhn-Tuckerovou podmínkou nebo stručně KKT-podmínkou.Nyní se seznámíme s jinými podmínkami, které ve větě 11.27 nahradí podmínku regularitytak, 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ám budeme říkat klasifikaceomezení 1 . Tyto podmínky jsou „slabší“ než podmínka regularity a zaručují pouzeexistenci a nikoliv jednoznačnost Lagrangeových multiplikátorů v systému (11.39), (11.40)a (11.41) s podmínkou g(x) ≦ o.Obsah226. strana ze 333◭ ◭ ◮ ◮◭◮CQ.1 V anglické literatuře najde čtenář tyto podmínky pod názvem Constraint Qualifications či pod zkratkouZavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 227První z těchto klasifikací omezení je klasifikaci omezení na linearitu/konkávnost.Věta 11.28. (o klasifikaci omezení na linearitu/konkávnost) a Nechť <strong>pro</strong>blém (11.29) 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 je splněnv (︀ 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 Constraint Qualification.Obsah227. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 228Další z těchto klasifikací omezení je Mangasarian-Fromovitzova klasifikace omezení.Věta 11.29. (o Mangasarian-Fromovitzově klasifikaci omezení) a Nechť <strong>pro</strong>blém (11.29)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 vektor d 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 μ se slož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.Obsah228. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 229Na závěr si uvedeme Slaterovu klasifikace omezení.Věta 11.30. (o Slaterově klasifikaci omezení) a Nechť <strong>pro</strong>blém (11.29) má lokální minimumv 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 μ se slož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 podzkratkou SCQ.Obsah229. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 23011.6. Interaktivní testNásledující test byl vytvořen pomocí balíčku acrotex. Test zahájíte kliknutím na tlačítko„Zacátek testu“. U otázek, kde lze volit jen jednu odpověď (test nedovolí zaškrtnout více odpovědí),je správná odpověď bodována počtem bodů uvedených v závorce u zadání a špatnáodpověď je bodována 0 body. U otázek, kde lze volit více správných odpovědí, je součetbodů správných odpovědí uveden v závorce u zadání a za každou špatnou odpověď budeodečten jeden či více bodů.1. (2b.) Funkce f(x 1 , x 2 ) = x 1 + x 2 + 1 má v bodě (x 1 , x 2 ) = (0, 0) gradient ∇f(x 1 , x 2 )roven(−1, 1).(−1, −1).(1, 1).Obsah230. strana ze 333◭ ◭ ◮ ◮◭◮2. (2b.) Funkce f(x 1 , x 2 ) = x 1 + x 2 + 1 má v bodě (x 1 , x 2 ) = (1, 1) gradient ∇f(x 1 , x 2 )roven(1, 1). (−1, −1).(0, 0).Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 2313. (2b.) Funkce f(x 1 , x 2 ) = x 1 + x 2 + 1 má v bodě (x 1 , x 2 ) = (2, 2) gradient ∇f(x 1 , x 2 )roven(−1, −1).(1, 1).(2, 2).4. (2b.) Funkce f(x 1 , x 2 ) = x 2 1 + x 2 2 má v bodě (x 1 , x 2 ) = (0, 0) gradient ∇f(x 1 , x 2 ) roven(2, 2).(0, 0).(−1, 1).Obsah231. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 2325. (2b.) Funkce f(x 1 , x 2 ) = x 2 1 + x 2 2 má v bodě (x 1 , x 2 ) = (1, 0) gradient ∇f(x 1 , x 2 ) roven(2, 2).(2, 0).(0, 2).6. (2b.) Funkce f(x 1 , x 2 ) = x 1 + x 2 má v bodě (x 1 , x 2 ) = (2, 2) gradient ∇f(x 1 , x 2 ) roven(0, 0).(1, 1, 1).(1, 1).Obsah232. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 2337. (2b.) Funkce f(x 1 , x 2 ) = x 1 + x 2 má v bodě (x 1 , x 2 ) = (−2, −2) gradient ∇f(x 1 , x 2 )roven(−1, −1).(1, 1).(0, 0).8. (2b.) Funkce f(x 1 , x 2 ) = x 1 + x 2 má v bodě (x 1 , x 2 ) = (−3, −3) gradient ∇f(x 1 , x 2 )roven(1, 1).(2, 0).(0, 2).Obsah233. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 2349. (2b.) Funkce f(x 1 , x 2 ) = x 2 1 + x 2 2 + 7 má v bodě (x 1 , x 2 ) = (0, 0) gradient ∇f(x 1 , x 2 )roven(2, 2).(0, 0).(1, 1).10. (2b.) Funkce f(x 1 , x 2 ) = x 2 1+x 2 2+7 má v bodě (x 1 , x 2 ) = (− 1 5 , −1 7 ) gradient ∇f(x 1, x 2 )roven(0, 0).(− 1 5 , −1 7 ).Obsah234. strana ze 333◭ ◭ ◮ ◮◭◮(− 2 5 , −2 7 ).Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 23511. (2b.) Funkce f(x 1 , x 2 ) = x 2 1+x 2 2+7 má v bodě (x 1 , x 2 ) = (− 1 5 , −2 5 ) gradient ∇f(x 1, x 2 )roven(− 1 5 , −2 5 ).(− 2 5 , −4 5 ).(0, 0).12. (2b.) Funkce f(x 1 , x 2 ) = x 2 má v bodě (x 1 , x 2 ) = (0, 0) gradient ∇f(x 1 , x 2 ) roven(2, 2).(0, 1).(1, 1).Obsah235. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 23613. (2b.) Funkce f(x 1 , x 2 ) = x 2 má v bodě (x 1 , x 2 ) = (0, 1) gradient ∇f(x 1 , x 2 ) roven(0, 0).(1, 1).(0, 1).14. (2b.) Funkce f(x 1 , x 2 ) = x 2 má v bodě (x 1 , x 2 ) = (0, −1) gradient ∇f(x 1 , x 2 ) roven(1, 1).(0, 1).(0, 0).Obsah236. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 23715. (2b.) Funkce g(x 1 , x 2 ) = −x 2 + 1 má v bodě (x 1 , x 2 ) = (0, 0) gradient ∇f(x 1 , x 2 ) roven(1, 1).(0, 1).(0, −1).16. (2b.) Funkce g(x 1 , x 2 ) = −x 2 + 1 má v bodě (x 1 , x 2 ) = (1, 1) gradient ∇f(x 1 , x 2 ) roven(0, −1).(−1, −1).(0, 0).Obsah237. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 23817. (2b.) Funkce g(x 1 , x 2 ) = −x 2 + 1 má v bodě (x 1 , x 2 ) = (2, 2) gradient ∇f(x 1 , x 2 ) roven(−1, −1).(1, 2).(0, −1).18. (2b.) Funkce g(x 1 , x 2 ) = −x 1 + 1 má v bodě (x 1 , x 2 ) = (0, 0) gradient ∇f(x 1 , x 2 ) roven(1, −1).(−1, 0).(0, 1).Obsah238. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 23919. (2b.) Funkce g(x 1 , x 2 ) = −x 1 + 1 má v bodě (x 1 , x 2 ) = (1, 0) gradient ∇f(x 1 , x 2 ) roven(2, 0).(−1, 0).(0, 2).20. (2b.) Funkce g(x 1 , x 2 ) = x 1 − 1 má v bodě (x 1 , x 2 ) = (0, 0) gradient ∇f(x 1 , x 2 ) roven(1, −1).(1, 0).(0, 1).Obsah239. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 240<strong>21.</strong> (2b.) Funkce g(x 1 , x 2 ) = x 1 − 1 má v bodě (x 1 , x 2 ) = (1, 0) gradient ∇f(x 1 , x 2 ) roven(2, 0).(1, 0).(0, 2).22. (2b.) Funkce g(x 1 , x 2 ) = x 2 1 + x 2 2 − 8 má v bodě (x 1 , x 2 ) = (2, 2) gradient ∇f(x 1 , x 2 )roven(2, 2).(1, 1).(4, 4).Obsah240. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 24123. (2b.) Funkce g(x 1 , x 2 ) = x 2 1 + x 2 2 − 8 má v bodě (x 1 , x 2 ) = (−2, −2) gradient ∇f(x 1 , x 2 )roven(1, 1).(−4, −4).(2, 2).24. (2b.) Funkce g(x 1 , x 2 ) = x 2 1 + x 2 2 − 8 má v bodě (x 1 , x 2 ) = (−3, −3) gradient ∇f(x 1 , x 2 )roven(−6, −6).(2, 2).(1, 1).Obsah241. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 24225. (2b.) Funkce g(x 1 , x 2 ) = x 1 + 2x 2 + 1 má v bodě (x 1 , x 2 ) = (0, 0) gradient ∇f(x 1 , x 2 )roven(2, 2).(1, 2).(1, 1).26. (2b.) Funkce g(x 1 , x 2 ) = x 1 +2x 2 +1 má v bodě (x 1 , x 2 ) = (− 1 5 , −1 7 ) gradient ∇f(x 1, x 2 )roven(0, 0).(− 1 5 , −1 7 ).(1, 2).Obsah242. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 24327. (2b.) Funkce g(x 1 , x 2 ) = x 1 +2x 2 +1 má v bodě (x 1 , x 2 ) = (− 1 5 , −2 5 ) gradient ∇f(x 1, x 2 )roven(0, 0).(− 1 5 , −2 5 ).(1, 2).28. (2b.) Funkce g(x 1 , x 2 ) = x 2 1 + x 2 2 − 1 má v bodě (x 1 , x 2 ) = (0, 0) gradient ∇f(x 1 , x 2 )roven(2, 2).(0, 0).(1, 1).Obsah243. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 24429. (2b.) Funkce g(x 1 , x 2 ) = x 2 1 + x 2 2 − 1 má v bodě (x 1 , x 2 ) = (0, 1) gradient ∇f(x 1 , x 2 )roven(0, 0).(2, 2).(0, 2).30. (2b.) Funkce g(x 1 , x 2 ) = x 2 1 + x 2 2 − 1 má v bodě (x 1 , x 2 ) = (0, −1) gradient ∇f(x 1 , x 2 )roven(1, 1).(0, −2).(0, 0).Obsah244. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 24531. (3b.) Která z následujících dvojic splňuje KKT-podmínku, tj. soustavu(11.26) (∇f(x) + ∇g(x) T μ = o), (11.27) (μ j ≧ o, ∀j ∈ I = {1, . . . , r})a (11.28) (μ j · g j (x) = 0, ∀j ∈ I = {1, . . . , r}) s podmínkou g(x) ≦ o,<strong>pro</strong> úlohuminx∈Ω f(x), Ω = {x ∈ R2 : g(x) ≦ o}, g : R 2 → R,kde f(x 1 , x 2 ) = x 1 + x 2 + 1 a g(x 1 , x 2 ) = −x 2 + 1.(x 1 , x 2 ) = (1, 1), μ = 0(x 1 , x 2 ) = (0, 0), μ = 1(x 1 , x 2 ) = (2, 2), μ = 0Obsahtaková dvojice neexistuje245. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 24632. (3b.) Která z následujících dvojic splňuje KKT-podmínku, tj. soustavu(11.26) (∇f(x) + ∇g(x) T μ = o), (11.27) (μ j ≧ o, ∀j ∈ I = {1, . . . , r})a (11.28) (μ j · g j (x) = 0, ∀j ∈ I = {1, . . . , r}) s podmínkou g(x) ≦ o,<strong>pro</strong> úlohuminx∈Ω f(x), Ω = {x ∈ R2 : g(x) ≦ o}, g : R 2 → R,kde f(x 1 , x 2 ) = x 2 1 + x 2 2 a g(x 1 , x 2 ) = −x 1 + 1.(x 1 , x 2 ) = (1, 0), μ = −2(x 1 , x 2 ) = (1, 0), μ = 2(x 1 , x 2 ) = (0, 0), μ = 0taková dvojice neexistujeObsah246. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 24733. (3b.) Která z následujících dvojic splňuje KKT-podmínku, tj. soustavu(11.26) (∇f(x) + ∇g(x) T μ = o), (11.27) (μ j ≧ o, ∀j ∈ I = {1, . . . , r})a (11.28) (μ j · g j (x) = 0, ∀j ∈ I = {1, . . . , r}) s podmínkou g(x) ≦ o,<strong>pro</strong> úlohuminx∈Ω f(x), Ω = {x ∈ R2 : g(x) ≦ o}, g : R 2 → R,kde f(x 1 , x 2 ) = x 2 1 + x 2 2 a g(x 1 , x 2 ) = x 1 − 1.(x 1 , x 2 ) = (0, 0), μ = 0(x 1 , x 2 ) = (1, 0), μ = 2(x 1 , x 2 ) = (1, 0), μ = −2taková dvojice neexistujeObsah247. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 24834. (3b.) Která z následujících dvojic splňuje KKT-podmínku, tj. soustavu(11.26) (∇f(x) + ∇g(x) T μ = o), (11.27) (μ j ≧ o, ∀j ∈ I = {1, . . . , r})a (11.28) (μ j · g j (x) = 0, ∀j ∈ I = {1, . . . , r}) s podmínkou g(x) ≦ o,<strong>pro</strong> úlohuminx∈Ω f(x), Ω = {x ∈ R2 : g(x) ≦ o}, g : R 2 → R,kde f(x 1 , x 2 ) = x 1 + x 2 a g(x 1 , x 2 ) = x 2 1 + x 2 2 − 8.(x 1 , x 2 ) = (−3, −3), μ = 2(x 1 , x 2 ) = (2, 2), μ = − 14(x 1 , x 2 ) = (−2, −2), μ = 1 4taková dvojice neexistujeObsah248. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 24935. (3b.) Která z následujících dvojic splňuje KKT-podmínku, tj. soustavu(11.26) (∇f(x) + ∇g(x) T μ = o), (11.27) (μ j ≧ o, ∀j ∈ I = {1, . . . , r})a (11.28) (μ j · g j (x) = 0, ∀j ∈ I = {1, . . . , r}) s podmínkou g(x) ≦ o,<strong>pro</strong> úlohuminx∈Ω f(x), Ω = {x ∈ R2 : g(x) ≦ o}, g : R 2 → R,kde f(x 1 , x 2 ) = x 2 1 + x 2 2 + 7 a g(x 1 , x 2 ) = x 1 + 2x 2 + 1.(x 1 , x 2 ) = (0, 0), μ = 0(x 1 , x 2 ) = (− 1 5 , −1 ), μ = 27Obsah(x 1 , x 2 ) = (− 1 5 , −2 5 ), μ = 2 5taková dvojice neexistuje249. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 25036. (3b.) Která z následujících dvojic splňuje KKT-podmínku, tj. soustavu(11.26) (∇f(x) + ∇g(x) T μ = o), (11.27) (μ j ≧ o, ∀j ∈ I = {1, . . . , r})a (11.28) (μ j · g j (x) = 0, ∀j ∈ I = {1, . . . , r}) s podmínkou g(x) ≦ o,<strong>pro</strong> úlohuminx∈Ω f(x), Ω = {x ∈ R2 : g(x) ≦ o}, g : R 2 → R,kde f(x 1 , x 2 ) = x 2 a g(x 1 , x 2 ) = x 2 1 + x 2 2 − 1.(x 1 , x 2 ) = (0, 0), μ = 1(x 1 , x 2 ) = (0, 1), μ = − 1 2Obsah(x 1 , x 2 ) = (0, −1), μ = 1 2taková dvojice neexistuje250. strana ze 333◭ ◭ ◮ ◮◭◮Správně zodpovězené otázky:Získané body:Procento úspěšnosti:Zavřít dokumentCelá obrazovka ⧸︀ Okno
Podmínky minima <strong>pro</strong> úlohy s omezením ve tvaru nerovností 251Pro ukončení testu je třeba kliknout na tlačítko „Konec testu“. Opravení testu se <strong>pro</strong>vedekliknutím na tlačítko „Výsledky“, správné odpovědi budou označeny zeleně a červeněbudou označeny odpovědi chybné.Obsah251. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
252Kapitola 12<strong>Metody</strong> řešení úloh s nerovnostmiObsahV této kapitole se seznámíme se základními algoritmy <strong>pro</strong> nalezení minima nelineární funkcevzhledem 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 minimalizace s nerovnostními vazbami nazývajítaké podmíněné extrémy. Pro jednoduchost budeme předpokládat, že f je konvexní a žeúloha má jediné řešení.252. strana ze 333◭ ◭ ◮ ◮◭◮12.1. Metoda vnitřního bodu - bariéryPrvní jednoduchou možností, jak řešit úlohu s nerovnostními vazbami je metoda bariéry.Ta využívá tzv. bariérovou funkci, kterou si zavedeme dále v textu.Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s nerovnostmi 253Definice 12.1. Definujme <strong>pro</strong> množinu Ω z úlohy (11.1) funkci b : R n → R, která splňujeb| Ω ≧ 0 a b(x) → +∞ <strong>pro</strong> g(x) → 0. Takovou funkci b nazveme bariérovou funkcí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 ≦ 0a φ(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 funkcečikde c i ∈ R jsou vhodné konstanty.b(x) := −b(x) := −m∑︁i=1c ig i (x)m∑︁c i ln (−g i (x)),i=1Obsah253. strana ze 333◭ ◭ ◮ ◮◭◮Pomocí bariérové funkce můžeme úlohu s omezením ve tvaru nerovností (11.1) převéstna úlohu bez omezeníinf n{f(x)+ μb(x) : g(x) ≦ o}. (12.1)minμ≧0x∈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ího bodu.Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s nerovnostmi 254Pří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 ≦ 0 k úlozebez omezenímin inf {x − μ: −x + 1 ≦ 0}.μ≧0 x∈R −x + 1Uveďme si bez důkazu následující tvrzení.Obsah254. strana ze 333◭ ◭ ◮ ◮◭◮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).Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s nerovnostmi 255Algoritmus 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 kObsah255. strana ze 333◭ ◭ ◮ ◮◭◮12.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íchvazeb do cenové funkce tak, že k ní přičteme vhodný člen, který penalizujeporušení vazeb. Omezíme se zde, podobně jako v kapitole 10, na nejčastěji používanoumetodu kvadratické penalty, která a<strong>pro</strong>ximuje řešení ̂︀x úlohy (11.1) řešením ̂︀x ρ úlohyZavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s nerovnostmi 256min 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 ρ , ve kterémje dosaženo minimum penalizované funkce f ρ nemůže být daleko od přípustné množiny. Jedokonce 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é hodnoty penalizačního parametru ρ budeřešení ̂︀x úlohy (11.1) blízko ̂︀x ρ . Je zřejmé, že řešení penalizované úlohy je typicky blízkopřípustné množiny, avšak nepatří do ní. Proto se naše penalizační metoda nazývá takémetoda externí penalty.12.3. SMALBENásledující algoritmus je modifikací algoritmu SMALE ze sekce 10.5. Jediným rozdílem je,že algoritmus SMALBE řeší ve vnitřní smyčce úlohu s jednoduchými omezeními zdola s přesností,která je řízena eukleidovskou normou <strong>pro</strong>jektovaného gradientu 1 . Celý algoritmus pakvypadá následovně.Obsah256. strana ze 333◭ ◭ ◮ ◮◭◮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 .Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s nerovnostmi 257Algoritmus 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ů.}Obsahλ 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 for257. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s nerovnostmi 25812.4. Interaktivní ukázka použití metod <strong>pro</strong> řešení úloh s nerovnostmiPro ilustraci fungování metod vhodných <strong>pro</strong> řešení úloh s nerovnostními omezeními a jejichporovnání je vhodné využít tento applet. Je zde k dispozici metoda bariéry, metoda penaltya metoda SMALBE. Tento applet byl vytvořen v software Mathematica. Pro použití appletumusíte mít nainstalován Wolfram CDF Player.V appletu je možné si vybrat minimalizaci některé z osmi funkcí dvou <strong>pro</strong>měnnýchs omezením na nerovnost (zde si můžete vybrat pět různých omezení), zvolit si počátečníbod x 0 iteračního <strong>pro</strong>cesu, ovlivňovat zobrazení grafu minimalizované funkce i některá nastavenímetody bariéry, penalty a SMALBE. Aplikace Vám umožní sledovat iterační <strong>pro</strong>ceshledání minima pomocí metody bariéry, penalty i SMALBE. Můžete také porovnat počtyiterací jednotlivých metod, které jsou potřeba k nalezení minima zvolené funkce. Přípustnámnožina daná nerovnostním omezením je v grafu zobrazující vrstevnice minimalizovanéfunkce vykreslena šedě.Příklady k <strong>pro</strong>cvičení1. Nakreslete graf a vrstevnice funkceObsah258. strana ze 333◭ ◭ ◮ ◮◭◮f(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∈ΩUvedenou úlohu s omezením na nerovnost řešte pomocí metody vnější penalty.Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s nerovnostmi 2592. 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é na oboukoncí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 1⎤,⎥⎦Obsah259. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
<strong>Metody</strong> řešení úloh s nerovnostmi 260b = − 1n − 1Minimum kvadratické funkce f za podmínky x i ≧ l i , kde l i < 0 definuje překážku, popisujeprůhyb struny nad tuhou překážkou. Otestujte metodu vnější penalty na <strong>pro</strong>blémech s překážkouurčenou hodnotou τ < 0.⎡⎢⎣01.10⎤.⎥⎦Obsah260. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
261Kapitola 13Dualita v konvexním <strong>pro</strong>gramováníObsahV 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ňme si, žepodle Wikipedie „a duality (in mathematics) translates concepts, theorems or mathematicalstructures into other concepts, theorems or structures, in a one-to-one fashion, ofteninvolution“. Dualita nás zajímá zejména <strong>pro</strong>to, že často umožňuje přeformulovat původníúlohu na úlohu, jejíž řešení je mnohem snazší.261. strana ze 333◭ ◭ ◮ ◮◭◮13.1. Dualita <strong>pro</strong> kvadratické <strong>pro</strong>gramování s rovnostními vazbamiZákladní myšlenku si nejprve vyložíme na úloze konvexního kvadratického <strong>pro</strong>gramovánís rovnostmiZavřít dokumentCelá obrazovka ⧸︀ Okno
Dualita v konvexním <strong>pro</strong>gramování 262min 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ředpokladu plyne,ž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 kroky si nyní spojíme sedvě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, žeL 0 (x, λ) = 1 2 xT Ax − b T x + λ T (Bx − c)Obsah262. strana ze 333◭ ◭ ◮ ◮◭◮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řit explicitněduální funkciZavřít dokumentCelá obrazovka ⧸︀ Okno
Dualita v konvexním <strong>pro</strong>gramování 263a 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ůžemesi poslední rovnici zapsat ve tvaru∇Θ(λ) = o.Jelikož BA −1 B T , Hessián −Θ, je podle předpokladu pozitivně definitní, dostáváme tak, žeposlední výraz je ekvivalentmí podmínce minima (2.7) <strong>pro</strong> argument minima −Θ, což jesoučasně argument maxima Θ. Proto KKT dvojice (̂︀x, ̂︀λ) <strong>pro</strong> <strong>pro</strong>blém (13.1) s rovnostnímivazbami řeší též min-max <strong>pro</strong>blémObsah263. strana ze 333◭ ◭ ◮ ◮◭◮̂︀λ řeší duální <strong>pro</strong>blémL 0 (̂︀x, ̂︀λ) = max min L 0(x, λ), (13.6)λ∈Rm x∈R nZavřít dokumentCelá obrazovka ⧸︀ Okno
Dualita v konvexním <strong>pro</strong>gramování 264a <strong>pro</strong>tože ̂︀x je přípustný vektor, platíΘ(̂︀λ) = max Θ(λ), (13.7)λ∈Rm Navíc zřejmě platí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)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)Obsah264. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Dualita v konvexním <strong>pro</strong>gramování 265Odvodili jsme si tak dva <strong>pro</strong>blémy bez omezení, které jsou ekvivalentní původnímu <strong>pro</strong>blémus rovnostními omezeními (13.1). Sedlobodová formulace obsahuje explicitně Lagrangeovymultipliká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ího kvadratické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 soustavaObsah265. strana ze 333◭ ◭ ◮ ◮◭◮∇ 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)Zavřít dokumentCelá obrazovka ⧸︀ Okno
Dualita v konvexním <strong>pro</strong>gramování 266má 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ět 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 znovu vyjádřitexplicitně 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 nerovnostObsah266. strana ze 333◭ ◭ ◮ ◮◭◮−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éž jako∇Θ(λ) ≦ o,Zavřít dokumentCelá obrazovka ⧸︀ Okno
Dualita v konvexním <strong>pro</strong>gramování 267∇Θ(λ) + Iμ = o, μ ≧ o, μ T ∇Θ(λ) = 0nebo(−∇Θ(λ) − 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áme tak, ž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. Proto KKT dvojice (̂︀x, ̂︀λ) <strong>pro</strong> <strong>pro</strong>blém(13.13) s nerovnostními vazbami řeší též min-max <strong>pro</strong>blémObsah267. strana ze 333̂︀λ řeší duální <strong>pro</strong>blémL 0 (̂︀x, ̂︀λ) = max min L 0(x, λ), (13.22)λ∈Rm x∈R n◭ ◭ ◮ ◮◭◮Θ(̂︀λ) = max Θ(λ), (13.23)λ∈Rm a <strong>pro</strong>tože ̂︀x je přípustný vektor, který splňuje podmínku komplementarity (13.21), platíf(̂︀x) = L 0 (̂︀x, λ) = L 0 (̂︀x, ̂︀λ) = Θ(̂︀λ). (13.24)Navíc zřejmě platíZavřít dokumentCelá obrazovka ⧸︀ Okno
Dualita v konvexním <strong>pro</strong>gramování 268f(̂︀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émus rovnostními omezeními (13.13). Sedlobodová formulace obsahuje explicitně Lagrangeovymultipliká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ápornosti za cenu použití složitějšíchmatic. Nahrazení obecnějších nerovností podmínkou nezá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>jekcina přípustnou množinu. Duální <strong>pro</strong>blém je často lépe podmíněný. Duální formulace jeObsah268. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Dualita v konvexním <strong>pro</strong>gramování 269základem efektivních FETI metod rozložení oblasti <strong>pro</strong> paralelní řešení rozsáhlých kontaktníchúloh mechaniky.13.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 m a 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 m a konstantouc ∈ R pomocíObsah269. strana ze 333◭ ◭ ◮ ◮◭◮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}.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Dualita v konvexním <strong>pro</strong>gramování 270Tyto 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émpřípadě, tedy když n f ≠ 0, se n nazývá nevertikální. Nevertikální normála se nazývánormalizovaná, jestliže n f = 1. Tyto definice nám umožňují spojit teorii Lagrangeovýchmultiplikátorů s geometrií oboru hodnot Φ v následujícím lemmatu, které je ilustrováno naobr. 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ňujeH + ⊇ H (Φ), se svislou osou {(z, o) : z ∈ R} je dosaženo vObsah270. strana ze 333◭ ◭ ◮ ◮◭◮z = infx∈R n L(︀ x, λ )︀ .(iii) ̂︀λ je Lagrangeův multiplikátor <strong>pro</strong> řešení konvexní úlohy (13.29), právě když ̂︀λ ≧ oa nejvyššího průsečíku nadroviny H = {(y f , y h ) ∈ R n+1 : 1y f + λ T y h = c}, která splňujeH + ⊇ H (Φ), se svislou osou {(z, o) : z ∈ R}, je dosaženo v y f = f(̂︀x).Zavřít dokumentCelá obrazovka ⧸︀ Okno
Dualita v konvexním <strong>pro</strong>gramování 271f(f(x), h(x))f(̂︀x) = L(̂︀x, ̂︀λ)Obr. 13.1: Ilustrace vizualizačního lematuhObsah271. strana ze 333◭ ◭ ◮ ◮◭◮Dů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žina vektorů,Zavřít dokumentCelá obrazovka ⧸︀ Okno
Dualita v konvexním <strong>pro</strong>gramování 272které 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.Obsah272. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
273Kapitola 14Lineární <strong>pro</strong>gramováníObsahLineární <strong>pro</strong>gramování se zabývá minimalizací cenového funkcionálu na polyedru, t.j. naprů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 faktyz geometrie polyedru, a se dvěma zcela odlišnými přístupy k řešení.273. strana ze 333◭ ◭ ◮ ◮◭◮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)Zavřít dokumentCelá obrazovka ⧸︀ Okno
Lineární <strong>pro</strong>gramování 274kde Ω ⊂ 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é. Tohodosáhneme snadno, když položímeOznačíme-li siA =x = z − w, z ≧ 0, a w ≧ 0.[︂BE −B E OB I −B I I⎡]︂, x = ⎣zwy⎤⎦ , b = ⎣můžeme zapsat úlohu lineárního <strong>pro</strong>gramování ve standardním tvaru⎡b−bo⎤⎦ ,Obsah274. strana ze 333◭ ◭ ◮ ◮◭◮min b T x, Ω = {x ∈ R n+|I| : Ax = c a x ≧ o}. (14.2)x∈ΩZavřít dokumentCelá obrazovka ⧸︀ Okno
Lineární <strong>pro</strong>gramování 27514.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.Obsah275. strana ze 333◭ ◭ ◮ ◮◭◮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.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Lineární <strong>pro</strong>gramování 276Jak 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í formulaceje užitečná <strong>pro</strong> odvození některých efektivních algoritmů <strong>pro</strong> řešení úloh lineárního<strong>pro</strong>gramování.14.3. Metoda vnitřního boduNyní si stručně ukážeme, jak adaptovat metodu vnitřního bodu na řešení úlohy lineá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íšemesi 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 tvaruObsah276. strana ze 333◭ ◭ ◮ ◮◭◮A T λ + μ = b,Ax = c,x T μ = o,x ≧ o,μ ≧ o.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Lineární <strong>pro</strong>gramování 277K řešení této soustavy použijeme variantu Newtonovy metody, a to tak, že budeme v každémkroku zajišťovat splnění podmínky nezápornosti x, μ. Povšimněte si, že ostatní relace jsoubuď 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⎡J(x, λ, μ) = ⎣takže Newtonův směr je definován rovnicíO A T IA O OS O X⎡F (x, λ, μ) + J(x, λ, μ) ⎣△x△λ△μ⎤⎤⎦ ,⎦ = o.Je-li (x k , λ k , μ k ) přípustná vnitřní iterace, t.j. x k > o, μ k > o, pak definujeme novou iteracipomocí(x k+1 , λ k+1 , μ k+1 ) = (x k , λ k , μ k ) + α(△x k , △λ k , △μ k ),Obsah277. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Lineární <strong>pro</strong>gramování 278kde α ∈ (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 vede k 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 relaxovanou rovnici <strong>pro</strong>Newtonův směr ve tvaru⎡⎣O A T ⎤ ⎡IA O O ⎦ ⎣S k O X k△x k ⎤ ⎡△λ k ⎦ = ⎣△μ kKonvergenci k řešení zajistíme zmenšováním σ k .b − A T λ k − μ kc − Ax k−X k S k e + σ k δ k e⎤⎦ .Obsah278. strana ze 333◭ ◭ ◮ ◮14.4. Geometrie simplexové metody◭◮V sekci 14.3 jsme si ukázali, že úlohy lineárního řešení je možné řešit metodami, které bylynavrženy <strong>pro</strong> řešení obecnějších nelineárních úloh. Úloha lineárního <strong>pro</strong>gramování má všakspecifickou strukturu, kterou je možno využít <strong>pro</strong> navržení zcela jiného algoritmu. Hlavnímyšlenka simplexové metody, která využívá tuto specifickou strukturu, 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ženo ve vnitřkupřípustné množiny Ω, ale někde na hranici. Toto pozorování si můžeme snadno dokázat, kdyžZavřít dokumentCelá obrazovka ⧸︀ Okno
Lineární <strong>pro</strong>gramování 279x 0 x 1c T x = c T ̂︀xc T x = constObsahx 2 = ̂︀x279. strana ze 333◭ ◭ ◮ ◮Obr. 14.1 Geometrické znázornění simplexové metody◭◮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ňujeZavřít dokumentCelá obrazovka ⧸︀ Okno
Lineární <strong>pro</strong>gramování 280f(α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 Ω je neprázdná) i formálně,a to i v případě, že Ω je větší než konvexní obal bodů konvexní hranice, tak jako v našempřípadě. My si ho dokážeme v příští sekci.Postup ř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 jeden ze sousedníchbodů hranice, obvykle ve směru nejbližším zápornému gradientu cenové 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ážemev další sekci.Obsah280. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Lineární <strong>pro</strong>gramování 28114.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]︂Obsah281. strana ze 333◭ ◭ ◮ ◮◭◮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 ≧ oa 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.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Lineární <strong>pro</strong>gramování 282Obráceně, předpokládejme, že x je bod konvexní hranice. Bez újmy na obecnosti můžemepředpokládat, že x má dvě komponenty, nenulovou x B ∈ R p a nulovou x N . Ukážemesi sporem, že sloupce a 1 , . . . , a p matice A odpovídající nenulovým komponentám jsou nezávislé.Předpokládejme tedy, že jsou lineárně závislé, takže existují α 1 , . . . , α p tak, že nejsouvš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ých přípustnýchvektorů ve tvaruObsah282. strana ze 333◭ ◭ ◮ ◮◭◮x = 1 2 (x + αα) + 1 (x + αα).2Tím jsme dokázali, že sloupce a 1 , . . . , a p jsou nezávislé, z čehož také vyplývá, že p ≦ m. Pokudm = p, označme si B = [a 1 , . . . , a m ], N = [a m+1 , . . . , a n ], takže A = [B, N], a označmesi x B a x N vektory odpovídajících složek x. Pak x N = o aAx = Bx B = c,Zavřít dokumentCelá obrazovka ⧸︀ Okno
Lineární <strong>pro</strong>gramování 283tedy x B = B −1 c, což je důkaz tvrzení <strong>pro</strong> m = p. Pokud p < m, doplníme a 1 , . . . a p o dalšísloupce do báze oboru hodnot matice A (tedy R m ) a přeuspořádáme x, A tak, ž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 minimum jedosaženo v bodech konvexní hranice. Přirozený důkaz je založen na konkávnosti cenové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 reprezentaci je 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 bodem konvexníhranice přípustné množiny Ω.Důkaz. Nechť x je řešení s nejmenším počtem nenulových komponent p. Bez újmy na obecnostimůžeme předpokládat, že x má dvě komponenty, nenulovou x B ∈ R p a 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é aObsah283. strana ze 333◭ ◭ ◮ ◮◭◮α 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 − αα ∈ Ω.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Lineární <strong>pro</strong>gramování 284Pro každé x ∈ Ω však platíf(x) = b T x ≦ b T x = f(x),takže <strong>pro</strong> dostatečně malé α dostanemeb 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ším počtemnenulových komponent.Dokázali jsme tedy, že sloupce matice A s indexy nenulových složek vektoru x jsounezávislé. Pokud p < m, doplníme a 1 , . . . a p o další sloupce do báze oboru hodnot matice A(tedy R m ). Po vhodném přeuspořádání x, A bude mít vektor x složky s indexy m + 1, . . . , nnulové a prvních m sloupců A bude nezávislých. Podle věty 14.1 je tedy x bodem konvexníhranice.Obsah284. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Lineární <strong>pro</strong>gramování 28514.6. Krok simplexové metodyNejprve využijeme větu 14.2 k zápisu podmínky, kterou splňuje řešení úlohy (14.2), vevhodnější formě než jsou standardní KKT podmínky.Nechť x je bod konvexní hranice, jehož prvních m komponent je nenulových, takže podlevě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,Obsah285. strana ze 333y 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 dostaneme◭ ◭ ◮ ◮◭◮b T y = b T By B + b T Ny N = b T BB −1 c + (b T N − b T BB −1 N)y NJelikož y N ≧ o, je x řešení právě když= b T x + (b T N − b T BB −1 N)y N .b T N − b T BB −1 N ≧ o.Jestliže tedy x není řešení, pak existuje j > m tak, že platíZavřít dokumentCelá obrazovka ⧸︀ Okno
Lineární <strong>pro</strong>gramování 286b 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í platitJelikož Ax = c, dostáváme takAy = Ax + λ(Bd B + Nd N ) = Ax + λ(Bd B + a j ) = c.Bd 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.]︂,Obsah286. strana ze 333◭ ◭ ◮ ◮◭◮i. Ve směru d je možný neomezený poklesNechť d B = −B −1 a j ≧ o. V tomto případě x + λd ∈ Ω <strong>pro</strong> každé λ > 0 alim = −∞λ→∞Zavřít dokumentCelá obrazovka ⧸︀ Okno
Lineární <strong>pro</strong>gramování 287neboť 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žmeSnadno 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ůžemenajít jiný bod konvexní hranice s menší hodnotou cenové funkce. 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ý bod se nevygeneruje dvakrát (cenová funkceklesá v každé iteraci), najde se uvedeným algoritmem řešení <strong>pro</strong>blému v konečném počtukroků.Poznamenejme, že předchozí úvaha nezaručuje, že se <strong>pro</strong> větší úlohy řešení opravdunajde. Důvodem je počet bodů konvexní hranice, který se rovná(︂ )︂ np = .mObsah287. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Lineární <strong>pro</strong>gramování 288Jsou dokonce známé <strong>pro</strong>blémy, <strong>pro</strong> které je opravdu možné najít řešení až po p krocí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, kterouzaznamenal i Time magazín.Obsah288. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
289Kapitola 15Úvod do metod nehladké<strong>optimalizace</strong>Obsah289. strana ze 333V 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 senejprve 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íhopočtu <strong>pro</strong> spojitě diferencovatelné (hladké) funkce. Toto rozšíření nám přináší Clarkeůvkalkul zavádějící zobecněný gradient i v bodech funkce, kde uvažovaná funkce není spojitědiferencovatelná. Clarkeův kalkul je <strong>pro</strong> své vlastnosti vhodný k algoritmizaci hledání minimafunkcí, jež nejsou spojitě diferencovatelné. Jiným kalkulem, který je vhodný <strong>pro</strong> práci◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 290s nehladkými funkcemi je 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álevěnovat nebudeme. 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> nehladkouoptimalizaci.Obsah290. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 29115.1. Základní pojmyNyní se seznámíme s některými základními pojmy z oblasti nehladké analýzy.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í bodux ∈ R n (s modulem K).Obsah291. strana ze 333◭ ◭ ◮ ◮◭◮(iii) Nechť funkce f je lipschitzovsky spojitá v okolí každého x ∈ R n . Pak řekneme, žefunkce 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ího oboru, vekteré funkce, která je lokálně lipschitzovsky spojitá funkce na R n , není diferencovatelná.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 292Věta 15.2. (Rademacher) Nechť funkce f : R n → R je lokálně lipschitzovsky spojitá naR n a nechť D = {x ∈ R n |f je diferencovatelná v x}. Potom Lebesguova míra μ množinybodů, 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é funkce mámezaručenu její diferencovatelnost „skoro všude“. V dalším textu se budeme věnovat řešeníúlohy (15.1), kde funkce f je lokálně lispchitzovsky spojitá. Nyní si zavedeme základní pojmyClarkeova kalkulu.Definice 15.3. Nechť funkce f : R n → R je lipschitzovsky spojitá v okolí bodu x a 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↓0f(y + tv) − f(y),tObsah292. strana ze 333◭ ◭ ◮ ◮◭◮kde y je vektor v R n a t je kladné reálné číslo.Definice 15.4. Nechť funkce f : R n → R je lipschitzovsky spojitá v okolí bodu x. Clarkeůvzobecně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.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 293Poznámka 15.5. V některých textech - zejména v těch, které se věnují analýze konvexníchnehladkých funkcí - se místo pojmu zobecněný gradient používá pojem subdiferenciá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 gradientem popisujenásledující věta.Věta 15.7. Nechť funkce f : R n → R je lipschitzovsky spojitá v okolí bodu x. Pak platí∀v ∈ R n : f 0 (x; v) = max{⟨ζ, v⟩ : ζ ∈ ∂∂f(x)}.Díky Rademacherovu teorému (u lokálně lipschitzovsky spojitých funkcí máme zaručenudiferencovatelnost téměř všude ve smyslu Lebesguovy míry) máme také jinou možnost, jakzkonstruovat Clarkeův zobecněný gradient. Tuto alternativní možnost nabízí níže uvedenávěta.Obsah293. strana ze 333◭ ◭ ◮ ◮◭◮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ázek15.1).Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 294yf(x)xObr. 15.1: Graf f(x) = |x|Tato funkce je lokálně lipschitzovsky spojitá na R a <strong>pro</strong>to je diferencovatelná skorovšude. Jediným bodem, kde tato funkce není diferencovatelná je bod 0. Zobecněný gradientté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ámposkytuje následující věta.Obsah294. strana ze 333◭ ◭ ◮ ◮◭◮Věta 15.9. (O lokálním extrému) Jestliže funkce f, která je lokálně lipschitzovsky spojitána R n , nabývá v bodě x svého lokálního maxima nebo minima, potom platío ∈ ∂∂f(x).Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 295y∂∂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í body optimalizačníúlohymin f(x),x∈Rn kde funkce f je lokálně lipschitzovsky spojitá na R n .Obsah295. strana ze 333◭ ◭ ◮ ◮◭◮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.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 296Uveď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 x 2 − 1 )︀}︀ (viz obrázek 15.3).yf(x)x−1 1Obsah296. strana ze 333Obr. 15.3: Graf f(x) = max {︀ 0, 1 2(︀x 2 − 1 )︀}︀◭ ◭ ◮ ◮◭◮Příklad 15.10. Mějme funkci f(x) = max {︀ 0, 1 (︀2 x 2 − 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á skorovšude. Jedinými body, kde tato funkce není diferencovatelná jsou body −1 a 1. Uvedenáfunkce{︂f(x) = max 0, 1 (︀x 2 − 1 )︀}︂2Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 297má 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ůvzobecněný gradient ∂∂f(1) = ⟨0, 1⟩. Mimo interval ⟨−1, 1⟩ je její Clarkeův zobecněný gradient∂∂f(x) = ∇f(x) = x. Vše je ilustrováno na obrázku 15.4. Body z intervalu ⟨−1, 1⟩ jsou jejímiClarkeovými stacionárními body.y∂∂f(x)−11xObsah297. strana ze 333◭ ◭ ◮ ◮◭◮Obr. 15.4: Zobecněný gradient ∂∂f(x) funkce f(x) = max {︀ 0, 1 2(︀x 2 − 1 )︀}︀Další důležitou vlastností funkce, kterou využijeme na konci této kapitoly, je polohladkost,která souvisí se vztahem mezi směrovou derivací funkce f a jejím Clarkeovým zobecněnénýmgradientem.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 298Definice 15.11. O funkci f : R n → R řekneme, že je polohladká v bodě x, jestliže funkcef je lipschitzovsky spojitá v okolí bodu x a dále platí, že <strong>pro</strong> všechny v ∈ R existuje limitalimV ∈∂∂f(x+tv ′ )v ′ →v,t↓0{V v ′ }.O funkci f : R n → R řekneme, že je slabě polohladká v bodě x, jestliže funkce f jelipschitzovsky spojitá v okolí bodu x a dále platí, že <strong>pro</strong> všechny v ∈ R existuje limitalimV ∈∂∂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éstdva další pojmy a to Clarkeův tečný a Clarkeův normálový kužel.Obsah298. strana ze 333◭ ◭ ◮ ◮◭◮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), definujeme předpisemT Ω (x) = {v ∈ R n | dist 0 Ω (x; v) = 0},kde dist Ω (x) = inf ||x − y||.y∈ΩZavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 299Definice 15.13. Nechť množina Ω je podmnožinou R n a bod x ∈ Ω. Potom Clarkeů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>.Věta 15.14. Nechť Ω je uzavřená podmnožina R n a x ∈ Ω. Dále nechť funkce f : R m → R nje lipschitzovsky spojitá v okolí bodu x a nechť bod x je (vázané) lokální minimum funkcef 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í body optimalizač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áhnoutnapříklad pomocí penalizace (viz následující ukázka). Nevýhodou tohoto postupuje jednak velmi omezené použití pouze na úzký okruh <strong>pro</strong>blémů a dále nutnost volit velikostpenalty předem bez znalosti struktury <strong>pro</strong>blému.Obsah299. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 300minx∈R nm ∑︁i=1|f i (x)|,kde funkce f i (x) jsou spojitě diferencovatelné. Pomocí penalty o velikosti ε > 0 modifikujemevýš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) = x a penaltaε = 0.05. Původní funkci f(x) = |x| zobrazuje obrázek 15.5, modifikovanou funkci f(x) == (x 2 + ε) 1 2 najdeme na obrázku 15.6.Obsah300. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 301yyxObr. 15.5: Graf f(x) = |x|Obr. 15.6: Graf f(x) = (x 2 + ε) 1 2Obsah15.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émbodě x ∈ R n vypočítat hodnotu funkce f(x) a jeden (libovolný) Clarkeův subgradientg ∈ ∂∂f(x). Tato metoda pak na základě znalosti tohoto jednoho subgradientu vygeneruje(jednotkový) směr kroku d <strong>pro</strong> stávající iteraci. Hlavní nevýhodami této metody je neexistenceimplementovatelné ukončující podmínky a neexistence „dobré“ strategie <strong>pro</strong> určovánídélky kroku t k (nelze použít line search, směr d nemusí být směr poklesu). Tím je způsobenmalý řád konvergence 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élka301. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 302kroku 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 tak, jak uvádímeníže.Obsah302. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 303Algoritmus 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 k )x k+1 = x k + t k d kk = k + 1end whileKrok 2. {Dosaď (přibližné) řešení.}̃︀x = x kObsah303. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 30415.4. Svazkové metodyDalší širokou skupinou algoritmů, které jsou určeny <strong>pro</strong> minimalizaci nehladkých funkcí jsoubundle metody a jejich modifikace. Základní verze bundle metod byla vyvinuta nezávisleC. 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í informacinejen 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číme J k . Na základě těchtoinformací 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álenostg i ∈ ∂∂f(y i ) od Clarkeova zobecněného gradientu ∂∂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 funkceObsah304. strana ze 333◭ ◭ ◮ ◮◭◮β(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 metodouv 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 .Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 305Bundle metoda má také vypracovanou strategii volby délky kroku - u základní verze je toklasický line search a tím má tato metoda zaručen vyšší řád konvergence než subgradientnímetoda.Bundle metoda se také umí vyrovnat s případným „špatným“ směrem d k . Pokud směrd k nalezený bundle metodou v bodě x k na základě a<strong>pro</strong>ximovaného Clarkeova zobecněnéhogradientu nevede k dostatečnému poklesu funkční hodnoty, <strong>pro</strong>vedeme tzv. null step, tj.obohatíme náš model přidáním dalšího subgradientu v blízkosti bodu x k a tím „vylepšíme“a<strong>pro</strong>ximaci Clarkeova zobecněného gradientu v bodě x k a 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>vedemetzv. serious step, tj. přejdeme do nového bodu x k+1 = x k + td k , kde velikost kroku t jegenerována pomocí line search.Protože velikost počítačové paměti je omezená a také kvůli zajištění efektivnosti výpočtuje 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 pouzeně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í realizovaný v jazyce Fortran vedl k úlozevyhledá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 kObsah305. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 306Smě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). Slabými∈J kmí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ě cuttingplane method modifikujeme bundle metodu tak, že odstraníme nepříjemnou volbu ε ka priori, tj. volbu velikosti oblasti, na které se a<strong>pro</strong>ximuje Clarkeův zobecněný gradient∂∂f(x k ). Cutting plane method převádí <strong>pro</strong>blém minimalizace nehladké nekonvexní funkcemin f(x) na iterační <strong>pro</strong>blémx∈Rn minkded^fk (x k + d) + 12t k||d|| 2 ,{︀^f k (x k + d) = max f(yi ) + gi T (x k + d − y i ) }︀ {︁ }︁= f(x k ) + max gi T d − βik .i∈J k 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>vedeme linesearch následovaný serious stepem či null stepem stejně jako v předchozím případě. Z numerickýchdůvodů je výhodné řešit duální formulaci výše uvedené úlohy, tím dostanemeopě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 i⃦i∈J ks omezenímλ∑︀ i ≧ 0, i ∈ J k ,λ i = 1.i∈J k+ 1t k∑︀i∈J kλ i β k i ,(15.5)Obsah306. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 307∑︀Směr poklesu d k dostaneme jako d k = −t k λ k i g i, kde λ k i , i ∈ J k je řešením kvadratickéhoi∈J k<strong>pro</strong>gramu (15.5). Očekávaný pokles ve směru d k , je modelován funkcív(t k ) = −t k⃦ ⃦⃦⃦⃦⃦∑︁i∈J kλ i g i⃦ ⃦⃦⃦⃦⃦2− ∑︁ i∈J kλ i β k i .Problematickým místem takto navrženého algoritmu je nyní nutnost volit dopředu koeficientt k . Toto slabé místo je odstraněno použitím strategie <strong>pro</strong> určování délky kroku, kteroupoužívá trust region metoda (podrobněji v kapitole 7). Připomeňme, že hlavní myšlenkatrust region metody je minimalizace funkce f pouze na okolí bodu x 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áno ná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émminimalizujete funkci2) Jestliže (skutečný pokles ≧ k 2· očekávaný pokles), pak zmenšete velikost okolí, na kterémminimalizujete funkci3) Jinak neměňte velikost okolí, na kterém minimalizujete funkciObsah307. strana ze 333◭ ◭ ◮ ◮◭◮Mezi parametry k 1 a k 2 je následující vztah 0 < k 2 ≦ k 1 < 1. Touto strategií nahrazujemeline search v předchozí verzi bundle metody.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 308Spojením této strategie určování délky kroku a bundle metody vzniklé na základě cuttingplane method dostáváme tzv. bundle trust metodu. Její stručný kompletní algoritmusuvádíme níže.Obsah308. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 309Algoritmus 15.3 Algoritmus bundle trust metody.Krok 0. {Inicializace.}Zvolte počáteční bod x 1 ∈ R n a parametry T > 0, 0 < m 1
Úvod do metod nehladké <strong>optimalizace</strong> 310Algoritmus 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 = 1.2) 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žte y j = x k + d ja 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 Serious Step,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−1nebo |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−1nebo |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 ja <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 u j+1 + l j+1)︀ , j = j + 1 a vraťtese 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žte u j+1 = t j ,l j+1 = l j , t j+1 = 1 (︀2 u j+1 + l j+1)︀ , j = j + 1 a vraťte se do 2.Obsah310. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 311Nyní 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 algoritmu platí ε = 0.Věta 15.15. Nechť funkce f je slabě polohladká a lokálně lipschitzovsky spojitá na R n .Jestliže funkce f je omezená zdola a posloupnost iterací generována bundle trust metodou{x k } k∈N je omezená, pak existuje hromadný bod ¯x posloupnosti {x k } k∈N takový, že platí0 ∈ ∂∂f(¯x).15.5. Interaktivní testNásledující test byl vytvořen pomocí balíčku acrotex. Test zahájíte kliknutím na tlačítko„Zacátek testu“. U otázek, kde lze volit jen jednu odpověď (test nedovolí zaškrtnout více odpovědí),je správná odpověď bodována počtem bodů uvedených v závorce u zadání a špatnáodpověď je bodována 0 body. U otázek, kde lze volit více správných odpovědí, je součetbodů správných odpovědí uveden v závorce u zadání a za každou špatnou odpověď budeodečten jeden či více bodů.Obsah311. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 31<strong>21.</strong> (1b.) Clarkeův zobecněný gradient lipschitzovsky spojité funkce f : R → R v okolí bodux ∈ R je v tomto bodě x množina, která jekonvexní.nekonvexní.prázdná.2. (1b.) Clarkeův zobecněný gradient lipschitzovsky spojité funkce f : R 2 → R v okolíbodu x ∈ R 2 je v tomto bodě x množina, která jekonvexní.nekonvexní.Obsah312. strana ze 333◭ ◭ ◮ ◮◭◮prázdná.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 3133. (2b.) Clarkeův zobecněný gradient funkce f(x) = x 2 je v bodě x = 1 dán jako∂∂f (x) = ⟨0, 1⟩.∂∂f (x) = 1.∂∂f (x) = 2.4. (2b.) Clarkeův zobecněný gradient funkce f(x) = |x − 1| je v bodě x = 0 dán jako∂∂f (x) = ⟨−1, 1⟩.∂∂f (x) = 1.∂∂f (x) = −1.5. (2b.) Clarkeův zobecněný gradient funkce f(x) = |x − 1| je v bodě x = 1 dán jakoObsah313. strana ze 333◭ ◭ ◮ ◮◭◮∂∂f (x) = ⟨−1, 1⟩.∂∂f (x) = 1.∂∂f (x) = −1.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 3146. (2b.) Clarkeův zobecněný gradient funkce f(x) = max {0, −5x, x − 1} je v bodě x = −2dán jako∂∂f (x) = ⟨−5, 0⟩.∂∂f (x) = 1.∂∂f (x) = −5.7. (2b.) Clarkeův zobecněný gradient funkce f(x) = max {0, −5x, x − 1} je v bodě x = 0dán jako∂∂f (x) = ⟨−5, 0⟩.∂∂f (x) = 0.∂∂f (x) = −5.Obsah314. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 3158. (2b.) Clarkeův zobecněný gradient funkce f(x) = max {0, −5x, x − 1} je v bodě x = 1dán jako∂∂f (x) = ⟨−5, 0⟩.∂∂f (x) = −5.∂∂f (x) = ⟨0, 1⟩.9. (2b.) Clarkeův subgradient funkce f(x) = x 2 je v bodě x = 0 dán jako1.0.−1.Obsah315. strana ze 333◭ ◭ ◮ ◮◭◮10. (2b.) Clarkeův subgradient funkce f(x) = |x − 1| je v bodě x = 0 dán jako0.1.−1.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 31611. (2b.) Clarkeův subgradient funkce f(x) = |x − 1| je v bodě x = 1 dán jako0.1.2.12. (2b.) Clarkeův subgradient funkce f(x) = max {0, −5x, x − 1} je v bodě x = 0 dán jako1.−3.Obsah−2.13. (2b.) Clarkeův subgradient funkce f(x) = max {0, −5x, x − 1} je v bodě x = 1 dán jako0.316. strana ze 333◭ ◭ ◮ ◮◭◮−2.0.5.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 31714. (3b.) Funkce f(x) = x 2 má Clarkeův stacionární bod v bodě1.0.−1.15. (3b.) Funkce f(x) = −x 2 má Clarkeův stacionární bod v bodě1.0.Obsah−1.16. (3b.) Funkce f(x) = |x − 1| má Clarkeův stacionární bod v bodě317. strana ze 333◭ ◭ ◮ ◮◭◮1.0.−1.Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod nehladké <strong>optimalizace</strong> 31817. (3b.) Funkce f(x) = max {0, −5x, x − 1} má Clarkeův stacionární bod v bodě−2.0.1.Správně zodpovězené otázky:Získané body:Procento úspěšnosti:Obsah318. strana ze 333◭ ◭ ◮ ◮Pro ukončení testu je třeba kliknout na tlačítko „Konec testu“. Opravení testu se <strong>pro</strong>vedekliknutím na tlačítko „Výsledky“, správné odpovědi budou označeny zeleně a červeněbudou označeny odpovědi chybné.◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
319Kapitola 16Úvod do metod globální<strong>optimalizace</strong>Obsah319. strana ze 333V 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 jako Nelder-Meadovametoda. 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>ximace těchto derivací (či gradientů).Tyto metody můžeme tedy obdobně jako v kapitole 3 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 velmi snadnáimplementace a technická realizace těchto metod. Velká výhoda je v tom, že není třebahledat ani Hessián ani gradient během iteračního <strong>pro</strong>cesu. Další výhodou je, že zatímcometody prvního a druhého řádu selhávají mimo jiné při minimalizaci nediferencovatelných◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod globální <strong>optimalizace</strong> 320či nespojitých funkcí, metody globální <strong>optimalizace</strong> jsou schopny najít minima i těchtofunkcí. Z těchto důvodů jsou tyto metody stále v určité míře používány, i přes existencidaleko 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 si potřebujemezavést tzv. simplex. Simplex je zjednodušeně zobecněním trojúhelníku do libovolnéhon-rozměrného <strong>pro</strong>storu. Příklady simplexu v jedno, dvou a trojrozměrném <strong>pro</strong>storu jsou naobrá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 nový bod získáme buďpomocí tzv. zrcadlení, <strong>pro</strong>dloužení či zkrácení simplexu podél přímky dané „nejhorším“vrcholem a těžištěm zbylých bodů simplexu. Pokud tímto nenajdeme „lepší“ bod, pak zachovámebod s „nejlepší“ (nejmenší) funkční hodnotou a zúžíme celý simplex posunutímvšech zbylých vrcholů simplexu směrem k tomuto bodu. Podrobně je uvedený postup ilustrovánv následujícím algoritmu (algoritmus 16.1).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 je těžiště bodůz 1 , z 2 , . . . , z n , z(t) = ¯z + t(z n+1 − ¯z) jsou body na přímce dané body z n+1 a ¯z.Obsah320. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod globální <strong>optimalizace</strong> 321Obsah3<strong>21.</strong> strana ze 333◭ ◭ ◮ ◮◭◮Obr. 16.1: Simplexy v R 1 , R 2 a R 3Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod globální <strong>optimalizace</strong> 322Algoritmus 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í )Obsah322. strana ze 333◭ ◭ ◮ ◮(b) if f −2 < f −1(c) z n+1 := z(−2)(d) else(e) z n+1 := z(−1)(f) end◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod globální <strong>optimalizace</strong> 323Algoritmus Nelder-Meadova metoda - pokračování.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 2)) (vnější zkrácení )3) end(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(h) if f 1 < f n+12(i) z n+1 := z( 1 2 )(j)else= f(z( 1 2)) (vnitřní zkrácení )(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)Obsah323. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod globální <strong>optimalizace</strong> 324Předchozí Nelder-Meadova metoda se dá modifikovat pomocí řízeného náhodného výběru(Controlled Random Search). Parametr t, který určuje nový bod simplexu z(t) jev tomto případě volen náhodně. Touto modifikací dostaneme následující algoritmus (Algoritmus16.2). Mnohem více informací k tomuto algoritmu, který je použitelný <strong>pro</strong> minimalizacifunkcí 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ýchbodů 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)Obsah324. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Úvod do metod globální <strong>optimalizace</strong> 325z 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.Obsah325. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
326Literatura[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 univerzita v Brně(2005).Obsah326. strana ze 333◭ ◭ ◮ ◮◭◮[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).Zavřít dokumentCelá obrazovka ⧸︀ Okno
Literatura 327[8] J. Haslinger, D. Jedelský, T. Kozubek, J. Tvrdík: Genetic and Random Search Methodsin Optimal Shape Design Problems Journal of Global Optimizations 16 (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 now Journalof Computational and Applied Mathematics 124 (2000).[12] J. Nocedal, S. Wright: Numerical Optimization. Springer (2006).[13] R. T. Rockafellar, R. J-B. Wets: Variational Analysis. Springer (1998).Obsah327. strana ze 333◭ ◭ ◮ ◮◭◮[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á univerzitaOstrava (2012).(http://mi<strong>21.</strong>vsb.cz/modul/numerick%C3%A9-metody-1)Zavřít dokumentCelá obrazovka ⧸︀ Okno
328RejstříkAA-konjugované vektory, 78aktivní množina, 199, 201aktivní nerovnostní vazby, 199a<strong>pro</strong>ximace gradientu, 64, 65Armijovo pravidlo, 63, 97Bbariérová funkce, 253bariérová metoda, 253, 255BFGS, 125, 133bisekce, 43, 45, 46bundle metoda, 304bundle trust metoda, 309, 310Ccenová funkce, 13cenový funkcionál, 13centrální diference, 65Clarkeova zobecněná derivace, 292Clarkeův stacionární bod, 295Clarkeův subgradient, 292Clarkeův tečný kužel, 298Clarkeův zobecněný gradient, 292Constraint Qualifications, 226CQ, 226Ddélka kroku, 61dopředné diference, 65dualita<strong>pro</strong> kvadratické <strong>pro</strong>gramovánís nerovnostními vazbami, 265s rovnostními vazbami, 261<strong>pro</strong> rovnosti, 264, 268v konvexním <strong>pro</strong>gramování, 261Obsah328. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Rejstřík 329duální funkce, 262duální <strong>pro</strong>blém<strong>pro</strong> rovnosti, 263, 267FFibonacciova posloupnost, 48Fritz-Johnova podmínka, 210, 225funkceduální, 262konvexní, 31striktně konvexní, 31Gglobalizační strategie, 96globální <strong>optimalizace</strong>, 21globální řešení, 14gradientní metoda, 56–59, 61, 62Gramm–Schmidtův <strong>pro</strong>ces, 82ChCholeského rozklad, 101, 129Iisoperimetrický <strong>pro</strong>blém, 15KKarush-Kuhn-Tuckerova dvojice, 145, 149,188, 212, 226Karush-Kuhn-Tuckerova podmínka<strong>pro</strong> úlohy s omezením ve tvaru nerovností,207, 212, 226, 245–250<strong>pro</strong> úlohy s omezením ve tvaru rovností,145, 149, 156, 157, 177–182kladný polo<strong>pro</strong>stor, 270klasifikace omezení, 226na linearitu/konkávnost, 227na lineární nezávislost, 151, 211konečné diference, 64, 65konjugované vektory, 78, 82konvexnífunkce, 31hranice, 30kombinace, 29množina, 29obal, 30konvexní <strong>pro</strong>gramování, 18Krylovovův <strong>pro</strong>stor, 83kužel, 147, 201polyhedrální, 201kužel přípustných směrů, 207, 223kužel směrů poklesu, 207kvadratické <strong>pro</strong>gramování, 19kvazi-Newtonova metoda, 125Obsah329. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Rejstřík 330kvaziregulární bod, 209, 224LLagrangeova funkce, 141, 142, 201Lagrangián, 141, 142, 201LICQ, 151, 211Linear Independence Constraint Qualification,151, 211Linear/Concave Constraint Qualification,227lineární <strong>pro</strong>gramování, 273Lineární <strong>pro</strong>gramování, 19linesearch, 42, 61lipschitzovská spojitostlokální, 291, 294na množině, 291v okolí bodu, 291–293lokální řešení, 18MMangasarian-Fromovitz Constraint Qualification,228Mangasarian-Fromovitzova klasifikace omezení,228maticepásová, 102MCRS metoda, 324metodatrust region, 115, 307Levenberg-Marquardtova implementace,119metoda bariéry, 253, 255metoda BFGS, 125, 133metoda bundle, 304metoda kvadratické penalty, 184, 255metoda kvazi-Newtonova, 125metoda multiplikátorů, 190metoda největšího spádu, 56–59, 61, 62metoda Nelder-Meadova, 320, 322–324metoda nepřímá, 299metoda Newtonova, 96, 99s modifikací Hessiánu, 100metoda nulového <strong>pro</strong>storu <strong>pro</strong> kvadratické<strong>pro</strong>gramování, 189metoda oboru hodnot <strong>pro</strong> kvadratické <strong>pro</strong>gramování,188metoda rozšířených (augmented) Lagrangiánů,190, 192metoda sdružených gradientů, 77<strong>pro</strong> kvadratické funkce, 82, 86<strong>pro</strong> nelineární funkce, 89–91Obsah330. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Rejstřík 331Fletcher-Reeves, 90, 91Polak-Ribiere, 90, 91metoda sdružených směrů<strong>pro</strong> kvadratické funkce, 78, 81metoda sečen, 125metoda simplexová, 278metoda SMALBE, 256metoda SMALE, 194metoda subgradientní, 301, 303metoda svazková, 304metoda Uzawova typu, 190metoda vnější (externí) penalty, 184, 185,256metoda vnitřního bodu, 253, 276metody globální <strong>optimalizace</strong>, 319MFCQ, 228min-max <strong>pro</strong>blém, 263, 267minimalizace bez derivací, 42, 319minimalizace bez omezení, 18minimalizace s omezením, 138, 198Nnadrovina, 269návrhové <strong>pro</strong>měnné, 17nehladká <strong>optimalizace</strong>, 20, 289Nelder-Meadova metoda, 320, 322–324nelineární <strong>pro</strong>gramování, 20neomezená optimalizaci, 17nepřímá metoda, 299Newtonova metoda, 96, 99s modifikací Hessiánu, 100Newtonův krok, 97, 109, 110, 125normálový kužel, 150, 209null step, 305Oomezená optimalizaci, 17<strong>optimalizace</strong> bez omezení, 17<strong>optimalizace</strong> s omezením, 17Ppodmínka komplementarity, 207podmínky minima<strong>pro</strong> dvojnásobně diferencovatelnou funkci,28<strong>pro</strong> kvadratické úlohy s omezenímve tvaru nerovností, 201, 205ve tvaru rovností, 141, 144<strong>pro</strong> kvadratickou funkci, 25<strong>pro</strong> nelineární úlohy s omezenímve tvaru nerovností, 207, 210, 211ve tvaru rovností, 146Obsah331. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Rejstřík 332<strong>pro</strong> úlohy s omezenímve tvaru nerovností, 199ve tvaru rovností, 138, 139polohladká funkce, 298polyhedrální kužel, 201polyhedrální množiny, 201<strong>pro</strong>jekce na konvexní množinu, 202přípustná křivka, 146přípustná množina, 14, 17přípustný směr, 146Rregularita<strong>pro</strong> nerovnostní vazby, 211<strong>pro</strong> rovnostní vazby, 150reset, 305rozšířený Lagrangián, 185SSCQ, 229serious step, 305simplex, 320simplexová metoda, 278slabě polohladká funkce, 298Slater Constraint Qualification, 229Slaterova klasifikace omezení, 229Snellův zákon lomu, 156, 158spojitá <strong>optimalizace</strong>, 18subdiferenciál, 293subgradientní metoda, 301, 303svazková metoda, 304Ttečný kužel, 147, 207Trust region, 115, 307Levenberg-Marquardtova implementace,119Uukončovací podmínky, 66unimodální funkce, 43Uzawův algoritmus, 192Vvěta Farkasova, 202, 203věta o lokálním extrému nehladké funkce,294věta o podmínce minima kvadratické funkce,25věta o podmínce minima <strong>pro</strong> dvojnásobnědiferencovatelnou funkci, 28věta Rademacherova, 292věta Taylorova, 23Obsah332. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno
Rejstřík 333WWolfeho podmínka, 131Zzáporný polo<strong>pro</strong>stor, 270zlatý řez, 48–51Obsah333. strana ze 333◭ ◭ ◮ ◮◭◮Zavřít dokumentCelá obrazovka ⧸︀ Okno