Niesimpleksowe metody rozwia zywania zadań PL Seminarium Szkoleniowe
Metoda Simplex: wady i zalety Algorytm SIMPLEX jest szeroko znany i stosowany do rozwi azywania zadań programowania liniowego w praktyce. Wymagany czas znalezienia optymalnego rozwi azania przy użyciu algorytmu SIMPLEX rośnie wraz z liczb a n komponentów wektora rozwi azań X. Z lożoność algorytmu SIMPLEX wynosi O (2 n 1) 1
Przyk lad 1 (Klee i Minty, 1972) max c T x przy ograniczeniach: Ax b, x 0. Niech n oznacza wymiar wektora rozwi azań X, oraz : c T = [ 10 n 1, 10 n 2,..., 10 1, 1 ] [, b = 1, 10 2, 10 4,..., 10 2(n 1)] T, 1 0 0... 0 2 10 1 1 0... 0 A = 2 10 2 2 10 1 1... 0............. 2 10 n 1 2 10 n 2... 2 10 1 1 Uwaga: 1 Algorytm SIMPLEX znajdzie optymalne rozwi azanie powyższego zadania w 2 n 1 krokach. 2
Rozmiar zadania PL Każd a nieujemn a liczbȩ ca lkowit a r, gdzie r U, można zapisać w postaci binarnej, w nastȩpuj acy sposób: r = a k 2 k + a k 1 2 k 1 +... + a 1 2 1 + a 0 2 0 2 log 2 U, gdzie a 0, a 1,..., a k przyjmuj a wartości 0 lub 1, natomiast liczba k jest co najwyżej log 2 U. Używaj ac dodatkowego bitu na znak, dowolna liczbe ca lkowit a r, gdzie r U, możemy przedstawić używaj ac co najwyżej ( log 2 U + 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) ( log 2 U + 2) określa rozmiar zadania PL wyrażony w bitach. 3
Metoda elipsoid Algorytm oparty na metodzie elipsoid ma wielomianow a z lożoność obliczeniow a. Dla problemu PL o l acznej liczbie bitów L, metoda elipsoid generuje przybliżone rozwi azanie, na podstawie którego możemy w latwy sposób obliczyć w laściwe rozwi azanie problemu, w O ( n 2 L ) iteracjach. Liczba wykonywanych obliczeń w trakcie trwania algorytmu wynosi: O ( n 4 L ). 4
Idea algorytmu W każdym kroku iteracji konstruowana jest elipsoida (zawieraj aca optymalne rozwi azanie problemu PL): Tworzona jest hiperp laszczyzna rozdzielaj aca elipsoidȩ na dwie czȩści tak, aby optymalne rozwi azanie 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ż ace po tej stronie hiperp laszczyzny, po której znajduje siȩ rozwi azanie optymalne. 5
Rys. 1. Idea dzia lania algorytmu elipsoid 6
Sformu lowanie problemu Znajdź wektor y spe lniaj acy poniższy warunek: A T y c, gdzie c R n, A R m n, y R m. Niech: Y = { y : A T y c }. Poszczególne warunki zapisywać bȩdziemy jako: a T j y c j, j = 1, 2,..., n. Zak ladamy, że Y E 0, gdzie: E 0 := {y : y 2 R}. 7
Uwaga: 2 Każda elipsoida w R n może być zapisana w nastȩpuj acy sposób: { } E = E (y, B) = y : (y y) T B 1 (y y) 1, gdzie y jest środkiem elipsoidy, a B jest symetryczn a, dodatnio określon a macierz a wymiaru m. W naszym przypadku mamy: E 0 := {y : y 2 R}, zatem gdzie: E 0 = E (y 0, B 0 ), y 0 = 0 B 0 = R 2 I. 8
Niech E k = E (y k, B k ), wówczas E k+1 = E (y k+1, B k+1 ) wyznaczamy w nastȩpuj acy sposób: 1. Znajdź j dla którego : a T j y k > c j. 2. Jeżeli j : a T j y k c j to y k Y. STOP. W przeciwnym przypadku: y k+1 = y k B k+1 = δ gdzie τ = 1 m+1, δ = m2 m 2 1, σ = 2 m+1. ( τb k a j ( a T j B k a j ) 1/2, B k σ B ka j a T j B k a T j B ka j Uwaga: 3 E k+1, wyznaczone jak powyżej, jest najmniejsz a elipsoid a pod wzglȩdem objȩtości, która zawiera podelipsoidȩ { y E k : a T j y at j y k}. ), 9
Nawia zanie do zadania PL Rozważmy nastȩpuj acy problem programowania liniowego przy ograniczeniach oraz zagadnienie dualne postaci: przy ograniczeniach min c T x Ax b, x 0, max λ T b λ T A c T, λ 0. Uwaga: 4 Jeżeli x oraz λ s a rozwi azaniami dopuszczalnymi, odpowiednio, zagadnienia pierwotnego i dualnego, oraz c T x = λ T b, wówczas x i λ s a rozwi azaniami optymalnymi. 10
W celu ustalenia rozwi azania optymalnego wystarczy znaleźć wektor [ x T, λ T ], który spe lnia nastȩpuj ace warunki: c T x = b T λ Ax b A T λ c x 0 λ 0. Równość c T x = b T λ można zapisać w nastȩpuj acy sposób: c T x b T λ 0 c T x + b T λ 0. 11
Nowe sformu lowanie zadania PL: znajdź wektor nastepuj ace warunki: [ x T, λ T ] T spe lniaj acy Pz q gdzie: P = c T c T b T b T A 0 I m 0 0 A T 0 I m, z = x λ, q = 0 0 b 0 c 0 12
Metoda punktu wewnȩtrznego Metoda SIMPLEX przeszukuje wierzcho lek po wierzcho lku w celu znalezienia rozwi azania optymalnego. Metoda punktu wewnȩtrznego startuje z punktu wewn atrz zbioru rozwi azań dopuszczalnych i przesuwa sie w kierunku wierzcho lka, w którym znajduje sie rozwi azanie optymalne. 13
Zapis zadania PL w postaci kanonicznej Znajdź wektor x = [x 1,..., x n ] T, dla którego spe lnione s a nastȩpuj ace warunki: przy ograniczeniach min c T x Ax = 0, n x i = 1, i=1 x 0. Za lożenia: macierz A oraz wektor kosztów c zawieraj a elementy ze zbioru liczb ca lkowitych. 14
Oznaczenia pomocnicze Niech e = [1,..., 1] T bȩdzie n elementowym wektorem sk ladaj acym siȩ z samych jedynek oraz Ω = {x R n : Ax = 0}, = { x R n : e T x = 1, x 0 }. gdzie oznacza sympleks w R n. Niech a 0 oznacza środek sympleksu, tzn: a 0 = e/n = [ 1 n,..., 1 ] T. n 15
Uwaga: 5 Jeżeli punkty a 0,..., a n przestrzeni euklidesowej m wymiarowej R m tworz a zbiór liniowo niezależny, wówczas najmniejszy zbiór wypuk ly conv (a 0,..., a n ) zawieraj acy punkty a 0,..., a n nazywamy sympleksem n wymiarowym o wierzcho lkach a 0,..., a n. Sympleks 0 wymiarowy jest zbiorem z lożonym z jednego punktu a 0, sympleks 1 wymiarowy jest niezdegenerowanym odcinkiem o końcach a 0 i a 1, sympleks 2 wymiarowy jest trójk atem o wierzcho lkach a 0, a 1, a 2, natomiast sympleks 3 wymiarowy jest czworościanem o wierzcho lkach a 0, a 1, a 2, a 3. Rys. 2. Sympleks n wymiarowy w przypadkach n = 1, 2, 3. 16
Nasze zadanie można zapisać w nastȩpuj acej postaci: min c T x przy ograniczeniach x Ω, gdzie Ω = { x R n : Ax = 0, e T x = 1, x 0 } = x Rn : A x = 0, x 0 e T 1. 17
Przyk lad 1 min (5x 1 + 4x 2 + 8x 3 ) przy ograniczeniach x 1 + x 2 + x 3 = 1 x 1, x 2, x 3 0. W powyższym przyk ladzie c T = [5, 4, 8], A = 0, 18
Przyk lad 2 min (3x 1 + 3x 2 x 3 ) przy ograniczeniach 2x 1 3x 2 + x 3 = 0 x 1 + x 2 + x 3 = 1, x 1, x 2, x 3 0. W powyższym przyk ladzie c T = [3, 3, 1], A = [2, 3, 1]. 19
Wymagania: 1. środek a 0 sympleksu jest rozwi azaniem dopuszczalnym, tzn.: a 0 Ω. 2. wartośc minimalna funkcji celu na zbiorze rozwi azań dopuszczalnych ma być równa 0. 3. macierz A e T o wymiarach (m + 1) n, jest rzȩdu m + 1. 4. mamy zadany parametr stopu q > 0. Jeżeli otrzymamy rozwi azanie dopuszczalne x, spe lniaj ace warunek: c T x c T a 0 2 q, wówczas uznajemy, że znaleźliśmy rozwi azanie optymalne. 20
Od postaci standardowej PL do kanonicznej Rozważmy zadanie programowania liniowego postaci: max c T x, x R n przy ograniczeniach Ax = b x 0. Zak ladamy, że znamy punkt a = [a 1,..., a n ] T, który jest ściśle wewnȩtrznym punktem zbioru rozwi azań dopuszczalnych, tzn.: Aa = b, a > 0. 21
Niech P + bȩdzie dodatnim stożkiem: P + = {x R n : x 0} oraz oznacza sympleks w R n+1, tzn.: = { x R n+1 : e T x = 1, x 0 }. Wówczas przekszta lcenie T : P + zadane przez: T (x) = [T 1 (x),..., T n+1 (x)] T, gdzie T i (x) = T n+1 (x) = x i /a i x 1 /a 1 +... + x n /a n + 1, 1 x 1 /a 1 +... + x n /a n + 1 i = 1,..., n nazywać bȩdziemy rzutowaniem dodatniego stożka P + na sympleks. 22
W lasność transformacji T Stosuj ac przekszta lcenie T możemy znaleźć wektor c R n+1 oraz macierz A R m (n+1) takie, że dla każdego x R n Dla każdego x R n, T (x). Dla każdego x R n c T x = 0 c T (x) = 0 Ax = b A T (x) = 0. x 0 T (x) 0. 23
Zadanie Rozważmy nastȩpuj acy problem PL zapisany w postaci kanonicznej, spe lniaj acy warunki 1-4: min c T x, x R n przy ograniczeniach x Ω, gdzie Ω = {x R n : Ax = 0} = { x R n : e T x = 1, x 0 }. 24
Poszczególne kroki algorytmu: 1. Inicjalizuj: k := 0, x (k=0) = a 0 = e/n 2. Uaktualnij: x (k+1) = Ψ ( x (k)) 3. Jeżeli ct x (k) c T x (0) 2 q to STOP, w przeciwnym przypadku wykonaj krok 4. 4. k := k + 1, wróć do kroku 2. 25
Mapa przekszta lceń Ψ ( x (k)) 1. Wyznacz: D k = x (k) 1... 0..... 0... x (k) n B k = AD k e T. 2. Znajdź ortogonalny rzut na B k : P k = I m+1 B T k ( Bk B T k ) 1 Bk 26
3. Oblicz znormalizowany ortogonalny rzut c na B k : 4. Wyznacz wektor kierunkowy gdzie r = 1/ n (n 1). ĉ (k) = P kd k c P k D k c d (k) = rĉ (k), 5. Oblicz x (k+1) używaj ac nastȩpuj acego wzoru: x (k+1) = a 0 + αd (k), gdzie α (0, 1) oznacza d lugość kroku. 6. Oblicz x (k+1) używaj ac nastȩpuj acej transformacji: x (k+1) = U 1 k x(k+1) = D k x (k+1) e T D k x (k+1). 27
Objaśnienia Z pierwszego kroku algorytmu mamy: x (0) = a 0 oraz x (1) = x (0) + αd (0), gdzie α (0, 1) jest d lugości a kroku, a d (0) - wektorem kierunkowym. Wymagamy, aby x (1) należa l do Ω = { x R n : Ax = 0, e T x = 1, x 0 } = x Rn : A x = 0, x 0 e T 1 = x Rn : B 0 x = 0, x 0 1 gdzie B 0 R (m+1) n B 0 = A e T. 28
Jeżeli x (0) Ω, wówczas aby x (1) = x (0) + αd (0) Ω, wektor d (0) musi być elementem B 0. Zatem d (0) jest wektorem rzutu prostopad lego wektora c na B 0 : gdzie: d (0) = rĉ (0), ĉ (0) = r = P 0 c P 0 c 1 n (n 1) P 0 = I m+1 B T 0 ( B0 B T 0 ) 1 B0. UWAGA: Skalar r jest promieniem najwiekszej kuli wpisanej w sypleks. Zatem d (0) = rĉ (0) wskazuje kierunek rzutu wektora ĉ (0) na B 0. Zatem, że x (1) = x (0) + αd (0) Ω. 29
Ogólny sposób inkrementacji x (k+1) = Ψ ( x (k)). Niech D k bȩdzie macierza diagonaln a zawieraj ac a na przek atnej elementy wektora x (k) : x (k) 1... 0 D k =...... 0... x (k) n 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 D k jest macierz a nieosobliw a oraz 1/x (k) 1... 0 D 1 k =...... 0... 1/x (k) n. 30
Rozważmy przekszta lcenie U k : postaci: U k (x) = D 1 k x/et D 1 k x. UWAGA: x (k) = U k ( x (k) ) = e/n = a 0, x = U 1 k ( x) = D kx/e T D k x. Użyjemy transformacji U k aby przesun ać x do x = U k (x) : x (k+1) = x (k) + αd (k). W celu obliczenia wektora d (k), problem PL w postaci kanonicznej należy zapisać z now a zmienn a x, tzn.: przy ograniczeniach min c T D k x AD k x = 0 x. 31
Problem, z nowa zmienn a x, jest równoważny z powyższym zadaniem PL w tym sensie, że x jest optymalnym rozwi azaniem zadania PL w postaci kanonicznej, wtedy i tylko wtedy, gdy U k (x ) jest optymanym rozwi azaniem przetransformowanego zadania. Niech B k = AD k e T. d (k) = rĉ (k) gdzie ĉ (k) jest znormalizowanym rzutem ( c T D k ) = Dk c na B k. W celu wyznaczenia ĉ (k) korzystamy z nastȩpuj acego wzoru: ĉ (k) = P kd k c P k D k c. 32
Wówczas: d (k) = rĉ (k) = r P kd k c P k D k c. UWAGA: x (k+1) = x (k) + αd (k) należy do zbioru { x : AD k x = 0}. Aby obliczyć x k+1 należy zastosować transformacjȩ odwrotn au 1 k : x k+1 = U 1 k ( x (k+1)) = D 1 k x(k+1) e T D 1. k x(k+1) UWAGA: x (k+1) należy do zbioru Ω. 33
Dziȩkujȩ za uwagȩ 34