294 Programowanie wypukłe i kwadratowe
Rysunek 6.5
kierunku wzrostu funkcji celu określamy punkt P(2, 2) styczności warstwicy o najwyższej wartości funkcji celu ze zbiorem rozwiązań dopuszczalnych (rys. 6.5).
Przykład 6.21
Rozpatrujemy zadanie:
/(.jc,, x2) = \Oxi+25x2-\Ox*-x2-4xix2 —» max, jc, + 2x2 < 10,
Xi + x2^9,
x2 Ss 0.
Funkcja celu jest funkcją kwadratową, a wszystkie warunki ograniczające są liniowe. Zadanie to można zapisać w postaci:
/(x) = pTx-xTCx —» max,
Ax < b, (6-4)
x > 0,
przy czym:
10 |
10 2 |
1 2 |
10 |
*1 | ||||
- C = |
, A = |
, b = |
, x = | |||||
25 |
2 1 |
1 1 |
9 |
*2 |
1 Przykład został zaczerpnięty z książki W. Grabowskiego, Programowanie matematyczne, PWE, Warszawa 1980.
Macierz C jest dodatnio określona, czyli /(x) = pTx — xTCx jest funkcją wklęsłą. Podobnie wszystkie warunki ograniczające jako funkcje liniowe są również wklęsłe. Jest to więc kolejny przykład zadania programowania wypukłego.
Zadanie postaci (6.4), w którym macierz C jest nieujemnie określona, nazywamy zadaniem programowania kwadratowego.
6.2.3. Warunki Kuhna-Tuckera
Z każdym zadaniem programowania nieliniowego można związać funkcję Lagrange’a, łączącą funkcję celu z ograniczeniami. Definiujemy ją następująco:
Z.(x, y)=/(x)+yg(x),
gdzie y jest elementem przestrzeni R"' i ma postać: y=[>’i, >’J-
Uwzględniając wszystkie składowe wektorów x oraz y, funkcję Lagrange’a można zapisać następująco:
m
L(X|, .... X„, >>,, ..., y„)=f(xl> ..., x„)+ X y,gi(x......x„).
i= I
Jeżeli f oraz g< dla i= 1, ..., m mają pochodne cząstkowe, wówczas można skonstruować problem Kulma—Tuckera. Jest on złożony z czterech następujących warunków:
• warunek 1:
V,L(x, y) = 0,
gdzie symbol V,L(x, y) oznacza gradient funkcji L ze względu na zmienne tworzące wektor x, czyli:
V,L(x, y) =
y)
d^x, y)
dxn
• warunek 2: yg(x) = 0,
• warunek 3:
S(x)>0,
• warunek 4: