A nemlineáris programozás olyan módszer, amellyel egy célfüggvényt optimalizálnak, maximalizálva vagy minimalizálva. Ezt figyelembe véve a különböző korlátozásokat. Jellemzője, hogy a célfüggvény vagy néhány korlátozás nemlineáris lehet.
A nemlineáris programozás tehát egy olyan folyamat, ahol a maximalizálandó függvény vagy a korlátozások bármelyike eltér a lineáris vagy az első fokú egyenlettől, ahol a változókat az 1 hatványra emelik.
Emlékeznünk kell arra, hogy a lineáris egyenlet egy matematikai egyenlőség, amelynek egy vagy több ismeretlen lehet. Így a következő alapformája van, ahol a és b az állandók, míg x és y a változók:
ax + b = y
Hozzá kell tenni, hogy az ilyen típusú programozást alkotó összes elem nem felel meg ennek a jellemzőnek. Például előfordulhat, hogy a célfüggvény a második fokozat egyenlete, és az egyik változó négyzetes, kitöltve a következő formát:
y = ax2+ bx + c
Most, nemlineáris programozással, ez a függvény optimalizálható, megtalálva az y maximális vagy minimális értékét. Ez, figyelembe véve, hogy x-re bizonyos korlátozások vonatkoznak.
A nemlineáris programozás elemei
A nemlineáris programozás fő elemei a következők:
- Objektív funkció: A funkció optimalizálva van, maximalizálva vagy minimalizálva annak eredményét.
- Korlátozások: Ezeknek a feltételeknek kell megfelelniük a célfüggvény optimalizálásakor. Lehet algebrai egyenlet vagy egyenlőtlenség.
Nemlineáris programozási gyakorlat
Nézzük meg a befejezést egy nemlineáris programozási gyakorlattal.
Tegyük fel, hogy a következő funkciónk van:
y = 25 + 10x-x2
A következő korlátozással is rendelkezünk:
y = 50-3x
Amint azt a grafikonon láthatjuk, a célfüggvény és a korlátozás két pontban metszik egymást, de ahol y maximalizálódik, amikor x = 2,3, ahol y = 43 (a tizedesjegyek hozzávetőlegesek).
A határértékek mindkét egyenlet megegyezésével megtalálhatók:
25 + 10x-x2= 50-3x
0 = x2-13x + 25
Ekkor a fenti másodfokú egyenletnek két megoldása vagy gyöke van, amelyek a következő képletekkel megtalálhatók, ahol a = 1, b = -13 és c = 25.
Így azt találjuk, hogy x1 = 2,3467 (y = 43) és x2 = 10,653 (y = 18).
Figyelmeztetnünk kell, hogy ez a fajta programozás bonyolultabb, mint lineáris, és az interneten nem áll rendelkezésre annyi eszköz az ilyen típusú optimalizálás megoldására. A bemutatott példa nagyon leegyszerűsített eset.