Drugi minor główny tej macierzy jest równy 10 > O, a więc w punkcie funkcja / osiąga minimum.
Jednak po podstawieniu współrzędnych otrzymanego punktu do warunku ograniczającego otrzymujemy:
< 16,
50 34
19 + l9
84 8
19 _ 419
a więc punkt ten nie jest ekstremum warunkowym funkcji / przy warunku gx. 2. Należy zatem utworzyć dla powyższego zadania funkcję Lagrange’a:
L(x1,x2,k) = 5xf — 8xxx2 + lx\ — I2x1 — 4x2 + 81 + X(xl + x2 — 16)-*min.
Obliczamy jej pochodne cząstkowe, które następnie przyrównujemy do zera:
-— = 10x, — 8x dxx 1
2
12 + 2 = 0,
dL
dx2
8L
52
— 8.*! + 14x2 — 4 + 2 = 0,
= + x2 — 16 = 0.
Otrzymujemy układ trzech równań o trzech niewiadomych: xlt x2 i 2, który najłatwiej jest rozwiązać przez wyeliminowanie zmiennej 2 z dwu pierwszych równań. Ostatecznie otrzymujemy:
**i=9, x\ = 7, f(x\, x*2) = 189.
A zatem zakład 1 powinien otrzymywać dziennie 9 MWh energii, a zakład II - 7 MWh. Koszty przesyłania energii wyniosą 189 jedn. p.
Mankamentem omówionej metody jest fakt, że nie gwarantuje ona uzyskania nieujemnych wartości zmiennych decyzyjnych. Gdyby się okazało, że w otrzymanym rozwiązaniu któraś ze zmiennych przyjęła wartość ujemną, trzeba uciec się do innych metod rozwiązywania. Stąd też wynika ograniczone zastosowanie metody mnożników Lagrange’a do rozwiązywania programów nieliniowych.
6.1.2. Program nieliniowy o postaci standardowej
Programy nieliniowe o postaci standardowej (w których wszystkie ograniczenia są nierównościami) można również rozwiązywać metodą nieoznaczonych mnożników Lagrange’a, zamieniając uprzednio nierówności na równania przez wprowadzenie tzw. zmiennych nieistotnych u2. Gdyby np. w przykładzie 35 warunek ograniczający miał postać xx + x2 < 16, zamienilibyśmy go na równość następująco: x, + x2 + u2 — 16 = 0 (ponieważ lewa strona nierówności jest mniejsza, należało do niej dodać zmienną nieistotną). Gdyby warunek miał postać np. xt + x2 ^ 16, to od lewej strony nierówności należałoby odjąć zmienną nieistotną, czyli otrzymalibyśmy xl + x2 — u2 — 16 = 0.
Szukanie ekstremum funkcji Lagrange’a sprowadziłoby się do rozwiązania układu czterech równań o czterech niewiadomych, a mianowicie:
8L
lO.rj — 8x2 — 12 + A = 0,
3L
dx2
dL .
— = x, + x2 — 16 -I- u = 0,
8A
8L
du
= 2Au = 0.
Oczywiście, większa liczba zmiennych decyzyjnych lub warunków ograniczających znacznie zwiększa rozmiary zadania, które trudno jest rozwiązać bez korzystania z pakietów komputerowych.
Częściej jednak do rozwiązywania programów nieliniowych o postaci standardowej znajduje zastosowanie twierdzenie Kuhna-Tuckera. Twierdzenie to i jego dowód można znaleźć w większości podręczników omawiających programowanie nieliniowe. Formułowane jest ono bardzo różnie1. Poniżej ograniczono się głównie do podania ostatecznej postaci warunków Kuhna-Tuckera i ich praktycznego zastosowania według jednej z możliwych wersji, podanej w pracy [14].
Dla programu postaci:
f{x1, ..., x„) -> min,
J gf(xi,x„) < 0 (i = 1,..., r),
x2 ^ 0, ..., xn ^ 0,
gdy
i= 1
warunki Kuhna-Tuckera przybierają postać: 8L
8xj
Sf{x) , ^ , dg,.(x) ^ n
(j — 1, n),
191
Por. np. prace [14], [18] i [62].