120 likes | 306 Views
Metody nelineárního programování. RNDr. Jiří Dvořák, CSc. dvorak @uai.fme.vutbr.cz. Č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
E N D
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í
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í
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í
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í