Podobnie jak w programowaniu liniowym, tak i w programowaniu nieliniowym odróżniamy programy o postaci kanonicznej, w których wszystkie warunki ograniczające - z wyjątkiem warunków brzegowych - mają postać równości, oraz programy o postaci standardowej, w których wszystkie warunki ograniczające są nierównościami.
6.1.1. Program nieliniowy o postaci kanonicznej
Przy rozwiązywaniu programów nieliniowych o postaci kanonicznej znajduje zastosowanie tzw. metoda mnożników Lagrange’a. Tok postępowania można tu podzielić na dwa etapy.
1. Sprawdzamy, czy funkcja celu f(x) ma ekstremum bezwarunkowe. Jeżeli tak, to czy spełnia ono warunki ograniczające, a więc czy jest równocześnie ekstremum warunkowym. Szukanie ekstremum bezwarunkowego polega na obliczeniu pochodnych cząstkowych funkcji celu względem poszczególnych zmiennych decyzyjnych i przyrównaniu tych pochodnych do zera. Warunkiem wystarczającym na istnienie minimum funkcji f{x) w punkcie jc = (xl5 x2,..., x„) jest to, aby w tym punkcie wyznacznik macierzy utworzonej z pochodnych cząstkowych drugiego rzędu funkcji / był dodatni, to znaczy:
' 82f |
82f |
82f |
dx\ |
dx0 dx, |
8x„ dx |
82f |
82f |
82f |
8xl dx2 |
8x1 |
8xn dx |
82f |
82f |
82f |
dx1 dxn |
8x2 8x„ |
8xl |
oraz by wartości wszystkich minorów głównych tej macierzy (brane w punktach stacjonarnych) były dodatnie. Jeżeli ekstremum bezwarunkowe spełnia warunki ograniczające, zadanje jest już rozwiązane.
2. Jeżeli ekstremum bezwarunkowe nie spełnia ograniczeń, funkcję celu przekształcamy w funkcję Lagrange’a:
L(x, A) = f(x) + £ A, £,•(*),
i=l
przy czym A,- to nieoznaczone mnożniki Lagrange’a.
W ten sposób zastępujemy szukanie ekstremum warunkowego funkcji f(x) szukaniem ekstremum bezwarunkowego funkcji Lagrange’a. Aby je znaleźć, obliczamy pochodne cząstkowe funkcji L względem poszczególnych zmiennych decyzyjnych Xj oraz względem mnożników Lagrange’a A;, a następnie przyrównujemy te pochodne do zera. Rozwiązanie otrzymanego układu równań jest na ogół rozwiązaniem optymalnym programu (pomijamy tu warunek dostateczny na istnienie ekstremum warunkowego).
Przykład 35. Energia z elektrociepłowni przesyłana jest do dwóch zużywających ją zakładów produkcyjnych. Funkcja kosztów przesyłania energii do tych zakładów w zależności od wielkości przesyłu (odpowiednio: do zakładu I - *1 i do zakładu II - *2) dana jest wzorem:
/(*i, x2) = 5*1 — 8*j*2 + 7*2 — 12*! — 4*2 + 81.
Rozdzielić dzienną produkcję energii 16 MWh pomiędzy te dwa zakłady tak, aby zminimalizować koszty przesyłu energii. Podać wysokość tych kosztów.
Rozwiązanie. Mamy zatem znaleźć minimum funkcji /(*!, *2) = 5*i — 8*1*2 + 7*2 — 12*1 — 4*2 + 81, przy warunkach:
gi(*i, *2) = *i + *2 — 16 = 0,
*!, *2 ^ 0.
1. Sprawdzamy, czy funkcja ma ekstremum bezwarunkowe, obliczając pierwsze pochodne funkcji/(*) względem *x oraz *2 i przyrównując je do zera.
K
5*i
10*i — 8*2 — 12 = 0,
-— = —8*i -1- 14*2 — 4 = 0. 5*2
_ 68 _ 34 _ 15 _ 38 ~ 19 _ 119
oraz \
■ 50 12
A zatem funkcja / może mieć ekstremum bezwarunkowe tylko w punkcie o współrzędnych (50/19; 34/19).
Macierz drugich pochodnych ma postać:
d2f |
d2f 1 | ||
5*f |
5*,5*, |
10 -8 | |
82f |
s2f |
-8 14 | |
5*i 5*2 |
5*2 |
a jej wyznacznik jest równy 76 > 0.
189