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