Programowanie nieliniowe jest częściąprogramowanie matematyczne, w którym funkcja nieliniowa jest reprezentowana przez pewne ograniczenia lub funkcję celu. Głównym zadaniem programowania nieliniowego jest znalezienie optymalnej wartości danej funkcji celu z pewną liczbą parametrów i ograniczeń.
Nieliniowe zadania programowania różnią się odproblemy liniowej zawartości optymalnego wyniku, nie tylko w obszarze, który ma pewne ograniczenia, ale także poza nim. Tego rodzaju zadania obejmują zadania programowania matematycznego, które mogą być reprezentowane zarówno przez równości, jak i nierówności.
Programowanie nieliniowe jest sklasyfikowane ww zależności od różnorodności funkcji F (x), funkcji wiązania i wymiaru wektora rozwiązania x. Tak więc nazwa zadania zależy od liczby zmiennych. Korzystając z jednej zmiennej, programowanie nieliniowe można wykonać przy użyciu bezwarunkowej optymalizacji jednego parametru. Przy liczbie zmiennych powyżej jednej można zastosować bezwarunkową optymalizację wielu parametrów.
Aby rozwiązać problemy liniowe, użyjstandardowe metody programowania liniowego (np. metoda simpleks). Ale w przypadku nieliniowego rozwiązania ogólnego nie ma rozwiązania, w każdym przypadku wybiera ono własne i zależy również od funkcji F (x).
Programowanie nieliniowe jest dość powszechne w życiu codziennym. Na przykład jest to nieproporcjonalny wzrost kosztów w stosunku do liczby wyprodukowanych lub zakupionych towarów.
Czasami znaleźć optymalne rozwiązanie wproblemy z programowaniem nieliniowym starają się dokonać aproksymacji do problemów liniowych. Przykładem jest programowanie kwadratowe, w którym funkcja F (x) jest reprezentowana przez wielomian drugiego stopnia w odniesieniu do zmiennych, przy zachowaniu liniowości ograniczeń. Drugim przykładem jest użycie metody funkcji karnej, której zastosowanie, z zastrzeżeniem pewnych ograniczeń, ogranicza zadanie poszukiwania ekstremum do podobnej procedury bez takich ograniczeń, co jest znacznie łatwiejsze do rozwiązania.
Jeśli jednak przeanalizujemy jako całość, to nielinioweprogramowanie jest rozwiązaniem problemów o zwiększonej złożoności obliczeniowej. Bardzo często podczas ich rozwiązania konieczne jest stosowanie przybliżonych metod optymalizacji. Kolejnym potężnym narzędziem, które można zaproponować w celu rozwiązania tego rodzaju problemu, są metody numeryczne umożliwiające znalezienie właściwego rozwiązania z określoną dokładnością.
Jak wspomniano powyżej, programowanie nieliniowe wymaga indywidualnego specjalnego podejścia, które powinno uwzględniać jego specyfikę.
Dostępne są następujące metody programowania nieliniowego:
- Metody własności oparte na gradienciegradient funkcjonalny w punkcie. Innymi słowy, jest to cząstkowy wektor pochodny obliczony w punkcie przyjętym jako wskaźnik do kierunku największego wzrostu funkcji w pobliżu tego punktu.
- Metoda Monte Carlo, która określarównoległościan n-tego wymiaru, który obejmuje wiele planów, do późniejszego modelowania losowych punktów N o jednolitym rozkładzie w tym równoległościanie.
- Metoda programowania dynamicznego sprowadza się do wielowymiarowego zadania optymalizacji zadań do mniejszego wymiaru.
- Metoda programowania wypukłego jest zaimplementowana wznajdowanie minimalnej wartości funkcji wypukłej lub maksymalnej wartości funkcji wklęsłej na wypukłej części zestawu planów. W przypadku gdy zestawem planów jest wypukły wielościan, można zastosować metodę simpleks.