Programowanie nieliniowe to metoda optymalizacji funkcji celu poprzez maksymalizację lub minimalizację. To biorąc pod uwagę różne podane ograniczenia. Charakteryzuje się tym, że funkcja celu lub niektóre ograniczenia mogą być nieliniowe.
Programowanie nieliniowe jest zatem procesem, w którym funkcja do maksymalizacji lub dowolne z ograniczeń różni się od równania liniowego lub równania pierwszego stopnia, w którym zmienne są podnoszone do potęgi 1.
Musimy pamiętać, że równanie liniowe to matematyczna równość, która może mieć jedną lub więcej niewiadomych. Ma więc następującą podstawową postać, gdzie a i b są stałymi, a x i y są zmiennymi:
topór + b = y
Należy dodać, że nie wszystkie elementy składające się na tego typu programowanie będą zgodne z tą cechą. Na przykład może być tak, że funkcja celu jest równaniem drugiego stopnia i jedna ze zmiennych jest podniesiona do kwadratu, spełniając następującą postać:
y = topór2+ bx + c
Teraz, poprzez programowanie nieliniowe, tę funkcję można zoptymalizować, znajdując maksymalną lub minimalną wartość y. To, biorąc pod uwagę, że x podlega pewnym ograniczeniom.
Elementy programowania nieliniowego
Główne elementy programowania nieliniowego to:
- Funkcja celu: Jest to funkcja, która jest optymalizowana poprzez maksymalizację lub minimalizację jej wyniku.
- Ograniczenia: Są to warunki, które muszą być spełnione przy optymalizacji funkcji celu. Mogą to być równania algebraiczne lub nierówności.
Ćwiczenie z programowania nieliniowego
Na koniec zobaczmy ćwiczenie z programowania nieliniowego.
Załóżmy, że mamy następującą funkcję:
y = 25 + 10x-x2
Mamy również następujące ograniczenie:
y = 50-3x
Jak widać na wykresie, funkcja celu i ograniczenie przecinają się w dwóch punktach, ale gdzie y jest maksymalizowane, gdy x = 2,3, gdzie y = 43 (liczby dziesiętne są przybliżone).
Punkty odcięcia można znaleźć, zrównując oba równania:
25 + 10x-x2= 50-3x
0 = x2-13x + 25
Następnie powyższe równanie kwadratowe ma dwa rozwiązania lub pierwiastki, które można znaleźć za pomocą następujących wzorów, gdzie a = 1, b = -13 i c = 25.
W ten sposób stwierdzamy, że x1 = 2,3467 (y = 43) i x2 = 10,653 (y = 18).
Musimy ostrzec, że ten rodzaj programowania jest bardziej złożony niż liniowy i nie ma tak wielu narzędzi dostępnych online do rozwiązania tego rodzaju optymalizacji. Przedstawiony przykład jest bardzo uproszczonym przypadkiem.