• Nie Znaleziono Wyników

Cykl 2/6 w metodzie sympleks

N/A
N/A
Protected

Academic year: 2021

Share "Cykl 2/6 w metodzie sympleks"

Copied!
7
0
0

Pełen tekst

(1)

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)

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

(3)

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.

(4)

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

(5)

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.

(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.

(7)

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

Cytaty

Powiązane dokumenty

ii) Pan Aleksander stwierdzi l, ˙ze ´ srednie ryzyko portfela nie powinno przekroczy´ c 4 p. Zgodnie z nowymi przepisami firma budowalna Burz i buduj musi zagwarantowa´ c

[r]

[r]

[r]

6.10 Pokazać, że w każdym grafie spójnym każde dwie drogi maksymalnej długości mają wspólny wierzchołek.. 6.11 Pokazać, że ω(G) + e(G) ­ n dla dowolnego

komórek układu osiąga wartość charakterystyczną dla komórek układu osiąga wartość charakterystyczną dla organizmu dorosłego, liczba komórek znajdujących się

Wadą tej wersji jest to, że jeżeli następny element pojawi się na podnośniku przed zakończeniem transportu poprzedniego to zmierzony czas wynosi 0. Aby poprawić ten błąd

[r]