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.
Przykład 2 (zagadnienie transportowe). Wytwórca zamierza przesła´c pewn ˛a ilo´s´c jed- nostek towaru z kilku magazynów do kilku punktów sprzeda˙zy. Ka˙zdy punkt sprzeda˙zy zło˙zył zamówienie u wytwórcy na okre´slon ˛a ilo´s´c jednostek towaru. Ka˙zdy magazyn dys- ponuje okre´slonymi zapasami towaru. Wytwórca zna koszt transportu jednostki towaru z ka˙zdego magazynu do ka˙zdego punktu sprzeda˙zy. Nale˙zy tak zaplanowa´c dystrybucj ˛e towaru, by koszt transportu był minimalny.
Model. Aby sformułowa´c powy˙zsze zadanie jako zadanie programowania liniowego, wprowad´zmy nast ˛epuj ˛ace oznaczenia:
m - ilo´s´c magazynów
n- ilo´s´c punktów sprzeda˙zy
ai - ilo´s´c jednostek towaru znajduj ˛acych si ˛e w i-tym magazynie
bj - zapotrzebowanie (ilo´s´c jednostek) na towar zło˙zone przez j-ty punkt sprzeda˙zy xij - ilo´s´c jednostek towaru przesyłana z i-tego magazynu do j-tego punktu sprzeda˙zy cij - koszt przesłania jednostki towaru z i-tego magazynu do j-tego punktu sprzeda˙zy Całkowity koszt transportu mo˙zna wi ˛ec wyrazi´c nast ˛epuj ˛aco:
Xm i=1
Xn j=1
cijxij.
˙Z ˛ada si ˛e dodatkowo, aby j-ty punkt sprzeda˙zy otrzymał dokładnie bj jednostek towaru i aby i-ty magazyn wysłał dokładnie ai jednostek towaru. Naturalnym zało˙zeniem jest
xij ≥ 0, i = 1, ..., m, j = 1, ..., n.
Mo˙zemy wi ˛ec sformułowa´c nasze zagadnienie w nast ˛epuj ˛acy sposób:
zminimalizowa´c funkcjonał kosztu
Xm i=1
Xn j=1
cijxij, przy ograniczeniach
xij ≥ 0, i = 1, ..., m, j = 1, ..., n.
Xn j=1
xij = ai, i = 1, ..., m, Xm
i=1
xij= bj, j = 1, ..., n.
W przypadku m = 2, n = 3 zadanie przyjmuje posta´c
c11x11+ c12x12+ c13x13+ c21x21+ c22x22+ c23x23→ min . x11≥ 0, x12≥ 0, x13≥ 0, x21≥ 0, x22≥ 0, x23≥ 0,
x11+ x12+ x13= a1
x21+ x22+ x23= a2
x11+ x21 = b1
x12+ x22 = b2
x13+ x23= b3.
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
... bn
⎤
⎥⎦ , 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)
Podstawowym zadaniem programowania liniowego nazywamy zadanie postaci
½ J(u) =hc, ui → min .
u∈ U = {u = (u1, ..., un)∈ Rn; u≥ 0 , Au ≤ b} . (7) Zajmiemy si ˛e teraz zagadnieniem „równowa˙zno´sci” zada´n ró˙znego typu.
Rozwi ˛azywanie zadania podstawowego mo˙zna zast ˛api´c rozwi ˛azywaniem zadania kanon- icznego. 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.3 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.4 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 wolnymi (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.5 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 ... cr
⎤
⎥⎦ ,
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).
Dokonajmy cz ˛e´sciowego podsumowania. Pokazali´smy, ˙ze maj ˛ac ustalony punkt wierz- choł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, gdzie ei jest i-t ˛a kolumn ˛a macierzy jednostkowej o wymiarach r × r).
Zadanie (14) mo˙zemy wi ˛ec 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).
Z faktu, ˙ze macierz A ma r wierszy wynika, wobec twierdzenia charakteryzuj ˛acego punkty wierzchołkowe, i˙z baza (26) wyznacza punkt wierzchołkowy w sposób jednoz- naczny. 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 = Xr
i=1
cji(B−1Ak)i− ck, k = 1, ..., n (30) (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 mo˙zna wybra´c element rozwi ˛azuj ˛acy γjs,k na podstawie warunku (24’) oraz warunku
jmini∈Iv,k
vji
γji,k = vjs
γjs,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
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 1. 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 ustawione s ˛a w kolejno´sci rosn ˛acych indeksów).
Uwaga 2. Mo˙zna pokaza´c, ˙ze ( γ0ji,j = γji,j− γγji,k
js,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).
1.6 Reguła antycykliczna
Podczas realizacji metody sympleksowej mo˙ze si ˛e zdarzy´c, ˙ze 0 = min
ji∈Iv,k
vji
γji,k = vjs γjs,k.
Ze wzorów podanych w Uwadze 1 wynika, ˙ze w takim przypadku w = v
i
J(w) = J(v),
a przej´scie od punktu v do punktu w oznacza jedynie przej´scie od bazy Aj1, ..., Ajr
do bazy
Aj1, ..., Ak, ..., Ajs−1, Ajs+1, ..., Ajr.
Mo˙zna poda´c przykłady zada´n pokazuj ˛ace, ˙ze przy ustalonym sposobie wyboru elementu rozwi ˛azuj ˛acego (n.p. cz ˛esto spo´sród indeksów k, js spełniaj ˛acych warunki (24’)-(25’) wybiera si ˛e najmniejsze warto´sci) metoda sympleksowa mo˙ze si ˛e „zap ˛etli´c”, t.zn. w kole- jnych iteracjach punkt wierzchołkowy nie b ˛edzie si ˛e zmieniał, a jego bazy b ˛ed ˛a zmieniały si ˛e w sposób okresowy (cykliczny).
Mo˙zna jednak okre´sli´c (na ró˙zne sposoby) reguł ˛e wyboru elementu rozwi ˛azuj ˛acego w taki sposób, by unikn ˛a´c owego zap ˛etlenia. Ka˙zda taka reguła nazywana jest reguł ˛a antycyk- liczn ˛a. Podamy teraz opis jednej z takich reguł.
Do tablicy sympleksowej punktu v (dla uproszczenia przyjmijmy, ˙ze kolumny A1,...,Ar
tworz ˛a baz ˛e punktu v) dopisujemy r×r - wymiarow ˛a macierz jednostkow ˛a [di,j]. Dopisane wyrazy przekształcamy w ka˙zdej iteracji zgodnie ze wzorami podanymi w Uwadze 2,
przy czym nie tworzymy współczynników „∆”. Element rozwi ˛azuj ˛acy γs,k wybieramy w nast ˛epuj ˛acy sposób.
Niech ∆k > 0 i Ik ={i ∈ {1, ..., r}, γi,k> 0} 6= ∅. Okre´slmy zbiór Ik,1 ={s ∈ Ik; min
i∈Ik
vi
γi,k = vs γs,k}.
Je´sli zbiór Ik,1 zawiera wi ˛ecej ni˙z jeden element, to tworzymy zbiór Ik,2={s ∈ Ik,1; min
i∈Ik,1
di,1
γi,k = ds,1
γs,k}.
Je´sli mamy ju˙z okre´slony zbiór Ik,m (m ≥ 2) i zawiera on wi ˛ecej ni˙z jeden element, to tworzymy zbiór
Ik,m+1 ={s ∈ Ik,m; min
i∈Ik,m
di,m
γi,k = ds,m
γs,k}.
Dowodzi si ˛e, ˙ze istnieje l ∈ {1, ..., r +1} takie, ˙ze zbiór Ik,l składa si ˛e z jednego elementu s, przy czym wszystkie zbiory Ik,i, i = 1, ..., l − 1, zawieraj ˛a wi ˛ecej ni˙z jeden element. Jako indeks s, słu˙z ˛acy do okre´slenia elementu rozwi ˛azuj ˛acego, przyjmujemy ów jedyny element zbioru Ik,l.
Mo˙zna pokaza´c, ˙ze stosowanie w ka˙zdym kroku metody sympleksowej takiego sposobu wyboru indeksu s, wyznaczaj ˛acego element rozwi ˛azuj ˛acy, pozwala unikn ˛a´c zap ˛etlenia i w sko´nczonej ilo´sci kroków rozwi ˛aza´c zadanie, b ˛ad´z stwierdzi´c, ˙ze rozwi ˛azanie nie istnieje (1).
1.7 Wybór pocz ˛ atkowego punktu wierzchołkowego
Niech dane b ˛edzie zadanie kanoniczne
J(u) =hc, ui → min . (31)
u ∈ U = {u = (u1, ..., un)∈ Rn; u≥ 0 , Au = b}, (32) gdzie ∅ 6= A ∈ Rm×n. Opisuj ˛ac metod ˛e sympleksow ˛a, zakładali´smy mi ˛edzy innymi,
˙ze zbiór U jest niepusty i znany jest „pocz ˛atkowy” punkt wierzchołkowy tego zbioru.
Poka˙zemy teraz jak stwierdzi´c, czy U 6= ∅ i znale´z´c ów punkt wierzchołkowy.
Bez zmniejszania ogólno´sci rozwa˙za´n mo˙zemy zało˙zy´c, ˙ze bi ≥ 0 dla i = 1, ..., m (mno˙z ˛ac w razie potrzeby odpowiednie równania przez −1).
Rozwa˙zmy zadanie pomocnicze postaci
J1(z) = un+1+ ... + un+m → min . (33)
1Zatem nie mo˙ze si ˛e tak˙ze zdarzy´c, ˙ze w nieuporz ˛adkowany sposób b ˛edziemy „przerabia´c” bazy jednego punktu wierzchołkowego, a tak˙ze, i˙z w niesko´nczony sposób (cykliczny lub nie) b ˛edziemy przerabia´c punkty wierzchołkowe (przej´scie do kolejnego punktu wierzchołkowego w 6= v oznacza, ˙ze vs 6= 0 i w konsekwencji J(w) < J(v)).
z ∈ Z = {z =
∙ u w
¸
∈ Rn+m; z ≥ 0, Cz = b}, (34) gdzie C = [A | Im×m], w = (un+1, ..., un+m). Układ
Cz = b zapiszmy w postaci ⎧
⎨
⎩
a1,1u1+ ... + a1,nun+ un+1= b1 ...
am,1u1+ ... + am,nun+ un+m= bm . Łatwo wida´c, ˙ze zbiór Z jest niepusty, bowiem
z0 := (0, b)∈ Z.
Łatwo te˙z wida´c, ˙ze z0 jest punktem wierzchołkowym zbioru Z z baz ˛a zło˙zon ˛a z ostat- nich m kolumn macierzy C, czyli wektorów jednostkowych e1,...,em ∈ Rm (rankC = m).
Mo˙zna wi ˛ec do zadania (33)-(34) zastosowa´c metod ˛e sympleksow ˛a z pocz ˛atkowym punk- tem wierzchołkowym z0.
Poniewa˙z
J1(z)≥ 0, z ∈ Z, wi ˛ec niemo˙zliwy jest przypadek
z∈ZinfJ1(z) =−∞.
Zatem, stosuj ˛ac metod ˛e sympleksow ˛a, w sko´nczonej ilo´sci kroków otrzymamy punkt wierz- chołkowy z∗ = (v∗, w∗)∈ Z b ˛ed ˛acy rozwi ˛azaniem zadania (33)-(34).
Mo˙zliwe s ˛a tutaj dwa przypadki.
10 J1(z∗) > 0. Wówczas zbiór U (dany przez (32)) jest zbiorem pustym. Istotnie, w przeciwnym bowiem razie (czyli gdyby istniał punkt u ∈ U) punkt z = (u, 0) nale˙załby do zbioru Z oraz spełniona byłaby równo´s´c
J1(z) = 0,
co sprzeczne jest z nierówno´sci ˛a J1(z∗) > 0 i optymalno´sci ˛a punktu z∗.
20 J1(z∗) = 0. Wówczas punkt z∗ jest postaci (v∗, 0). Jako punkt uzyskany przy pomocy metody sympleksowej z∗ jest punktem wierzchołkowym zbioru Z. St ˛ad wynika,
˙ze v∗ jest punktem wierzchołkowym zbioru U . Istotnie, poniewa˙z z∗ ≥ 0, wi ˛ec v∗ ≥ 0, natomiast z równo´sci
Cz∗ = b wynika, ˙ze
Av∗ = b.
A wi ˛ec
v∗ ∈ U.
Przypu´s´cmy teraz, ˙ze
v∗ = αu + (1− α)eu,
gdzie α ∈ (0, 1), u, eu ∈ U. Punkty z = (u, 0), ez = (u, 0)e nale˙z ˛a oczywi´scie do zbioru Z, przy czym
z∗ = αz + (1− α)ez.
Poniewa˙z z∗ jest punktem wierzchołkowym zbioru Z, wi ˛ec to oznacza, ˙ze z =ez,
sk ˛ad
u =eu.
A zatem v∗ jest punktem wierzchołkowym zbioru U .
Pokazali´smy wi ˛ec, ˙ze maj ˛ac wyj´sciowe zadanie (31)-(32) i rozwa˙zaj ˛ac zadanie pomoc- nicze (33)-(34), potrafimy stwierdzi´c (stosuj ˛ac metod ˛e sympleksow ˛a do zadania (33)-(34)), czy U 6= ∅ i, je´sli tak, wyznaczy´c pocz ˛atkowy punkt wierzchołkowy zbioru U.
Uwaga 3. Mo˙zna pokaza´c, ˙ze analizuj ˛ac tablic ˛e sympleksow ˛a dla punktu z∗ = (v∗, 0) b ˛ed ˛acego rozwi ˛azaniem zadania (33)-(34)), mo˙zna
(1) znale´z´c rz ˛ad macierzy A wyst ˛epuj ˛acej w zadaniu (31)-(32), wskaza´c baz ˛e punktu wierzchołkowego v1 zbioru (32) (por Uwaga 4) i otrzyma´c tablic ˛e sympleksow ˛a punktu v1 zawieraj ˛ac ˛a r wierszy (nie licz ˛ac wiersza zawieraj ˛acego współczynniki
∆i), gdzie r = rankA lub
(2) otrzyma´c „nowe” zadanie, dla którego natychmiast mo˙zna wskaza´c pocz ˛atkowy punkt wierzchołkowy, jego baz ˛e i tablic ˛e sympleksow ˛a, przy czym ilo´s´c równo´sci wys- t ˛epuj ˛acych w ograniczeniach jest równa rz ˛edowi macierzy opisuj ˛acej te ograniczenia.
Uzupełniaj ˛ac rozwi ˛azanie tego zadania (otrzymane metod ˛a sympleksow ˛a) zerowymi współrz ˛ednymi, otrzymujemy rozwi ˛azanie wyj´sciowego zadania. Je´sli nowe zadanie nie ma rozwi ˛azania, to nie ma go tak˙ze zadanie wyj´sciowe.
Uwaga 4. Maj ˛ac punkt wierzchołkowy v1 zbioru U mo˙zna wyznaczy´c rz ˛ad macierzy A i wskaza´c współrz ˛edne bazowe punktu v1 w nast ˛epuj ˛acy sposób. Dodatnie współrz ˛edne punktu v1 s ˛a oczywi´scie jego współrz ˛ednymi bazowymi. Uzupełniaj ˛ac układ kolumn odpowiadaj ˛acych tym˙ze dodatnim współrz ˛ednym kolumnami spo´sród pozostałych kolumn tak, by otrzymany układ stanowił baz ˛e powłoki liniowej wszystkich kolumn, otrzymamy baz ˛e punktu v1 (zna´c te˙z b ˛edziemy rankA i współrz ˛edne bazowe punktu v1). Ta metoda w praktyce jest stosowana w przypadku małych warto´sci m i n.
Z powy˙zszych rozwa˙za´n wynika nast ˛epuj ˛ace
Twierdzenie 2 Je´sli zbiór U dany przez (32) jest niepusty, to ma co najmniej jeden punkt wierzchołkowy.
Korzystaj ˛ac z opisu metody sympleksowej, udowodnimy teraz dwa podstawowe fakty teorii programowania liniowego.
Twierdzenie 3 Na to, aby kanoniczne zadanie postaci (31)-(32) miało rozwi ˛azanie, t.zn.
aby istniał punkt u∗ ∈ U taki, ˙ze
hc, u∗i = inf
u∈Uhc, ui potrzeba i wystarcza, aby
1) zbiór U był niepusty
2) funkcjonał J(u) = hc, ui był ograniczony z dołu na zbiorze U.
Dowód. Konieczno´s´c. Konieczno´s´c warunków 1) i 2) jest oczywista.
Dostateczno´s´c. Z warunku 1) i twierdzenia 2 wynika, ˙ze istnieje punkt wierzchołkowy zbioru U . Mo˙zna wi ˛ec, startuj ˛ac z tego punktu, rozwi ˛azywa´c zadanie metod ˛a symplek- sow ˛a. Z warunku 2) wynika, ˙ze w ˙zadnej iteracji nie zajdzie przypadek 20 (z opisu metody sympleksowej). Oznacza to, ˙ze po sko´nczonej ilo´sci kroków metoda sympleksowa zako´nczy si ˛e znalezieniem rozwi ˛azania u∗ zadania (31)-(32).
Twierdzenie 4 Je´sli zadanie (31)-(32) ma rozwi ˛azanie, to w´sród rozwi ˛aza´n co najmniej jeden punkt jest punktem wierzchołkowym.
Dowód. Z twierdzenia 3 wynika, ˙ze U 6= ∅ i funkcjonał J jest ograniczony z dołu na U . Z twierdzenia 2 wynika, ˙ze zbiór U ma co najmniej jeden punkt wierzchołkowy.
„Startuj ˛ac” z tego punktu, w sko´nczonej ilo´sci kroków matody sympleksowej, otrzymamy rozwi ˛azanie u∗, które jest punktem wierzchołkowym zbioru U (w ˙zadnej iteracji nie zajdzie przypadek 20, gdy˙z
u∈UinfJ(u) >−∞).
Dowód twierdzenia jest zako´nczony.
2 Programowanie nieliniowe
2.1 Zasada Fermata
Rozwa˙zmy zadanie postaci (minimalizacyjne zadanie bezwarunkowe)
½ f0(u)→ inf ,
u∈ Rn (35)
gdzie f0 : Rn→ R.
Punkt u∗ ∈ Rn nazywamy punktem lokalnego minimum dla tego zadania, je´sli istnieje otoczenie V punktu u∗ takie, ˙ze
f0(u∗)≤ f0(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 5 (zasada Fermata) Je´sli u∗ jest punktem lokalnego minimum dla zada- nia (35) i funkcja f0 ma w punkcie u∗ gradient ∇f0(x∗), to
∇f0(u∗) = 0.
Dowód. Istnienie gradientu funkcji f0 w punkcie u∗ oznacza istnienie pochodnej funkcji ϕi : [−1, 1] 3 t 7→ f0(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 f0, wi ˛ec ϕ0i(0) = 0, i = 1, ..., n.
A wi ˛ec ∇f0(u∗) = 0, co ko´nczy dowód.
2.2 Zasada mno˙zników Lagrange’a
Rozwa˙zmy zadanie postaci
½ f0(u)→ inf ,
u∈ U = {u ∈ Rn; fi(u) = θ, i = 1, ..., m} (36) gdzie fi : Rn→ R, i = 1, ..., m.
Mówimy, ˙ze punkt u∗ ∈ Rn jest punktem lokalnego minimum dla zadania (36), je´sli istnieje otoczenie V tego punktu takie, ˙ze dla dowolnego punktu u ∈ V , spełniaj ˛acego ograniczenia
fi(u) = θ, i = 1, ..., m, mamy
f0(u∗)≤ f0(u)
(gdy V = Rn mówimy, ˙ze u∗ jest punktem globalnego minimum).
Twierdzenie 6 (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 7 (zasada mno˙zników Lagrange’a) Je´sli funkcje fi, i = 0, ..., m s ˛a klasy C1 na Rn i punkt u∗ jest punktem lokalnego minimum (maksimum) dla zadania (36), to istnieje niezerowy wektor (λ0, λ1, ..., λm)∈ R1+m taki, ˙ze
Pm
i=0λi∇fi(u∗) = 0.
Dowód. Warunek dany w tezie twierdzenia oznacza liniow ˛a zale˙zno´s´c wektorów
∇f0(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 ∇f0(u∗),∇f1(u∗), ...,∇fm(u∗)wektorami dm+1, ..., dn−1tak, by układ wektorów ∇f0(u∗),∇f1(u∗), ...,∇fm(u∗), dm+1, ..., dn−1 był układem liniowo nieza- le˙znym w Rn.
Rozwa˙zmy teraz funkcje
g0(t, u) = f0(u)− f0(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
f0(u(t)) = f0(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 (36), przy czym
f0(u(t)) = f0(u∗)− t < f0(u∗) < f0(u∗) + t = f0(u(−t)).
Przeczy to optymalno´sci punktu u∗.