6.1. Szukanie wierzchołka startowego
Jeżeli zadanie PL opisane jest macierzą, która nie ma postaci tablicy
sympleks, to by móc stosować metodę sympleks stosujemy chwyt
genialny w swej prostocie - dopisujemy macierz jednostkową.
Dokładniej:
Dwufazowa metoda sympleks
macierzą układu jest [A|b]
Mnożąc w razie potrzeby niektóre równania przez -1 możemy
przyjąć, że b≥0. Aby uzyskać TS dopisujemy macierz
jednostkową i otrzymujemy tablicę sympleks TS=AIb.
Odpowiada temu układ równań
gdzie y=y1y2⋮ytA=a1,1a1,2…a1,n⋮⋮⋱⋮at,1at,2…a1t,n
Rozwiązujemy zadanie PL(∗):Maxy0=-y=-y1-y2-…-yt
zadanie (∗) jest ograniczone ponieważ
y≥0⇒y0≤0. Dodatkowo jeżeli p należy do
obszaru dopuszczalnego zadania pierwotnego, czyli Ap=b p≥0 to
p¯=p,0,…,0 jest punktem optymalnym (∗) gdyż
Jeżeli w rozwiązaniu optymalnym zadania (∗) y0max<0 to wielościan
W=x∈Rn|Ax=bx≥0
jest zbiorem pustym (zadanie pierwotnie sprzeczne).
Jeżeli y0max=0 to TS opisująca wierzchołek optymalny
zadania (∗) pozwala nam opisać wierzchołek
zadania pierwotnego.
a) Jeżeli wszystkie zmienne y1,y2,…,yt są niebazowe
to macierz powstała po wykreśleniu kolumn z nimi związanych jest
TS opisująca wierzchołek obszaru dopuszczalnego zadania
pierwotnego.
Rzeczywiście. Jeżeli (p1,..,pn,y1,…,yt) jest
wierzchołkiem opisanym A¯Db¯ to
y1=0,…,yt=0, A¯p=b¯
(A¯ zawiera macierz jednostkową)
[A¯|b¯] powstała z [A|b] przez operacje
elementarne na wierszach, więc opisuje ten sam wielościan.
b) Niech yi będzie zmienną bazowa. Przyjmijmy, że kolumna
odpowiadająca yi ma jedynkę w j-tym wierszu i pozostałe
współrzędne =0.
10 jeżeli wiersz j-ty ma tylko jeden element niezerowy
( j- ty wiersz A¯ jest zerowy ) to znaczy, że [A|b] i
A były układem zależnym. Taki wiersz i kolumny można wykreślić (
w praktyce zostaje).
20 Jeżeli oprócz jedynki odpowiadającej yi istnieje aj,r≠0 w j-tym wierszu
macierzy A¯ to wybieramy go jako element centralny i
po przekształceniach elementarnych otrzymujemy TS, w której
yj jest niebazowe, zaś xr jest dołączone do bazy.
Po wykonaniu I fazy otrzymujemy TS opisującą wierzchołek obszaru
dopuszczalnego T lub informację, że zadanie było sprzeczne.
Najpierw budujemy wiersz kosztów zredukowanych
Koszty zredukowane to x0=dx+b0 gdzie d=d1,…,dn
to dj=0 gdy xj - bazowa. Wektor d wyliczamy
wstawiając do równania x0=cx
równania xj=bj¯-ajixi pochodzące z TS [A*|b*] = a1,1a1,2…a1nb1*⋮⋮⋱⋮⋮at,1at,2…at,nbt*
Dalej zadanie rozwiązujemy prosta metodą sympleks.
Przykład 6.1
Badamy zadanie:
Maxx0=7x1+2x2-3x3-x4
8x1+3x2-5x3+x4=4
3x1+x2-2x3-x4=1
x1,x2,x3,x4≥0
I faza:
Wprowadzamy sztuczne zmienne y1 i y2 i funkcje celu i otrzymujemy:
Maxy0=-y1-y2
8x1+3x2-5x3+x4+y1=4
3x1+x2-2x3-x4+y2=1
x1,x2,x3,x4,y1,y2≥0
Zamieniamy teraz funkcję celu podstawiając: y1=-8x1+3x2-5x3+x4-4 i y2=-3x1+x2-2x3-x4-1.
Otrzymujemy:
y0-8x1+3x2-5x3+x4-4-3x1+x2-2x3-x4-1=0
y0-11x1-4x2+7x3=-5
Zadanie opisujemy tablicą:
x1x2x3x4y1y2-11-47000-583-5110431-2-1011baza sztuczna
Opuściliśmy tu kolumnę odpowiadającą zmiennej y0 bo, jak wcześniej zauważyliśmy, kolumna ta nie ulega zmianie podczas rozwiązywania.
Wybieramy kolumnę poprawiającą x2.
Min43,11=1 i element
centralny zaznaczamy nawiasem
10-1-404-1-10141-3131-2-1011
0000110-10141-3111072-53
Zmienne sztuczne wypadły z bazy więc możemy je wykreślić.
Pozostała tablica opisuje wierzchołek startowy 0,3,1,0.
Wracamy do pierwotnej funkcji celu i liczymy koszty zredukowane:
x0=7x1+2x2-3x3-x4=7x1+2-x1-7x4+3-3x1-4x4+1-x4=2x1-3x4+3
i otrzymujemy tablicę sympleks:
-20033-1014111073
Pierwsza kolumna wyznacza krawędź poprawiającą. Idąc nią
otrzymujemy.
02017901111411073
Ta tablica opisuje jedyny wierzchołek optymalny 3,0,4,0,
w
którym
Maxx0=9
Przykład 6.2
Rozwiążmy zadanie:
Maxx0=3x1+8x2-2x3-x4
2x1+x2-x3+6x4=3
x1+x2-3x3-x4=5
x1,x2,x3,x4≥0
I faza:
Wprowadzamy sztuczne zmienne y1 i y2 i funkcje celu
Maxy0=-y1-y2
0=y0+y1+y2=y0-2x1+x2-x3+6x4-3-x1+x2-3x3-x4-5
y0-3x1-2x2+4x3-5x4=-8
co daje tablicę sympleks
-3-24-500-821-1610311-3-1015
stosując prosty algorytm metody sympleks otrzymujemy kolejno:
-43-761960560-1121316-161160124376-1960161112
102720-221-16103-10-2-7-112
Nad kreską są same liczby nieujemne a funkcja celu jest równa -2
zatem zadanie jest sprzeczne (obszar dopuszczalny jest zbiorem
pustym).
6.2. Modyfikacje dwufazowej metody sympleks
1. Metoda częściowej bazy sztucznej
W metodzie dwufazowej wystarczy dodać tylko tyle zmiennych
sztucznych, by otrzymać macierz jednostkową.
W tym przypadku mamy t1 zmiennych bazowych i gdy b1≥0 dodajemy tylko t2 zmiennych sztucznych.
W przypadku rzeczywistych obliczeń ( na maszynach) zwykle nie
stosuje się częściowej bazy sztucznej. Nie trzeba wówczas
wyszukiwać w macierzy A kolumn zero - jedynkowych.
2. Można obie fazy rozwiązać na jednej TS. W zadaniu:
Rozważamy obie funkcje celu jednocześnie.
Budujemy tablicę sympleks mającą dwa wiersze nad kreską.
TS=B-1¯⋅x0y0x1x2…xny1…ytww10-c0…000100…01…1000AIb,
W fazie 1 maksymalizujemy y0 i w rezultacie otrzymujemy,
że zadanie jest sprzeczne lub TS opisująca
wierzchołek startowy (łącznie z kosztami zredukowanymi funkcji
x0).
Ta metoda nigdy nie prowadzi do zmniejszenia liczby operacji (np.
wyszło, że zadanie jest sprzeczne, więc naliczyliśmy się zupełnie
niepotrzebnie).
Przykład 6.3
Badamy zadanie:
Maxx0=7x1+2x2-3x3-x4
8x1+3x2-5x3+x4=4
3x1+x2-2x3-x4=1
x1,x2,x3,x4≥0
I faza:
Wprowadzamy sztuczne zmienne y1 i y2 i funkcje celu
Maxy0=-y1-y2
y0+y1+y2=0
y0-8x1+3x2-5x3+x4-4-3x1+x2-2x3-x4-1=0
y0-11x1-4x2+7x3=-5
y0x0x1x2x3x4y1y2WW10-11-47000-501-7-2310000083-511040031-2-1011baza sztucznaWybieramy kolumnę poprawiającą x2.
Min43,11=1 i element centralny
zaznaczamy nawiasem
1010-1-404-101-10-1-102200-10141-310031-2-1011
10000011001-20031-1300-10141-310011072-53
Koniec fazy pierwszej. Wszystkie sztuczne zmienne są niebazowe
wykreślamy wiersze i kolumny związane ze sztucznymi zmiennymi.
1-200330-10141011073
Kolumna x1 wyznacza krawędź poprawiającą. Idąc nią otrzymujemy.
10201790011114011073
Ta tablica opisuje jedyny wierzchołek optymalny 3,0,4,0,
w którym xmax=9
Czasami potrafimy oszacować wartość x0 i maxxi.
Szczególnie w zagadnieniach całkowitoliczbowych np. transport
ciężarówkami i gdy wśród warunków są 0≤xi≤bi.
Aby rozwiązać zadanie: Maxx0=cx
wybieramy liczbę M dostatecznie dużą i rozpatrujemy zadanie Maxx0¯=cx-My
Teraz poprawione zadanie opisane jest tablicą sympleks:
TS=-c-dM0...0-M⋅∑biAIb,
gdzie wektor d jest sumą wierszy macierzy A.
Rozwiązanie zawsze istnieje, ale czasami w opisie kosztów
zredukowanych wierzchołka optymalnego występuje M - oznacza to,
że zadanie wyjściowe jest sprzeczne. W stosunku do poprzednich
metod zyskujemy to, że mamy jedną fazę i jedną funkcję celu.
Przykład 6.4
Maxx0=x1-2x2-3x4
x1-x2-x3=1
-x1+x2+2x3-x4=1
xi≥0
Sprowadzamy do zadania:
Maxx0¯=x1-2x2-3x4-My1-My2
x1-x2-x3+y1=1
-x1+x2+2x3-x4+y2=1
xi≥0, y≥0
Otrzymujemy następujące tablice sympleks:
x0x1x2x3x4y1y2ww1-1203MM001-1-101010-112-1011
1-12-M3+M00-2M01-1-101010-112-1011
1-1-12M2+12M03+12M012M-32M012-120-12112320-12121-1201212
101022+MM+1301-10-12130001-1112
Rozwiązaniem jest wierzchołek 3,0,2,0, w którym funkcja celu
osiąga wartość 3.
Zadania
Ćwiczenie 6.1
Opisz dwufazowy algorytm metody sympleks na przykładzie zadania:
Min x0=3x1+4x2+2x3 , gdy:
x1-5x2+2x3≥5
x1+3x2+2x3≤2
x1-5x2+3x3≥3
x1≥0, x2≥0, x3≥0,
Ćwiczenie 6.2
Opisz dwufazowy algorytm metody sympleks na przykładzie zadania:
Min x0=3x1-x2+2x3 , gdy:
x1-5x2+2x3≥4
x1-5x2+x3≥3
x1+3x2-2x3≤5
x1≥0, x2≥0, x3≥0,