R. Rȩbowski 1 WPROWADZENIE Metoda Simplex bez użycia tabel simplex 29 kwietnia 2010 1 Wprowadzenie Powszechnie uważa siȩ, że metoda simplex, jako uniwersalny algorytm pozwalaj acyznaleźć rozwi azanie optymalne zagadnienia programowania liniowego (ZPL) nieroz l acznie zwi azana jest z tabelami simplex. Poniżej pokażemy, że algorytm ten można zrealizować wsposób bardziej intuicyjny. Z wiadomych powodów ograniczymy siȩ do ilustracji metody na przyk ladach. Bȩdziemy zak ladali, że ZPL typu m n dane jest w postaci standardowej, a wiȩc w notacji macierzowej wygl ada nastȩpuj aco: gdzie R n D x cx max, x D x 0,Gx b oraz x, b, 0, c, G oznaczaj a odpowiednio macierze stopnia: n 1, m 1, n 1, 1 n i m n. Z w lasności ZPL wiadomo, że jeśli jest ono ograniczone i niesprzeczne, to istnieje co najmniej jedna decyzja x op (zwana optymaln a), że cx cx op dla każdej decyzji x D. Zadaniem algorytmu simplex jest skonstruowanie ci agu decyzji x o, x 1, x 2,..., x k, takich że cx o < cx 1 <...<cx k = cx op. Każdy etap powyższej procedury, który dla j 1 z decyzji x j robi decyzjȩ x j+1 nazwiemy iteracj a. W metodzie simplex każda iteracja jest efektem zadzia lania tej samej procedury. Dlatego metoda simplex jest niczym innym jak wielokrotnym powtórzeniem takich iteracji. Na przyk ladach dwóch ZPL pokażemy w jaki sposób można zrealizować ten zamys l, nie wykorzystuj ac do tego celu tablic simplex. Zaczniemy od przypadku pojedynczej iteracji. 1
2 PRZYPADEK POJEDYNCZEJ ITERACJI 2 Przypadek pojedynczej iteracji Niech dane bȩdzie ZPL z funkcj a celu FC wpostacianalitycznej R 3 D (x 1,x 2,x 3 ) FC (x 1,x 2,x 3 )=2x 1 + x 2 +3x 3 max, gdzie oraz x 1,x 2,x 3 D x 1 0,x 2 0,x 3 0, x 1 +2x 2 +3x 3 5 2x 1 +3x 2 +5x 3 8 3x 1 + x 2 +3x 3 4. Etap 1 konstrukcja nowego ZPL Skonstruujemy najpierw nowe ZPL typu m (n+m) odpowiadaj ace ZPL wtensposób aby warunki ograniczaj ace można by lo zapisaćzapomoc a uk ladu równań liniowych. W tym celu zdefiniujemy m =3kolejneargumentyx 4,x 5,x 6 nowej funkcji celu FC,gdzie x 4 =5 (x 1 +2x 2 +3x 3 ) x 5 =8 (2x 1 +3x 2 +5x 3 ) x 6 =4 (3x 1 + x 2 +3x 3 ). Pozwala nam to zdefiniować ZPL z funkcj a celu FC : D R, gdzie (x 1,x 2,x 3,x 4,x 5,x 6 ) D R 6 oraz x j 0, j=1, 2,...,6, x 1 +2x 2 +3x 3 + x 4 =5 2x 1 +3x 2 +5x 3 + x 5 =8 3x 1 + x 2 +3x 3 + x 6 =4 FC (x 1,x 2,x 3,x 4,x 5,x 6 )=2x 1 + x 2 +3x 3 +0x 4 +0x 5 +0x 6 max. Zauważmy, że wtedy FC (x 1,x 2,x 3,x 4,x 5,x 6 )=FC (x 1,x 2,x 3 )dlakażdej decyzji (x 1,x 2,x 3 ) D. Wtzw. zerowym kroku iteracji bierzemy x o =(0, 0, 0, 5, 8, 4). Zauważmy, że x o D, czyli jest decyzj a dlazpl oraz FC (x o )=0. 2
2 PRZYPADEK POJEDYNCZEJ ITERACJI Etap2 pierwszy krok iteracji Pokażemy w jaki sposób można skonstruować decyzjȩ x 1 zmieniaj ac w odpowiedni sposób postać decyzji x o, tak aby FC (x o ) <FC (x 1 ). W tym celu argumenty funkcji celu FC podzielimy na dwie kategorie: zmienne bazowe x 4,x 5,x 6, zmienne niebazowe x 1,x 2,x 3. Modyfikacja decyzji x o polega na tym, że jedna z aktualnych zmiennych niebazowych (nazwiemy j a zmienn a wchodz ac a) zajmie miejsce zmiennej bazowej (nazwiemy j a zmienn a wychodz ac a). Dla ustalenia postaci zmiennej wchodz acej skorzystamy z bardzo prostej w lasności: jeśli w wyrażeniu liniowym c 1 x 1 + c 2 x 2 + c 3 x 3 zmianie ma ulec tylko wartość pojedynczego argumentu, to najwiȩkszy przyrost wartości takiego wyrażenia zaobserwujemy, jeśli tym argumentem bȩdzie x j,przy którym znajduje siȩ najwiȩkszy dodatni wspó lczynnik c j. W naszym przypadku, ponieważ c 1 =2,c 2 =1,c 3 =3,bȩdzie nim argument x 3.Określiliśmy zatem postać zmiennej wchodz acej. Uwaga 2.1 Gdyby wszystkie wsp lczynniki c j < 0, tox op =(0, 0, 0), oileb 0. Abu ustalić nazwȩ zmiennej wychodz acej, a w efekcie aktualn a postać zmiennych bazowych, musimy wyznaczyć wartość zmiennej wchodz acej x 3. W tym celu skorzystamy z: uwagi, że ponieważ wśród zmiennych niebazowych, zmiennymi które nie wchodz a s a x 1,x 2,tozachowuj a one swoje dotychczasowe wartości, a wiȩc x 1 = x 2 =0; warunków brzegowych dla aktualnych zmiennych bazowych, czyli po uwzglȩdnieniu powyższego x 4 0 5 3x 3 0 x 3 5 3, x 5 0 8 5x 3 0 x 3 8 5, x 6 0 4 3x 3 0 x 3 4 3. 3
2 PRZYPADEK POJEDYNCZEJ ITERACJI Ponieważ powyższe trzy nierówności musz a zachodzić jednocześnie, oznacza to, że najwiȩksz a dopuszczaln a wartości a argumentu x 3 może być liczba najmniejsza spośród liczb po prawej stronie każdej z nierówności, czyli 4. Przyjmujemy, że 3 x 3 = 4. Wtedy (pamiȩtamy, że x 3 1 = x 2 = 0) z definicji zmiennych bazowych dostaniemy: x 4 =1,x 5 = 4 3,x 6 =0, co pozwala nam zdefiniować postać decyzji x 1 =(0, 0, 4 3, 1, 4 3, 0) D. Zauważmy, że 0=FC (x o ) <FC (x 1 )=4. Wreszcie znamy nazwȩ zmiennej wychodz acej: jest to ta, która przyjmuje najmniejsz a wartość spośród aktualnych zmiennych bazowych, czyli x 6. W takim razie możemy zrealizować pierwsz a iteracjȩ: ustalamy aktualn a postać zmiennych bazowych: stare zm. bazowe zm. wchodz aca zm. wychodz aca aktualne zm. bazowe x 4,x 5,x 6 x 3 x 6 x 3,x 4,x 5 ustalamy aktualn apostać ZPL: w tym celu bierzemy warunek ograniczaj acy, wktórym wystȩpuje zmienna wychodz aca, czyli x 6 i wyznaczamy z niego zmienn a x 3 now a zmienn awchodz ac a x 6 =4 3x 1 x 2 3x 3 x 3 = 4 3 x 1 1 3 x 2 1 3 x 6. Korzystaj ac z powyższego zwi azku, wyliczamy wartości kolejnych zmiennych bazowych x 4,x 5, czyli 4 x 4 =5 x 1 2x 2 3( 3 x 1 1 3 x 2 1 ) 3 x 6 =1+2x 1 x 2 + x 6, 4 x 5 =8 2x 1 3x 2 5( 3 x 1 1 3 x 2 1 ) 3 x 6 = 4 3 +3x 1 + 4 3 x 2 + 5 3 x 6. Ustalamy aktualn a postać funkcji celu 4 FC (x 1,x 2,x 6,x 3,x 4,x 5 )=2x 1 +x 2 +3( 3 x 1 1 3 x 2 1 ) 3 x 6 =4 x 1 x 6. 4
2 PRZYPADEK POJEDYNCZEJ ITERACJI Zakończyliśmy procedurȩ pierwszej iteracji. pracy. Podsumujmy efekty naszej 1. Ponieważ FC = FC,wiȩczpowyższego oryginalna funkcja celu FC ma postać FC (x 1,x 2,x 6 )=4 x 1 x 6. 2. (x 1,x 2,x 6 ) D x 1 0,x 2 0,x 6 0 oraz gdzie jak pamiȩtamy x 1 +2x 2 +3x 3 5 2x 1 +3x 2 +5x 3 8 3x 1 + x 2 +3x 3 4. x 3 = 4 3 x 1 1 3 x 2 1 3 x 6. Z aktualnej postaci funkcji celu wnosimy, że brak jest kolejnej zmiennej wchodz acej (wszystkie wspó lczynniki s a ujemne). Oznacza to, że druga iteracja jest zbȩdna. Rzeczywiście, w naszym przypadku FC (x 1,x 2,x 6 )=4 x 1 x 6 4iFC (x 1 )=FC (0, 0, 4 3 )=4, co dowodzi, że x op =(0, 0, 4 3 ). 5
3 PRZYPADEK DWÓCH ITERACJI 3 Przypadek dwóch iteracji Niech dane bȩdzie ZPL z funkcj a celu FC wpostacianalitycznej R 3 D (x 1,x 2,x 3 ) FC (x 1,x 2,x 3 )=3x 1 + x 2 +2x 3 max, gdzie oraz x 1,x 2,x 3 D x 1 0,x 2 0,x 3 0, x 1 +2x 2 + x 3 4 2x 1 + x 2 + x 3 3 x 1 x 2 +4x 3 2. Etap 1 konstrukcja nowego ZPL 1. definicja zmiennych bazowych: x 4 =4 x 1 2x 2 x 3 2. konstrukcja ZPL gdzie x 5 =3 2x 1 x 2 x 3 x 6 =2 x 1 + x 2 4x 3, FC : D R, FC (x 1,x 2,x 3,x 4,x 5,x 6 )=FC (x 1,x 2,x 3 ), (x 1,x 2,x 3,x 4,x 5,x 6 ) D x j 0, oraz warunki ograniczaj ace opisane s a warunkami definiuj acymi zmienne bazowe w punkcie 1, 3. konstrukcja decyzji pocz atkowej x o =(0, 0, 0, 4, 3, 2), FC (x o )=0. Etap 2 I krok iteracji aktualne zmienne bazowe: x 4,x 5,x 6, aktualne zmienne niebazowe: x 1,x 2,x 3, zmienna wchodz aca: z definicji FC jest ni a x 1, 6
3 PRZYPADEK DWÓCH ITERACJI ustalenie wartości tej zmiennej: dla x 2 = x 3 = 0, z warunków ograniczaj acych dla ZPL x 4 0 4 x 1 0 x 1 4 sk ad x 1 = 3 2, x 5 0 3 2x 1 0 x 1 3 2 x 6 0 2 x 1 0 x 1 2, ustalenie zmiennej wychodz acej: dla x 2 = x 3 =0,x 1 = 3 2, zmienne bazowe przyjmuj a wartości: x 4 =4 3 2 = 5 2 idlategojestni a x 5, x 5 =3 2 3 2 =0 x 6 =2 3 2 = 1 2, postać decyzjix 1 : nowe zmienne bazowe: x 1,x 4,x 6, x 1 =( 3 2, 0, 0, 5 2, 0, 1 2 ),FC (x 1 )= 9 2, aktualizacja ZPL: z warunku na aktualn a zmienn a wychodz ac a wyznaczamy aktualn a zmienn awchodz ac a, czyli x 5 =3 2x 1 x 2 x 3 x 1 = 3 2 1 2 x 2 1 2 x 3 1 2 x 5 ipopodstawieniudox 4,x 6 dostaniemy ( 3 x 4 =4 2 1 2 x 2 1 2 x 3 1 ) 2 x 5 2x 2 x 3 = 5 2 3 2 x 2 1 2 x 3 + 1 2 x 5 ( 3 x 6 =2 2 1 2 x 2 1 2 x 3 1 ) 2 x 5 + x 2 4x 3 = 1 2 + 3 2 x 2 2 x 3 + 1 2 x 5, gdzie, ponieważ zmiennymi niebazowymi teraz s a x 2,x 3,x 5,aktualnapostać funkcji celu jest nastȩpuj aca 3 FC (x 2,x 3,x 5,x 1,x 4,x 6 )=3( 2 1 2 x 2 1 2 x 3 1 ) 2 x 5 + x 2 +2x 3 idlatego FC (x 2,x 3,x 5,x 1,x 4,x 6 )= 9 2 1 2 x 2 + 1 2 x 3 3 2 x 5 max.
3 PRZYPADEK DWÓCH ITERACJI Etap 3 II krok iteracji aktualne zmienne bazowe: x 1,x 4,x 6, aktualne zmienne niebazowe: x 2,x 3,x 5, zmienna wchodz aca: z ostatniej definicji FC jest ni a x 3, ustalenie wartości tej zmiennej: dla x 2 = x 5 = 0 (patrz postać x 1 ), z warunków ograniczaj acych dla ZPL (patrz aktualizacja ZPL w kroku I) x 1 0 3 2 1 2 x 3 0 x 3 3 sk ad x 3 = 1, x 4 0 5 2 1 2 x 3 0 x 3 5 x 6 0 1 2 2 x 3 0 x 3 1, ustalenie zmiennej wychodz acej: dla x 2 = x 5 =0,x 3 = 1, zmienne bazowe przyjmuj a wartości: x 1 = 3 2 1 14 = 10 x 4 = 5 2 1 14 = 1 idlategojestni a x 6, postać decyzjix 2 : x 2 = nowe zmienne bazowe: x 1,x 3,x 4, x 6 = 1 2 1 2 =0, ( 10, 0, 1, 1, 0, 0 ),FC (x 2 )= 32, aktualizacja ZPL: z warunku na aktualn a zmienn a wychodz ac a (patrz aktualizacja ZPL w kroku I) wyznaczamy aktualn a zmienn awchodz ac a, czyli x 6 = 1 2 + 3 2 x 2 2 x 3 + 1 2 x 5 x 3 = 1 + 3 x 2 + 1 x 5 2 x 6 x 1 = 3 2 1 2 x 2 1 2( 1 + 3 x 2 + 1 x 5 2 x 6 8 ) 1 2 x 5 = 10 5 x 2 4 x 5 + 1 x 6
3 PRZYPADEK DWÓCH ITERACJI x 4 = 5 2 3 2 x 2 1 1 2( + 3 x 2 + 1 x 5 2 ) x 6 + 1 2 x 5 = 1 12 x 2 + 13 14 x 5 + 1 x 6, gdzie, ponieważ zmiennymi niebazowymi teraz s a x 2,x 5,x 6,aktualnapostać funkcji celu jest nastȩpuj aca FC (x 2,x 5,x 6,x 1,x 3,x 4 )= 9 2 1 2 x 2 + 2( 1 1 + 3 x 2 + 1 x 5 2 ) x 6 3 2 x 5, idlatego FC (x 2,x 5,x 6,x 1,x 3,x 4 )= 32 2 x 2 10 x 5 1 x 6 max. Na podstawie aktualnej postaci funkcji celu widzimy, że nie ma kolejnej zmiennej wchodz acej. Jednocześnie (pamiȩtamy, że x 2 0,x 5 0,x 6 0) FC (x) 32 dla każdej decyzji x. Ponieważ FC ( 10, 0, 1 )=FC (x 2 )= 32,wiȩc x op =( 10, 0, 1 ), co kończy procedurȩ. Uwaga 3.1 Zaprezentowany na dwóch przyk ladach algorytm ma jedn a wadȩ może siȩ zapȩtlić, tzn. może zdarzyć siȩsytuacja,że po kilku krokach wrócimy do tych samych zmiennych bazowych. Oczywiście istnieje wyjście z takiej sytuacji, o czym z oczywistych powodów nie napiszemy. Nie mniej jednak uważamy, że warto przedstawionej wyżej metodzie poświȩcić uwagȩ jest ona bardziej intuicyjna i prostsza od przeprowadzenia aniżeli metoda tablic simplex. 9