CYKL /6 W METODZIE SYMPLEKS SEBASTIAN SITARZ Uniwersytet l ski Streszczenie Celem niniejszej pracy jest przedstawienie i analiza zjawiska cykliczno ci wyst puj cego w zdegenerowanych zadaniach programowania liniowego na przykładzie cyklu typu /6. Podano posta ogóln zadania programowania liniowego, w którym wyst puje cykl /6 na podstawie pracy Halla i McKinnona [5]. Ponadto zaprezentowano przykład numeryczny ilustruj cy wyst powanie cyklu /6. Słowa kluczowe: programowanie liniowe, metoda sympleks, cykle.. Wprowadzenie Metoda sympleks słu ca do rozwi zywania zada programowania liniowego jest jedn z najbardziej znanych iteracyjnych metod optymalizacyjnych. Jednym z problemów wyst puj cych w metodzie sympleks jest powstawanie tzw. cyklu, polegaj cego na tym, e w pewnej iteracji wracamy do iteracji startowej. W 953 roku Hoffman [6] podał pierwszy przykład cyklu w metodzie sympleks, który miał zmiennych i 3 warunki ograniczaj ce. Przykład Hoffamana był skomplikowany, po 0 iteracji wracali my do postaci startowej. Okazuje si, e nie trzeba budowa skomplikowanych zada programowania liniowego, aby otrzyma cykl. W 004 roku Hall i McKinnon [5] podali charakteryzacj cykli w przypadku zadania z 6 zmiennymi i ograniczeniami (cykl nast puje po 6 iteracjach). Istnieje wiele metod pozwalaj cych zapobiec powstawaniu cykli, cho by prace Wolfe a [9] i Fletchera []. Natomiast praca Gasaa i Vinjamuri ego [] testuje popularne programy komputerowe (LINDO, C-Plex i Excel) pod wzgl dem rozwi zywania zada z cyklami. Warto odnotowa, e zadania zdegenerowane nie rozwa a si wył cznie jako potencjalne przykłady wyst powania cykli, otó zadania te wyst puj równie w wielokryterialnym programowaniu liniowym jako narz dzie słu ce testowaniu sprawno ci [8]. Niniejsza praca omawia wyniki uzyskane przez Halla i McKinnona, prezentuj c przykład numeryczny oraz twierdzenie charakteryzuj ce cykliczno typu /6. Twierdzenie zawarte w rozdziale 4 jest zgrabnym podsumowaniem obszernych i niespójnych faktów prezentowanych w ródłowej pracy, co pozwala na jasn prezentacj otrzymanej charakteryzacji, której brakowało w pracy Halla i McKinnona. Poza opracowaniem faktów z pracy Halla i McKinnona autor pracy przedstawia dokładn ilustracj numeryczn prezentowanej teorii oraz podaje zwi zki mi dzy parametrami zadania generuj cymi wyst powanie cyklu /6. Wykorzystano tu wyniki otrzymane w pracy magisterskiej Jurasz [7], która powstała pod opiek autora niniejszej pracy. Praca składa si z nast puj cych cz ci: sekcja zawiera podstawowe definicje i fakty. W sekcji 3 przedstawiony jest przykład cyklu /6. Sekcja 4 charakteryzuje ogóln posta zadania programowania liniowego, w którym wyst puje cykl /6. Ostatnia sekcja podsumowuje prac.
94 POLSKIE STOWARZYSZENIE ZARZ DZANIA WIEDZ Seria: Studia i Materiały, nr 3, 00. Metoda sympleks i cykle Sekcj t opracowano na podstawie monografii Grabowskiego [4] w celu wprowadzenia poj u ywanych w dalszej cz ci pracy. Rozwa amy zadanie programowania liniowego w postaci: Min cx (.) Mx = r (.) x 0 (.3) gdzie M jest macierz o wymiarach m n i rz dzie równym m, c wektorem o wymiarze n, r wektorem o wymiarze m, natomiast x wektorem o wymiarze n. Uwaga.. Macierz M =[m,, m m ] nazywamy baz, gdy jej kolumny s baz liniowej przestrzeni R m. Ponadto, dla zbioru B={j,, j m } przez M B oznaczamy podmacierz macierzy M zło on z kolumn o indeksach: j,, j m.. Definicja.. Zadanie Min dx (.4) Hx = h 0 (.5) x 0 (.6) gdzie d=z c, H=(M B ) - M, h 0 =(M B ) - r, z=c B H, nazywamy postaci bazow zadania (.) (.3) wzgl dem bazy M B. Uwaga.. Zadanie (.4) (.6) przedstawiamy w postaci nast puj cej tablicy sympleks: H h 0 d c B h 0 gdzie H, h 0, d oraz c B h 0 s odpowiednio macierzami o wymiarach m n, m, n oraz. Definicja.. Rozwi zanie dopuszczalne x nazywamy bazowym rozwi zaniem dopuszczalnym wzgl dem bazy M B i oznaczamy jako x B, je eli dla ka dego j B mamy x j =0. Metoda sympleks polega na stosowaniu poni ej opisanych punktów ( 5). Dla danej bazy B={j,, j m } wyznaczamy H, h 0.. Badamy, czy d 0. Je li tak, to x B jest rozwi zaniem optymalnym problemu (.) (.3). W przeciwnym wypadku przechodzimy do punktu.. Kryterium wej cia wyznaczamy najmniejszy element d k wektora d, czyli d k = min{d j : j B } 3. Badamy, czy h k = (M B ) - m k 0. Je li tak, to funkcja celu problemu (.) (.3) jest nieograniczona z dołu. W przeciwnym wypadku przechodzimy do punktu 4. 4. Kryterium wyj cia spo ród ilorazów elementów wektora h 0 przez dodatnie elementy wektora h k wybieramy iloraz najmniejszy h lo /h ik, czyli h lo /h ik = min{h io /h ik : h ik >0 } 5. Tworzymy zbiór indeksów nowej bazy B =B\{j l } {k} i wracamy do punktu. Uwaga.3. Je eli dla ka dego i=,,m mamy h i0 =0, to w kroku 4 wybieramy taki indeks k, e h lk = max{h ik : i=,,m} Uwaga.4. Stosuj c algorytm sympleks dla zadania maksymalizacji, post pujemy analogicznie z t ró nic, e bazowe rozwi zanie dopuszczalne x B wzgl dem bazy M B jest rozwi zaniem optymalnym, gdy d 0.
Sebastian Sitarz Cykl /6 w metodzie sympleks 95 Definicja.3. Bazowe rozwi zanie dopuszczalne x B nazywamy niezdegenerowanym, je eli dla ka dego j B mamy x j >0, czyli warto ci wszystkich zmiennych bazowych s dodatnie. Definicja.4. Problem programowania liniowego nazywamy niezdegenerowanym, je eli ka de jego bazowe rozwi zanie dopuszczalne jest niezdegenerowane. Twierdzenie.. [4]. W niezdegenerowanym problemie programowania liniowego metoda sympleks ko czy si w sko czonej liczbie iteracji. W przypadku degeneracji mo e wyst pi sytuacja, w której przy zastosowaniu metody sympleks otrzymamy tzw. cykl uniemo liwiaj cy rozwi zanie zadania. W pracy tej omówimy cykle p/q zdefiniowane poni ej. Definicja.5. Cyklem nazywamy sko czony ci g iteracji sympleksowych, w których warto ci funkcji celu nie zmieniaj si. Ponadto baza z ostatniej iteracji tego ci gu jest identyczna jak w iteracji pierwszej (z dokładno ci do kolejno ci indeksów bazowych). Definicja.6. Cyklem o długo ci p nazywamy cykl zło ony z p iteracji. Uwaga.5. Zauwa my, e cykl o długo ci p składa si z p+ macierzy H. Ponadto pierwsza i ostatnia z tych macierzy s identyczne. Uwaga.6. Mówimy, e macierze H = [ h,..., h ] oraz H = [ h,..., h ] s równowa ne n n sympleksowo, gdy ró ni si jedynie kolejno ci kolumn, tzn.:{ h,..., h }= { n h,..., h }. n Definicja.7. Cykl nazywamy p/q-cyklem, gdy jest cyklem o długo ci q i generuje p ró nych sympleksowo macierzy H. Uwaga.7. W opisanym wy ej algorytmie sympleks, przy wyborze zmiennej wchodz cej do bazy (punkt metody sympleks), podano kryterium Dantziga. Stosuje si równie inne kryteria, mi dzy innymi kryterium steepest-edge, [3]. Natomiast w tej pracy ograniczamy si wył cznie do kryterium Dantziga. 3. Przykład cyklu /6 W rozdziale tym przedstawimy zadanie programowania liniowego z czterema zmiennymi i dwoma ograniczeniami. Stosuj c algorytm sympleks z kryterium Dantziga otrzymamy /6-cykl. Ten problem znany jest jako zadanie hamck6e, [0]. Rozwa my zadanie o postaci: Min,3x,5x +3,55x 3 +0,4x 4 0,4x +0,x,4x 3 0,x 4 + x 5 = 0 7,8x,4x +7,8x 3 +0,4x 4 + x 6 = 0 x i 0, i=,.,6 Pierwsz tablic sympleks przedstawia tablica 3.. Tabela 3.. Tablica sympleks pocz tkowa 0,4 0, -,4-0, 0 0-7,8 -,4 7,8 0,4 0 0,3,5-3,55-0,4 0 0 0 Stosuj c metod sympleks z kryterium Dantziga otrzymujemy kolejno tablice 3.-3.7.
96 POLSKIE STOWARZYSZENIE ZARZ DZANIA WIEDZ Seria: Studia i Materiały, nr 3, 00 Tabela 3.. Tablica sympleks po pierwszej iteracji 0,5-3,5-0,5,5 0 0 0,5-9,5-3,5 9,5 0 0-5,5 0,75-5,75 0 0 Tabela 3.3. Tablica sympleks po drugiej iteracji 0 0,4 0, -,4-0, 0 0-7,8 -,4 7,8 0,4 0 0 0,3,5-3,55-0,4 0 Porównuj c tablic 3.3 i tablic 3. stwierdzamy, e macierze H 3 oraz H odpowiadaj ce tym tablicom s równowa ne sympleksowo. Tabela 3.4. Tablica sympleks po trzeciej iteracji,5 0 0,5-3,5-0,5 0 9,5 0,5-9,5-3,5 0-5,75 0 0-5,5 0,75 0 Tabela 3.5. Tablica sympleks po czwartej iteracji -,4-0, 0 0,4 0, 0 7,8 0,4 0-7,8 -,4 0-3,55-0,4 0 0,3,5 0 Je li porównamy tablic 3.5 z tablic 3., zauwa ymy, e macierze H 5 oraz H odpowiadaj ce tym tablicom s równowa ne sympleksowo. Tabela 3.6. Tablica sympleks po pi tej iteracji -3,5-0,5,5 0 0,5 0-9,5-3,5 9,5 0,5 0-5,5 0,75-5,75 0 0 0 Tabela 3.7. Tablica sympleks po szóstej iteracji 0,4 0, -,4-0, 0 0-7,8 -,4 7,8 0,4 0 0,3,5-3,55-0,4 0 0 0
Sebastian Sitarz Cykl /6 w metodzie sympleks 97 Powró my teraz do wyj ciowej tablicy 3.. Zauwa my, e jest ona identyczna z otrzyman po wykonaniu sze ciu iteracji tablic 3.7. Otrzymali my zatem przykład cyklu o długo ci 6. Macierze odpowiadaj ce tablicom 3., 3.3 oraz 3.5 s równowa ne sympleksowo. Ponadto, macierze odpowiadaj ce tablicom 3., 3.4 oraz 3.6 s równie równowa ne sympleksowo. Zatem przykład ten generuje dwie ró ne sympleksowo macierze. Otrzymali my w ten sposób przykład cyklu /6. 4. Charakteryzacja cyklu /6 Podamy teraz posta zadania programowania liniowego, w którym wyst puje cykl /6. Warunki wyst powania tego cyklu zostały sformułowane w pracy Halla i McKinnona [5]. Tam te zostało udowodnione, e cykl /6 jest najmniejszym cyklem w ród cykli p/q jaki mo e wyst pi (uwzgl dniaj c zarówno wielko ci p oraz q). Poni ej zaprezentowano twierdzenie otrzymano na podstawie zebrania wielu rozł cznych faktów przedstawionych w pracy Halla i McKinnona [5]. Twierdzenie 4.. W zadaniu programowania liniowego postaci (.4) (.6) wyst pi /6 cykl wtedy i tylko wtedy, gdy zadanie to opisuje tablica sympleks 3.8 (z dokładno ci do permutacji kolumn i mno enia przez stał ) oraz 0 < A (4.) 0 < A < (4.) - < µ < -[A (A +)]/[A (A +)] (4.3) Tabela 3.8. Posta ogólna tablicy sympleks zwi zanej z cyklem /6 A A -(A +) -A 0 0 -(+A +A )/A -(A +) (+A +A )/A A 0 0 - µ [-µ(+a +A )/A ] - [(+A +A )/(A )] (A +) -µa 0 0 0 Uwaga 4.. Kład c A =0,4, A =0, oraz µ=,5/,3 i mno c wektor d przez liczb,3 (co jest równowa ne pomno eniu przez,3 funkcji celu) otrzymujemy przykład podany w sekcji 3. Uwaga 4.. Cykle wyst puj równie w przypadku stosowania kryterium steepetst-edge, Hall i McKinnon [5]. Uwaga 4.3. Warunek (4.3) z twierdzenia 4. implikuje nast puj cy warunek: A < [A (A +)]/(A +) (4.4) Korzystaj c z uwagi 4.3, rysunek 4. przedstawia obszar liczb A, A dla których wyst puje cykl /6. Zatem liczby te spełniaj warunki (4.), (4.) i (4.4). Ponadto na rysunku zaznaczono punkt zwi zany z przykładem z sekcji 3 (porównaj z uwag 4.). 5. Podsumowanie W pracy przedstawili my zjawisko cykliczno ci wyst puj ce w zdegenerowanych zadaniach programowania liniowego na przykładzie cyklu typu /6. Podana została ogólna posta zadania programowania liniowego, w którym wyst puje cykl /6, wykorzystuj c wyniki uzyskane w pracy [5]. Ponadto zaprezentowano przykład numeryczny, ilustruj cy cykl /6.
98 POLSKIE STOWARZYSZENIE ZARZ DZANIA WIEDZ Seria: Studia i Materiały, nr 3, 00 ródło: [7]. Rys. 4.. Zbiór liczb A, A dla których wyst puje cykl /6 [] Fletcher, R.: Resolving degeneracy in quadratic programming. Annals of Operations Research, 47, pp. 307 334, 993. [] Gass S. I., Virjamuri S.: Cycling in linear programming problems, Computers and Operations Research, 3, pp. 303 3, 004. [3] Goldfarb D., Sit W. Y.: Worst case behavior of the steepest edge simplex method, Discrete Applied Mathematics,, pp. 77 85, 979. [4] Grabowski W.: Programowanie matematyczne, PWE, Warszawa 980. [5] Hall J.A.J., McKinnon K.I.M.: The simplest examples where the simplex method cycles and conditions where EXPAND fails to prevent cycling, Mathematical Programming, Ser. B 00, pp. 33 50, 004. [6] Hoffman A. J.: Cycling in the Simplex Algorithm, Report No. 974, National Bureau of Standards, Gaithersburg, MD, 953. [7] Jurasz D.: Cykle w algorytmie sympleks. Praca magisterska napisana pod kierunkiem S. Sitarza, Uniwersytet l ski, Instytut Matematyki, 009. [8] Sitarz S.: Postoptimal analysis in multicriteria linear programming, European Journal of Operational Research, 9, 008, pp. 7 8. [9] Wolfe P.: A technique for resolving degeneracy in linear programming. SIAM Journal of Applied Mathematics,, pp. 05, 963. [0] http://www.maths.ed.ac.uk/hall/publiclp/.
Sebastian Sitarz Cykl /6 w metodzie sympleks 99 THE /6 CYCLE IN SIMPLEX METHOD Summary The paper presents the analysis of the /6 cycles in the simplex method. We demonstrate the general form of linear programming problem in which the cycle /6 appear. This fact is based on work by Hall and McKinnon [5]. Moreover we present a simple numerical example to illustrate the /6 cycle. Keywords: linear programming, simplex method, cycles. Sebastian Sitarz Instytut Matematyki Uniwersytet l ski w Katowicach ul. Bankowa 4, 40-007 Katowice e-mail: ssitarz@math.us.edu.pl