algorytm simplex
Transkrypt
algorytm simplex
Niesimpleksowe metody rozwia̧zywania zadań PL Seminarium Szkoleniowe Edyta Mrówka Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Metoda Simplex: wady i zalety • Algorytm SIMPLEX jest szeroko znany i stosowany do rozwia̧zywania zadań programowania liniowego w praktyce. • Wymagany czas znalezienia optymalnego rozwia̧zania przy użyciu algorytmu SIMPLEX rośnie wraz z liczba̧ n komponentów wektora rozwia̧zań X. • ZÃlożoność algorytmu SIMPLEX wynosi O (2n − 1) 1 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL PrzykÃlad 1 (Klee i Minty, 1972) max cT x przy ograniczeniach: Ax 6 b, x > 0. Niech n oznacza wymiar wektora rozwia̧zań X, oraz : h iT £ ¤ cT = 10n−1 , 10n−2 , ..., 101 , 1 , b = 1, 102 , 104 , ..., 102(n−1) , 1 0 0 ... 0 2 × 101 1 0 ... 0 2 1 2 × 10 1 ... 0 A = 2 × 10 . .. .. .. .. .. . . . . . 2 × 10n−1 2 × 10n−2 ... 2 × 101 1 Uwaga: 1 Algorytm SIMPLEX znajdzie optymalne rozwia̧zanie powyższego zadania w 2n − 1 krokach. 2 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Rozmiar zadania PL Każda̧ nieujemna̧ liczbȩ caÃlkowita̧ r, gdzie r 6 U, można zapisać w postaci binarnej, w nastȩpuja̧cy sposób: r = ak 2k + ak−1 2k−1 + ... + a1 21 + a0 20 6 2log2 U , gdzie a0 , a1 , ..., ak przyjmuja̧ wartości 0 lub 1, natomiast liczba k jest co najwyżej blog2 U c . Używaja̧c dodatkowego bitu na znak, dowolna liczbe caÃlkowita̧ r, gdzie |r| 6 U, możemy przedstawić używaja̧c co najwyżej (blog2 U c + 2) liczby bitów. Każde zadanie PL opisane jest przez macierz A wymiaru m × n, m−wymiarowy wektor ograniczeń b oraz n−wymiarowy wektor kosztów c. Zatem liczba: L = (mn + m + n) (blog2 U c + 2) określa rozmiar zadania PL wyrażony w bitach. 3 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Metoda elipsoid • Algorytm oparty na metodzie elipsoid ma wielomianowa̧ zÃlożoność obliczeniowa̧. • Dla problemu PL o Ãla̧cznej liczbie bitów L, metoda elipsoid generuje przybliżone rozwia̧zanie, na podstawie którego możemy w Ãlatwy sposób ¡ 2 ¢ obliczyć wÃlaściwe rozwia̧zanie problemu, w O n L iteracjach. • Liczba wykonywanych obliczeń w trakcie trwania algorytmu wynosi: ¡ 4 ¢ O n L . 4 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Idea algorytmu W każdym kroku iteracji konstruowana jest elipsoida (zawieraja̧ca optymalne rozwia̧zanie problemu PL): • Tworzona jest hiperpÃlaszczyzna rozdzielaja̧ca elipsoidȩ na dwie czȩści tak, aby optymalne rozwia̧zanie znalazÃlo siȩ po jednej stronie, natomiast środek elipsoidy po przeciwnej stonie hiprepÃlaszczyzny (Uwaga! hiperpÃlaszczyzna może przecinać elipsoidȩ w punkcie środkowym - mówimy wówczas o tzw. ciȩciu środkowym). • Nastȩpnie znajdowana jest nowa elipsoida, która zawiera wszystkie punkty starej elipsoidy leża̧ce po tej stronie hiperpÃlaszczyzny, po której znajduje siȩ rozwia̧zanie optymalne. 5 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Rys. 1. Idea dziaÃlania algorytmu elipsoid 6 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL SformuÃlowanie problemu Znajdź wektor y speÃlniaja̧cy poniższy warunek: AT y 6 c, gdzie c ∈ Rn , A ∈Rm×n , y ∈ Rm . Niech: © ª T Y = y : A y6c . Poszczególne warunki zapisywać bȩdziemy jako: aTj y 6 cj , j = 1, 2, ..., n. ZakÃladamy, że Y ∈ E0 , gdzie: E0 := {y : kyk2 6 R} . 7 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Uwaga: 2 Każda elipsoida w Rn może być zapisana w nastȩpuja̧cy sposób: n o T E = E (y, B) = y : (y − y) B −1 (y − y) 6 1 , gdzie y jest środkiem elipsoidy, a B jest symetryczna̧, dodatnio określona̧ macierza̧ wymiaru m. W naszym przypadku mamy: E0 := {y : kyk2 6 R} , zatem E0 = E (y0 , B0 ) , gdzie: y0 = 0 B0 = R2 I. 8 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Niech Ek = E (yk , Bk ), wówczas Ek+1 = E (yk+1 , Bk+1 ) wyznaczamy w nastȩpuja̧cy sposób: 1. Znajdź j dla którego : aTj yk > cj . 2. Jeżeli ∀j : aTj yk 6 cj to yk ∈ Y. STOP. W przeciwnym przypadku: gdzie τ = 1 m+1 , yk+1 = Bk+1 = δ= m2 m2 −1 τ Bk aj yk − ¡ ¢1/2 , T aj Bk aj ! Ã T Bk aj aj Bk , δ Bk − σ T aj Bk aj ,σ= 2 m+1 . Uwaga: 3 Ek+1 , wyznaczone jak powyżej, jest najmniejsza̧ elipsoida̧ pod © ª T T wzglȩdem objȩtości, która zawiera podelipsoidȩ y ∈ Ek : aj y 6 aj yk . 9 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Nawia̧zanie do zadania PL Rozważmy nastȩpuja̧cy problem programowania liniowego min cT x przy ograniczeniach Ax > b, x > 0, oraz zagadnienie dualne postaci: max λT b przy ograniczeniach λT A 6 cT , λ > 0. Uwaga: 4 Jeżeli x oraz λ sa̧ rozwia̧zaniami dopuszczalnymi, odpowiednio, zagadnienia pierwotnego i dualnego, oraz cT x = λT b, wówczas x i λ sa̧ rozwia̧zaniami optymalnymi. 10 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL W h celu iustalenia rozwia̧zania optymalnego wystarczy znaleźć wektor xT , λT , który speÃlnia nastȩpuja̧ce warunki: cT x = bT λ Ax > b AT λ 6 c x > 0 λ > 0. Równość cT x = bT λ można zapisać w nastȩpuja̧cy sposób: cT x − bT λ 6 0 −cT x + bT λ 6 0. 11 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL h Nowe sformuÃlowanie zadania PL: znajdź wektor xT , λ T iT speÃlniaja̧cy nastepuja̧ce warunki: Pz 6 q gdzie: cT −cT −A P= −Im 0 0 −bT bT 0 0 AT −Im x ,q = ,z = λ 0 0 −b 0 c 0 12 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Metoda punktu wewnȩtrznego Metoda SIMPLEX Metoda punktu wewnȩtrznego przeszukuje wierzchoÃlek po wierzchoÃlku startuje z punktu wewna̧trz w celu znalezienia rozwia̧zania zbioru rozwia̧zań dopuszczalnych optymalnego. i przesuwa sie w kierunku wierzchoÃlka, w którym znajduje sie rozwia̧zanie optymalne. 13 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Zapis zadania PL w postaci kanonicznej T Znajdź wektor x = [x1 , ..., xn ] , dla którego speÃlnione sa̧ nastȩpuja̧ce warunki: min cT x przy ograniczeniach Ax n X xi = 0, = 1, > 0. i=1 x ZaÃlożenia: macierz A oraz wektor kosztów c zawieraja̧ elementy ze zbioru liczb caÃlkowitych. 14 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Oznaczenia pomocnicze T Niech e = [1, ..., 1] bȩdzie n elementowym wektorem skÃladaja̧cym siȩ z samych jedynek oraz = {x ∈ Rn : Ax = 0} , © ª n T ∆ = x ∈ R : e x = 1, x > 0 . Ω gdzie ∆ oznacza sympleks w Rn . Niech a0 ∈ ∆ oznacza środek sympleksu ∆, tzn: ¸T · 1 1 , ..., . a0 = e/n = n n 15 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Uwaga: 5 Jeżeli punkty a0 , ..., an przestrzeni euklidesowej m−wymiarowej Rm tworza̧ zbiór liniowo niezależny, wówczas najmniejszy zbiór wypukÃly conv (a0 , ..., an ) zawieraja̧cy punkty a0 , ..., an nazywamy sympleksem n−wymiarowym o wierzchoÃlkach a0 , ..., an . Sympleks 0−wymiarowy jest zbiorem zÃlożonym z jednego punktu a0 , sympleks 1−wymiarowy jest niezdegenerowanym odcinkiem o końcach a0 i a1 , sympleks 2−wymiarowy jest trójka̧tem o wierzchoÃlkach a0 , a1 , a2 , natomiast sympleks 3−wymiarowy jest czworościanem o wierzchoÃlkach a0 , a1 , a2 , a3 . Rys. 2. Sympleks n− wymiarowy w przypadkach n = 1, 2, 3. 16 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Nasze zadanie można zapisać w nastȩpuja̧cej postaci: min cT x przy ograniczeniach x ∈ Ω ∩ ∆, gdzie Ω∩∆ = = © n T ª x ∈ R : Ax = 0, e x = 1, x > 0 A 0 x = ,x>0 . x ∈ Rn : eT 1 17 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL PrzykÃlad 1 min (5x1 + 4x2 + 8x3 ) przy ograniczeniach x1 + x2 + x3 = 1 x1 , x2 , x3 > 0. W powyższym przykÃladzie cT = [5, 4, 8] , A = 0, 18 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL PrzykÃlad 2 min (3x1 + 3x2 − x3 ) przy ograniczeniach 2x1 − 3x2 + x3 = 0 x1 + x2 + x3 = 1, x1 , x2 , x3 > 0. W powyższym przykÃladzie cT = [3, 3, 1] , A = [2, −3, 1] . 19 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Wymagania: 1. środek a0 sympleksu ∆ jest rozwia̧zaniem dopuszczalnym, tzn.: a0 ∈ Ω. 2. wartośc minimalna funkcji celu na zbiorze rozwia̧zań dopuszczalnych ma być równa 0. 3. macierz A eT o wymiarach (m + 1) × n, jest rzȩdu m + 1. 4. mamy zadany parametr stopu q > 0. Jeżeli otrzymamy rozwia̧zanie dopuszczalne x, speÃlniaja̧ce warunek: cT x −q 6 2 , cT a0 wówczas uznajemy, że znaleźliśmy rozwia̧zanie optymalne. 20 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Od postaci standardowej PL do kanonicznej Rozważmy zadanie programowania liniowego postaci: max cT x, x ∈ Rn przy ograniczeniach Ax = b x > 0. T ZakÃladamy, że znamy punkt a = [a1 , ..., an ] , który jest ściśle wewnȩtrznym punktem zbioru rozwia̧zań dopuszczalnych, tzn.: Aa = b, a > 0. 21 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Niech P+ bȩdzie dodatnim stożkiem: P+ = {x ∈ Rn : x > 0} oraz ∆ oznacza sympleks w Rn+1 , tzn.: © ª n+1 T ∆= x∈R : e x = 1, x > 0 . Wówczas przeksztaÃlcenie T : P+ → ∆ zadane przez: T T (x) = [T1 (x) , ..., Tn+1 (x)] , gdzie Ti (x) = Tn+1 (x) = xi /ai , x1 /a1 + ... + xn /an + 1 1 x1 /a1 + ... + xn /an + 1 i = 1, ..., n nazywać bȩdziemy rzutowaniem dodatniego stożka P+ na sympleks ∆. 22 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL WÃlasność transformacji T • Stosuja̧c przeksztaÃlcenie T możemy znaleźć wektor c0 ∈ Rn+1 oraz macierz A0 ∈ Rm×(n+1) takie, że dla każdego x ∈ Rn cT x = 0 ⇐⇒ c0 T (x) = 0 Ax = b ⇐⇒ A0 T (x) = 0. • Dla każdego x ∈ Rn , T (x) ∈ ∆. • Dla każdego x ∈ Rn x > 0 ⇐⇒ T (x) > 0. 23 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Zadanie Rozważmy nastȩpuja̧cy problem PL zapisany w postaci kanonicznej, speÃlniaja̧cy warunki 1-4: min cT x, x ∈ Rn przy ograniczeniach x ∈ Ω ∩ ∆, gdzie Ω = ∆ = {x ∈ Rn : Ax = 0} © ª n T x ∈ R : e x = 1, x > 0 . 24 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Poszczególne kroki algorytmu: 1. Inicjalizuj: k := 0, x(k=0) = a0 = e/n ¡ (k) ¢ (k+1) 2. Uaktualnij: x =Ψ x 3. Jeżeli cT x(k) cT x(0) 6 2−q to STOP, w przeciwnym przypadku wykonaj krok 4. 4. k := k + 1, wróć do kroku 2. 25 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL ¡ (k) ¢ Mapa przeksztaÃlceń Ψ x 1. Wyznacz: Dk = Bk = (k) x1 .. . ... .. . 0 .. . 0 ... xn ADk eT (k) . 2. Znajdź ortogonalny rzut na Bk : Pk = Im+1 − BTk ¡ ¢ T −1 Bk Bk Bk 26 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL 3. Oblicz znormalizowany ortogonalny rzut c na Bk : (k) ĉ Pk D k c = kPk Dk ck 4. Wyznacz wektor kierunkowy d(k) = −rĉ(k) , p gdzie r = 1/ n (n − 1). 5. Oblicz x̄(k+1) używaja̧c nastȩpuja̧cego wzoru: x̄(k+1) = a0 + αd(k), gdzie α ∈ (0, 1) oznacza dÃlugość kroku. 6. Oblicz x(k+1) używaja̧c nastȩpuja̧cej transformacji: (k+1) x = (k+1) U−1 x̄ k Dk x̄(k+1) = T . (k+1) e Dk x̄ 27 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Objaśnienia Z pierwszego kroku algorytmu mamy: x(0) = a0 oraz x(1) = x(0) + αd(0) , gdzie α ∈ (0, 1) jest dÃlugościa̧ kroku, a d(0) - wektorem kierunkowym . Wymagamy, aby x(1) należaÃl do © ª n T Ω∩∆ = x ∈ R : Ax = 0, e x = 1, x > 0 A 0 x = ,x>0 = x ∈ Rn : eT 1 0 ,x>0 = x ∈ R n : B0 x = 1 gdzie B0 ∈ R(m+1)×n B0 = A eT . 28 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Jeżeli x(0) ∈ Ω ∩ ∆, wówczas aby x(1) = x(0) + αd(0) ∈ Ω ∩ ∆, wektor d(0) musi być elementem B0 . Zatem d(0) jest wektorem rzutu prostopadÃlego wektora −c na B0 : d(0) = −rĉ(0), gdzie: (0) = r = ĉ P0 = P0 c kP0 ck 1 p n (n − 1) Im+1 − BT0 ¡ ¢ T −1 B0 B0 B0 . UWAGA: Skalar r jest promieniem najwiekszej kuli wpisanej w sypleks ∆. Zatem d(0) = rĉ(0) wskazuje kierunek rzutu wektora ĉ(0) na B0 . Zatem, że x(1) = x(0) + αd(0) ∈ Ω ∩ ∆. 29 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL (k+1) Ogólny sposób inkrementacji x ¡ (k) =Ψ x ¢ . Niech Dk bȩdzie macierza diagonalna̧ zawieraja̧ca̧ na przeka̧tnej elementy wektora x(k) : (k) x ... 0 1 . .. .. . Dk = . . . . (k) 0 ... xn Dowodzi siȩ, że jeżeli x(0) jest ściśle wewnȩtrznym punktem sympleksu ∆, wówczas dla każdego k, x(k) jest również ściśle wewnȩtrznym punktem sympleksu ∆. Zatem Dk jest macierza̧ nieosobliwa̧ oraz (k) 1/x1 ... 0 .. . . −1 . . Dk = . . . . (k) 0 ... 1/xn 30 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Rozważmy przeksztaÃlcenie Uk : ∆ → ∆ postaci: UWAGA: x̄(k) T −1 Uk (x) = D−1 x/e Dk x. k ¡ (k) ¢ T = Uk x = e/n = a0 , x = U−1 k (x̄) = Dk x/e Dk x. Użyjemy transformacji Uk aby przesuna̧ć x do x̄ = Uk (x) : x̄(k+1) = x̄(k) + αd(k) . W celu obliczenia wektora d(k) , problem PL w postaci kanonicznej należy zapisać z nowa̧ zmienna̧ x̄, tzn.: min cT Dk x̄ przy ograniczeniach ADk x̄ = 0 x̄ ∈ ∆. 31 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Problem, z nowa zmienna̧ x̄, jest równoważny z powyższym zadaniem PL w tym sensie, że x∗ jest optymalnym rozwia̧zaniem zadania PL w postaci kanonicznej, wtedy i tylko wtedy, gdy Uk (x∗ ) jest optymanym rozwia̧zaniem przetransformowanego zadania. Niech Bk = ADk eT . d(k) = −rĉ(k) ¡ T ¢ (k) gdzie ĉ jest znormalizowanym rzutem− c Dk = −Dk c na Bk . W celu wyznaczenia ĉ(k) korzystamy z nastȩpuja̧cego wzoru: (k) ĉ Pk D k c = . kPk Dk ck 32 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Wówczas: d(k) = −rĉ(k) = −r Pk Dk c . kPk Dk ck UWAGA: x̄(k+1) = x̄(k) + αd(k) należy do zbioru {x̄ : ADk x̄ = 0} ∩ ∆. Aby obliczyć xk+1 należy zastosować transformacjȩ odwrotna̧U−1 k : x k+1 = U−1 k ³ (k+1) x̄ ´ (k+1) D−1 k x̄ = T −1 (k+1) . e Dk x̄ UWAGA: x̄(k+1) należy do zbioru Ω ∩ ∆. 33 Edyta Mrówka Niesimpleksowe metody rozwia̧zywania zadań PL Dziȩkujȩ za uwagȩ 34