Programowanie liniowe w logistyce

Transkrypt

Programowanie liniowe w logistyce
Programowanie liniowe w logistyce
kierunek Informatyka, studia I stopnia
wyklad
1
Wstep
˛
Przedmiotem logistyki sa˛ m.in. procesy transportu i magazynowania surowców oraz wytworzonych dóbr, a także planowania produkcji. Celem działań logistycznych jest maksymalizacja zysków i minimalizacja kosztów. Do podstawowych działów logistyki należa˛
m.in.: logistyka transportu i logistyka produkcji.
Jednym z podstawowych narzedzi
matematycznych stosowanych w logistyce trans˛
portu i logistyce produkcji jest programowanie liniowe. Jest to dział teorii zadań ekstremalnych, którego przedmiotem sa˛ zadania optymalizacyjne, opisane przez funkcje liniowe, określone na zbiorach zadanych układami równości lub nierówności liniowych. Najprostszym przykładem zadania programowania liniowego jest zadanie znale-zienia punktu
minimum funkcji f(x) = ax na przedziale [c, d] ⊂ R+
0 . W postaci zadań programowania
liniowego można zapisać wiele praktycznych zagadnień.
2
Modelowanie
Przykład 1 (planowanie produkcji). Wytwórca dysponuje określonymi ilościami różnych
środków (surowce, praca, sprzet),
˛ wykorzystywanych do produkcji różnych towarów. Wiadomo, jaka ilość i-tego środka jest potrzebna do produkcji jednostki j-tego towaru, a także
jaki dochód daje sprzedaż każdej wyprodukowanej jednostki j-tego towaru. Wytwórca
1
powinien tak zaplanować produkcje,
˛ by całkowity dochód uzyskany ze sprzedaży towarów
był maksymalny.
Model. Wprowadźmy nastepuj
˛ ace
˛ oznaczenia:
m - ilość środków
n - ilość towarów
aij - ilość jednostek i-tego środka potrzebna do produkcji jednostki j-tego towaru
bi - dostepna
ilość jednostek i-tego środka
˛
xj - wielkość produkcji j-tego towaru
cj - dochód uzyskiwany ze sprzedaży jednostki j-tego towaru
Całkowita˛ ilość i-tego środka, wykorzystana˛ podczas produkcji, można wiec
˛ wyrazić
nastepuj
˛ aco:
˛
n
X
aij xj .
j=1
Ilość ta powinna być mniejsza lub równa dostepnej
ilości jednostek i-tego środka, czyli
˛
n
X
aij xj ≤ bi , i = 1, ..., m.
j=1
Dochód uzyskany ze sprzedaży wszystkich wyprodukowanych towarów wyraża sie˛ nastepu˛
jaco:
n
X
cj xj ,
j=1
przy czym oczywiście należy żadać,
by
˛
xj ≥ 0, j = 1, ..., n.
Można wiec
˛ sformułować opisane zagadnienie w nastepuj
˛ acy
˛ sposób:
zmaksymalizować funkcjonał kosztu (dochód)
n
X
cj xj
j=1
przy ograniczeniach
n
X
j=1
xj ≥ 0, j = 1, ..., n,
aij xj ≤ bi , i = 1, ..., m.
2
3
Sformułowanie zadania
Ogólnym zadaniem programowania liniowego nazywamy zadanie postaci:
⎧
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎨
J(u) = c1 u1 + ... + cn un → min .
(1)
uk ≥ 0, k ∈ I
(2)
a1,1 u1 + ... + a1,n un ≤ b1
...
am,1 u1 + ... + am,n un ≤ bm
⎪
⎪
am+1,1 u1 + ... + am+1,n un = bm+1
⎪
⎪
⎪
⎪
⎪
⎪
...
⎪
⎪
⎪
⎪
⎩
a u1 + ... + a un = bs
s,1
,
(3)
s,n
gdzie u = (u1 , ..., un ) ∈ Rn , natomiast cj , ai,j , bi , i = 1, ..., s, j = 1, ..., n, sa˛ danymi
liczbami rzeczywistymi, przy czym nie wszystkie liczby cj i nie wszystkie liczby aij sa˛
równe zero, I ⊂ {1, ..., n} jest ustalonym zbiorem indeksów; możliwe sa˛ tutaj przypadki:
I = ∅, I = {1, ..., n}, m = s, m = 0. Wprowadzajac
˛ oznaczenia
c = (c1 , ..., cn ),
ai = (ai,1 , ..., ai,n ),
możemy zapisać powyższe zadanie w nastepuj
˛ acy
˛ sposób:
⎧
⎪
⎪
J(u) = hc, ui → min .
⎪
⎨
u ∈ U = {u = (u1 , ..., un ) ∈ Rn ; ui ≥ 0 dla i ∈ I,
⎪
⎪
⎪
⎩ ha , ui ≤ bi dla i = 1, ..., m, ha , ui = bi dla i = m + 1, ..., s}
i
i
(4)
(symbolem hx, yi oznaczamy iloczyn skalarny wektorów x = (x1 , ..., xn ), y = (y 1 , ..., y n ),
P
t.zn. hx, yi = ni=1 xi yi ). W dalszym ciagu,
zapis
˛
x ≥ y,
oznaczał, że
gdzie x = (x1 , ..., xn ), y = (y 1 , ..., y n ), bedzie
˛
xi ≥ y i , i = 1, ..., n.
3
Wobec tego, zadanie (4) możemy zapisać nastepuj
˛ aco:
˛
⎧
⎨
J(u) = hc, ui → min .
⎩ u ∈ U = {u = (u1 , ..., un ) ∈ Rn ; ui ≥ 0 dla i ∈ I, Au ≤ b, Au = b}
gdzie
⎡
⎢
⎢
A=⎢
⎣
⎡
⎤
a1,1 ... a1,n
a
... am+1,n
⎢ m+1,1
⎥
⎢
..
..
.. ⎥
..
.
.
. ⎥, A = ⎢
.
⎣
⎦
am,1 ... am,n
as,1 ... as,n
⎡
⎡
⎤
⎤
1
m+1
b
b
⎢
⎢
⎥
⎥
⎢ .. ⎥
⎢ .. ⎥
b = ⎢ . ⎥, b = ⎢ . ⎥.
⎣
⎣
⎦
⎦
m
s
b
b
(5)
⎤
⎥
⎥
⎥,
⎦
Każdy punkt u ∈ U nazywamy punktem dopuszczalnym zadania (5). Punkt u∗ ∈ U
nazywamy rozwiazaniem
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)
gdzie A ∈ Rm×n , b ∈ Rm .
gdzie A i b sa˛ takie, jak wyżej.
4
Równoważność zadań
Zajmiemy sie˛ teraz zagadnieniem „równoważności” zadań różnego typu. Dokładniej,
pokażemy, że rozwiazywanie
zadania podstawowego i zadania ogólnego można zastapić
˛
˛
rozwiazywaniem
zadania kanonicznego.
˛
4
Istotnie, niech dane bedzie
zadanie podstawowe (7) i rozważmy w przestrzeni Rn+m
˛
zadanie postaci
⎧
⎨
hd, zi → min .
⎩ z ∈ Z = {z = (u, v) ∈ Rn+m ; z ≥ 0 , Cz = b}
gdzie d = (c, 0) ∈ Rn+m ,
⎡
a
... a1,n
⎢ 1,1
..
⎢ .
C = [A | Im×m ] = ⎢ ..
.
⎣
am,1 ... am,n
(Im×m jest macierza˛ jednostkowa˛ wymiaru m × m).
,
(8)
⎤
1 ... 0
⎥
..
.. ⎥
.
. ⎥
⎦
0 ... 1
zadania (7), to z∗ = (u∗ , v∗ ), gdzie
Łatwo zauważyć, że jeśli u∗ ∈ U jest rozwiazaniem
˛
v∗ = b − Au∗ ,
jest rozwiazaniem
zadania (8), t.zn. z∗ ∈ Z oraz
˛
hd, z∗ i ≤ hd, zi
dla dowolnego z ∈ Z.
zadania (8), to u∗ jest rozwiazaniem
Jeśli natomiast z∗ = (u∗ , v∗ ) ∈ Z jest rozwiazaniem
˛
˛
zadania (7), t.zn. u∗ ∈ U oraz
hc, u∗ i ≤ hc, ui
dla dowolnego u ∈ U .
Podobnie, rozwiazywanie
zadania ogólnego (5) można zastapić
rozwiazywaniem
zadania
˛
˛
˛
kanonicznego. Rzeczywiście, rozważmy w przestrzeni Rp (p = m + I + J + J, gdzie
5
J = {1, ..., n}ÂI) zadanie postaci
⎧
X
X
X
⎪
⎪
he, zi =
ci ui +
ci wi +
−ci wi → min .
⎪
⎪
⎪
⎪
i∈I
i∈J
i∈J
⎪
⎪
⎪
i
i
⎪
z ∈ Z = {z = (v, u ; i ∈ I, w ; i ∈ J, wi ; i ∈ J) ∈ Rp ; z ≥ 0,
⎪
⎪
⎪
X
X
X
⎪
⎪
i
i
⎪
v
+
A
u
+
A
w
+
−Ai wi = b,
⎪
i
i
⎪
⎪
⎨
Xi∈J
Xi∈J
Xi∈I
,
Ai ui +
Ai wi +
−Ai wi = b}
⎪
⎪
⎪
⎪
i∈I
i∈J
i∈J
⎪
⎪
⎪
p
⎪
⎪
= {z ∈ R ; z ≥ 0,
⎪
⎪
⎡
⎤
⎡ ⎤
⎪
⎪
⎪
⎪
| Ai ; i ∈ I | Ai ; i ∈ J | −Ai ; i ∈ J]
[I
b
⎪
⎪
⎣ m×m
⎦ z = ⎣ ⎦}
⎪
¤
£
⎪
⎩
b
0 | Ai ; i ∈ I | Ai ; i ∈ J | −Ai ; i ∈ J
(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śli u∗ ∈ U jest rozwiazaniem
zadania ogólnego (5), to
˛
z∗ = (v∗ , ui∗ ; i ∈ I, w∗i ; i ∈ J, wi∗ ; i ∈ J),
gdzie
v∗ = b − Au∗ ,
w∗i = max{0, ui∗ }, i ∈ J,
wi∗ = max{0, −ui∗ }, i ∈ J,
jest rozwiazaniem
zadania (9) (zauważmy, że ui∗ = w∗i − wi∗ dla i ∈ J).
˛
Jeśli natomiast
z∗ = (v∗ , ui∗ ; i ∈ I, w∗i ; i ∈ J, wi∗ ; i ∈ J),
jest rozwiazaniem
zadania (9), to
˛
u∗ = (ui∗ ; i ∈ I, w∗i − wi∗ ; i ∈ J)
jest rozwiazaniem
zadania (5).
˛
6
5
Interpretacja geometryczna zadań programowania
liniowego
Rozważmy zadanie podstawowe (7) w przypadku, gdy n = 2, czyli
⎧
⎪
⎪
J(u) = c1 u1 + c2 u2 → min .
⎪
⎨
⎪
⎪
⎪
⎩
u ∈ U = {u = (u1 , u2 ) ∈ R2 ; u1 ≥ 0, u2 ≥ 0, .
ai,1 u1 + ai,2 u2 ≤ bi , i = 1, ..., m}
Wprowadźmy oznaczenia
U0,1 = {(u1 , u2 ) ∈ R2 ; −u1 ≤ 0},
U0,2 = {(u1 , u2 ) ∈ R2 ; −u2 ≤ 0},
Ui = {(u1 , u2 ) ∈ R2 ; ai,1 u1 + ai,2 u2 ≤ bi }, i = 1, ..., m.
Oczywiście
U = U0,1 ∩ U0,2 ∩ U1 ∩ ... ∩ Um .
Możliwe sa˛ nastepuj
˛ ace
˛ przypadki:
10 zbiór U jest pusty
20 zbiór U jest niepustym wielobokiem wypukłym i ograniczonym
7
(10)
30 zbiór U jest niepustym wielobokiem wypukłym i nieograniczonym
Ustalmy liczbe˛ α ∈ R. Równanie
c1 u1 + c2 u2 = α
opisuje poziomice˛ funkcjonału J odpowiadajac
˛ a˛ wartości α, czyli zbiór
{(u1 , u2 ) ∈ R2 ; J(u) = α}.
Jest to prosta o wektorze normalnym c = (c1 , c2 ). Przy zmianie wartości stałej α od −∞
do ∞ prosta ta zmienia swoje położenie, przesuwajac
˛ sie˛ w sposób równoległy w kierunku
wektora c i „zamiatajac”
˛ cała˛ płaszczyzne.
˛
W przypadku 20 zawsze istnieje „punkt pierwszego kontaktu” (być może nie jedyny)
przesuwajacej
˛ sie˛ prostej z wielobokiem U. Odpowiednia wartość stałej α wynosi wówczas
minJ(u) =: J∗
u∈U
8
9
W przypadku 30 ów „punkt pierwszego kontaktu” istnieje (być może nie jedyny) lub nie.
Jeśli nie istnieje, oznacza to, że zadanie nie ma rozwiazania;
w takim przypadku
˛
inf J(u) = −∞.
u∈U
10
Z powyższej dyskusji wynika, że zadanie (10) może nie mieć rozwiazań,
może mieć jedno
˛
rozwiazanie
lub może mieć nieskończenie wiele rozwiazań.
Ponadto, w przypadku, gdy
˛
˛
zbiór rozwiazań
jest niepusty, w zbiorze tym istnieje co najmniej jeden punkt, który jest
˛
wierzchołkiem wieloboku U.
Podobna˛ analize˛ można przeprowadzić w przypadku n = 3, zastepuj
˛ ac
˛ wielobok wielościanem, a prosta˛ - płaszczyzna.˛
Matoda˛ graficzna˛ można także rozwiazać
niektóre zadania o wiekszej
niż 2 lub 3 ilości
˛
˛
zmiennych. Rozważmy mianowicie zadanie postaci
⎧
⎨
J(u) = hc, ui → min .
gdzie
⎡
⎩ u ∈ U = {u ∈ Rm+2 ; u ≥ 0 , Au = b}
a
... a1,m a1,m+1 a1,m+2
⎢ 1,1
..
..
..
⎢ .
A = ⎢ ..
.
.
.
⎣
am,1 ... am,m am,m+1 am,m+2
⎤
⎥
⎥
⎥,
⎦
⎡
⎤
b1
⎢
⎥
⎢ .. ⎥
b = ⎢ . ⎥,
⎣
⎦
bm
przy czym rankA = m i kolumny A1 ,...,Am sa˛ liniowo niezależne. Wprowadźmy oznaczenia
Zatem
⎡
⎡
⎤
a1,1 ... a1,m
a
a1,m+2
⎢
⎢ 1,m+1
⎥
.. ⎥
..
..
⎢ .
⎢
A = ⎢ ..
. ⎥, A = ⎢
.
.
⎣
⎣
⎦
am,1 ... am,m
am,m+1 am,m+2
⎡
⎤
⎤
⎡
u1
m+1
⎢
⎥
u
⎢ . ⎥
⎦,
u = ⎢ .. ⎥ , u = ⎣
m+2
⎣
⎦
u
um
⎡
⎤
⎤
⎡
c
⎢ 1 ⎥
c
m+1
⎢ . ⎥
⎦.
c = ⎢ .. ⎥ , c = ⎣
⎣
⎦
cm+2
cm
⎡ ⎤
i
h
¤
£
u
A = A | A , u = ⎣ ⎦, c = c | c .
u
11
⎤
⎥
⎥
⎥,
⎦
W konsekwencji warunek
Au = b
możemy zapisać jako
Au + Au = b.
Stad
˛
−1
−1
u=A b−A
Au.
Zauważmy teraz, że rozwiazywanie
zadania wyjściowego można zastapić
˛
˛ rozwiazywaniem
˛
zadania postaci
⎧
⎨
D
E ­ ®
−1
−1
c, A b − A Au + c, u → min .
(=)
⎩ u ∈ U = {u ∈ R2 ; u ≥ 0 , A−1 Au ≤ A−1 b}
zadania (=), to
Dokładniej, jeśli u∗ jest rozwiazaniem
˛
⎤
⎡
u∗
⎦,
u∗ = ⎣
u∗
gdzie
−1
−1
u∗ = A b − A
Au∗ ,
⎡
jest rozwiazaniem
zadania wyjściowego. Na odwrót, jeśli u∗ = ⎣
˛
zadania (=).
zadania wyjściowego, to u∗ jest rozwiazaniem
˛
6
u∗
u∗
⎤
⎦ jest rozwiazaniem
˛
Punkty wierzchołkowe
Punkt v ∈ V ⊂ Rn nazywamy punktem wierzchołkowym (punktem ekstremalnym) zbioru
wypukłego i domknietego
V , jeśli przedstawienie
˛
v = αv1 + (1 − α)v2 ,
(11)
gdzie α ∈ (0, 1), v1 , v2 ∈ V , możliwe jest tylko wtedy, gdy v1 = v2 . Innymi słowy, punkt
v ∈ V jest punktem wierzchołkowym zbioru V , gdy nie jest on punktem wewnetrznym
˛
12
niezdegenerowanego odcinka o końcach należacych
do V . Pojecie
˛
˛ punktu wierzchołkowego
jest pojeciem
fundamentalnym w teorii programowania liniowego.
˛
W dalszej cześci
˛ wykładu pokażemy, że jeśli zadanie kanoniczne (przy dowolnym n ∈ N)
posiada rozwiazanie,
to wśród rozwiaza
˛
˛ ń jest co najmniej jeden punkt wierzchołkowy
zbioru
U = {u ∈ Rn ; u ≥ 0, Au = b}.
(12)
Teraz podamy charakteryzacje˛ punktów wierzcholkowych zbioru postaci (12).
Twierdzenie 1 Niech dany bedzie
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 istnieja˛ wskaźniki j1 ,...,jr ∈ {1, ..., n} takie, że
⎧
⎪
⎪
vj ≥ 0, j ∈ {j1 , ..., jr }
⎪
⎪
⎪
⎪
⎨
v j = 0, j ∈
/ {j , ..., j }
1
⎪
⎪
⎪
⎪
⎪
⎪
⎩
r
Aj1 vj1 + ... + Ajr vjr = b
(13)
kolumny Aj1 , ..., Ajr sa˛ liniowo niezależne w Rm
Układ wektorów Aj1 ,...,Ajr wystepuj
w warunkach (13) nazywamy baza˛ punktu
˛ acych
˛
wierzchołkowego v, a odpowiednie współrzedne
v j1 ,...,v jr - współrzednymi
bazowymi punktu
˛
˛
wierzchołkowego v. Punkt wierzchołkowy, którego wszystkie współrzedne
bazowe sa˛ do˛
datnie nazywamy nieosobliwym. Punkt wierzchołkowy, którego co najmniej jedna współrzedna
˛
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, że baza nieosobliwego punktu wierzchołkowego zbioru (12) jest
wyznaczona jednoznacznie. Osobliwy punkt wierzchołkowy może mieć wiele baz.
7
Metoda sympleksowa
Metoda sympleksowa polega na „uporzadkowanym”
sprawdzaniu wartości funkcjonału
˛
kosztu w punktach wierzchołkowych zbioru ograniczajacego
(„uporzadkowanie”
oznacza
˛
˛
tu, że wartości funkcjonału kosztu w kolejnych punktach nie rosna).
˛
13
Rozważmy 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ć bedziemy
w tym rozdziale, że U 6= ∅ (kwestia
˛
niepustości zbioru U omówiona bedzie
w dalszej cześci
˛
˛ wykładu). Oczywiście rankA ≤
min{m, n} (podobnie, jak wcześniej, rankA oznaczać bedziemy
przez r). Równość
˛
Au = b
możemy zapisać w postaci układu równań
n
X
ai,j uj = bi , i = 1, ..., m.
j=1
Nie zmniejszajac
˛ ogólności rozważań, możemy założyć, że r = m. Oczywiście r ≤ n. Jeżeli
u, przy czym u ≥ 0 (gdyby
r = n, to powyższy układ ma dokładnie jedno rozwiazanie
˛
któraś ze współrzednych
punktu u była ujemna, to zbiór U byłby pusty, co sprzeczne
˛
byłoby z naszym założeniem). W konsekwencji zbiór U jest jednoelementowy i tym samym
u jest rozwiazaniem
zadania (14).
˛
Bedziemy
wiec
że r = m oraz r < n. Równość
˛
˛ zakładać w dalszym ciagu,
˛
Au = b
możemy wiec
˛ zapisać w postaci
⎧
⎪
⎪
a u1 + ... + a1,n un = b1
⎪
⎨ 1,1
gdzie r = rankA < n.
...
⎪
⎪
⎪
⎩ a u1 + ... + a un = br
r,1
r,n
(15)
Podamy teraz opis metody sympleksowej. Przypuśćmy, że dany jest punkt wierzchołkowy
v zbioru
U = {u ∈ Rn ; u ≥ 0 , Au = b}
14
i załóżmy, że kolumny A1 ,...,Ar sa˛ baza˛ tego puntu, v 1 ,...,vr - jego współrzednymi
bazowymi
˛
(kwestia wyznaczenia „poczatkowego”
punktu wierzchołkowego v zbioru U i określenia
˛
jego współrzednych
bazowych omówiona bedzie
w dalszej cześci
˛
˛
˛ wykładu). Wprowadźmy
nastepuj
˛ ace
˛ oznaczenia
⎡
1
u
⎢
⎢ ..
u=⎢ .
⎣
ur
⎡
⎤
⎡
1
v
⎢
⎥
⎢ ..
⎥
⎥, v = ⎢ .
⎣
⎦
vr
a
... a1,r
⎢ 1,1
..
⎢ .
B = ⎢ ..
.
⎣
ar,1 ... ar,r
⎤
⎤
⎡
⎤
c
⎢ 1 ⎥
⎥
⎢ .. ⎥
⎥
⎥, c = ⎢ . ⎥,
⎣
⎦
⎦
c1
⎥
⎥
⎥ = [A1 | ... | Ar ] .
⎦
Wówczas układ (15) możemy zapisać w postaci
Bu + Ar+1 ur+1 + ... + An un = b.
(16)
Z liniowej niezależności kolumn A1 ,...,Ar (jest to baza punktu v) wynika, że det B 6= 0. W
konsekwencji istnieje macierz odwrotna B −1 . Współrzedne
niebazowe punktu v sa˛ zerowe,
˛
a wiec
˛ z (16) otrzymujemy
Bv = b,
skad
˛
v = B −1 b.
Mnożac
˛ równość (16) lewostronnie przez B −1 , otrzymujemy
u+
n
X
B −1 Ak uk = B −1 b = v.
(17)
k=r+1
Oznaczmy
γ s,k = (B −1 Ak )s dla k = r + 1, ..., n, s = 1, ..., r
s
gdzie (B −1 Ak ) oznacza s-ta˛ współrzedn
˛ a˛ wektora-kolumny B −1 Ak . Równość (17) możemy
15
teraz zapisać w postaci nastepuj
układu równań
˛ acego
˛
⎧
⎪
⎪
u1 + γ 1,r+1 ur+1 + ... + γ 1,n un = v 1
⎪
⎪
⎪
⎪
r+1
⎨ u2 + γ
+ ... + γ 2,n un = v 2
2,r+1 u
.
⎪
⎪
...
⎪
⎪
⎪
⎪
⎩ ur + γ
r+1
+ ... + γ r,n un = vr
r,r+1 u
(18)
Określmy także
γ s,k = (B −1 Ak )s
dla k = 1, ...r, s = 1, ..., r (oczywiście γ s.k = δs,k dla k = 1, ..., r, s = 1, ..., r, gdzie δ s,k
jest symbolem Kronekera).
Pokazaliśmy wiec,
˛ że majac
˛ ustalony punkt wierzchołkowy v zbioru U i wiedzac,
˛ że
współrzedne
z indeksami 1,...,r sa˛ jego współrzednymi
bazowymi, można zapisać ograniczenia
˛
˛
(15) w równoważnej postaci (16) lub (17) lub (18).
Wartość funkcjonału kosztu J w punkcie u spełniajacym
ograniczenia typu równości
˛
(15), można zapisać w nastepuj
˛ acej
˛ postaci
J(u) = hc, ui =
=
*
c, v −
= hc, vi −
Ponieważ
n
X
i
ci u = hc, ui +
i=1
n
X
B −1 Ai ui
i=r+1
n
X
+
+
n
X
ci ui
i=r+1
n
X
ci ui
i=r+1
®
­
( c, B −1 Ai − ci )ui .
i=r+1
hc, vi = hc, vi = J(v),
wiec
˛
J(u) = J(v) −
gdzie
Określmy także
n
X
∆i ui ,
(19)
i=r+1
­
®
∆i = c, B −1 Ai − ci , i = r + 1, ..., n.
­
®
∆i = c, B −1 Ai − ci
16
(20)
dla i = 1, ..., r. Oczywiście
­
®
∆i = c, B −1 Ai − ci = hc, ei i − ci = ci − ci = 0
dla i = 1, ..., r (tutaj ei jest i-ta˛ kolumna˛ macierzy jednostkowej o wymiarach r × r).
Dokonajmy cześciowego
podsumowania. Pokazaliśmy, że zadanie (14) możemy zapisać
˛
w nastepuj
˛ acej
˛ postaci
⎧
n
P
⎪
⎨ J(u) = J(v) −
∆i ui → min .
i=r+1
⎪
⎩ U = {u = (u1 , ..., un ) ∈ Rn ; u ≥ 0 , u spełnia (18)}
(21)
Wystepuj
˛ ace
˛ w powyższym opisie wielkości γ s,k , v i , ∆i zapiszemy w postaci tzw. tablicy
sympleksowej, odpowiadajacej
˛ punktowi wierzchołkowemu v
17
Tablica sympleksowa I (dla punktu v)
u1
... ui
... us
... ur
ur+1
...
uk
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)
...
uj
...
un
Analizujac
˛ tablice˛ sympleksowa˛ I, możemy wyróżnić trzy przypadki:
10 spełnione sa˛ nierówności
­
®
∆i = c, B −1 Ai − ci ≤ 0
(22)
dla i = r + 1, ..., n, t.zn. w ostatnim wierszu tablicy sympleksowej wszystkie liczby ∆i
sa˛ niedodatnie. W tym przypadku punkt v, dla którego skonstruowana została tablica
sympleksowa, jest rozwiazaniem
zadania. Istotnie, bowiem dla dowolnego u ∈ U mamy
˛
J(u) = J(v) −
n
X
i=r+1
∆i ui ≥ J(v)
(bo ∆i ≤ 0, ui ≥ 0).
20 istnieje wskaźnik k ∈ {r + 1, ..., n} taki, że
⎧
⎨ ∆ >0
k
⎩ γ ≤ 0 dla i = 1, ..., r (czyli B −1 A ≤ 0)
k
i,k
(23)
Oznacza to, że w k-tej kolumnie tablicy sympleksowej ostatni element (∆k ) jest dodatni, a
pozostałe - niedodatnie. W tym przypadku inf J(u) = −∞ (dowód tego faktu pomijamy).
u∈U
Oznacza to, że zadanie nie ma rozwiazania.
˛
18
30 nie zachodza˛ przypadki 10 i 20 ; w konsekwencji istnieja˛ wskaźniki k ∈ {r + 1, ..., n},
i ∈ {1, ..., r} takie, że
∆k > 0, γ i,k > 0.
(24)
Oznacza to, że w k-tej kolumnie tablicy sympleksowej ostatni element (∆k ) jest dodatni
i co najmniej jedna z liczb γ i,k jest dodatnia.
Załóżmy, że zachodzi przypadek 30 i określmy zbiór
Ik = {i ∈ {1, ..., r}, γ i,k > 0}.
takim wskaźnikiem, że
Niech s ∈ Ik bedzie
˛
vs
vi
= min
i∈Ik γ i,k
γ s,k
(25)
Współczynnik γ s,k , gdzie wskaźniki k, s sa˛ określone przez (24) i (25), nazywany jest
elementem rozwiazuj
tablicy sympleksowej I.
˛ acym
˛
Można pokazać, że układ kolumn
A1 , ..., As−1 , As+1 , ..., Ar , Ak
(26)
jest baza˛ pewnego punktu wierzchołkowego w, przy czym
J(w) ≤ J(v).
Uwaga 1. Z faktu, że macierz A ma r wierszy wynika, wobec twierdzenia charakteryzujacego
punkty wierzchołkowe, iż baza (26) wyznacza punkt wierzchołkowy w sposób
˛
jednoznaczny. Można wiec
punktu w, korzystajac
˛ znaleźć współrzedne
˛
˛ z tego twierdzenia.
Przejdźmy teraz do przypadku ogólnego. Łatwo zauważyć, że jeśli współrzednymi
˛
bazowymi punktu v sa˛
vj1 , ..., v jr ,
gdzie 1 ≤ j1 < ... < jr ≤ n, to wzory wyrażajace
˛ zmienne bazowe i funkcjonał kosztu
przy pomocy zmiennych niebazowych, przyjmuja˛ postać (poniżej symbolem Iv oznaczamy
19
zbiór {j1 , ..., jr })
⎧
P
⎪
⎪
uj1 = vj1 −
γ j1 ,k uk
⎪
⎪
⎪
k∈I
/ v
⎨
...
⎪
⎪
P
⎪
⎪
jr
jr
⎪
γ jr ,k uk
⎩ u =v −
(27)
k∈I
/ v
J(u) = J(v) −
gdzie
X
∆k uk ,
(28)
k∈I
/ v
γ ji ,k = (B −1 Ak )i ; i = 1, ..., r, k = 1, ..., n
(29)
(w szczególności γ ji ,k = δ ji ,k dla i = 1, ..., r, k ∈ Iv ),
B = [Aj1 | ... | Ajr ] ,
vji = (B −1 b)i , i = 1, ..., r,
⎡
v k = 0, k ∈
/ Iv ,
r
X
­
®
∆k = c, B −1 Ak − ck =
cji (B −1 Ak )i − ck , k = 1, ..., n,
⎤
i=1
c
⎢ 1 ⎥
⎢ .. ⎥
gdzie c = ⎢ . ⎥ (w szczególności ∆k = 0 dla k ∈ Iv ).
⎣
⎦
c1
W tym przypadku tablica sympleksowa dla punktu v jest nastepuj
˛ aca:
˛
Tablica sympleksowa II (dla punktu v)
20
(30)
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
v js
ujr
γ jr ,1
...
0
...
0
... γ jr ,k
...
0
... γ jr ,j
...
1
... γ jr ,n
vjr
∆1
...
0
...
0
...
...
0
...
...
0
...
∆k
∆j
∆n
J(v)
Tak, jak wcześniej, należy rozważyć trzy przypadki:
10 spełniony jest warunek
∆k ≤ 0, k ∈
/ Iv
(22’)
∆k > 0, γ ji ,k ≤ 0, i = 1, ..., r
(23’)
20 istnieje k ∈
/ Iv takie, że
/ Iv oraz ji ∈ Iv takie, że
30 nie zachodzi przypadek 10 i 20 ; w konsekwencji istnieja˛ k ∈
∆k > 0, γ ji ,k > 0.
(24’)
Podobnie, jak wcześniej, łatwo sprawdzić, że w pierwszym przypadku punkt v jest rozwiazaniem
˛
zadania (14), w drugim - inf hc, ui = −∞, czyli zadanie (14) nie ma rozwiazania.
˛
u∈U
W trzecim przypadku należy wybrać element rozwiazuj
˛ acy
˛ γ js ,k na podstawie warunku
(24’) oraz warunku
v ji
v js
min
,
γ js ,k ji ∈Iv,k γ ji ,k
(25’)
gdzie Iv,k = {ji ∈ Iv ; γ ji ,k > 0}, które sa˛ analogiczne do warunków (24), (25). Nastepnie,
˛
należy wykonać przejście do nowego punktu wierzchołkowego w. Z warunków (24’) i (25’)
wynika, że baza˛ punktu w bedzie
układ kolumn (z dokładnościa do ich kolejności)
˛
Aj1 , ..., Ajs−1 , Ajs+1 , ..., Ajr , Ak ,
21
przy czym
J(w) ≤ J(v).
Współrzedne
punktu w można wyznaczyć na podstawie twierdzenia charakteryzujacego
˛
˛
punkty wierzchołkowe.
Uwaga 2. Można pokazać, że
⎧
js
⎪
⎪
wj1 = vj1 − γ j1 ,k γv
⎪
js ,k
⎪
⎪
⎪
..
⎪
⎪
.
⎪
⎪
⎪
⎪
js
⎪
⎪
wji = v ji − γ ji ,k γv
⎪
⎪
j
s ,k
⎪
⎪
.
⎪
..
⎪
⎪
⎪
⎪
⎪
js
⎪
⎪
wjs−1 = vjs−1 − γ js−1 ,k γv
⎪
⎪
j
s ,k
⎨
js
wjs = v js − γ js ,k γv = 0
js ,k
⎪
⎪
⎪
⎪
vjs
j
j
s+1
s+1
⎪
=
v
−
γ
w
⎪
j
,k
s+1
γ
⎪
js ,k
⎪
⎪
..
⎪
⎪
.
⎪
⎪
⎪
⎪
js
⎪
⎪
wjr = vjr − γ jr ,k γv
⎪
⎪
js ,k
⎪
⎪
⎪
vjs
k
⎪
w =γ
⎪
⎪
js ,k
⎪
⎪
⎪
⎩ wl = 0, l ∈
/ Iv , l 6= k,
Tablica sympleksowa dla punktu w przyjmuje postać
Tablica sympleksowa III (dla punktu w)
22
u1
... uj1
... uji
... uk
...
ujs
...
uj
... ujr
...
un
0
...
1
..
.
...
0
..
.
...
0
..
.
...
γ j1 ,js
..
.
0
...
γ j1 ,j
..
.
0
...
0
..
.
...
γ j1 ,n
..
.
0
...
γ ji ,j
..
.
0
...
0
..
.
...
0
γ k,j
..
.
0
...
0
..
.
...
γ k,n
..
.
0
...
0
... γ js−1 ,n
0
..
.
γ js+1 ,n
uj1
..
.
γ j1 ,1
..
.
uji
..
.
γ ji ,1
..
.
0
...
0
..
.
...
1
..
.
...
0
..
.
...
γ ji ,js
..
.
uk
..
.
γ k,1
..
.
0
...
0
..
.
...
0
..
.
...
1
..
.
...
γ k,js
..
.
...
ujs−1
γ js−1 ,1
0
...
0
...
0
...
0
... γ js−1 ,js
0
... γ js−1 ,j
ujs+1
..
.
γ js+1 ,1
..
.
0
...
0
..
.
...
0
..
.
...
0
..
.
... γ js+1 ,js
..
.
0
... γ js+1 ,j
ujr
γ jr ,1
...
0
...
0
...
0
...
γ jr ,js
...
0
...
0
...
0
...
∆js
0
0
∆1
0
0
0
0
0
...
γ jr ,j
...
∆j
0
0
wj1
..
.
γ ji ,n
..
.
0
wji
..
.
0
wk
..
.
0
wjs−1
0
wjs+1
0
...
1
...
γ jr ,n
...
0
...
∆n
0
0
gdzie współczynniki γ i,j , ∆j sa˛ określone przy pomocy wzorów analogicznych do (29),
(30) z macierza˛ B postaci
[Aj1 | ... | Ak | ... | Ajs−1 | Ajs+1 | ... | Ajr ]
(zakładamy tu, że wiersze i kolumny w tablicy sympleksowej oraz kolumny macierzy B
sa˛ ustawione w kolejności rosnacych
indeksów).
˛
Uwaga 2. Można pokazać, że
⎧
⎨ γ 0 = γ − γ ji ,k γ
ji ,j
js ,j ; i = 1, ..., r, i 6= s, j = 1, ...n,
ji ,j
γ
js ,k
oraz
⎩ γ0 =
k,j
γ js ,j
,
γ js ,k
0
j = 1, ...n,
∆j = ∆j − ∆k
γ js ,j
dla j = 1, ..., n.
γ js ,k
Opisany wiec
˛ został jeden krok metody sympleksowej w dowolnym przypadku (co do bazy
punktu wierzchołkowego), czyli przejście od jednego punktu wierzchołkowego (v) zbioru
U do drugiego punktu wierzchołkowego (w) tego zbioru (w przypadku 30 ) w taki sposób,
że
J(w) ≤ J(v).
23
wjr
J(w)
8
Reguła antycykliczna
Podczas realizacji metody sympleksowej może sie˛ zdarzyć, że
vjs
vji
=
.
ji ∈Iv,k γ j ,k
γ js ,k
i
0 = min
Ze wzorów podanych w Uwadze 1 wynika, że w takim przypadku
w=v
i
J(w) = J(v),
a przejście od punktu v do punktu w oznacza jedynie przejście od bazy
Aj1 , ..., Ajr
do bazy
Aj1 , ..., Ak , ..., Ajs−1 , Ajs+1 , ..., Ajr .
Można podać przykłady zadań pokazujace,
˛ że przy ustalonym sposobie wyboru elementu
rozwiazuj
(n.p. czesto
spośród indeksów k, js spełniajacych
warunki (24’)-(25’)
˛ acego
˛
˛
˛
wybiera sie˛ najmniejsze wartości) metoda sympleksowa może sie˛ „zapetlić”,
t.zn. w kole˛
jnych iteracjach punkt wierzchołkowy nie bedzie
sie˛ zmieniał, a jego bazy bed
˛
˛ a˛ zmieniały
sie˛ w sposób okresowy (cykliczny).
Można jednak określić (na różne sposoby) regułe˛ wyboru elementu rozwiazuj
w taki
˛ acego
˛
sposób, by uniknać
Każda taka reguła nazywana jest reguła˛ antycyk˛ owego zapetlenia.
˛
liczna.˛ Podamy teraz opis jednej z takich reguł.
Do tablicy sympleksowej punktu v (dla uproszczenia przyjmijmy, że kolumny A1 ,...,Ar
tworza˛ baze˛ punktu v) dopisujemy r×r - wymiarowa˛ macierz jednostkowa˛ [di,j ]. Dopisane
wyrazy przekształcamy w każdej iteracji zgodnie ze wzorami podanymi w Uwadze 2,
przy czym nie tworzymy współczynników „∆”. Element rozwiazuj
˛ acy
˛ γ s,k wybieramy w
nastepuj
˛ acy
˛ sposób.
24
Niech ∆k > 0 i Ik = {i ∈ {1, ..., r}, γ i,k > 0} 6= ∅. Określmy zbiór
vi
vs
=
}.
i∈Ik γ i,k
γ s,k
Ik,1 = {s ∈ Ik ; min
Jeśli zbiór Ik,1 zawiera wiecej
˛ niż jeden element, to tworzymy zbiór
di,1
ds,1
=
}.
i∈Ik,1 γ i,k
γ s,k
Ik,2 = {s ∈ Ik,1 ; min
niż jeden element, to
Jeśli mamy już określony zbiór Ik,m (m ≥ 2) i zawiera on wiecej
˛
tworzymy zbiór
di,m
ds,m
=
}.
i∈Ik,m γ i,k
γ s,k
Ik,m+1 = {s ∈ Ik,m ; min
Dowodzi sie,
˛ że istnieje l ∈ {1, ..., r +1} takie, że zbiór Ik,l składa sie˛ z jednego elementu s,
przy czym wszystkie zbiory Ik,i , i = 1, ..., l − 1, zawieraja˛ wiecej
˛ niż jeden element. Jako
indeks s, służacy
przyjmujemy ów jedyny element
˛ do określenia elementu rozwiazuj
˛ acego,
˛
zbioru Ik,l .
Można pokazać, że stosowanie w każdym kroku metody sympleksowej takiego sposobu
wyboru indeksu s, wyznaczajacego
element rozwiazuj
iw
˛
˛ acy,
˛ pozwala uniknać
˛ zapetlenia
˛
skończonej ilości kroków rozwiazać
zadanie, bad
nie istnieje
˛
˛ ź stwierdzić, że rozwiazanie
˛
(1 ).
9
Wybór poczatkowego
punktu wierzchołkowego
˛
Niech dane bedzie
zadanie kanoniczne
˛
1
J(u) = hc, ui → min .
(31)
u ∈ U = {u = (u1 , ..., un ) ∈ Rn ; u ≥ 0 , Au = b},
(32)
Zatem nie może sie˛ także zdarzyć, że w nieuporzadkowany
sposób bedziemy
„przerabiać” bazy jednego
˛
˛
punktu wierzchołkowego, a także, iż w nieskończony sposób (cykliczny lub nie) bedziemy
przerabiać
˛
punkty wierzchołkowe (przejście do kolejnego punktu wierzchołkowego w 6= v oznacza, że vjs 6= 0 i w
konsekwencji J(w) < J(v)).
25
gdzie ∅ 6= A ∈ Rm×n . Opisujac
innymi,
˛ metode˛ sympleksowa,˛ zakładaliśmy miedzy
˛
że zbiór U jest niepusty i znany jest „poczatkowy”
punkt wierzchołkowy tego zbioru.
˛
Pokażemy teraz jak stwierdzić, czy U 6= ∅ i znaleźć ów punkt wierzchołkowy.
Bez zmniejszania ogólności rozważań możemy założyć, że bi ≥ 0 dla i = 1, ..., m (mnożac
˛
w razie potrzeby odpowiednie równania przez −1).
Rozważmy zadanie pomocnicze postaci
J1 (z) = un+1 + ... + un+m → min .
⎡
⎤
u
⎦ ∈ Rn+m ; z ≥ 0, Cz = b},
z ∈ Z = {z = ⎣
w
(33)
(34)
gdzie C = [A | Im×m ], w = (un+1 , ..., un+m ). Układ
Cz = b
zapiszmy w postaci
⎧
⎪
⎪
a u1 + ... + a1,n un + un+1 = b1
⎪
⎨ 1,1
.
...
⎪
⎪
⎪
⎩ a u1 + ... + a un + un+m = bm
m,1
m,n
Łatwo widać, że zbiór Z jest niepusty, bowiem
z0 := (0, b) ∈ Z.
Łatwo też widać, że z0 jest punktem wierzchołkowym zbioru Z z baza˛ złożona˛ z ostatnich m kolumn macierzy C, czyli wektorów jednostkowych e1 ,...,em ∈ Rm (rankC = m).
Można wiec
punk˛ do zadania (33)-(34) zastosować metode˛ sympleksowa˛ z poczatkowym
˛
tem wierzchołkowym z0 .
Ponieważ
J1 (z) ≥ 0, z ∈ Z,
wiec
˛ niemożliwy jest przypadek
inf J1 (z) = −∞.
z∈Z
26
Zatem, stosujac
˛ metode˛ sympleksowa,˛ w skończonej ilości kroków otrzymamy punkt wierzchołkowy z∗ = (v∗ , w∗ ) ∈ Z bed
zadania (33)-(34).
˛ acy
˛ rozwiazaniem
˛
Możliwe sa˛ 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żałby
do zbioru Z oraz spełniona byłaby równość
J1 (z) = 0,
co sprzeczne jest z nierównościa˛ J1 (z∗ ) > 0 i optymalnościa˛ 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. Stad
˛ wynika,
że v∗ jest punktem wierzchołkowym zbioru U . Istotnie, ponieważ z∗ ≥ 0, wiec
˛ v∗ ≥ 0,
natomiast z równości
Cz∗ = b
wynika, że
Av∗ = b.
A wiec
˛
v∗ ∈ U.
Przypuśćmy teraz, że
v∗ = αu + (1 − α)e
u,
gdzie α ∈ (0, 1), u, u
e ∈ U. Punkty z = (u, 0), ze = (e
u, 0) należa˛ oczywiście do zbioru Z,
przy czym
z∗ = αz + (1 − α)e
z.
Ponieważ z∗ jest punktem wierzchołkowym zbioru Z, wiec
˛ to oznacza, że
skad
˛
z = ze,
u=u
e.
27
A zatem v∗ jest punktem wierzchołkowym zbioru U.
Pokazaliśmy wiec,
˛ że majac
˛ wyjściowe zadanie (31)-(32) i rozważajac
˛ zadanie pomocnicze (33)-(34), potrafimy stwierdzić (stosujac
˛ metode˛ sympleksowa˛ do zadania (33)-(34)),
czy U 6= ∅ i, jeśli tak, wyznaczyć poczatkowy
punkt wierzchołkowy zbioru U.
˛
Uwaga 3. Można pokazać, że, analizujac
˛ tablice˛ sympleksowa˛ dla punktu z∗ = (v∗ , 0)
bed
rozwiazaniem
zadania (33)-(34)), można
˛ acego
˛
˛
(1) znaleźć rzad
w zadaniu (31)-(32), wskazać baze˛ punktu
˛ macierzy A wystepuj
˛ acej
˛
wierzchołkowego v∗ zbioru (32) (por Uwaga 4) i otrzymać tablice˛ sympleksowa˛ dla
punktu v∗
lub
(2) sformułować „nowe” zadanie, dla którego natychmiast można wskazać poczatkowy
˛
punkt wierzchołkowy, jego baze˛ i tablice˛ sympleksowa,˛ przy czym ilość ograniczeń
typu równości wystepuj
w tym zadaniu jest równa rzedowi
macierzy opisujacej
˛ acych
˛
˛
˛
te ograniczenia. Uzupełniajac
tego zadania (otrzymane metoda˛ sym˛ rozwiazanie
˛
pleksowa)
otrzymujemy rozwiazanie
wyjściowego zadania.
˛ zerowymi współrzednymi,
˛
˛
Jeśli nowe zadanie nie ma rozwiazania,
to nie ma go także zadanie wyjściowe.
˛
Uwaga 4. Majac
˛ punkt wierzchołkowy v∗ zbioru U można wyznaczyć rzad
˛ macierzy
A i wskazać współrzedne
bazowe punktu v∗ w nastepuj
˛
˛ acy
˛ sposób. Dodatnie współrzedne
˛
punktu v∗ sa˛ oczywiście jego współrzednymi
bazowymi. Uzupełniajac
˛
˛ układ kolumn
odpowiadajacych
tymże dodatnim współrzednym
kolumnami spośród pozostałych kolumn
˛
˛
tak, by otrzymany układ stanowił baze˛ powłoki liniowej wszystkich kolumn, otrzymamy
baze˛ punktu v∗ (znać też bedziemy
rankA i współrzedne
bazowe punktu v∗ ). Ta metoda
˛
˛
w praktyce jest stosowana w przypadku małych wartości m i n.
Z powyższych rozważań wynika nastepuj
˛ ace
˛
Twierdzenie 2 Jeśli zbiór U dany przez (32) jest niepusty, to ma co najmniej jeden
punkt wierzchołkowy.
28
Korzystajac
˛ z opisu metody sympleksowej, udowodnimy teraz dwa podstawowe fakty
teorii programowania liniowego.
Twierdzenie 3 Na to, aby kanoniczne zadanie postaci (31)-(32) miało rozwiazanie,
t.zn.
˛
aby istniał punkt u∗ ∈ U taki, że
hc, u∗ i = inf hc, ui
u∈U
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ść. Konieczność warunków 1) i 2) jest oczywista.
Dostateczność. Z warunku 1) i twierdzenia 2 wynika, że istnieje punkt wierzchołkowy
zbioru U. Można wiec,
zadanie metoda˛ symplek˛ startujac
˛ z tego punktu, rozwiazywać
˛
sowa.˛ Z warunku 2) wynika, że w żadnej iteracji nie zajdzie przypadek 20 (z opisu metody
sympleksowej). Oznacza to, że po skończonej ilości kroków metoda sympleksowa zakończy
sie˛ znalezieniem rozwiazania
u∗ zadania (31)-(32).
˛
Twierdzenie 4 Jeśli zadanie (31)-(32) ma rozwiazanie,
to wśród rozwiazań
co najmniej
˛
˛
jeden punkt jest punktem wierzchołkowym.
Dowód.
Z twierdzenia 3 wynika, że U 6= ∅ i funkcjonał J jest ograniczony z dołu
na U. Z twierdzenia 2 wynika, że zbiór U ma co najmniej jeden punkt wierzchołkowy.
„Startujac”
˛ z tego punktu, w skończonej ilości kroków matody sympleksowej, otrzymamy
rozwiazanie
u∗ , które jest punktem wierzchołkowym zbioru U (w żadnej iteracji nie zajdzie
˛
przypadek 20 , gdyż
inf J(u) > −∞).
u∈U
Dowód twierdzenia jest zakończony.
29