Nelineární programování je součástímatematické programování, ve kterém je nelineární funkce reprezentována určitými omezeními nebo objektivní funkcí. Hlavním úkolem nelineárního programování je najít optimální hodnotu dané objektivní funkce s určitým počtem parametrů a omezení.
Problémy s nelineárním programováním se liší odúkoly s lineárním obsahem optimálního výsledku nejen v oblasti, která má určitá omezení, ale i mimo ni. Mezi tyto typy problémů patří úkoly matematického programování, které mohou být reprezentovány rovností i nerovnostmi.
Nelineární programování je klasifikováno dov závislosti na rozmanitosti funkce F (x), omezovací funkci a dimenzi vektoru řešení x. Název úkolu tedy závisí na počtu proměnných. Při použití jedné proměnné lze nelineární programování provádět pomocí neomezené optimalizace jednoho parametru. Pokud je počet proměnných více než jedna, můžete použít neomezenou optimalizaci více parametrů.
Chcete-li vyřešit problémy s linearitou, použijtestandardní metody lineárního programování (např. simplexní metoda). Ale s nelineární obecnou metodou řešení neexistuje, je zvolena v každém jednotlivém případě a záleží také na funkci F (x).
Nelineární programování je v každodenním životě běžné. Jedná se například o nepřiměřené zvýšení nákladů na počet vyrobeného nebo zakoupeného zboží.
Někdy najít optimální řešení vproblémy nelineárního programování se pokusí provést aproximaci lineárních problémů. Příkladem je kvadratické programování, ve kterém je funkce F (x) reprezentována polynomem druhého stupně s ohledem na proměnné, zatímco omezení jsou lineární. Druhým příkladem je použití metody penalizačních funkcí, jejíž použití za určitých omezení omezuje hledání extrému na podobný postup bez takových omezení, jehož řešení je mnohem snazší.
Pokud to však analyzujeme jako celek, pak nelineárníprogramování je řešením problémů se zvýšenou výpočetní složitostí. Při jejich řešení je velmi často nutné použít přibližné optimalizační metody. Dalším mocným nástrojem, který lze nabídnout pro řešení tohoto typu problému, jsou numerické metody, které vám umožní najít správné řešení s danou přesností.
Jak již bylo zmíněno výše, nelineární programování vyžaduje individuální speciální přístup, který musí brát v úvahu jeho specifika.
Existují následující techniky nelineárního programování:
- Vlastnostní gradientové metodyfunkční přechod v bodě. Jinými slovy, jedná se o vektor parciálních derivací vypočítaných v bodě, který je považován za indikátor směru největšího nárůstu funkce v blízkosti tohoto bodu.
- Metoda Monte Carlo, která určujerovnoběžnostěn n-té dimenze, včetně sady plánů, pro následné modelování náhodných N-bodů s rovnoměrným rozložením v tomto rovnoběžnostěnu.
- Metoda dynamického programování je redukována na problém vícerozměrné optimalizace úlohy do nižší dimenze.
- Konvexní programovací metoda je implementována vnalezení minimální hodnoty konvexní funkce nebo maximální hodnoty konkávní na konvexní části sady plánů. V případě, že sada návrhů je konvexní mnohostěn, lze použít simplexní metodu.