Programowanie liniowe
1 Wst ˛ ep
Programowanie liniowe jest jednym z działów teorii zada´n ekstremalnych. Podstawy pro- gramowania liniowego stworzył Kantorowicz w latach 30-tych ubiegłego stulecia.
Przedmiotem programowania liniowego s ˛a zadania polegaj ˛ace na szukaniu punktów minimum (b ˛ad´z maksimum) funkcji liniowej na zbiorze opisanym układem równo´sci lub nierówno´sci lin- iowych. Najprostszym przykładem zadania programowania liniowego jest zadanie znalezienia punktu minimum funkcji f (x) = ax na przedziale [c, d] ⊂ R+0. W postaci zadania programowa- nia liniowego mo˙zna zapisa´c wiele praktycznych zagadnie´n natury ekonomicznej.
Przykład 1(planowanie produkcji). Wytwórca dysponuje okre´slonymi ilo´sciami ró˙znych ´srod- kó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 za- planowa´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 (niewiadoma)
cj - dochód uzyskiwany ze sprzeda˙zy jednostki j-tego towaru
Całkowit ˛a ilo´s´c i-tego ´srodka, zu˙zyt ˛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 ˛epujaco:
Xn j=1
cjxj,
przy czym oczywi´scie
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 jednostek to- waru z kilku magazynów do kilku punktów sprzeda˙zy. Ka˙zdy punkt sprzeda˙zy zło˙zył zamówie- nie u wytwórcy na okre´slon ˛a ilo´s´c jednostek towaru. Ka˙zdy magazyn dysponuje 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 (niewiadoma)
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 ka˙zdy punkt sprzeda˙zy otrzymał dokładnie bj jednostek towaru i aby ka˙zdy magazyn wysłał dokładnie ai jednostek towaru. Naturalnym zało˙zeniem jest, ˙ze
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
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.
Przykład 3 (zagadnienie diety). Dane s ˛a zawarto´sci okre´slonych składników od˙zywczych w ró˙znych produktach spo˙zywczych (dokładniej, w 100 g (jednostce) ka˙zdego z rozpatrywanych produktów), n.p. wiadomo, ile mg fosforu zawiera 100 g ka˙zdego z rozpatrywanych produktów.
Znane jest równie˙z minimalne dzienne zapotrzebowanie organizmu na poszczególne składniki od˙zywcze oraz maksymalna (dopuszczalna) dzienna dawka ka˙zdego z tych składników, która nie powinna by´c przekraczana. Znaj ˛ac koszt jednostki ka˙zdego z rozpatrywanych produktów, nale˙zy uło˙zy´c diet ˛e w taki sposób, by pokrywała minimalne dzienne zapotrzebowanie organizmu na składniki od˙zywcze, nie szkodziła i jej koszt był minimalny.
Model. Wprowad´zmy nast ˛epuj ˛ace oznaczenia:
m - ilo´s´c składników od˙zywczych n - ilo´s´c produktów spo˙zywczych
aij - ilo´s´c mg i-tego składnika od˙zywczego w 100 g j-tego produktu spo˙zywczego bi - minimalne dzienne zapotrzebowanie (w mg) organizmu na i-ty składnik od˙zywczy dj - maksymalna dzienna dawka (w mg) i-tego składnika od˙zywczego
xj - ilo´s´c jednostek (100 g) j-tego produktu spo˙zywczego przewidziana w diecie (niewiadoma) cj - koszt jednostki (100 g) j-tego produktu spo˙zywczego
Powy˙zsze zagadnienie mo˙zna sformułowa´c w postaci nast ˛epuj ˛acego minimalizacyjnego zada- nia programowania liniowego:
c1x1+ ... + cnxn→ min . xj ≥ 0, j = 1, ..., n,
ai1x1 + ... + ainxn ≥ bi, i = 1, ..., m, ai1x1+ ... + ainxn≤ di, i = 1, ..., m.
2 Sformułowanie zadania
Ogólnym zadaniem programowania liniowego nazywamy zadanie postaci (u = (u1, ..., un)
∈ Rn):
J(u) = c1u1+ ... + cnun→ min . (I.1)
uk ≥ 0, k ∈ I (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
, (I.3)
gdzie cj, ai,j, bi, i = 1, ..., s, j = 1, ..., n, s ˛a danymi liczbami rzeczywistymi, I ⊂ {1, ..., n} jest ustalonym zbiorem indeksów; mo˙zliwe s ˛a tutaj przypadki: I = ∅, I = {1, ..., n}, m = s, m = 0.
Powy˙zsze zadanie 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} (1) gdzie
c = (c1, ..., cn),
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
⎤
⎥⎦ .
(symbolem hx, yi oznaczamy iloczyn skalarny wektorów x = (x1, ..., xn), y = (y1, ..., yn), t.zn.
hx, yi =Pn
i=1xiyi; zapis
x≥ y, gdzie x = (x1, ..., xn), y = (y1, ..., yn), oznacza, ˙ze
xi ≥ yi, i = 1, ..., n).
Ka˙zdy punkt u ∈ U nazywamy punktem dopuszczalnym dla zadania (1). Punkt u∗ ∈ U nazywamy rozwi ˛azaniem zadania (1), gdy
J(u∗)≤ J(u)
Kanonicznym zadaniem programowania liniowego nazywamy zadanie postaci
½ J(u) =hc, ui → min .
u∈ U = {u = (u1, ..., un)∈ Rn; u≥ 0 , Au = b} . (I.6) Podstawowym zadaniem programowania liniowego nazywamy zadanie postaci
½ J(u) =hc, ui → min .
u∈ U = {u = (u1, ..., un)∈ Rn; u≥ 0 , Au ≤ b} . (I.7) Zajmiemy si ˛e teraz zagadnieniem „równowa˙zno´sci” zada´n ró˙znego typu.
A mianowicie, rozwi ˛azywanie zadania podstawowego mo˙zna zast ˛api´c rozwi ˛azywaniem zadania kanonicznego. Istotnie, niech dane b ˛edzie zadanie podstawowe (I.7) i rozwa˙zmy w przestrzeni Rn+m zadanie postaci
½ hd, zi → min .
z ∈ Z = {z = (u, v) ∈ Rn+m; z≥ 0 , Cu = b} , (I.9) 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 (I.7), to z∗ = (u∗, v∗), gdzie v∗ = b− Au∗,
jest rozwi ˛azaniem zadania (I.9), 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 (I.9), to u∗ jest rozwi ˛azaniem zadania (I.7), t.zn. u∗ ∈ U oraz
hc, u∗i ≤ hc, ui dla dowolnego u ∈ U.
Podobnie, rozwi ˛azywanie zadania ogólnego (1) mo˙zna zast ˛api´c rozwi ˛azywaniem zadania kanon- icznego. 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
¸ }
, (I.10)
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 (1), 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 (I.10) (zauwa˙zmy, ˙ze ui∗ = w∗i − wi∗ dla i ∈ J).
Je´sli natomiast
z∗ = (v∗, ui∗; i∈ I, wi∗; i∈ J, wi∗; i∈ J), jest rozwi ˛azaniem zadania (I.10), to
u∗ = (ui∗; i∈ I, wi∗− wi∗; i∈ J) jest rozwi ˛azaniem zadania (1).
2.1 Zadania
Zadanie 1. Zapisa´c nast ˛epuj ˛ace zadanie w postaci zadania programowania liniowego.
Producent odzie˙zy powinien okre´sli´c, ile kurtek i płaszczy nale˙zy wyprodukowa´c tak, aby zysk osi ˛agniety z ich sprzeda˙zy był maksymalny. Do produkcji wykorzystywany jest jeden rodzaj tkaniny. Producent posiada 150 m2 tej tkaniny. Zgodnie z zamówieniami nale˙zy wyprodukowa´c co najmniej 20 kurtek i co najwy˙zej 10 płaszczy. Do produkcji jednej kurtki i jednego płaszcza potrzeba odpowiednio 2, 5 m2 i 4 m2 tkaniny. Przy sprzeda˙zy jednej kurtki producent osi ˛aga zysk
Pewien wytwórca posiada centrale zbytu z Lublinie, Łodzi i Szczecinie. Centrale te posiadaj ˛a odpowiednio 40, 20 i 40 jednostek produktu. Punkty sprzeda˙zy zamówiły nastepuj ˛ace ilo´sci jednostek produktu: Białystok - 25, Cieszyn - 10, Kraków - 20, Sopot - 30, Warszawa - 15.
Koszt transportu jednostki (w zł) z ka˙zdej centrali zbytu do dowolnego punktu sprzeda˙zy podaje nast ˛epujaca tablica:
Białystok Cieszyn Kraków Sopot Warszawa
Lublin 55 30 40 50 40
Łód´z 35 30 100 45 60
Szczecin 40 60 95 35 30
Nale˙zy tak zaplanowa´c dystrybucj ˛e produktu, by koszt transportu był minimalny.
Zadanie 3. Zapisa´c nast ˛epuj ˛ace zadanie w postaci zadania programowania liniowego.
Wytwórca mebli powinien okre´sli´c, ile stoł ów, krzeseł, biurek i szaf powinien wyprodukowa´c, by zysk z ich sprzeda˙zy był maksymalny. Do produkcji wykorzystywane sa dwa typy desek.
Wytwórca posiada 1500 m desek I typu i 1000 m - desek II typu oraz dysponuje kapitałem 860 godzin roboczych na wykonanie zaplanowanej produkcji. Ze zło˙zonych zamówie´n wynika, ˙ze nale˙zy wyprodukowa´c co najmniej 40 stołów, 130 krzeseł, 30 biurek i nie wi ˛ecej ni˙z 10 szaf. Do produkcji ka˙zdego stołu, krzesła, biurka i szafy potrzeba odpowiednio 5, 1, 9, 12 m desek I typu i 2, 3, 4, 1 m desek II typu. Na wykonanie stołu potrzeba 3 godzin pracy, krzesła -2 godzin, biurka - 5 godzin, szafy - 10 godzin. Ze sprzeda˙zy jednego stołu, krzesła, biurka i szafy wytwórca osi ˛aga zysk odpowiednio 50, 20, 60 i 40 zł.
Zadanie 4. Zapisa´c nast ˛epuj ˛ace zadanie w postaci zadania programowania liniowego.
Zadaniem dietetyka jest opracowanie składu porannej owsianki tak, aby zawierała ona niezb ˛edne dzienne zapotrzebowanie organizmu na okre´slone składniki od˙zywcze i jednocze´snie była mo˙zliwie najta´nsz ˛a. Dietetyk ma dyspozycji płatki Corn Flakes i Nesquik. ´Sniadanie powinno zawiera´c co najmniej 1 mg witaminy B1, 12 mg ˙zelaza i mie´c warto´s´c energetyczn ˛a równ ˛a 360 kcal. 100 g płatków Corn Flakes zawiera 1, 2 mg witaminy B1, 12 mg ˙zelaza i ma warto´s´c energetyczn ˛a równ ˛a 358 kcal, natomiast 100 g płatków Nesquik zawiera 1, 5 mg witaminy B1, 10 mg ˙zelaza i ma warto´s´c energetyczn ˛a równ ˛a 390 kcal. Ponadto 100 g płatków Corn Flakes kosztuje 32 gr, a 100 g płatków Nesquik - 36 gr.
Zadanie 5. Zapisa´c nast ˛epuj ˛ace zadanie w postaci zadania programowania liniowego.
Dyrektor pewnego przedsi ˛ebiorstwa powinien obsadzi´c trzy stanowiska, które wymagaj ˛a ró˙znych kwalifikacji i praktyki zawodowej, przy czym ma do dyspozycji trzech pracowników. Ze wzgl ˛edu na ró˙zne ich kwalifikacje i do´swiadczenie zawodowe warto´s´c (dla przedsi ˛ebiorstwa) ka˙zdego z tych pracowników zale˙zy od stanowiska, na którym jest on zatrudniony. Poni˙zsza tabela zawiera oceny warto´sci poszczególnych pracowników zatrudnionych na poszczególnych stanowiskach
Stanowisko I Stanowisko II Stanowisko III
Pracownik A 5 4 7
Pracownik B 6 7 3
Pracownik C 8 11 2
Nale˙zy tak rozmie´sci´c pracowników na rozwa˙zanych stanowiskach, by całkowita ich warto´s´c dla przedsi ˛ebiorstwa była maksymalna.
Zadanie 6. Zapisa´c nast ˛epuj ˛ace zadanie w postaci zadania programowania liniowego.
Producent farb powinien okre´sli´c, ile litrów farby białej, zielonej, niebieskiej i czerwonej nale˙zy wyprodukowa´c, aby zysk osi ˛agni ˛ety z ich sprzeda˙zy był maksymalny. Do produkcji wykorzysty- wane s ˛a trzy surowce: A, B i C. Producent posiada 230 litrów surowca A, 200 litrów - surowca B i 170 litrów - surowca C oraz dysponuje kapitałem 160 godzin roboczych. Z przyj ˛etych za- mówie´n wynika, ˙ze nale˙zy wyprodukowa´c co najmniej 125 litrów farby białej, co najmniej 135 litrów - farby zielonej, co najwy˙zej 205 litrów - farby niebieskiej i nie mniej ni˙z 175 litrów - farby czerwonej. Ilo´sci (w litrach) poszczególnych surowców potrzebnych do wyprodukowania 1 litra ka˙zdej farby przedstawione s ˛a w nast ˛epuj ˛acej tabeli
biała zielona niebieska czerwona
A 0,30 0,60 0,35 0,15
B 0,25 0,20 0,45 0,55
C 0,45 0,20 0,20 0,30
.
Zysk ze sprzeda˙zy 1 litra farby białej wynosi 7 zł, zielonej - 6 zł, niebieskiej - 7 zł, czerwonej - 5 zł.
Zadanie 7. Zapisa´c nast ˛epuj ˛ace zadanie w postaci zadania programowania liniowego.
Hodowca krowy karmi zwierz ˛e produktami pochodz ˛acymi z gospodarstwa rolnego. Jednak ze wzgl ˛edu na konieczno´s´c zapewnienia w diecie odpowiednich ilo´sci pewnych składników od˙zyw- czych (nazwijmy je A, B, C) hodowca musi zakupi´c raz w roku trzy dodatkowe produkty (nazwi- jmy je I, II, III), które zawieraj ˛a te składniki. Jeden kilogram produktu I zawiera 63 g skład- nika A i 9 g składnika B, jeden kilogram produktu II zawiera 14 g składnika B i 28 g składnika C, za´s jeden kilogram produktu III zawiera 50 g składnika A i 15 g składnika C. Minimalne zapotrzebowanie zwierz ˛ecia na poszczególne składniki wynosi:
870 g składnika A, 200 g składnika B, 450 g składnika C.
Ka˙zdy z produktów zawiera jednak pewne ilo´sci szkodliwych ´srodków konserwuj ˛acych. I tak, 1 kg produktu I zawiera 7 g tych ´srodków, produktu II - 11 g, produktu III - 9 g. Roczne spo˙zycie ´srodków konserwuj ˛acych nie powinno przekroczy´c 150 g. Przyjmijmy na koniec, ˙ze 1 kg produktu I kosztuje 35 zł, produktu II - 29 zł, a produktu III - 19 zł. Celem hodowcy jest ustalenie ilo´sci kupowanych produktów I, II, III tak, aby zapewni´c zwierz ˛eciu wła´sciw ˛a diet ˛e i jednocze´snie ponie´s´c mo˙zliwie najmniejsze koszty.
Zadanie 10. Zapisa´c zadanie 4 w postaci kanonicznego zadania programowania liniowego.
Zadanie 11. Zapisa´c zadanie ogólne
⎧⎪
⎪⎪
⎪⎨
⎪⎪
⎪⎪
⎩
J(u) = u1+ 2u2+ 3u3 → min . u∈ U = {u = (u1, u2, u3)∈ R3; u1 ≥ 0,
10u1+ 20u2+ 30u3 ≤ 11, 100u1+ 200u2 + 300u3 ≤ 12
1
2u1+13u2+ 14u3 = 0} w postaci zadania kanonicznego.
Zadanie 12. Zapisa´c zadanie ogólne
⎧⎪
⎪⎪
⎪⎪
⎪⎪
⎪⎨
⎪⎪
⎪⎪
⎪⎪
⎪⎪
⎩
J(u) = 3u1+ 5u2 + 7u3+ 9u4 → min . u∈ U = {u = (u1, u2, u3, u4)∈ R4; u2 ≥ 0, u4 ≥ 0,
11u1+ 12u2+ 13u3+ 14u4 ≤ 1, 21u1+ 23u3 ≤ −1,
32u2 ≥ 8,
1
1u1+ 12u2+13u3+14u4 = 2,
1
11u1+141u4 =−2}
w postaci zadania kanonicznego.
3 Interpretacja geometryczna zada´ n programowania lin- iowego
Rozwa˙zmy zadanie podstawowe (I.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}
. (II.1)
Wprowad´zmy oznaczenia
U0 ={(u1, u2)∈ R2; u1 ≥ 0, u2 ≥ 0},
Ui ={(u1, u2)∈ R2; ai,1u1+ ai,2u2 ≤ bi}, i = 1, ..., m.
Oczywi´scie
U =
\m i=0
Ui. 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 prostopadła do wektora 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 ci „zamiataj ˛ac” cał ˛a płaszczyzn ˛e.
W przypadku 20 zawsze istnieje „punkt pierwszego kontaktu” (by´c mo˙ze nie jedyny) przesuwa- j ˛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 (II.1) 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 wierz- chołkiem wieloboku U .
Podobn ˛a analiz ˛e mo˙zna przeprowadzi´c w przypadku, gdy 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 zmien- nych. 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 oznaczenia
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 zada-
nia 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 ˛aza- niem zadania wyj´sciowego, to u∗ jest rozwi ˛azaniem zadania (=).
3.1 Zadania
Zadanie 1. Rozwi ˛aza´c w sposób geometryczny nast ˛epuj ˛ace zadanie:
⎧⎪
⎪⎪
⎪⎪
⎪⎨
⎪⎪
⎪⎪
⎪⎪
⎩
J(u) = u1 + u2 → min . u∈ U = {u = (u1, u2)∈ R2; u≥ 0,
−2u1− u2 ≤ −2,
1
2u1− u2 ≤ 12,
−u1+ u2 ≤ 2, u1 ≤ 3}
.
Zadanie 2. Rozwi ˛aza´c w sposób geometryczny nast ˛epuj ˛ace zadanie:
⎧⎪
⎪⎪
⎪⎪
⎪⎨
⎪⎪
⎪⎪
⎪⎪
⎩
J(u) =−2u1+ u2 → min . u∈ U = {u = (u1, u2)∈ R2; u≥ 0,
−u1− u2 ≤ −1,
−u1+ u2 ≤ −1,
−u1+ 2u2 ≤ 0, 2u1− u2 ≤ 5}
.
Zadanie 3. Rozwi ˛aza´c w sposób geometryczny nast ˛epuj ˛ace zadanie:
⎧⎪
⎪⎨
⎪⎪
⎩
J(u) = 2u1− u2 → min . u∈ U = {u = (u1, u2)∈ R2; u≥ 0,
−12u1+ u2 ≤ 2,
−12u1− u2 ≤ −1}
.
Zadanie 4. Rozwi ˛aza´c w sposób geometryczny nast ˛epuj ˛ace zadanie:
⎧⎪
⎪⎨
⎪⎪
⎩
J(u) =−u1+ u2 → min . u∈ U = {u = (u1, u2)∈ R2; u≥ 0,
−12u1+ u2 ≤ 2,
−13u1+ u2 = 1}
.
Zadanie 4. Rozwi ˛aza´c w sposób geometryczny nast ˛epuj ˛ace zadanie.
W pewnym zakładzie wytwarzane s ˛a produkty A i B. Do produkcji ka˙zdego z nich wykorzystywana jest praca trzech maszyn: M1, M2, M3. Maszyna M1 mo˙ze by´c wykorzystana przez 24000 s, M2 - 40000 s, M3 - 27000 s. Poni˙zsza tabela podaje czas pracy ka˙zdej maszyny potrzebny do wyprodukowania jednostki ka˙zdego produktu
A B
M1 3 6
M2 8 4
M3 9 3
Zysk ze sprzeda˙zy jednostki produktu A wynosi 9 zł, B - 6 zł. Nale˙zy zaplanowa´c produkcj ˛e tak, by zysk ze sprzeda˙zy był maksymalny.
Zadanie 6. Rozwi ˛aza´c w sposób geometryczny nast ˛epuj ˛ace zadanie:
⎧⎪
⎪⎪
⎪⎨
⎪⎪
⎪⎪
⎩
J(u) =−u1− 3u2− 2u4− 3u5 → min . u∈ U = {u = (u1, u2, u3, u4, u5)∈ R5; u≥ 0,
u1+ 2u4+ 3u5 = 15, 2u1+ u3+ u4+ 5u5 = 20,
u1+ u2+ 2u4+ u5 = 10}
.
Zadanie 7. Rozwi ˛aza´c w sposób geometryczny nast ˛epuj ˛ace zadanie:
⎧⎪
⎪⎪
⎪⎨
⎪⎪
⎪⎪
⎩
J(u) =−u1− 2u2+ u3 → min .
u∈ U = {u = (u1, u2, u3, u4, u5)∈ R5; u≥ 0, 3u1− 2u2+ 2u3 − 2u4+ 3u5 = 38,
−u1+ u2+ 3u4− u5 = 13, u1− u2+ u3 = 14}
.
4 Punkty wierzchołkowe
Punkt v ∈ V ⊂ Rn nazywamy punktem wierzchołkowym (punktem ekstremalnym) zbioru wypukłego i domkni ˛etego V , je´sli przedstawienie
v = αv1+ (1− α)v2, (III.1)
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 odcinka o ró˙znych ko´ncach nale˙z ˛acych do V . Poj ˛ecie punktu wierzchołkowego jest poj ˛eciem fundamen- talnym 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}. (III.2)
Teraz podamy charakteryzacj ˛e punktów wierzcholkowych zbioru postaci (III.2).
Twierdzenie 1 Niech dany b ˛edzie zbiór U postaci (III.2) 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 1 ≤ j1 < ... < jr ≤ 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
(III.4)
Dowód. Konieczno´s´c. Na wst ˛epie zauwa˙zmy, ˙ze równo´s´c Au = b
mo˙zna zapisa´c w nastepuj ˛acy, równowa˙zny sposób
A1u1+ ... + Anun= b. (III.5)
Niech v b ˛edzie punktem wierzchołkowym zbioru U . Je´sli v = 0, to z przynale˙zno´sci v do zbioru U (por. definicja punktu wierzchołkowego) wynika, ˙ze b = 0. Z kolei z warunku A 6= 0 wynika,
˙ze r = rankA≥ 1. Zatem istniej ˛a kolumny Aj1,...,Ajr, które s ˛a liniowo niezale˙zne w Rm, przy czym
Aj1 · 0 + ... + Ajr · 0 = b, co oznacza, ˙ze v = 0 spełnia warunki (III.4).
Załó˙zmy wi ˛ec, ˙ze v 6= 0 i niech vj1,...,vjk b ˛ed ˛a wszystkimi dodatnimi współrz ˛ednymi wektora v.
Z warunku Av = b oraz przedstawienia (III.5) wynika, ˙ze
Aj1vj1 + ... + Ajkvjk = b (III.6) (oczywi´scie
vj = 0, j /∈ {j1, ..., jk}).
Poka˙zemy teraz, ˙ze kolumny Aj1, ..., Ajk s ˛a liniowo niezale˙zne w Rm. Załó˙zmy wi ˛ec, ˙ze
α1Aj1 + ... + αkAjk = 0 (III.7) dla pewnych α1, ..., αk∈ R. Ustalmy ε > 0 i rozwa˙zmy punkty postaci
v+ = (v1+, ..., v+n), gdzie
v+jp = vjp + εαp, p = 1, ..., k, v+j = 0, j /∈ {j1, ..., jk} oraz
v− = (v1−, ..., v−n),
gdzie
v−jp = vjp − εαp, p = 1, ..., k, v−j = 0, j /∈ {j1, ..., jk}.
Z faktu, ˙ze vjp > 0, p = 1, ..., k, wynika, ˙ze dla dostatecznie małej liczby ε > 0 spełnione b ˛ed ˛a warunki
v+ ≥ 0, v− ≥ 0.
Ponadto, mno˙z ˛ac (III.7) przez ε i −ε oraz dodaj ˛ac do (III.6), dostajemy równo´sci Av+ = b, Av−= b.
Oznacza to, ˙ze v+, v− ∈ U. Ponadto,
v = 1
2(v++ v−).
Poniewa˙z v jest punktem wierzchołkowym, wi ˛ec oznacza to, ˙ze v+= v−,
czyli
α1 = ... = αk= 0, co ko´nczy dowód liniowej niezale˙zno´sci kolumn Aj1, ..., Ajk. Z powy˙zszego wynika, ˙ze k ≤ r.
Je´sli k = r, to z (III.6) wynika, ˙ze spełnione s ˛a warunki (III.4).
Je´sli za´s k < r, to mo˙zna uzupełni´c układ kolumn Aj1, ..., Ajk
kolumnami
Ajk+1, ..., Ajs
tak, aby układ
Aj1, ..., Ajk, Ajk+1, ..., Ajs (III.8) był liniowo niezale˙zny i aby
1) dodanie do´n dowolnej kolumny Aj dawało układ liniowo zale˙zny lub
2) s było równe n.
W obu przypadkach układ (III.8) tworzy baz ˛e liniowej powłoki wektorów A1,...,An. Wymiar tej powłoki jest równy rz ˛edowi macierzy A, czyli s = r. Dodaj ˛ac do lewej strony równo´sci (III.6) sum ˛e
Ajk+1vjk+1+ ... + Ajrvjr = Ajk+1· 0 + ... + Ajr · 0 = 0, otrzymujemy (III.4).
Dostateczno´s´c. Niech v ∈ Rnb ˛edzie punktem spełniaj ˛acym warunki (III.4). Wówczas v ∈ U.
Przypu´s´cmy, ˙ze
v = αv1+ (1− α)v2, (III.9)
gdzie v1, v2 ∈ U, α ∈ (0, 1). Poka˙zemy, ˙ze v1 = v2. Zauwa˙zmy, ˙ze je´sli vj = 0, to z (III.9) oraz nierówno´sci
0 < α < 1, vj1 ≥ 0, vj2 ≥ 0 otrzymujemy
0≤ αv1j + (1− α)v2j = vj = 0,
co oznacza, ˙ze v1j = vj2(= 0). Je´sli wi ˛ec v = 0, to v jest punktem wierzchołkowym zbioru U . Przypu´s´cmy wie´c, ˙ze v 6= 0. Dla zako´nczenia dowodu wystarczy pokaza´c, ˙ze v1j = vj2 dla tych wska´zników j, dla których vj > 0.
Z waruków (III.4) wynika, ˙ze dodatnimi współrz ˛ednymi punktu v mog ˛a by´c jedynie współrz ˛edne vj1, ..., vjr.
Niech
D :={j ∈ {j1, ..., jr}; vj > 0}.
Oczywi´scie D 6= ∅. Poniewa˙z
v1j = vj2 = 0, j /∈ D, wi ˛ec równo´sci
Av1 = b, Av2 = b mo˙zemy zapisa´c w postaci X
j∈D
Ajv1j = b, X
j∈D
Ajv2j = b.
Z liniowej niezale˙zno´sci wektorów Aj, j ∈ D, i z powy˙zszych równo´sci wynika, ˙ze vj1 = v2j, j ∈ D,
co ko´nczy dowód twierdzenia.
Układ wektorów Aj1,...,Ajr wyst ˛epuj ˛acych w warunkach (III.4) nazywamy baz ˛a punktu wierz- chołkowego v, a odpowiednie współrz ˛edne vj1,...,vjr - współrz ˛ednymi bazowymi punktu wierz- chołkowego v. Punkt wierzchołkowy, którego wszystkie współrz ˛edne bazowe s ˛a dodatnie nazy- wamy 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 (przy ustalonej bazie Aj1,...,Ajr).
Z twierdzenia 1 wynika, ˙ze baza nieosobliwego punktu wierzchołkowego zbioru (III.2) jest wyz- naczona jednoznacznie, natomiast osobliwy punkt wierzchołkowy mo˙ze mie´c wiele baz.
4.1 Zadania
Zadanie 1. Znale´z´c, w oparciu o Twierdzenie 1, punkty wierzchołkowe zbioru U ={u = (u1, u2)∈ R2; u≥ 0, −1
3u1+ u2 = 1}.
Zadanie 2. Znale´z´c, w oparciu o Twierdzenie 1, punkty wierzchołkowe zbioru U ={u = (u1, u2, u3, u4)∈ R4; u≥ 0,
u1+ u2+ 3u3+ u4 = 3, u1− u2+ u3+ 2u4 = 1}.
Zadanie 3. Znale´z´c, w oparciu o Twierdzenie 1, punkty wierzchołkowe zbioru U ={u = (u1, u2, u3, u4)∈ R4; u≥ 0,
u1+ u4 = 0, 2u2+ u4 = 3, 3u3 = 0} i wskaza´c ich bazy.
Zadanie 4. Znale´z´c, w oparciu o Twierdzenie 1, punkty wierzchołkowe zbioru U ={u = (u1, u2, u3)∈ R3; u≥ 0,
u1+ 2u2 + 3u3 = 4, −u1+ 5u3 = 0}.
Poda´c bazy znalezionych punktów wierzchołkowych.
Zadanie 5. Znale´z´c, w oparciu o Twierdzenie 1, punkty wierzchołkowe zbioru U ={u = (u1, u2, u3)∈ R3; u≥ 0,
u1 + u2+ 2u3 = 10, −u1+ 3u3 = 9, u1+ 2u2+ 7u3 = 29}.
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 badanych punktach nie rosn ˛a).
Rozwa˙zmy zadanie kanoniczne postaci
½ J(u) =hc, ui → min .
u∈ U = {u = (u1, ..., un)∈ Rn; u≥ 0 , Au = b} (IV.1) gdzie 0 6= A ∈ Rm×n. B ˛edziemy zakłada´c 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 (IV.1).
B ˛edziemy wi ˛ec zakłada´c w dalszym ci ˛agu, ˙ze r < n. Wówczas równo´s´c Au = b
mo˙zemy zapisa´c w postaci ⎧
⎨
⎩
a1,1u1+ ... + a1,nun= b1 ...
ar,1u1+ ... + ar,nun= br
(IV.2) gdzie r < n.
Podamy teraz opis metody sympleksowej. Przypu´s´cmy, ˙ze dany jest punkt wierzchołkowy v zbioru
U ={u = (u1, ..., un)∈ Rn; u≥ 0 , Au = b}
i załó˙zmy, ˙ze kolumny A1,...,Ar s ˛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 ˛epu- j ˛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 (IV.2) mo˙zemy zapisa´c w postaci
Bu+ Ar+1ur+1+ ... + Anun= b. (IV.3) Z liniowej niezale˙zno´sci kolumn A1,...,Ar (jest to baza punktu v) wynika, ˙ze istnieje macierz odwrotna B−1. Współrz ˛edne niebazowe punktu v s ˛a zerowe, zatem punkt v mo˙zemy zapisa´c w postaci
v =
∙ v 0
¸ , przy czym v ≥ 0. A wi ˛ec z (IV.3) otrzymujemy
Bv= b, sk ˛ad
v = B−1b.
Mno˙z ˛ac równo´s´c (IV.3) lewostronnie przez B−1 otrzymujemy u +
Xn k=r+1
B−1Akuk= B−1b = v. (IV.4)
Oznaczmy
γs,k = (B−1Ak)s dla k = r + 1, ..., n, s = 1, ..., r
gdzie (B−1Ak)s oznacza s-t ˛a współrz ˛edn ˛a wektora-kolumny B−1Ak. Równo´s´c (IV.4) 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
. (2)
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, ˙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 (IV.2) w równowa˙znej postaci (IV.3) lub (IV.4) lub (2) lub (??) lub (??).
Korzystaj ˛ac z (??), warto´s´c funkcjonału kosztu J w punkcie u spełniaj ˛acym ograniczenia typu równo´sci (IV.2), 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, (IV.8)
gdzie
∆i =
c, B−1Ai
®− ci = Xr
s=1
csγs,i− ci, i = r + 1, ..., n.
Okre´slmy tak˙ze
∆i =
c, B−1Ai
®− ci (IV.9)
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).
Dokonajmy cz ˛e´sciowego podsumowania.Zadanie (IV.1) zapisali´smy 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 (2)}
Wyst ˛epuj ˛ace w powy˙zszym opisie wielko´sci γs,k, vi, ∆i zapiszemy w postaci t.zw. 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)
Teraz skonstruujemy (o ile to b ˛edzie konieczne!) punkt wierzchołkowy w zbioru U , dla którego J(w)≤ J(v).
Dokładniej, wybierzemy wska´znik k ∈ {r + 1, ..., n} i warto´s´c wk ≥ 0 tak, aby nowy punkt w, którego k-ta współrz ˛edna jest równa wk, a pozostałe spełniaj ˛a warunki
w1 = v1− γ1,kwk, ..., wi = vi− γi,kwk, ..., ws = vs− γs,kwk, ...,
wr = vr− γr,kwk, wr+1 = ... = wk−1 = wk+1 = ... = wn= 0, (IV.10) czyli warunki
w = v− (B−1Ak)wk, wj = 0, j = r + 1, ..., n, j 6= k, (IV.11) spełniał tak˙ze warunki
w≥ 0, J(w) ≤ J(v)
i był punktem wierzchołkowym zbioru U (z (IV.11) i (IV.3) wynika, ˙ze przy dowolnym wyborze wk ≥ 0, dla punktu w okre´slonego przez (IV.10) mamy
Aw = B(v− (B−1Ak)wk) + Xn j=r+1
Ajwj = Bv− Akwk+ Akwk= b).
Oczywi´scie wtedy
J(w) = J(v)− ∆kwk. (IV.12)
Otó˙z, analizuj ˛ac tablic ˛e sympleksow ˛a I, rozwa˙zmy trzy przypadki:
10 spełnione s ˛a nierówno´sci
∆i =
c, B−1Ai
®− ci ≤ 0 (IV.13)
dla i = r + 1, ..., n, t.zn. w ostatnim wierszu tablicy sympleksowej wszystkie liczby ∆i s ˛a niedodatnie. W tym przypadku punkt v 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) (IV.14) Oznacza to, ˙ze w k-tej kolumnie tablicy sympleksowej ostatni element (∆k) jest dodatni, a pozostałe - niedodatnie. W tym przypadku, przy dowolnym wyborze warto´sci wk > 0 punkt w okre´slony przez (IV.10) spełnia warunek
w≥ 0 (czyli w ∈ U) i w konsekwencji inf
u∈UJ(u) =−∞, gdy˙z
J(w) = J(v)− ∆kwk −→
wk→∞ −∞
(w jest tutaj punktem postaci (IV.10). 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. (IV.15)
Oznacza to, ˙ze w k-tej kolumnie tablicy sympleksowej ostatni element (∆k) jest dodatni i co najmniej jedna z liczb γi,k jest dodatnia.
Poka˙zemy teraz, jak wybra´c wk≥ 0, aby punkt postaci (IV.10) spełniał warunek w≥ 0.
Okre´slmy zbiór
Ik={i ∈ {1, ..., r}, γi,k > 0}.
Otó˙z, je´sli i ∈ {1, ..., r} \ Ik (czyli γi,k ≤ 0), to
wi = vi− γi,kwk ≥ vi ≥ 0 przy dowolnym wyborze wk≥ 0. Je´sli za´s
0≤ wk ≤ min
i∈Ik
vi γi,k, to
wi = vi− γi,kwk ≥ vi− γi,k
vi γ = 0
dla dowolnego i ∈ Ik (bo γi,k > 0).
W rozwa˙zanym przypadku punkt w okre´slony przez (IV.10) spełnia te˙z warunek J(w) = J(v)− ∆kwk ≤ J(v)
przy dowolnym wyborze wk≥ 0
Niech teraz s ∈ Ik b ˛edzie takim wska´znikiem, ˙ze vs
γs,k = min
i∈Ik
vi
γi,k (IV.16)
Współczynnik γs,k, gdzie wska´zniki k, s s ˛a okre´slone przez (IV.15) i (IV.16), nazywany jest elementem rozwi ˛azuj ˛acym tablicy sympleksowej I.
Ustalmy teraz jeden z elementów rozwi ˛azuj ˛acych tablicy I - γs,k. Połó˙zmy w (IV.10) i (IV.12) wk = vs
γs,k. Otrzymujemy punkt w = (w1, ..., wn) o współrz ˛ednych
w1 = v1− γ1,k vs
γs,k, ..., wi = vi− γi,k vs
γs,k, ..., ws−1 = vs−1− γs−1,k vs γs,k, ws = vs− γs,k
vs
γs,k = 0, ws+1 = vs+1− γs+1,k vs
γs,k, ..., wr = vr− γr,k vs γs,k, wr+1 = 0, ..., wk−1 = 0, wk = γvs
s,k, wk+1= 0, ..., wn = 0,
(IV.17)
daj ˛acy warto´s´c funkcjonału kosztu
J(w) = J(v)− ∆k vs
γs,k ≤ J(v). (IV.18)
Jak zostało pokazane w ∈ U.
Teraz poka˙zemy, ˙ze w postaci (IV.17) jest punktem wierzchołkowym zbioru U z baz ˛a
A1, ..., As−1, As+1, ..., Ar, Ak. (IV.19) (gdyby wybra´c 0 ≤ wk < min
i∈Ik
vi
γi,k (o ile to mo˙zliwe), to punkt w nie byłby punktem wierz- chołkowym z baz ˛a A1, ..., As−1, As+1, ..., Ar, Ak, poniewa˙z jego współrz ˛edna ws nie byłaby ze- rowa). Otó˙z, uwzgl ˛edniaj ˛ac fakt, ˙ze
ws = 0, wr+1 = ... = wk−1 = wk+1 = ... = wn= 0, (gdyby wybra´c wk < min
i∈Ik
vi
γi,k, to punkt w nie byłby punktem wierzchołkowym z baz ˛a A1, ..., As−1, As+1, ..., Ar
poniewa˙z jego współrz ˛edna ws nie byłaby zerowa) warunek
mo˙zemy zapisa´c w postaci
A1w1 + ... + As−1ws−1+ As+1ws+1+ ... + Arwr+ Akwk = b.
Zatem, zgodnie z twierdzeniem charakteryzuj ˛acym punkty wierzchołkowe, wystarczy zauwa˙zy´c,
˙ze układ kolumn (IV.19) jest liniowo niezale˙zny. Istotnie, przypu´s´cmy, ˙ze
α1A1 + ... + αs−1As−1+ αs+1As+1+ ... + αrAr+ αkAk = 0, (IV.20) gdzie α1, ..., αs−1, αs+1, ..., αr, αk ∈ R. Poniewa˙z
Ak = IAk= BB−1Ak= Xr
i=1
Ai(B−1Ak)i = Xr
i=1
Aiγi,k, wi ˛ec z (IV.20) wynika, ˙ze
0 = Xr
i=1 i6=s
αiAi+ αk
Xr i=1
γi,kAi = Xr
i=1 i6=s
(αi+ αkγi,k)Ai+ αkγs,kAs.
Z uwagi na fakt, ˙ze układ kolumn A1, ..., As, ..., Ar jest baz ˛a punktu v (a wi ˛ec układem liniowo niezale˙znym), z ostatniej równo´sci wynika, ˙ze
αi+ αkγi,k = 0, i∈ {1, ..., r}, i 6= s, αkγs,k = 0.
Ale γs,k > 0 (jako element rozwi ˛azuj ˛acy), wi ˛ec αk = 0 i w konsekwencji αi = 0 dla i ∈ {1, ..., r} r {s}. Oznacza to liniow ˛a niezale˙zno´s´c układu (IV.19).
Zatem punkt w dany przez (IV.17) jest punktem wierzchołkowym zbioru U , przy czym układ (IV.19) jest jego baz ˛a, a zmienne u1, ..., us−1, us+1, ..., ur, uk - zmiennymi bazowymi.
Teraz, podobnie jak w przypadku punktu wierzchołkowego v (przypomnijmy, ˙ze układ (??) okre´slał zmienne bazowe punktu u spełniaj ˛acego ograniczenia (IV.2) przy pomocy zmiennych niebazowych i współrz ˛adnych punktu wierzchołkowego v), okre´slimy zmienne bazowe
u1, ...us−1, us+1, ..., ur, uk
punktu u spełniaj ˛acego ograniczenia (IV.2) przy pomocy zmiennych niebazowych i współrz ˛ed- nych punktu wierzchołkowego w. W tym celu z s-tego równania układu (??) wyznaczmy zmi- enn ˛a uk:
uk= vs γs,k − 1
γs,kus− Xn j=r+1
j6=k
γs,j
γs,kuj. (IV.21)