Uniwersytet lski
Streszczenie
Celem niniejszej pracy jest przedstawienie i analiza zjawiska cyklicznoĞci wystĊpującego w zdegenerowanych zadaniach programowania liniowego na przykładzie cyklu typu 2/6. Podano postaü ogólną zadania programowania liniowego, w którym wystĊpuje cykl 2/6 na podstawie pracy Halla i McKinnona [5]. Ponadto zaprezentowano przykład numeryczny ilustrujący wystĊpowanie cyklu 2/6.
Słowa kluczowe: programowanie liniowe, metoda sympleks, cykle. 1. Wprowadzenie
Metoda sympleks słuca do rozwizywania zada programowania liniowego jest jedn z najbardziej znanych iteracyjnych metod optymalizacyjnych. Jednym z problemów wystpujcych w metodzie sympleks jest powstawanie tzw. cyklu, polegajcego na tym, e w pewnej iteracji wracamy do iteracji startowej. W 1953 roku Hoffman [6] podał pierwszy przykład cyklu w metodzie sympleks, który miał 11 zmiennych i 3 warunki ograniczajce. Przykład Hoffamana był skomplikowany, po 10 iteracji wracalimy do postaci startowej. Okazuje si, e nie trzeba budowa skomplikowanych zada programowania liniowego, aby otrzyma cykl. W 2004 roku Hall i McKinnon [5] podali charakteryzacj cykli w przypadku zadania z 6 zmiennymi i 2 ograniczeniami (cykl nastpuje po 6 iteracjach). Istnieje wiele metod pozwalajcych zapobiec powstawaniu cykli, choby prace Wolfe’a [9] i Fletchera [1]. Natomiast praca Gasaa i Vinjamuri’ego [2] testuje popularne programy komputerowe (LINDO, C-Plex i Excel) pod wzgldem rozwizywania zada z cyklami. Warto odnotowa, e zadania zdegenerowane nie rozwaa si wyłcznie jako potencjalne przykłady wystpowania cykli, otó zadania te wystpuj równie w wielokryterialnym programowaniu liniowym jako narzdzie słuce testowaniu sprawnoci [8].
Niniejsza praca omawia wyniki uzyskane przez Halla i McKinnona, prezentujc przykład numeryczny oraz twierdzenie charakteryzujce cykliczno typu 2/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 zwizki midzy parametrami zadania generujcymi wystpowanie cyklu 2/6. Wykorzystano tu wyniki otrzymane w pracy magisterskiej Jurasz [7], która powstała pod opiek autora niniejszej pracy. Praca składa si z nastpujcych czci: sekcja 2 zawiera podstawowe definicje i fakty. W sekcji 3 przedstawiony jest przykład cyklu 2/6. Sekcja 4 charakteryzuje ogóln posta zadania programowania liniowego, w którym wystpuje cykl 2/6. Ostatnia sekcja podsumowuje prac.
2. Metoda sympleks i cykle
Sekcj t opracowano na podstawie monografii Grabowskiego [4] w celu wprowadzenia poj uywanych w dalszej czci pracy.
Rozwaamy zadanie programowania liniowego w postaci:
Min cx (1.1)
Mx = r (1.2)
x 0 (1.3)
gdzie M jest macierz o wymiarach m×n i rzdzie równym m, c – wektorem o wymiarze 1×n, r – wektorem o wymiarze m×1, natomiast x wektorem o wymiarze n×1.
Uwaga 2.1. Macierz M =[m1, …, mm] nazywamy baz, gdy jej kolumny s baz liniowej
przestrzeni Rm. Ponadto, dla zbioru B={j1, …, jm} przez MB oznaczamy podmacierz macierzy M
złoon z kolumn o indeksach: j1, …, jm..
Definicja 2.1. Zadanie
Min dx (1.4)
Hx = h0 (1.5)
x 0 (1.6)
gdzie d=z−c, H=(MB)-1M, h0 =(MB)-1r, z=cBH, nazywamy postaci bazow zadania (1.1) – (1.3)
wzgldem bazy MB.
Uwaga 2.2. Zadanie (1.4)–(1.6) przedstawiamy w postaci nastpujcej tablicy sympleks:
H h0
d cBh0
gdzie H, h0, d oraz cBh0 s odpowiednio macierzami o wymiarach m×n, m×1, 1×n oraz 1×1.
Definicja 2.2. Rozwizanie dopuszczalne x nazywamy bazowym rozwizaniem dopuszczalnym wzgldem bazy MB i oznaczamy jako xB, jeeli dla kadego j∉B mamy xj =0.
Metoda sympleks polega na stosowaniu poniej opisanych punktów (1–5). Dla danej bazy B={j1,
…, jm} wyznaczamy H, h0.
1. Badamy, czy d 0. Jeli tak, to xB jest rozwizaniem optymalnym problemu (1.1)–(1.3). W przeciwnym wypadku przechodzimy do punktu 2.
2. Kryterium wejcia – wyznaczamy najmniejszy element dk wektora d, czyli
dk = min{dj: j∉B }
3. Badamy, czy hk = (MB)
-1
mk 0. Jeli tak, to funkcja celu problemu (1.1) – (1.3) jest nieograniczona z dołu. W przeciwnym wypadku przechodzimy do punktu 4.
4. Kryterium wyjcia – sporód ilorazów elementów wektora h0 przez dodatnie elementy wektora hk wybieramy iloraz najmniejszy hlo/hik, czyli
hlo/hik = min{hio/hik: hik>0 }
5. Tworzymy zbiór indeksów nowej bazy B1=B\{jl}∪{k} i wracamy do punktu 1.
Uwaga 2.3. Jeeli dla kadego i=1,…,m mamy hi0=0, to w kroku 4 wybieramy taki indeks k, e
hlk= max{hik: i=1,…,m}
Uwaga 2.4. Stosujc algorytm sympleks dla zadania maksymalizacji, postpujemy analogicznie z t rónic, e bazowe rozwizanie dopuszczalne xB wzgldem bazy MB jest rozwizaniem
Definicja 2.3. Bazowe rozwizanie dopuszczalne xB nazywamy niezdegenerowanym, jeeli dla kadego j∈B mamy xj >0, czyli wartoci wszystkich zmiennych bazowych s dodatnie.
Definicja 2.4. Problem programowania liniowego nazywamy niezdegenerowanym, jeeli kade jego bazowe rozwizanie dopuszczalne jest niezdegenerowane.
Twierdzenie 2.1. [4]. W niezdegenerowanym problemie programowania liniowego metoda sympleks koczy si w skoczonej liczbie iteracji.
W przypadku degeneracji moe wystpi sytuacja, w której przy zastosowaniu metody sympleks otrzymamy tzw. cykl uniemoliwiajcy rozwizanie zadania. W pracy tej omówimy cykle p/q zdefiniowane poniej.
Definicja 2.5. Cyklem nazywamy skoczony cig iteracji sympleksowych, w których wartoci funkcji celu nie zmieniaj si. Ponadto baza z ostatniej iteracji tego cigu jest identyczna jak w iteracji pierwszej (z dokładnoci do kolejnoci indeksów bazowych).
Definicja 2.6. Cyklem o długoci p nazywamy cykl złoony z p iteracji.
Uwaga 2.5. Zauwamy, e cykl o długoci p składa si z p+1 macierzy H. Ponadto pierwsza i ostatnia z tych macierzy s identyczne.
Uwaga 2.6. Mówimy, e macierze H1 = [h11,...,hn1] oraz H2 = [ 2 2 1,...,hn
h ] s równowane sympleksowo, gdy róni si jedynie kolejnoci kolumn, tzn.:{h11,...,hn1}= {h12,...,hn2}.
Definicja 2.7. Cykl nazywamy p/q-cyklem, gdy jest cyklem o długoci q i generuje p rónych sympleksowo macierzy H.
Uwaga 2.7. W opisanym wyej algorytmie sympleks, przy wyborze zmiennej wchodzcej do bazy (punkt 2 metody sympleks), podano kryterium Dantziga. Stosuje si równie inne kryteria, midzy innymi kryterium steepest-edge, [3]. Natomiast w tej pracy ograniczamy si wyłcznie do kryterium Dantziga.
3. Przykład cyklu 2/6
W rozdziale tym przedstawimy zadanie programowania liniowego z czterema zmiennymi i dwoma ograniczeniami. Stosujc algorytm sympleks z kryterium Dantziga otrzymamy 2/6-cykl. Ten problem znany jest jako zadanie hamck26e, [10].
Rozwamy zadanie o postaci:
Min −2,3x1−2,15x2+13,55x3+0,4x4 0,4x1+0,2x2−1,4x3−0,2x4 + x5 = 0 −7,8x1−1,4x2+7,8x3+0,4x4 + x6 = 0
xi 0, i=1,….,6
Pierwsz tablic sympleks przedstawia tablica 3.1.
Tabela 3.1. Tablica sympleks początkowa
0,4 0,2 -1,4 -0,2 1 0 0
-7,8 -1,4 7,8 0,4 0 1 0
2,3 2,15 -13,55 -0,4 0 0 0
ródło: Opracowanie własne.
Tabela 3.2. Tablica sympleks po pierwszej iteracji
1 0,5 -3,5 -0,5 2,5 0 0
0 2,5 -19,5 -3,5 19,5 1 0
0 1 -5,5 0,75 -5,75 0 0
ródło: Opracowanie własne.
Tabela 3.3. Tablica sympleks po drugiej iteracji
1 0 0,4 0,2 -1,4 -0,2 0
0 1 -7,8 -1,4 7,8 0,4 0
0 0 2,3 2,15 -13,55 -0,4 0
ródło: Opracowanie własne.
Porównujc tablic 3.3 i tablic 3.1 stwierdzamy, e macierze H3 oraz H1 odpowiadajce tym tablicom s równowane sympleksowo.
Tabela 3.4. Tablica sympleks po trzeciej iteracji
2,5 0 1 0,5 -3,5 -0,5 0
19,5 1 0 2,5 -19,5 -3,5 0
-5,75 0 0 1 -5,5 0,75 0
ródło: Opracowanie własne.
Tabela 3.5. Tablica sympleks po czwartej iteracji
-1,4 -0,2 1 0 0,4 0,2 0
7,8 0,4 0 1 -7,8 -1,4 0
-13,55 -0,4 0 0 2,3 2,15 0
ródło: Opracowanie własne.
Jeli porównamy tablic 3.5 z tablic 3.1, zauwaymy, e macierze H5 oraz H1odpowiadajce tym tablicom s równowane sympleksowo.
Tabela 3.6. Tablica sympleks po piątej iteracji
-3,5 -0,5 2,5 0 1 0,5 0
-19,5 -3,5 19,5 1 0 2,5 0
-5,5 0,75 -5,75 0 0 1 0
ródło: Opracowanie własne.
Tabela 3.7. Tablica sympleks po szóstej iteracji
0,4 0,2 -1,4 -0,2 1 0 0
-7,8 -1,4 7,8 0,4 0 1 0
2,3 2,15 -13,55 -0,4 0 0 0
Powrómy teraz do wyjciowej tablicy 3.1. Zauwamy, e jest ona identyczna z otrzyman po wykonaniu szeciu iteracji tablic 3.7. Otrzymalimy zatem przykład cyklu o długoci 6. Macierze odpowiadajce tablicom 3.1, 3.3 oraz 3.5 s równowane sympleksowo. Ponadto, macierze odpowiadajce tablicom 3.2, 3.4 oraz 3.6 s równie równowane sympleksowo. Zatem przykład ten generuje dwie róne sympleksowo macierze. Otrzymalimy w ten sposób przykład cyklu 2/6.
4. Charakteryzacja cyklu 2/6
Podamy teraz posta zadania programowania liniowego, w którym wystpuje cykl 2/6. Warunki wystpowania tego cyklu zostały sformułowane w pracy Halla i McKinnona [5]. Tam te zostało udowodnione, e cykl 2/6 jest najmniejszym cyklem wród cykli p/q jaki moe wystpi (uwzgldniajc zarówno wielkoci p oraz q). Poniej zaprezentowano twierdzenie otrzymano na podstawie zebrania wielu rozłcznych faktów przedstawionych w pracy Halla i McKinnona [5].
Twierdzenie 4.1. W zadaniu programowania liniowego postaci (1.4)–(1.6) wystpi 2/6–cykl wtedy i tylko wtedy, gdy zadanie to opisuje tablica sympleks 3.8 (z dokładnoci do permutacji kolumn i mnoenia przez stał) oraz
0 < A11 (4.1)
0 < A12 < 1 (4.2) -1 < µ< -[A12(A11+2)]/[A11(A11+1)] (4.3) Tabela 3.8. Postaü ogólna tablicy sympleks związanej z cyklem 2/6
A11 A12 -(A11+1) -A12 1 0 0
-(1+A11+A11 2
)/A12 -(A11+1) (1+A11+A11 2 )/A12 A11 0 1 0 - 1 µ [-µ(1+A11+A11 2 )/A12] -(A11+1) [(1+A11+A11 2 )/(A12)] -µA11 0 0 0
ródło: Opracowanie własne.
Uwaga 4.1. Kładc A11=0,4, A12=0,2 oraz µ=2,15/2,3 i mnoc wektor d przez liczb 2,3 (co jest równowane pomnoeniu przez 2,3 funkcji celu) otrzymujemy przykład podany w sekcji 3. Uwaga 4.2. Cykle wystpuj równie w przypadku stosowania kryterium steepetst-edge, Hall i McKinnon [5].
Uwaga 4.3. Warunek (4.3) z twierdzenia 4.1 implikuje nastpujcy warunek:
A12 < [A11(A11+1)]/(A11+2) (4.4) Korzystajc z uwagi 4.3, rysunek 4.1 przedstawia obszar liczb A11, A12 dla których wystpuje cykl 2/6. Zatem liczby te spełniaj warunki (4.1), (4.2) i (4.4). Ponadto na rysunku zaznaczono punkt zwizany z przykładem z sekcji 3 (porównaj z uwag 4.1).
5. Podsumowanie
W pracy przedstawilimy zjawisko cyklicznoci wystpujce w zdegenerowanych zadaniach programowania liniowego na przykładzie cyklu typu 2/6. Podana została ogólna posta zadania programowania liniowego, w którym wystpuje cykl 2/6, wykorzystujc wyniki uzyskane w pracy [5]. Ponadto zaprezentowano przykład numeryczny, ilustrujcy cykl 2/6.
Rys. 4.1. Zbiór liczb A11, A12 dla których wystĊpuje cykl 2/6
ródło: [7]. %LEOLRJUDILD
[1] Fletcher, R.: Resolving degeneracy in quadratic programming. Annals of Operations Research, 47, pp. 307–334, 1993.
[2] Gass S. I., Virjamuri S.: Cycling in linear programming problems, Computers and Operations Research, 31, pp. 303–311, 2004.
[3] Goldfarb D., Sit W. Y.: Worst case behavior of the steepest edge simplex method, Discrete Applied Mathematics, 1, pp. 277–285, 1979.
[4] Grabowski W.: Programowanie matematyczne, PWE, Warszawa 1980.
[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 100, pp. 133–150, 2004.
[6] Hoffman A. J.: Cycling in the Simplex Algorithm, Report No. 2974, National Bureau of Standards, Gaithersburg, MD, 1953.
[7] Jurasz D.: Cykle w algorytmie sympleks. Praca magisterska napisana pod kierunkiem S. Sitarza, Uniwersytet lski, Instytut Matematyki, 2009.
[8] Sitarz S.: Postoptimal analysis in multicriteria linear programming, European Journal of Operational Research, 191, 2008, pp. 7–18.
[9] Wolfe P.: A technique for resolving degeneracy in linear programming. SIAM Journal of Applied Mathematics, 11, pp. 205–211, 1963.
THE 2/6 CYCLE IN SIMPLEX METHOD Summary
The paper presents the analysis of the 2/6 cycles in the simplex method. We demonstrate the general form of linear programming problem in which the cycle 2/6 appear. This fact is based on work by Hall and McKinnon [5]. Moreover we present a simple numerical example to illustrate the 2/6 cycle.
Keywords: linear programming, simplex method, cycles. Sebastian Sitarz
Instytut Matematyki
Uniwersytet lski w Katowicach ul. Bankowa 14, 40-007 Katowice e-mail: ssitarz@math.us.edu.pl