Metody nelineárního programování RNDr. Jiří Dvořák, CSc. dvorak@uai.fme.vutbr.cz Teorie systémů a operační analýza
Členění metod nelineárního programování Metody NLP můžeme členit na: metody jednorozměrné optimalizace a metody vícerozměrné optimalizace metody hledání volného extrému a metody hledání vázaného extrému metody nevyužívající derivace a metody využívající derivace metody zaručující nalezení nějakého lokálního extrému a metody pro hledání globálního extrému metody přesné a metody heuristické TSOA: Metody nelineárního programování
Metody jednorozměrné optimalizace Předpokládejme, že máme najít minimum funkce () na intervalu [a, b], a že funkce je na tomto intervalu kvazikonvexní. Pak bod minima můžeme s danou přesností najít postupnou redukcí tohoto intervalu. Metody bez použití derivace: Interval zužujeme na základě porovnání hodnot funkce ve dvou vnitřních bodech (metoda zlatého řezu, Fibonacciho metoda). Metody s použitím derivací: V metodě půlení intervalu se interval redukuje na základě znaménka 1. derivace ve středu intervalu. Newtonova metoda využívá 2. derivaci pro hledání kořene rovnice ´() = 0. Metody založené na aproximaci: V každém iteračním kroku se provádí kvadratická nebo kubická interpolace funkce . TSOA: Metody nelineárního programování
Vícerozměrné metody hledání volných extrémů Obvykle se postupuje podle tohoto schématu (předpokládáme minimalizační problém): 1. Nalezneme výchozí řešení x1 a položíme k = 1. 2. Nalezneme vektor dk určující směr dalšího postupu z bodu xk . 3. Přejdeme k dalšímu řešení xk+1 podle vztahu xk+1 = xk + k dk . Koeficient k je často řešením jednorozměrné optimalizační úlohy 4. Postup končí, je-li splněna nějaká podmínka zastavení. V opačném případě položíme k = k + 1 a vrátíme se na krok 2. TSOA: Metody nelineárního programování
Vícerozměrné metody nevyužívající derivace Metody souřadnicového hledání: V nejjednodušším případě se provádí postupné hledání ve směru souřadných os. To je pomalé a hrozí nebezpečí uváznutí v neoptimálním bodě. Určité zrychlení přináší metoda Hooka a Jeevese vkládáním urychlujících kroků podél směru xk+1 – xk. Rosenbrockova metoda čelí nebezpečí uváznutí tak, že před každou iterací dojde k pootočení souřadné soustavy. Metody polyedrického hledání: Funkce n proměnných se minimalizuje pomocí polyedrů s n + 1 vrcholy (vrchol s největší hodnotou se projektuje přes těžiště ostatních vrcholů, které pak spolu s takto získaným bodem vytvářejí další polyedr). Příkladem je metoda Neldera a Meada. Metody konjugovaných směrů: Pro kvadratickou funkci n proměnných tyto metody teoreticky zaručují dosažení minima nejvýše po n krocích. Příkladem je Powellova metoda. TSOA: Metody nelineárního programování
TSOA: Metody nelineárního programování Konjugované směry Nechť D je symetrická matice typu (n, n). Vektory s1, s2, … , sk se nazývají konjugovanými vzhledem k matici D, jestliže jsou lineárně nezávislé a pro všechna i j platí Obecně platí, že minimum kvadratické funkce s n proměnnými může být nalezeno nejvýše v n krocích při podmínce, že hledání se provádí postupně podél směrů s1, s2, … , sn , konjugovaných vzhledem k Hessově matici této funkce. Protože libovolná funkce může být v okolí bodu minima dostatečně dobře nahrazena její kvadratickou aproximací, je pojem konjugovanosti užitečný i při minimalizaci nekvadratických funkcí. TSOA: Metody nelineárního programování
Gradientní metody pro volné extrémy V gradientních metodách se směry dalšího postupu určují pomocí gradientů. Tyto metody vlastně pracují s lineární aproximací účelové funkce pomocí vztahu V metodě největšího spádu (Cauchyho metodě) je směr z bodu xk dán výrazem . V blízkosti stacionárního bodu hrozí nebezpečí pomalé konvergence. Tento nedostatek odstraňuje např. metoda Fletchera a Reevese, která směr největšího spádu odklání pomocí směru z předchozí iterace. Tato metoda patří k metodám sdružených (konjugovaných) směrů, které pro kvadratickou funkci n proměnných teoreticky zaručují dosažení minima nejvýše po n krocích. TSOA: Metody nelineárního programování
Newtonova metoda a kvazinewtonovské metody Newtonova metoda: Tato metoda používá kvadratickou aproximaci účelové funkce pomocí prvých tří členů Taylorova rozvoje. Směr dk dalšího postupu z bodu xk je dán pomocí inverzní Hessovy matice takto: Obecně tato metoda nemusí konvergovat. Rychle konverguje dostatečně blízko minima. Kvazinewtonovské metody: V těchto metodách se inverzní Hessova matice aproximuje pomocí jisté symetrické pozitivně definitní matice Dk . K těmto metodám patří metoda Davidona, Fletchera a Powella, která generuje konjugované směry. TSOA: Metody nelineárního programování
Metody hledání vázaných extrémů Metody založené na transformaci úlohy hledání vázaného extrému na úlohu hledání volného extrému: penalizační a bariérové metody metoda využívající Lagrangeovu funkci rozšířenou o kvadratický penalizační člen Linearizační metody: metody spočívající v řešení posloupnosti úloh LP, aproximujících danou úlohu NLP metody výběru směru založené na linearizaci Metody řešení speciálních úloh: metody kvadratického programování metody separovatelného programování TSOA: Metody nelineárního programování
TSOA: Metody nelineárního programování Penalizační metody Úloha se řeší pomocí posloupnosti úloh hledání volného extrému funkce F(x) = f(x) + k P(x) pro rostoucí kladné hodnoty koeficientů k . P(x) je penalizační funkce, která penalizuje porušení omezujících podmínek. Tato funkce musí být volena tak, že pro přípustná x má nulovou hodnotu a pro nepřípustná x nabývá kladných hodnot. Obvyklý tvar penalizační funkce (p je celé kladné číslo) : TSOA: Metody nelineárního programování
TSOA: Metody nelineárního programování Bariérové metody Úloha se řeší pomocí posloupnosti úloh hledání volného extrému funkce F(x) = f(x) + k B(x) pro klesající kladné hodnoty koeficientů k . B(x) je bariérová funkce zabraňující porušení omezujících podmínek. Jestliže se x blíží k hranici množiny přípustných řešení, bariérová funkce konverguje k nekonečnu. Příklady tvarů bariérové funkce: TSOA: Metody nelineárního programování
Metody výběru směru založené na linearizaci V těchto metodách se pro výběr vhodného směru dalšího postupu používá linearizace pomocí prvých dvou členů Taylorova rozvoje. Metody přípustných směrů vybírají vhodný směr z těch směrů, které nevybočují z množiny přípustných řešení. Příklady těchto metod jsou Zoutendijkova metoda a metoda Topkise a Veinotta, v nichž se vhodný směr určuje řešením úlohy LP. Metody projekce gradientu (např. Rosenova metoda) získávají vhodný směr projekcí gradientu –f(x) na aktivní omezení. Metody redukovaného gradientu (např. Wolfeho metoda) určují vhodný směr pomocí gradientu účelové funkce v podprostoru nezávislých proměnných. TSOA: Metody nelineárního programování