Nelineárne programovanie je súčasťoumatematické programovanie, v ktorom je nelineárna funkcia predstavovaná určitými obmedzeniami alebo objektívnou funkciou. Hlavnou úlohou nelineárneho programovania je nájsť optimálnu hodnotu danej objektívnej funkcie s určitým počtom parametrov a obmedzení.
Problémy s nelineárnym programovaním sa líšia odúlohy s lineárnym obsahom optimálneho výsledku nielen v rámci oblasti, ktorá má určité obmedzenia, ale aj mimo nej. Medzi tieto typy problémov patria úlohy matematického programovania, ktoré môžu byť reprezentované rovnosťou aj nerovnosťou.
Nelineárne programovanie je klasifikované dov závislosti od rozmanitosti funkcie F (x), funkcie obmedzenia a dimenzie vektora riešenia x. Názov úlohy teda závisí od počtu premenných. Pri použití jednej premennej je možné nelineárne programovanie vykonať pomocou neobmedzenej optimalizácie jedného parametra. Ak je počet premenných viac ako jedna, môžete použiť neobmedzenú optimalizáciu viacerých parametrov.
Na vyriešenie problémov s linearitou použiteštandardné metódy lineárneho programovania (napr. simplexná metóda). Ale s nelineárnou všeobecnou metódou riešenia neexistuje, je zvolená v každom jednotlivom prípade a závisí to aj od funkcie F (x).
Nelineárne programovanie je bežné v každodennom živote. Napríklad ide o neprimerané zvýšenie nákladov na počet vyrobených alebo zakúpených tovarov.
Niekedy nájsť optimálne riešenie vproblémy nelineárneho programovania sa pokúsi aproximovať lineárne úlohy. Príkladom je kvadratické programovanie, v ktorom je funkcia F (x) reprezentovaná polynómom druhého stupňa vzhľadom na premenné, zatiaľ čo obmedzenia sú lineárne. Druhým príkladom je použitie metódy trestných funkcií, ktorej použitie za prítomnosti určitých obmedzení redukuje úlohu hľadania extrému na podobný postup bez takýchto obmedzení, čo je oveľa jednoduchšie vyriešiť.
Ak to však analyzujeme ako celok, potom nelineárneprogramovanie je riešením problémov so zvýšenou výpočtovou zložitosťou. Pri ich riešení je veľmi často potrebné použiť približné optimalizačné metódy. Ďalším výkonným nástrojom, ktorý možno ponúknuť na riešenie tohto typu problémov, sú numerické metódy, ktoré vám umožňujú nájsť správne riešenie s danou presnosťou.
Ako už bolo spomenuté vyššie, nelineárne programovanie si vyžaduje individuálny špeciálny prístup, ktorý musí brať do úvahy jeho špecifiká.
Existujú nasledujúce techniky nelineárneho programovania:
- Vlastné gradientové metódyfunkčný gradient v bode. Inými slovami, ide o vektor parciálnych derivácií vypočítaný v bode, ktorý sa berie ako indikátor smeru najväčšieho nárastu funkcie v okolí tohto bodu.
- Metóda Monte Carlo, ktorá určujerovnobežnosten n-tej dimenzie vrátane sady plánov pre následné modelovanie náhodných N-bodov s rovnomerným rozložením v tomto rovnobežnostene.
- Metóda dynamického programovania sa redukuje na problém multidimenzionálnej optimalizácie úloh do nižšej dimenzie.
- Metóda konvexného programovania je implementovaná vnájdenie minimálnej hodnoty konvexnej funkcie alebo maximálnej hodnoty konkávneho na konvexnej časti súboru plánov. V prípade, že súpravou vzorov je konvexný mnohosten, môže sa použiť simplexná metóda.