Szczegółowy opis algorytmu sympleks

Transkrypt

Szczegółowy opis algorytmu sympleks
Algorytm SYMPLEKS na przykładzie "problemu komputerowego"
Problem komputerowy w postaci standardowej z symbolicznie oznaczonymi współczynnikami:
Zmaksymalizować :
c1 x1  c 2 x 2  0 s1  0 s 2  0s 3
przy ograniczeniach :
a11 x1  a12  x 2  s1
a 21 x1  a 22  x 2
a 31 x1  a 32  x 2
 b1
 s2
 b2
 s3
 b3
x1 , x 2 , s1 , s 2 , s 3  0
gdzie:
cj
- wsp. przy j-tej zmiennej w wyrażeniu optymalizowanym
a ij
- wsp. przy j-tej zmiennej w i-tym ograniczeniu
bi
- prawa strona w i-tym ograniczeniu
Tabelka metody SYMPLEKS i jej elementy
Szczegółowy opis algorytmu sympleks

W pierwszej tabelce bazę tworzą zwykle zmienne wprowadzone na etapie standaryzacji.
Wartości a ij i wi dla pierwszej tabelki to stosowne wartości wzięte z równań tworzących
ograniczenia liniowe.

W każdej tabelce cechą charakterystyczną zmiennej bazowej jest fakt, że odpowiadająca jej
kolumna zawiera same zera z wyjątkiem jednej jedynki występującej w wierszu, w którym
zmienna ta jest wypisana w bazie.

W celu skonstruowania nowej tabelki wyszukujemy największą dodatnią wartość w wierszu
C-Z. Kolumna, w której znajduje się ta wartość wyznacza zmienną, którą w nowej tabelce
wprowadzimy do bazy. Jeśli w wierszu C-Z nie ma wartości dodatnich, oznacza to, że
aktualne zmienne bazowe wraz z ich wartościami w ostatniej kolumnie tworzą poszukiwane
rozwiązanie optymalne.

By ustalić zmienną, która opuści bazę, liczby w ostatniej kolumnie dzielimy przez liczby
w kolumnie wyznaczonej przez zmienna wybraną do wejścia do bazy i wybieramy wiersz dla
którego otrzymamy najmniejszy nieujemny wynik. Ten wiersz wyznacza zmienna, która
opuści bazę.

Konstrukcję nowej tabelki rozpoczynamy od przepisania dwóch górnych wierszy. Następnie
przepisujemy zmienne bazowe z wyjątkiem tej która ma opuścić bazę. W jej miejsce
wpisujemy zmienna, która wchodzi do bazy. Tak samo postępujemy ze współczynnikami w
kolumnie C.

Wiersz wyznaczony przez zmienna opuszczającą bazę dzielimy przez element tego wiersza
znajdujący się w kolumnie zmiennej wchodzącej do bazy. Powstały w wyniku dzielenia
nowy wiersz wpisujemy do nowej tabelki.

Wiersze pozostałych zmiennych bazowych modyfikujemy dodając taka wielokrotność już
wyliczonego wiersza, by w kolumnie nowej zmiennej bazowej pojawiły się zera.

Ostatecznie, wyznaczamy nowe wartości wierszy Z i C-Z.
1. Konstrukcja pierwszej tabelki
Do tabelki wpisujemy współczynniki modelu problemu w postaci standardowej
W pierwszej kolumnie wpisujemy zmienne bazowe pierwszego rozwiązania dopuszczalnego.
W kolumnie C wpisujemy współczynniki stojące przy zmiennych bazowych w formule
optymalizowanej.
j-ty wyraz
wiersza
Z
obliczmy sumując
iloczyny
współczynników
w
kolumnach
odpowiadających poszczególnym zmiennym przez współczynniki przy zmiennych bazowych.
Wartość funkcji celu w danym kroku algorytmu obliczamy sumując iloczyny współczynników w
kolumnie Wartość przez współczynniki przy zmiennych bazowych.
Konstrukcja drugiej tabelki
W pierwszej tabelce wybieramy zmienną o największej dodatniej wartości w wierszu C-Z.
Zmienna ta wejdzie do bazy.
By ustalić zmienna, która opuści bazę, dzielimy liczby w ostatniej kolumnie przez liczby
w wybranej kolumnie. Wybieramy najmniejszy dodatni iloraz. Zmienna bazowa w tym wierszu
opuści bazę.
Wymieniamy tez stosowny współczynnik w kolumnie C.
Stosując odpowiednie operacje tak przekształcamy wiersze tabelki aby w kolumnie
odpowiadającej zmiennej, która wchodzi do bazy powstał odpowiedni wektor jednostkowy.
Następnie uzupełniamy dwa ostatnie wiersze postępując tak jak przy pierwszej tabelce.
Konstrukcja trzeciej tabelki
Trzecia tabelka powstaje z drugiej według tych samych zasad jak druga powstała z pierwszej.
Bazę opuszcza zmienna s3 a jej miejsce zajmuje zmienna x 2
Trzecia tabelka jest dla rozważanego problemu ostatnią, bo w wierszu C  Z nie ma już wartości
dodatnich, co oznacza że wartości funkcji celu nie da się już poprawić. Ostatnia kolumna
zawiera optymalne wartościowanie zmiennych bazowych. W przypadku zmiennych
pomocniczych wartości te oznaczają zapas określonego środka (patrz ograniczenie pierwsze).
W prawym dolnym rogu tabeli pokazana jest ekstremalna wartość funkcji celu.
Przypadki szczególne w algorytmie SYMPLEKS

Jeśli w którymś kroku algorytmu sympleks nie da się wybrać zmiennej opuszczającej bazę,
bo wszystkie obliczone ilorazy są ujemne lub zero, oznacza to, że problem jest
nieograniczony, a wiec otrzymać można dowolnie wielki zysk.

Jeśli w którymś kroku algorytmu sympleks nie da się wybrać zmiennej opuszczającej bazę,
bo najmniejszy dodatni iloraz nie jest wyznaczony jednoznacznie, to na ogół każda ze
zmiennych dających ten najmniejszy dodatni iloraz, może być wybrana jako opuszczająca
bazę. W pewnych wyjątkowych przypadkach, potrzebne będą pewne dodatkowe reguły by
uniknąć zapętlenia algorytmu.

Rozwiązanie problemu optymalizacyjnego nie musi być jednoznaczne. W algorytmie fakt ten
można zaobserwować w ostatniej tabelce. Jeśli w rzędzie C-Z ostatniej tabelki pojawia się
zero w kolumnie odpowiadającej zmiennej nie będącej w bazie, oznacza to, że rozwiązanie
optymalne nie jest jednoznaczne.
Dodatek
Metoda graficzna rozwiązania zadania z komputerami
Standaryzacja modelu