Нелинеарно програмирање је метода којом се циљна функција оптимизује, било максимизирањем или минимизирањем. Ово, узимајући у обзир различита дата ограничења. Карактерише се зато што објективна функција или нека од ограничења могу бити нелинеарне.
Нелинеарно програмирање је, дакле, процес где се функција која се максимизира или неко од ограничења разликује од линеарне или једначине првог степена, где се променљиве подижу у степен 1.
Морамо запамтити да је линеарна једначина математичка једнакост која може имати једну или више непознаница. Дакле, он има следећи основни облик, где су а и б константе, док су к и и променљиве:
ак + б = и
Треба додати да неће сви елементи који чине ову врсту програмирања бити у складу са овом карактеристиком. На пример, може бити да је циљна функција једначина другог степена и да је једна од променљивих на квадрат, испуњавајући следећи облик:
и = ос2+ бк + ц
Сада би се помоћу нелинеарног програмирања ова функција могла оптимизовати, проналазећи максималну или минималну вредност и. Ово, узимајући у обзир да к подлеже одређеним ограничењима.
Елементи нелинеарног програмирања
Главни елементи нелинеарног програмирања су следећи:
- Циљ функције: Функција је оптимизирана, било максимизирањем или минимизирањем резултата.
- Ограничења: То су они услови који морају бити испуњени приликом оптимизације циљне функције. То могу бити алгебарске једначине или неједначине.
Вежба нелинеарног програмирања
Да видимо, за крај, вежбу нелинеарног програмирања.
Претпоставимо да имамо следећу функцију:
и = 25 + 10к-к2
Такође имамо следеће ограничење:
и = 50-3к
Као што видимо на графикону, функција циља и ограничење се секу у две тачке, али где је максимализовано и, када је к = 2,3, где је и = 43 (децимале су приближне).
Тачке пресека могу се наћи изједначавањем обе једначине:
25 + 10к-х2= 50-3к
0 = к2-13к + 25
Тада горња квадратна једначина има два решења или корене која се могу наћи помоћу следећих формула, где је а = 1, б = -13 и ц = 25.
Дакле, налазимо да је к1 = 2,3467 (и = 43) и к2 = 10,653 (и = 18).
Морамо упозорити да је ова врста програмирања сложенија од линеарне и да на мрежи нема толико алата за решавање ове врсте оптимизације. Приказани пример је врло поједностављен случај.