Badania Operacyjne
kierunek Informatyka, studia II stopnia wyklad
1 Programowanie liniowe
Programowanie liniowe jest jednym z działów teorii zada´n ekstremalnych i głównym nurtem bada´n operacyjnych. Podstawy programowania liniowego stworzył Kantorowicz w latach 30-tych ubiegłego stulecia.
Przedmiotem programowania liniowego s ˛a zadania polegaj ˛ace na szukaniu punktów min- imum (b ˛ad´z maksimum) funkcji liniowej na zbiorze opisanym układem równo´sci lub nierówno´sci liniowych. Najprostszym przykładem zadania programowania liniowego jest zadanie znalezienia punktu minimum funkcji f (x) = ax na przedziale [c, d] ⊂ R+0. W postaci zadania programowania liniowego mo˙zna zapisa´c wiele praktycznych zagadnie´n natury ekonomicznej i produkcyjno-handlowej.
1.1 Modelowanie
Przykład 1 (planowanie produkcji). Wytwórca dysponuje okre´slonymi ilo´sciami ró˙znych
´srodków (surowce, praca, sprz ˛et), wykorzystywanych do produkcji ró˙znych towarów. Wia- domo, jaka ilo´s´c i-tego ´srodka jest potrzebna do produkcji jednostki j-tego towaru, a tak˙ze jaki dochód daje sprzeda˙z ka˙zdej wyprodukowanej jednostki j-tego towaru. Wytwórca powinien tak zaplanowa´c produkcj ˛e, by całkowity dochód uzyskany ze sprzeda˙zy towarów był maksymalny.
Model. Wprowad´zmy nast ˛epuj ˛ace oznaczenia:
m - ilo´s´c ´srodków n- ilo´s´c towarów
aij - ilo´s´c jednostek i-tego ´srodka potrzebna do produkcji jednostki j-tego towaru bi - dost ˛epna ilo´s´c jednostek i-tego ´srodka
xj - wielko´s´c produkcji j-tego towaru
cj - dochód uzyskiwany ze sprzeda˙zy jednostki j-tego towaru
Całkowit ˛a ilo´s´c i-tego ´srodka, wykorzystan ˛a podczas produkcji, mo˙zna wi ˛ec wyrazi´c nast ˛epuj ˛aco:
Xn j=1
aijxj.
Ilo´s´c ta powinna by´c mniejsza lub równa dost ˛epnej ilo´sci jednostek i-tego ´srodka, czyli Xn
j=1
aijxj ≤ bi, i = 1, ..., m.
Dochód uzyskany ze sprzeda˙zy wszystkich wyprodukowanych towarów wyra˙za si ˛e nast ˛epu- jaco:
Xn j=1
cjxj, przy czym oczywi´scie nale˙zy ˙z ˛ada´c, by
xj ≥ 0, j = 1, ..., n.
Mo˙zna wi ˛ec sformułowa´c opisane zagadnienie w nast ˛epuj ˛acy sposób:
zmaksymalizowa´c funkcjonał kosztu (dochód) Xn
j=1
cjxj
przy ograniczeniach
xj ≥ 0, j = 1, ..., n, Xn
j=1
aijxj ≤ bi, i = 1, ..., m.
1.2 Sformułowanie zadania
Ogólnym zadaniem programowania liniowego nazywamy zadanie postaci:
J(u) = c1u1+ ... + cnun→ min . (1)
uk ≥ 0, k ∈ I (2)
⎧⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎨
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎩
a1,1u1+ ... + a1,nun ≤ b1 ...
am,1u1+ ... + am,nun≤ bm am+1,1u1+ ... + am+1,nun = bm+1
...
as,1u1+ ... + as,nun = bs
, (3)
gdzie u = (u1, ..., un) ∈ Rn, natomiast cj, ai,j, bi, i = 1, ..., s, j = 1, ..., n, s ˛a danymi liczbami rzeczywistymi, przy czym nie wszystkie liczby cj i nie wszystkie liczby aij s ˛a równe zero, I ⊂ {1, ..., n} jest ustalonym zbiorem indeksów; mo˙zliwe s ˛a tutaj przypadki:
I =∅, I = {1, ..., n}, m = s, m = 0. Wprowadzaj ˛ac oznaczenia c = (c1, ..., cn),
ai = (ai,1, ..., ai,n), mo˙zemy zapisa´c powy˙zsze zadanie w nast ˛epuj ˛acy sposób:
⎧⎪
⎪⎪
⎨
⎪⎪
⎪⎩
J(u) =hc, ui → min .
u∈ U = {u = (u1, ..., un)∈ Rn; ui ≥ 0 dla i ∈ I,
hai, ui ≤ bi dla i = 1, ..., m, hai, ui = bi dla i = m + 1, ..., s}
(4)
(symbolem hx, yi oznaczamy iloczyn skalarny wektorów x = (x1, ..., xn), y = (y1, ..., yn), t.zn. hx, yi =Pn
i=1xiyi). W dalszym ci ˛agu, zapis x≥ y,
gdzie x = (x1, ..., xn), y = (y1, ..., yn), b ˛edzie oznaczał, ˙ze xi ≥ yi, i = 1, ..., n.
Wobec tego, zadanie (4) mo˙zemy zapisa´c nast ˛epuj ˛aco:
⎧⎨
⎩
J(u) =hc, ui → min .
u∈ U = {u = (u1, ..., un)∈ Rn; ui ≥ 0 dla i ∈ I, Au ≤ b, Au = b}
(5) gdzie
A =
⎡
⎢⎢
⎢⎣
a1,1 ... a1,n
... ... am,1 ... am,n
⎤
⎥⎥
⎥⎦, A =
⎡
⎢⎢
⎢⎣
am+1,1 ... am+1,n
... ... as,1 ... as,n
⎤
⎥⎥
⎥⎦,
b =
⎡
⎢⎢
⎢⎣ b1
... bm
⎤
⎥⎥
⎥⎦, b =
⎡
⎢⎢
⎢⎣ bm+1
... bs
⎤
⎥⎥
⎥⎦.
Ka˙zdy punkt u ∈ U nazywamy punktem dopuszczalnym zadania (5). Punkt u∗ ∈ U nazywamy rozwi ˛azaniem zadania (5), gdy
J(u∗)≤ J(u) dla dowolnego u ∈ U.
Kanonicznym zadaniem programowania liniowego nazywamy zadanie postaci
⎧⎨
⎩
J(u) =hc, ui → min .
u∈ U = {u = (u1, ..., un)∈ Rn; u≥ 0 , Au = b}
, (6)
gdzie A ∈ Rm×n, b ∈ Rm.
Podstawowym zadaniem programowania liniowego nazywamy zadanie postaci
⎧⎨
⎩
J(u) =hc, ui → min .
u∈ U = {u = (u1, ..., un)∈ Rn; u≥ 0 , Au ≤ b}
, (7)
gdzie A i b s ˛a takie, jak wy˙zej.
1.3 Równowa˙zno´s´c zada´ n
Zajmiemy si ˛e teraz zagadnieniem „równowa˙zno´sci” zada´n ró˙znego typu. Dokładniej, poka˙zemy, ˙ze rozwi ˛azywanie zadania podstawowego i zadania ogólnego mo˙zna zast ˛api´c rozwi ˛azywaniem zadania kanonicznego.
Istotnie, niech dane b ˛edzie zadanie podstawowe (7) i rozwa˙zmy w przestrzeni Rn+m zadanie postaci
⎧⎨
⎩
hd, zi → min .
z ∈ Z = {z = (u, v) ∈ Rn+m; z ≥ 0 , Cz = b}
, (8)
gdzie d = (c, 0) ∈ Rn+m,
C = [A| Im×m] =
⎡
⎢⎢
⎢⎣
a1,1 ... a1,n
... ... am,1 ... am,n
1 ... 0 ... ... 0 ... 1
⎤
⎥⎥
⎥⎦
(Im×m jest macierz ˛a jednostkow ˛a wymiaru m × m).
Łatwo zauwa˙zy´c, ˙ze je´sli u∗ ∈ U jest rozwi ˛azaniem zadania (7), to z∗ = (u∗, v∗), gdzie v∗ = b− Au∗,
jest rozwi ˛azaniem zadania (8), t.zn. z∗ ∈ Z oraz hd, z∗i ≤ hd, zi dla dowolnego z ∈ Z.
Je´sli natomiast z∗ = (u∗, v∗) ∈ Z jest rozwi ˛azaniem zadania (8), to u∗ jest rozwi ˛azaniem zadania (7), t.zn. u∗ ∈ U oraz
hc, u∗i ≤ hc, ui dla dowolnego u ∈ U.
Podobnie, rozwi ˛azywanie zadania ogólnego (5) mo˙zna zast ˛api´c rozwi ˛azywaniem zadania kanonicznego. Rzeczywi´scie, rozwa˙zmy w przestrzeni Rp (p = m + I + J + J, gdzie
J ={1, ..., n}ÂI) zadanie postaci
⎧⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎨
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎩
he, zi =X
i∈I
ciui+X
i∈J
ciwi+X
i∈J
−ciwi → min . z ∈ Z = {z = (v, ui; i∈ I, wi; i∈ J, wi; i∈ J) ∈ Rp; z≥ 0,
v +X
i∈I
Aiui+X
i∈J
Aiwi+X
i∈J
−Aiwi = b, X
i∈I
Aiui+X
i∈J
Aiwi+X
i∈J
−Aiwi = b}
={z ∈ Rp; z≥ 0,
⎡
⎣ [Im×m | Ai; i∈ I | Ai; i∈ J | −Ai; i∈ J]
£0| Ai; i∈ I | Ai; i∈ J | −Ai; i∈ J¤
⎤
⎦ z =
⎡
⎣ b b
⎤
⎦}
, (9)
gdzie e = (0, ci; i ∈ I, ci; i∈ J, −ci; i ∈ J) ∈ Rp, Ai - i-ta kolumna macierzy A, Ai - i-ta kolumna macierzy A.
Je´sli u∗ ∈ U jest rozwi ˛azaniem zadania ogólnego (5), to
z∗ = (v∗, ui∗; i∈ I, wi∗; i∈ J, wi∗; i∈ J), gdzie
v∗ = b− Au∗, w∗i = max{0, ui∗}, i ∈ J, wi∗ = max{0, −ui∗}, i ∈ J,
jest rozwi ˛azaniem zadania (9) (zauwa˙zmy, ˙ze ui∗ = wi∗− wi∗ dla i ∈ J).
Je´sli natomiast
z∗ = (v∗, ui∗; i∈ I, wi∗; i∈ J, wi∗; i∈ J), jest rozwi ˛azaniem zadania (9), to
u∗ = (ui∗; i∈ I, wi∗− wi∗; i∈ J) jest rozwi ˛azaniem zadania (5).
1.4 Interpretacja geometryczna zada´ n programowania liniowego
Rozwa˙zmy zadanie podstawowe (7) w przypadku, gdy n = 2, czyli
⎧⎪
⎪⎪
⎨
⎪⎪
⎪⎩
J(u) = c1u1 + c2u2 → min .
u∈ U = {u = (u1, u2)∈ R2; u1 ≥ 0, u2 ≥ 0, ai,1u1+ ai,2u2 ≤ bi, i = 1, ..., m}
. (10)
Wprowad´zmy oznaczenia
U0,1 ={(u1, u2)∈ R2; −u1 ≤ 0}, U0,2 ={(u1, u2)∈ R2; −u2 ≤ 0},
Ui ={(u1, u2)∈ R2; ai,1u1+ ai,2u2 ≤ bi}, i = 1, ..., m.
Oczywi´scie
U = U0,1∩ U0,2∩ U1∩ ... ∩ Um. Mo˙zliwe s ˛a nast ˛epuj ˛ace przypadki:
10 zbiór U jest pusty
20 zbiór U jest niepustym wielobokiem wypukłym i ograniczonym
30 zbiór U jest niepustym wielobokiem wypukłym i nieograniczonym
Ustalmy liczb ˛e α ∈ R. Równanie
c1u1+ c2u2 = α
opisuje poziomic ˛e funkcjonału J odpowiadaj ˛ac ˛a warto´sci α, czyli zbiór {(u1, u2)∈ R2; J(u) = α}.
Jest to prosta o wektorze normalnym c = (c1, c2). Przy zmianie warto´sci stałej α od −∞
do ∞ prosta ta zmienia swoje poło˙zenie, przesuwaj ˛ac si ˛e w sposób równoległy w kierunku wektora c i „zamiataj ˛ac” cał ˛a płaszczyzn ˛e.
W przypadku 20 zawsze istnieje „punkt pierwszego kontaktu” (by´c mo˙ze nie jedyny) przesuwaj ˛acej si ˛e prostej z wielobokiem U . Odpowiednia warto´s´c stałej α wynosi wówczas
minu∈UJ(u) =: J∗
W przypadku 30 ów „punkt pierwszego kontaktu” istnieje (by´c mo˙ze nie jedyny) lub nie.
Je´sli nie istnieje, oznacza to, ˙ze zadanie nie ma rozwi ˛azania; w takim przypadku
u∈UinfJ(u) =−∞.
Z powy˙zszej dyskusji wynika, ˙ze zadanie (10) mo˙ze nie mie´c rozwi ˛aza´n, mo˙ze mie´c jedno rozwi ˛azanie lub mo˙ze mie´c niesko´nczenie wiele rozwi ˛aza´n. Ponadto, w przypadku, gdy zbiór rozwi ˛aza´n jest niepusty, w zbiorze tym istnieje co najmniej jeden punkt, który jest wierzchołkiem wieloboku U .
Podobn ˛a analiz ˛e mo˙zna przeprowadzi´c w przypadku n = 3, zast ˛epuj ˛ac wielobok wielo´s- cianem, a prost ˛a - płaszczyzn ˛a.
Matod ˛a graficzn ˛a mo˙zna tak˙ze rozwi ˛aza´c niektóre zadania o wi ˛ekszej ni˙z 2 lub 3 ilo´sci zmiennych. Rozwa˙zmy mianowicie zadanie postaci
⎧⎨
⎩
J(u) =hc, ui → min .
u∈ U = {u ∈ Rm+2; u≥ 0 , Au = b}
gdzie
A =
⎡
⎢⎢
⎢⎣
a1,1 ... a1,m a1,m+1 a1,m+2
... ... ... ... am,1 ... am,m am,m+1 am,m+2
⎤
⎥⎥
⎥⎦, b =
⎡
⎢⎢
⎢⎣ b1
... bm
⎤
⎥⎥
⎥⎦,
przy czym rankA = m i kolumny A1,...,Am s ˛a liniowo niezale˙zne. Wprowad´zmy oz- naczenia
A =
⎡
⎢⎢
⎢⎣
a1,1 ... a1,m
... ... am,1 ... am,m
⎤
⎥⎥
⎥⎦, A =
⎡
⎢⎢
⎢⎣
a1,m+1 a1,m+2
... ... am,m+1 am,m+2
⎤
⎥⎥
⎥⎦,
u =
⎡
⎢⎢
⎢⎣ u1
... um
⎤
⎥⎥
⎥⎦, u =
⎡
⎣ um+1 um+2
⎤
⎦ ,
c =
⎡
⎢⎢
⎢⎣ c1
... cm
⎤
⎥⎥
⎥⎦, c =
⎡
⎣ cm+1
cm+2
⎤
⎦ .
Zatem
A =h
A | Ai , u =
⎡
⎣ u u
⎤
⎦ , c =£ c | c¤
.
W konsekwencji warunek
Au = b mo˙zemy zapisa´c jako
Au + Au = b.
St ˛ad
u = A−1b− A−1 Au.
Zauwa˙zmy teraz, ˙ze rozwi ˛azywanie zadania wyj´sciowego mo˙zna zast ˛api´c rozwi ˛azywaniem zadania postaci ⎧
⎨
⎩ D
c, A−1b− A−1 AuE +
c, u®
→ min . u∈ U = {u ∈ R2; u≥ 0 , A−1 Au≤ A−1b}
(=) Dokładniej, je´sli u∗ jest rozwi ˛azaniem zadania (=), to
u∗ =
⎡
⎣ u∗ u∗
⎤
⎦ ,
gdzie
u∗ = A−1b− A−1 Au∗,
jest rozwi ˛azaniem zadania wyj´sciowego. Na odwrót, je´sli u∗ =
⎡
⎣ u∗ u∗
⎤
⎦ jest rozwi ˛azaniem zadania wyj´sciowego, to u∗ jest rozwi ˛azaniem zadania (=).
1.5 Punkty wierzchołkowe
Punkt v ∈ V ⊂ Rnnazywamy punktem wierzchołkowym (punktem ekstremalnym) zbioru wypukłego i domkni ˛etego V , je´sli przedstawienie
v = αv1+ (1− α)v2, (11)
gdzie α ∈ (0, 1), v1, v2 ∈ V , mo˙zliwe jest tylko wtedy, gdy v1 = v2. Innymi słowy, punkt v ∈ V jest punktem wierzchołkowym zbioru V , gdy nie jest on punktem wewn ˛etrznym niezdegenerowanego odcinka o ko´ncach nale˙z ˛acych do V . Poj ˛ecie punktu wierzchołkowego jest poj ˛eciem fundamentalnym w teorii programowania liniowego.
W dalszej cz ˛e´sci wykładu poka˙zemy, ˙ze je´sli zadanie kanoniczne (przy dowolnym n ∈ N) posiada rozwi ˛azanie, to w´sród rozwi ˛aza´n jest co najmniej jeden punkt wierzchołkowy zbioru
U ={u ∈ Rn; u≥ 0, Au = b}. (12)
Teraz podamy charakteryzacj ˛e punktów wierzcholkowych zbioru postaci (12).
Twierdzenie 1 Niech dany b ˛edzie zbiór U postaci (12) i punkt v ∈ Rn, przy czym A ∈ Rm×nÂ{0}, r := rankA. Punkt v jest punktem wierzchołkowym zbioru U wtedy i tylko wtedy, gdy istniej ˛a wska´zniki j1,...,jr∈ {1, ..., n} takie, ˙ze
⎧⎪
⎪⎪
⎪⎪
⎪⎨
⎪⎪
⎪⎪
⎪⎪
⎩
vj ≥ 0, j ∈ {j1, ..., jr} vj = 0, j /∈ {j1, ..., jr} Aj1vj1 + ... + Ajrvjr = b
kolumny Aj1, ..., Ajr s ˛a liniowo niezale˙zne w Rm
(13)
Układ wektorów Aj1,...,Ajr wyst ˛epuj ˛acych w warunkach (13) nazywamy baz ˛a punktu wierzchołkowego v, a odpowiednie współrz ˛edne vj1,...,vjr- współrz ˛ednymi bazowymi punktu wierzchołkowego v. Punkt wierzchołkowy, którego wszystkie współrz ˛edne bazowe s ˛a do- datnie nazywamy nieosobliwym. Punkt wierzchołkowy, którego co najmniej jedna współrz ˛edna bazowa jest równa zero nazywamy osobliwym. Zmienne uj1,...,ujr nazywamy zmiennymi bazowymi, a pozostałe - zmiennymi niebazowymi (przy ustalonej bazie Aj1,...,Ajr).
Z twierdzenia 1 wynika, ˙ze baza nieosobliwego punktu wierzchołkowego zbioru (12) jest wyznaczona jednoznacznie. Osobliwy punkt wierzchołkowy mo˙ze mie´c wiele baz.
1.6 Metoda sympleksowa
Metoda sympleksowa polega na „uporz ˛adkowanym” sprawdzaniu warto´sci funkcjonału kosztu w punktach wierzchołkowych zbioru ograniczaj ˛acego („uporz ˛adkowanie” oznacza tu, ˙ze warto´sci funkcjonału kosztu w kolejnych punktach nie rosn ˛a).
Rozwa˙zmy zadanie kanoniczne postaci
⎧⎨
⎩
J(u) =hc, ui → min .
u∈ U = {u ∈ Rn; u≥ 0 , Au = b}
(14)
gdzie 0 6= A ∈ Rm×n, przy czym zakłada´c b ˛edziemy w tym rozdziale, ˙ze U 6= ∅ (kwestia niepusto´sci zbioru U omówiona b ˛edzie w dalszej cz ˛e´sci wykładu). Oczywi´scie rankA ≤ min{m, n} (podobnie, jak wcze´sniej, rankA oznacza´c b ˛edziemy przez r). Równo´s´c
Au = b mo˙zemy zapisa´c w postaci układu równa´n
Xn j=1
ai,juj = bi, i = 1, ..., m.
Nie zmniejszaj ˛ac ogólno´sci rozwa˙za´n, mo˙zemy zało˙zy´c, ˙ze r = m. Oczywi´scie r ≤ n. Je˙zeli r = n, to powy˙zszy układ ma dokładnie jedno rozwi ˛azanie u, przy czym u ≥ 0 (gdyby która´s ze współrz ˛ednych punktu u była ujemna, to zbiór U byłby pusty, co sprzeczne byłoby z naszym zało˙zeniem). W konsekwencji zbiór U jest jednoelementowy i tym samym u jest rozwi ˛azaniem zadania (14).
B ˛edziemy wi ˛ec zakłada´c w dalszym ci ˛agu, ˙ze r = m oraz r < n. Równo´s´c Au = b
mo˙zemy wi ˛ec zapisa´c w postaci
⎧⎪
⎪⎪
⎨
⎪⎪
⎪⎩
a1,1u1+ ... + a1,nun= b1 ...
ar,1u1+ ... + ar,nun= br
(15)
gdzie r = rankA < n.
Podamy teraz opis metody sympleksowej. Przypu´s´cmy, ˙ze dany jest punkt wierzchołkowy v zbioru
U ={u ∈ Rn; u≥ 0 , Au = b}
i załó˙zmy, ˙ze kolumny A1,...,Ars ˛a baz ˛a tego puntu, v1,...,vr- jego współrz ˛ednymi bazowymi (kwestia wyznaczenia „pocz ˛atkowego” punktu wierzchołkowego v zbioru U i okre´slenia jego współrz ˛ednych bazowych omówiona b ˛edzie w dalszej cz ˛e´sci wykładu). Wprowad´zmy
nast ˛epuj ˛ace oznaczenia
u =
⎡
⎢⎢
⎢⎣ u1 ... ur
⎤
⎥⎥
⎥⎦, v =
⎡
⎢⎢
⎢⎣ v1 ... vr
⎤
⎥⎥
⎥⎦, c =
⎡
⎢⎢
⎢⎣ c1
... c1
⎤
⎥⎥
⎥⎦,
B =
⎡
⎢⎢
⎢⎣
a1,1 ... a1,r
... ... ar,1 ... ar,r
⎤
⎥⎥
⎥⎦= [A1 | ... | Ar] .
Wówczas układ (15) mo˙zemy zapisa´c w postaci
Bu + Ar+1ur+1+ ... + Anun= b. (16) Z liniowej niezale˙zno´sci kolumn A1,...,Ar(jest to baza punktu v) wynika, ˙ze det B 6= 0. W konsekwencji istnieje macierz odwrotna B−1. Współrz ˛edne niebazowe punktu v s ˛a zerowe, a wi ˛ec z (16) otrzymujemy
Bv = b, sk ˛ad
v = B−1b.
Mno˙z ˛ac równo´s´c (16) lewostronnie przez B−1, otrzymujemy u +
Xn k=r+1
B−1Akuk= B−1b = v. (17)
Oznaczmy
γs,k = (B−1Ak)s dla k = r + 1, ..., n, s = 1, ..., r
gdzie (B−1Ak)soznacza s-t ˛a współrz ˛edn ˛a wektora-kolumny B−1Ak. Równo´s´c (17) mo˙zemy teraz zapisa´c w postaci nast ˛epuj ˛acego układu równa´n
⎧⎪
⎪⎪
⎪⎪
⎪⎨
⎪⎪
⎪⎪
⎪⎪
⎩
u1+ γ1,r+1ur+1+ ... + γ1,nun= v1 u2+ γ2,r+1ur+1+ ... + γ2,nun= v2
...
ur+ γr,r+1ur+1+ ... + γr,nun= vr
. (18)
Okre´slmy tak˙ze
γs,k = (B−1Ak)s
dla k = 1, ...r, s = 1, ..., r (oczywi´scie γs.k = δs,k dla k = 1, ..., r, s = 1, ..., r, gdzie δs,k
jest symbolem Kronekera).
Pokazali´smy wi ˛ec, ˙ze maj ˛ac ustalony punkt wierzchołkowy v zbioru U i wiedz ˛ac, ˙ze współrz ˛edne z indeksami 1,...,r s ˛a jego współrz ˛ednymi bazowymi, mo˙zna zapisa´c ograniczenia (15) w równowa˙znej postaci (16) lub (17) lub (18).
Warto´s´c funkcjonału kosztu J w punkcie u spełniaj ˛acym ograniczenia typu równo´sci (15), mo˙zna zapisa´c w nast ˛epuj ˛acej postaci
J(u) = hc, ui = Xn
i=1
ciui =hc, ui + Xn i=r+1
ciui
=
* c, v−
Xn i=r+1
B−1Aiui +
+ Xn i=r+1
ciui
= hc, vi − Xn i=r+1
(
c, B−1Ai
®− ci)ui.
Poniewa˙z
hc, vi = hc, vi = J(v), wi ˛ec
J(u) = J(v)− Xn i=r+1
∆iui, (19)
gdzie
∆i =
c, B−1Ai
®− ci, i = r + 1, ..., n.
Okre´slmy tak˙ze
∆i =
c, B−1Ai
®− ci (20)
dla i = 1, ..., r. Oczywi´scie
∆i =
c, B−1Ai
®− ci =hc, eii − ci = ci− ci = 0
dla i = 1, ..., r (tutaj ei jest i-t ˛a kolumn ˛a macierzy jednostkowej o wymiarach r × r).
Dokonajmy cz ˛e´sciowego podsumowania. Pokazali´smy, ˙ze zadanie (14) mo˙zemy zapisa´c w nast ˛epuj ˛acej postaci
⎧⎪
⎨
⎪⎩
J(u) = J(v)− Pn i=r+1
∆iui → min .
U ={u = (u1, ..., un)∈ Rn; u≥ 0 , u spełnia (18)}
(21)
Wyst ˛epuj ˛ace w powy˙zszym opisie wielko´sci γs,k, vi, ∆i zapiszemy w postaci tzw. tablicy sympleksowej, odpowiadaj ˛acej punktowi wierzchołkowemu v
Tablica sympleksowa I (dla punktu v)
u1 ... ui ... us ... ur ur+1 ... uk ... uj ... un u1 1 ... 0 ... 0 ... 0 γ1,r+1 ... γ1,k ... γ1,j ... γ1,n v1
... ... ... ... ... ... ... ... ... ... ui 0 ... 1 ... 0 ... 0 γi,r+1 ... γi,k ... γi,j ... γi,n vi
... ... ... ... ... ... ... ... ... ... us 0 ... 0 ... 1 ... 0 γs,r+1 ... γs,k ... γs,j ... γs,n vs
... ... ... ... ... ... ... ... ...
ur 0 ... 0 ... 0 ... 1 γr,r+1 ... γr,k ... γr,j ... γr,n vr 0 ... 0 ... 0 ... 0 ∆r+1 ... ∆k ... ∆j ... ∆n J(v) Analizuj ˛ac tablic ˛e sympleksow ˛a I, mo˙zemy wyró˙zni´c trzy przypadki:
10 spełnione s ˛a nierówno´sci
∆i =
c, B−1Ai
®− ci ≤ 0 (22)
dla i = r + 1, ..., n, t.zn. w ostatnim wierszu tablicy sympleksowej wszystkie liczby ∆i
s ˛a niedodatnie. W tym przypadku punkt v, dla którego skonstruowana została tablica sympleksowa, jest rozwi ˛azaniem zadania. Istotnie, bowiem dla dowolnego u ∈ U mamy
J(u) = J(v)− Xn i=r+1
∆iui ≥ J(v)
(bo ∆i ≤ 0, ui ≥ 0).
20 istnieje wska´znik k ∈ {r + 1, ..., n} taki, ˙ze
⎧⎨
⎩
∆k> 0
γi,k≤ 0 dla i = 1, ..., r (czyli B−1Ak ≤ 0)
(23)
Oznacza to, ˙ze w k-tej kolumnie tablicy sympleksowej ostatni element (∆k) jest dodatni, a pozostałe - niedodatnie. W tym przypadku inf
u∈UJ(u) =−∞ (dowód tego faktu pomijamy).
Oznacza to, ˙ze zadanie nie ma rozwi ˛azania.
30 nie zachodz ˛a przypadki 10 i 20; w konsekwencji istniej ˛a wska´zniki k ∈ {r + 1, ..., n}, i∈ {1, ..., r} takie, ˙ze
∆k > 0, γi,k > 0. (24)
Oznacza to, ˙ze w k-tej kolumnie tablicy sympleksowej ostatni element (∆k) jest dodatni i co najmniej jedna z liczb γi,k jest dodatnia.
Załó˙zmy, ˙ze zachodzi przypadek 30 i okre´slmy zbiór
Ik={i ∈ {1, ..., r}, γi,k > 0}.
Niech s ∈ Ik b ˛edzie takim wska´znikiem, ˙ze vs
γs,k = min
i∈Ik
vi
γi,k (25)
Współczynnik γs,k, gdzie wska´zniki k, s s ˛a okre´slone przez (24) i (25), nazywany jest elementem rozwi ˛azuj ˛acym tablicy sympleksowej I.
Mo˙zna pokaza´c, ˙ze układ kolumn
A1, ..., As−1, As+1, ..., Ar, Ak (26) jest baz ˛a pewnego punktu wierzchołkowego w, przy czym
J(w)≤ J(v).
Uwaga 1. Z faktu, ˙ze macierz A ma r wierszy wynika, wobec twierdzenia charak- teryzuj ˛acego punkty wierzchołkowe, i˙z baza (26) wyznacza punkt wierzchołkowy w sposób jednoznaczny. Mo˙zna wi ˛ec znale´z´c współrz ˛edne punktu w, korzystaj ˛ac z tego twierdzenia.
Przejd´zmy teraz do przypadku ogólnego. Łatwo zauwa˙zy´c, ˙ze je´sli współrz ˛ednymi bazowymi punktu v s ˛a
vj1, ..., vjr,
gdzie 1 ≤ j1 < ... < jr ≤ n, to wzory wyra˙zaj ˛ace zmienne bazowe i funkcjonał kosztu przy pomocy zmiennych niebazowych, przyjmuj ˛a posta´c (poni˙zej symbolem Iv oznaczamy
zbiór {j1, ..., jr}) ⎧
⎪⎪
⎪⎪
⎪⎨
⎪⎪
⎪⎪
⎪⎩
uj1 = vj1 − P
k /∈Iv
γj1,kuk ...
ujr = vjr − P
k /∈Iv
γjr,kuk
(27)
J(u) = J(v)−X
k /∈Iv
∆kuk, (28)
gdzie
γji,k = (B−1Ak)i ; i = 1, ..., r, k = 1, ..., n (29) (w szczególno´sci γji,k = δji,k dla i = 1, ..., r, k ∈ Iv),
B = [Aj1 | ... | Ajr] , vji = (B−1b)i, i = 1, ..., r,
vk = 0, k /∈ Iv,
∆k =
c, B−1Ak
®− ck = Xr
i=1
cji(B−1Ak)i− ck, k = 1, ..., n, (30)
gdzie c =
⎡
⎢⎢
⎢⎣ c1
... c1
⎤
⎥⎥
⎥⎦ (w szczególno´sci ∆k = 0 dla k ∈ Iv).
W tym przypadku tablica sympleksowa dla punktu v jest nast ˛epuj ˛aca:
Tablica sympleksowa II (dla punktu v)
u1 ... uj1 ... uji ... uk ... ujs ... uj ... ujr ... un
uj1 γj1,1 ... 1 ... 0 ... γj1,k ... 0 ... γj1,j ... 0 ... γj1,n vj1
... ... ... ... ... ... ... ... ... ...
uji γji,1 ... 0 ... 1 ... γji,k ... 0 ... γji,j ... 0 ... γji,n vji
... ... ... ... ... ... ... ... ... ...
ujs γjs,1 ... 0 ... 0 ... γjs,k ... 1 ... γjs,j ... 0 ... γjs,n vjs
... ... ... ... ... ... ...
ujr γjr,1 ... 0 ... 0 ... γjr,k ... 0 ... γjr,j ... 1 ... γjr,n vjr
∆1 ... 0 ... 0 ... ∆k ... 0 ... ∆j ... 0 ... ∆n J(v) Tak, jak wcze´sniej, nale˙zy rozwa˙zy´c trzy przypadki:
10 spełniony jest warunek
∆k ≤ 0, k /∈ Iv (22’)
20 istnieje k /∈ Iv takie, ˙ze
∆k > 0, γji,k ≤ 0, i = 1, ..., r (23’) 30 nie zachodzi przypadek 10 i 20; w konsekwencji istniej ˛a k /∈ Iv oraz ji ∈ Iv takie, ˙ze
∆k> 0, γji,k > 0. (24’) Podobnie, jak wcze´sniej, łatwo sprawdzi´c, ˙ze w pierwszym przypadku punkt v jest rozwi ˛azaniem zadania (14), w drugim - inf
u∈Uhc, ui = −∞, czyli zadanie (14) nie ma rozwi ˛azania.
W trzecim przypadku nale˙zy wybra´c element rozwi ˛azuj ˛acy γjs,kna podstawie warunku (24’) oraz warunku
vjs γjs,k min
ji∈Iv,k
vji
γji,k, (25’)
gdzie Iv,k ={ji ∈ Iv; γji,k > 0}, które s ˛a analogiczne do warunków (24), (25). Nast ˛epnie, nale˙zy wykona´c przej´scie do nowego punktu wierzchołkowego w. Z warunków (24’) i (25’) wynika, ˙ze baz ˛a punktu w b ˛edzie układ kolumn (z dokładno´scia do ich kolejno´sci)
Aj1, ..., Ajs−1, Ajs+1, ..., Ajr, Ak,
przy czym
J(w)≤ J(v).
Współrz ˛edne punktu w mo˙zna wyznaczy´c na podstawie twierdzenia charakteryzuj ˛acego punkty wierzchołkowe.
Uwaga 2. Mo˙zna pokaza´c, ˙ze
⎧⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎨
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎩
wj1 = vj1 − γj1,k vjs γjs,k
... wji = vji − γji,k
vjs γjs,k
...
wjs−1 = vjs−1− γjs−1,k vjs γjs,k
wjs = vjs − γjs,k vjs γjs,k = 0 wjs+1 = vjs+1− γjs+1,k vjs
γjs,k
... wjr = vjr − γjr,k
vjs γjs,k
wk= γvjs
js,k
wl = 0, l /∈ Iv, l6= k, Tablica sympleksowa dla punktu w przyjmuje posta´c
Tablica sympleksowa III (dla punktu w)
u1 ... uj1 ... uji ... uk ... ujs ... uj ... ujr ... un
uj1 γ0j1,1 ... 1 ... 0 ... 0 ... γ0j1,js ... γ0j1,j ... 0 ... γ0j1,n wj1
... ... ... ... ... ... ... ... ... ...
uji γ0ji,1 ... 0 ... 1 ... 0 ... γ0ji,js ... γ0ji,j ... 0 ... γ0ji,n wji
... ... ... ... ... ... ... ... ... ...
uk γ0k,1 ... 0 ... 0 ... 1 ... γk,j0 s ... γ0k,j ... 0 ... γ0k,n wk
... ... ... ... ... ... ... ... ... ...
ujs−1 γ0js−1,1 ... 0 ... 0 ... 0 ... γ0js−1,js ... γ0js−1,j ... 0 ... γ0js−1,n wjs−1 ujs+1 γ0js+1,1 ... 0 ... 0 ... 0 ... γ0js+1,js ... γ0js+1,j 0 γ0js+1,n wjs+1
... ... ... ... ... ... ...
ujr γ0jr,1 ... 0 ... 0 ... 0 ... γ0jr,js ... γ0jr,j ... 1 ... γ0jr,n wjr
∆01 ... 0 ... 0 ... 0 ... ∆j0s ... ∆0j ... 0 ... ∆0n J(w) gdzie współczynniki γ0i,j, ∆0j s ˛a okre´slone przy pomocy wzorów analogicznych do (29),
(30) z macierz ˛a B postaci
[Aj1 | ... | Ak | ... | Ajs−1 | Ajs+1 | ... | Ajr]
(zakładamy tu, ˙ze wiersze i kolumny w tablicy sympleksowej oraz kolumny macierzy B s ˛a ustawione w kolejno´sci rosn ˛acych indeksów).
Uwaga 2. Mo˙zna pokaza´c, ˙ze
⎧⎨
⎩
γj0i,j = γji,j− γγjs,kji,kγjs,j ; i = 1, ..., r, i6= s, j = 1, ...n, γ0k,j = γγjs,j
js,k, j = 1, ...n, oraz
∆0j = ∆j − ∆kγjs,j
γjs,k dla j = 1, ..., n.
Opisany wi ˛ec został jeden krok metody sympleksowej w dowolnym przypadku (co do bazy punktu wierzchołkowego), czyli przej´scie od jednego punktu wierzchołkowego (v) zbioru U do drugiego punktu wierzchołkowego (w) tego zbioru (w przypadku 30) w taki sposób,
˙ze
J(w)≤ J(v).
2 Programowanie nieliniowe
2.1 Zadania bez ogranicze´ n - zasada Fermata i warunki dostate- czne
Rozwa˙zmy zadanie postaci (minimalizacyjne zadanie bezwarunkowe)
⎧⎨
⎩
J(u)→ inf , u∈ Rn
(31) gdzie J : Rn → R.
Punkt u∗ ∈ Rn nazywamy punktem lokalnego minimum dla tego zadania, je´sli istnieje otoczenie V punktu u∗ takie, ˙ze
J(u∗)≤ J(u)
dla dowolnego u ∈ V (gdy V = Rn mówimy, ˙ze u∗ jest punktem globalnego minimum dla rozpatrywanego zadania). Prawdziwe jest nast ˛epuj ˛ace:
Twierdzenie 2 (zasada Fermata) Je´sli u∗ jest punktem lokalnego minimum dla zada- nia (31) i funkcja J ma w punkcie u∗ gradient ∇J(x∗) = (∂u∂J
1(u∗), ...,∂u∂J
n(u∗)), to
∇J(u∗) = 0.
Dowód. Istnienie gradientu funkcji J w punkcie u∗ oznacza istnienie pochodnej funkcji ϕi : [−1, 1] 3 t 7→ J(u∗+ tei)∈ R
w punkcie t = 0, gdzie ei jest i-tym wektorem jednostkowym, i = 1, ..., n. Poniewa˙z u∗
jest punktem lokalnego minimum funkcjonału J, wi ˛ec ϕ0i(0) = 0, i = 1, ..., n.
A wi ˛ec ∇J(u∗) = 0, co ko´nczy dowód.
U˙zyteczne jest nast ˛epuj ˛ace
Twierdzenie 3 (warunki dostateczne drugiego rz ˛edu) Je´sli J : Rn → R jest klasy C2 oraz
i) ∇J(u∗) = 0,
ii) macierz ∇2J(u∗) =h
∂2J
∂xi∂xj(u∗)i
1≤i,j≤njest dodatnio okre´slona, tzn. deth
∂2J
∂xi∂xj(u∗)i
1≤i,j≤k >
0 dla dowolnego k = 1, ..., n,
to u∗ jest punktem ´scisłego minimum lokalnego funkcji J na Rn (1).
2.2 Zadania z ograniczeniami
2.2.1 Zasada mno˙zników Lagrange’a Rozwa˙zmy zadanie postaci
⎧⎨
⎩
J(u)→ inf ,
u∈ U = {u ∈ Rn; fi(u) = θ, i = 1, ..., m}
(32)
gdzie fi : Rn→ R, i = 1, ..., m.
Mówimy, ˙ze punkt u∗ ∈ Rn jest punktem lokalnego minimum dla zadania (32), je´sli istnieje otoczenie V tego punktu takie, ˙ze dla dowolnego punktu u ∈ V , spełniaj ˛acego ograniczenia
fi(u) = θ, i = 1, ..., m, mamy
J(u∗)≤ J(u)
(gdy V = Rn mówimy, ˙ze u∗ jest punktem globalnego minimum).
1Mówimy, ˙ze punkt u∗ ∈ Rn jest punktem ´scisłego minimum lokalnego funkcji J na Rn, je´sli istnieje otoczenie V tego punktu takie, ˙ze dla dowolnego punktu u ∈ V , u 6= u∗, mamy
J(u∗) < J(u).
Twierdzenie 4 (o funkcji uwikłanej) Niech dane b ˛ed ˛a funkcje gi = gi(w, z) : Rs+n → R, i = 1, ..., n, klasy C1 oraz punkt (a, b) ∈ Rs+n taki, ˙ze
gi(a, b) = 0, i = 1, ..., n det[∂gi
∂zj
(a, b)]1≤i,j≤n6= 0.
Wówczas istnieje δ > 0 i funkcja z = z(w) = (z1(w), ..., zn(w)) : K(a, δ)→ Rn klasy C1 taka, ˙ze
z(a) = b,
gi(w, z(w)) = 0, i = 1, ..., n.
Twierdzenie 5 (zasada mno˙zników Lagrange’a) Je´sli funkcje J, fi, i = 1, ..., m s ˛a klasy C1 na Rn i punkt u∗ jest punktem lokalnego minimum dla zadania (32), to istniej ˛a liczby (mno˙zniki Lagrange’a) λ0, λ1, ..., λm ∈ R, nie wszystkie równe zero i takie, ˙ze
λ0∇J(u∗) +Pm
i=1λi∇fi(u∗) = 0.
Dowód. Warunek dany w tezie twierdzenia oznacza liniow ˛a zale˙zno´s´c wektorów
∇J(u∗),∇f1(u∗), ...,∇fm(u∗)
w przestrzeni Rn. Przypu´s´cmy, ˙ze warunek ten nie jest spełniony, tzn. powy˙zsze wektory s ˛a liniowo niezale˙zne. Oznacza to, ˙ze m + 1 ≤ n. W przypadku, gdy m + 1 < n mo˙zemy uzupełni´c układ wektorów ∇J(u∗),∇f1(u∗), ...,∇fm(u∗)wektorami dm+1, ..., dn−1 tak, by układ wektorów ∇J(u∗),∇f1(u∗), ...,∇fm(u∗), dm+1, ..., dn−1 był układem liniowo niezale˙znym w Rn.
Rozwa˙zmy teraz funkcje
g0(t, u) = J(u)− J(u∗) + t, gi(t, u) = fi(u), i = 1, ..., m,
gi(t, u) =hdi, u− u∗i , i = m + 1, ..., n − 1,
okre´slone na R1+n. Łatwo wida´c, ˙ze powy˙zszy układ funkcji spełnia zało˙zenia twierdzenia o funkcji uwikłanej z punktem (a, b) postaci (0, u∗). Z twierdzenia tego wynika, ˙ze istnieje δ > 0 i funkcja u = u(t) = (u1(t), ..., un(t)) : (−δ, δ) → Rn klasy C1 (dla naszych celów wystarcza ci ˛agło´s´c) taka, ˙ze
u(0) = u∗ oraz
J(u(t)) = J(u∗)− t, fi(u(t)) = 0, i = 1, ..., m,
dla t ∈ (−δ, δ). To oznacza w szczególno´sci, ˙ze dla t ∈ (0, δ) punkty u(t) spełniaj ˛a ograniczenia typu równo´sci wyst ˛epuj ˛ace w zadaniu (32), przy czym
J(u(t)) = J(u∗)− t < J(u∗) < J(u∗) + t = J(u(−t)).
Przeczy to optymalno´sci punktu u∗.
Twierdzenie 6 Niech spełnione b ˛ed ˛a zało˙zenia poprzedniego twierdzenia. Je´sli dodatkowo wektory ∇fi(u∗), i = 1, ..., m, s ˛a liniowo niezale˙zne, to λ0 6= 0 i mo˙zna przyj ˛a´c λ0 = 1.
Proof. Przypu´s´cmy, ˙ze λ0 = 0. Wówczas Pm
i=1λi∇fi(u∗) = 0
przy czym λi 6= 0 dla pewnego i ∈ {1, ..., m}. W konsekwencji Pm
i=1λi∇fi(u∗)u = 0 (33)
dla dowolnego u ∈ Rn. Niech teraz u0 = (u10, ..., un0)∈ Rn b ˛edzie takim punktem, ˙ze
∇fi(u∗)u0 = λi, i = 1, ..., m (34) (istnienie takiego punktu wynika z twierdzenia Kroneckera-Capellego (2)). Zatem, z (33) i (34) wynika, ˙ze
0 =Pm
i=1λi∇fi(u∗)u0 =Pm
i=1λiλi > 0.
Otrzymana sprzeczno´s´c dowodzi fałszywo´sci przypuszczenia, ˙ze λ0 = 0.
2Układ równa´n liniowych Au = b, gdzie A ∈ Rm×n, x ∈ Rn, b ∈ Rmma co najmniej jedno rozwi ˛azanie wtedy i tylko wtedy, gdy rzA = rz[A | b].
Uwaga 7 Twierdzenie 5 mo˙zna wykorzysta´c do rozwi ˛azywania zada´n z ograniczeniami typu równo´sci i nierówno´sci. Istotnie, rozwa˙zmy zadanie postaci
⎧⎨
⎩
J(u)→ inf ,
u∈ U = {u ∈ Rn; fi(u) = 0, i = 1, ..., m, hk(u)≤ 0, k = 1, ..., s}
. (35)
Wprowadzaj ˛ac nowe zmienne w1,...,ws, rozwi ˛azywanie zadania (35) mo˙zna zast ˛api´c rozwi ˛azy- waniem zadania postaci
⎧⎪
⎪⎪
⎨
⎪⎪
⎪⎩
J(u, w) = ee J(u)→ inf , fei(u, w) = fi(u) = 0, i = 1, ..., m, ehk(u, w) = w2k+ hk(u) = 0, k = 1, ..., s.
(36)
Dokładniej, je´sli punkt u∗ jest punktem lokalnego minimum dla zadania (35), to punkt (u∗, w∗), gdzie w∗ = (w1∗, ..., ws∗), wk∗ = p
−hk(u∗), jest punktem lokalnego minimum dla zadania (36). Na odwrót, je´sli punkt (u∗, w∗) jest punktem lokalnego minimum dla zadania (36), to punkt u∗ jest punktem lokalnego minimum dla zadania (35).
W bezpo´sredni sposób mo˙zna udowodni´c nast ˛epuj ˛ace
Twierdzenie 8 Je´sli funkcje J, fi, i = 1, ..., m, hk, j = 1, ..., s s ˛a klasy C1 na Rn i punkt u∗ jest punktem lokalnego minimum dla zadania (35), to istniej ˛a mno˙zniki Lagrange’a λ0, λ1, ..., λm, μ1, ..., μs∈ R, nie wszystkie równe zero i takie, ˙ze
λ0 ≥ 0, μ1 ≥ 0, ..., μs ≥ 0 λ0∇J(u∗) +Pm
i=1λi∇fi(u∗) +Ps
k=1μk∇hk(u∗) = 0, j = 1, ..., n, μkhk(u∗) = 0, k = 1, ..., s.
2.2.2 Programowanie wypukłe - Twierdzenie Kuhna- Tuckera Rozwa˙zmy nast ˛epuj ˛ace zadanie
⎧⎨
⎩
f0(u)→ inf ,
u∈ U = {u ∈ Rn; u∈ A, fi(u)≤ θ, i = 1, ..., m}
(37)
gdzie A ⊂ Rn, fi : Rn→ R, i = 0, 1, ..., m.
Mówimy, ˙ze u∗ jest rozwi ˛azaniem globalnym zadania (37), je´sli fi(u∗)≤ 0, i = 1, ..., m,
u∗ ∈ A oraz
f0(u∗)≤ f0(u) dla dowolnego u ∈ Rn takiego, ˙ze
fi(u)≤ 0, i = 1, ..., m, u∈ A.
Poni˙zsze twierdzenie pokazuje, ˙ze w przypadku zadania (37), przy dodatkowych za- ło˙zeniach wypukło´sci, zasada Lagrange’a prawdziwa jest w postaci wzmocnionej.
Twierdzenie 9 (Kuhna-Tuckera) Niech f0, f1,...,fm : Rn → R b ˛ed ˛a funkcjami wy- pukłymi i A ⊂ Rn - zbiorem wypukłym. Je´sli u∗ jest rozwi ˛azaniem globalnym zadania (37), to istniej ˛a mno˙zniki Lagrange’a λ0 ≥ 0, λ1 ≥ 0,...,λm ≥ 0 nie znikaj ˛ace jednocze´snie i takie, ˙ze
Xm i=0
λifi(u∗) = min
u∈A
Xm i=0
λifi(u) (38)
λifi(u∗) = 0, i = 1, ...m. (39) Jesli ponadto istnieje punkt u ∈ A taki, ˙ze
fi(u) < 0, i = 1, ..., m, (40)
to λ0 6= 0 i mo˙zna przyj ˛a´c λ0 = 1.
Na odwrót, je´sli istniej ˛a λ0 > 0, λ1 ≥ 0,...,λm ≥ 0 i punkt u∗ takie, ˙ze f1(u∗)≤ 0, ..., fm(u∗)≤ 0,
u∗ ∈ A,
Xm i=0
λifi(u∗) = min
u∈A
Xm i=0
λifi(u), λifi(u∗) = 0, i = 1, ...m, to u∗ jest rozwi ˛azaniem globalnym zadania (37).
Uwaga 10 Łatwo wida´c, ˙ze przy zało˙zeniach wypukło´sci ka˙zde rozwi ˛azanie lokalne zada- nia (37) jest jego rozwi ˛azaniem globalnym.
Z faktu, ˙ze w przypadku funkcji wypukłej i ró˙zniczkowalnej na przestrzeni Rn zbiór punktów minimum globalnego pokrywa si ˛e ze zbiorem punktów, w których znika gradient tej funkcji, wynika nast ˛epuj ˛acy
Wniosek 11 Niech f0, f1,...,fm : Rn → R b ˛ed ˛a funkcjami wypukłymi i ró˙zniczkowalnymi.
Je´sli u∗ jest rozwi ˛azaniem globalnym zadania (37) ze zbiorem A = Rn, to istniej ˛a mno˙zniki Lagrange’a λ0 ≥ 0, λ1 ≥ 0,...,λm ≥ 0 nie znikaj ˛ace jednocze´snie i takie, ˙ze
Pm
i=0λi∇fi(u∗) = 0, λifi(u∗) = 0, i = 1, ...m.
Je´sli ponadto istnieje punkt u ∈ Rn taki, ˙ze
fi(u) < 0, i = 1, ..., m, to λ0 6= 0 i mo˙zna przyj ˛a´c λ0 = 1.
Na odwrót, je´sli istniej ˛a λ0 > 0, λ1 ≥ 0,...,λm ≥ 0 i punkt u∗ ∈ Rn takie, ˙ze f1(u∗)≤ 0, ..., fm(u∗)≤ 0,
Pm
i=0λi∇fi(u∗) = 0, λifi(u∗) = 0, i = 1, ...m, to u∗ jest rozwi ˛azaniem globalnym zadania (37).
3 Metody numeryczne
3.1 Metoda gradientowa
Rozwa˙zmy zadanie bez ogranicze´n
⎧⎨
⎩
f0(u)→ min u∈ Rn
, zakładaj ˛ac, ˙ze funkcja f : Rn → R jest klasy C1.
Korzystaj ˛ac z definicji ró˙zniczkowalno´sci funkcji f0oraz nierówno´sci Cauchy’ego-Buniakowskiego (− |∇f0(u)| |v| ≤ h∇f0(u), vi ≤ |∇f0(u)| |v|, przy czym je´sli ∇f0(u) 6= 0, to prawa
nierówno´s´c jest równo´sci ˛a tylko dla v = α∇f0(u), a lewa nierówno´s´c - tylko dla v =
−α∇f0(u), gdzie α ≥ 0), mo˙zna pokaza´c, ˙ze je´sli ∇f0(u∗) 6= 0, to kierunkiem najszyb- szego spadku warto´sci funkcji f0 w punkcie u0jest kierunek antygradientu −∇f0(u∗)(tzn.
dla dowolnego h ∈ Rn, h 6= −∇f0(u∗)
f0(u∗+ τ (−∇f0(u∗))) < f0(u∗+ τ h)
dla dostatecznie małych τ > 0). Na tym spostrze˙zeniu opiera si ˛e konstrukcja tzw. metody gradientowej - metody przybli˙zonego wyznaczania rozwi ˛aza´n powy˙zszego zadania.
Niech dany b ˛edzie dowolny punkt u0 ∈ Rn. Rozwa˙zmy ci ˛ag (uk)k∈N∪{0} okre´slony w sposób rekurencyjny wzorem
uk+1 = uk− αk∇f0(uk), k = 0, 1, ..., (41) gdzie αk > 0 dla k = 0, 1, ... jest tzw. krokiem k-tej iteracji.
Uwaga 12 Je´sli ∇f0(uk)6= 0, to αk> 0 mo˙zna wybra´c tak, by spełniona była nierówno´s´c f0(uk+1) < f0(uk) (3). Je´sli ∇f0(uk) = 0, to post ˛epowanie nale˙zy przerwa´c (ci ˛ag tworzony
3Z okre´slenia ró˙zniczkowalno´sci funkcji f0w punkcie u:
f0(u + h) = f0(u) + h∇f0(u), hi + o(h), h ∈ Rn, wynika, ˙ze
f0(uk+1) − f0(uk) = αk[− |∇f0(uk)|2+bok(αk)α−1k ] < 0 dla dostatecznie małych warto´sci αk> 0, gdziebok(α) = o(−α∇f0(uk))