Nelinearno programiranje metoda je kojom se ciljna funkcija optimizira, povećavanjem ili minimiziranjem. To, uzimajući u obzir različita dana ograničenja. Karakterizira se zato što objektivna funkcija ili neka ograničenja mogu biti nelinearne.
Nelinearno programiranje je tada postupak u kojem se funkcija koja se maksimizira ili bilo koje ograničenje razlikuje od linearne jednadžbe ili jednadžbe prvog stupnja, gdje se varijable podižu u stepen 1.
Moramo se sjetiti da je linearna jednadžba matematička jednakost koja može imati jednu ili više nepoznanica. Dakle, on ima sljedeći osnovni oblik, gdje su a i b konstante, dok su x i y varijable:
sjekira + b = y
Treba dodati da svi elementi koji čine ovu vrstu programiranja neće biti u skladu s ovom karakteristikom. Na primjer, može biti da je ciljna funkcija jednadžba drugog stupnja i da je jedna od varijabli na kvadrat, ispunjavajući sljedeći oblik:
y = sjekira2+ bx + c
Sada bi se pomoću nelinearnog programiranja ova funkcija mogla optimizirati, pronalazeći maksimalnu ili minimalnu vrijednost y. To, uzimajući u obzir da x podliježe određenim ograničenjima.
Elementi nelinearnog programiranja
Glavni elementi nelinearnog programiranja su sljedeći:
- Ciljna funkcija: Funkcija je optimizirana, bilo maksimiziranjem ili minimiziranjem rezultata.
- Ograničenja: To su oni uvjeti koji moraju biti zadovoljeni prilikom optimizacije ciljne funkcije. To mogu biti algebarske jednadžbe ili nejednakosti.
Vježba nelinearnog programiranja
Da vidimo, za kraj, vježbu nelinearnog programiranja.
Pretpostavimo da imamo sljedeću funkciju:
y = 25 + 10x-x2
Također imamo sljedeća ograničenja:
y = 50-3x
Kao što možemo vidjeti na grafikonu, funkcija cilja i ograničenje sijeku se u dvije točke, ali gdje je maksimalizirano y je kada je x = 2,3, gdje je y = 43 (decimale su približne).
Granične točke mogu se pronaći izjednačavanjem obje jednadžbe:
25 + 10x-x2= 50-3x
0 = x2-13x + 25
Tada gornja kvadratna jednadžba ima dva rješenja ili korijene koje se mogu naći pomoću sljedećih formula, gdje je a = 1, b = -13 i c = 25.
Dakle, nalazimo da je x1 = 2,3467 (y = 43) i x2 = 10,653 (y = 18).
Moramo upozoriti da je ova vrsta programiranja složenija od linearne i da na mreži nema toliko alata za rješavanje ove vrste optimizacije. Prikazani primjer vrlo je pojednostavljen slučaj.