Nelineárne programovanie je metóda, pomocou ktorej sa objektívna funkcia optimalizuje buď maximalizáciou alebo minimalizáciou. Toto, berúc do úvahy rôzne dané obmedzenia. Je charakterizovaná tým, že objektívna funkcia alebo niektoré z obmedzení môžu byť nelineárne.
Nelineárne programovanie je potom proces, pri ktorom sa funkcia, ktorá sa má maximalizovať, alebo ktorékoľvek z obmedzení, líši od lineárnej rovnice alebo rovnice prvého stupňa, kde sa premenné zvyšujú na mocninu 1.
Musíme si uvedomiť, že lineárna rovnica je matematická rovnosť, ktorá môže mať jednu alebo viac neznámych. Má teda nasledujúcu základnú formu, kde a a b sú konštanty, zatiaľ čo x a y sú premenné:
sekera + b = r
Je potrebné dodať, že nie všetky prvky, ktoré tvoria tento typ programovania, budú vyhovovať tejto charakteristike. Môže sa napríklad stať, že cieľovou funkciou je rovnica druhého stupňa a jedna z premenných je štvorcová, pričom má nasledujúcu formu:
y = sekera2+ bx + c
Teraz by bolo možné pomocou nelineárneho programovania túto funkciu optimalizovať a nájsť maximálnu alebo minimálnu hodnotu y. To berúc do úvahy, že x podlieha určitým obmedzeniam.
Prvky nelineárneho programovania
Hlavné prvky nelineárneho programovania sú tieto:
- Objektívna funkcia: Je to funkcia, ktorá je optimalizovaná buď maximalizáciou alebo minimalizáciou jej výsledku.
- Obmedzenia: Sú to tie podmienky, ktoré je potrebné splniť pri optimalizácii objektívnej funkcie. Môžu to byť algebraické rovnice alebo nerovnosti.
Cvičenie nelineárneho programovania
Pozrime sa na záver nelineárne programovacie cvičenie.
Predpokladajme, že máme nasledujúcu funkciu:
y = 25 + 10x-x2
Máme tiež nasledujúce obmedzenie:
y = 50-3x
Ako vidíme na grafe, objektívna funkcia a obmedzenie sa pretínajú v dvoch bodoch, ale kde y je maximalizované je miesto, keď x = 2,3, kde y = 43 (desatinné miesta sú približné).
Hraničné body môžeme nájsť rovnením oboch rovníc:
25 + 10x-x2= 50 - 3 x
0 = x2-13x + 25
Potom má vyššie uvedená kvadratická rovnica dve riešenia alebo korene, ktoré možno nájsť v nasledujúcich vzorcoch, kde a = 1, b = -13 a c = 25.
Zistili sme teda, že x1 = 2,3467 (y = 43) a x2 = 10,663 (y = 18).
Musíme varovať, že tento typ programovania je zložitejší ako lineárny a online nie je k dispozícii toľko nástrojov na vyriešenie tohto typu optimalizácie. Uvedený príklad je veľmi zjednodušený prípad.