PROGRAMOWANIE KWADRATOWE
Transkrypt
PROGRAMOWANIE KWADRATOWE
PROGRAMOWANIE KWADRATOWE Programowanie kwadratowe Zadanie programowania kwadratowego: Funkcja celu lub/i co najmniej jedno z ograniczeń jest funkcją kwadratową. 2 Programowanie kwadratowe Nie ma uniwersalnej metody programowania kwadratowego. rozwiązywania zadań Metoda zależy od postaci jaką ma zadanie. 3 Programowanie kwadratowe Rozpatrywany przypadek: Funkcja celu jest funkcją kwadratową. Ograniczenia są funkcjami liniowymi. 4 Zadanie programowania wypukłego Zadanie programowania wypukłego Rys. 1. Funkcja wypukła Rys. 2. Funkcja wklęsła 6 Zadanie programowania wypukłego Rys. 3. Zbiory wypukłe Rys. 4. Zbiory niewypukłe 7 Zadanie programowania wypukłego Zbiór W jest wypukły, jeżeli dla dwóch dowolnych elementów a, b ∈ W, oraz dla dowolnej liczby γ z przedziału [0, 1] zachodzi związek: γa + (1 − γ )b ∈ W 8 Zadanie programowania wypukłego Funkcja f, której dziedziną jest zbiór wypukły W, jest wypukła, jeżeli dla dowolnych argumentów a, b ∈ W i dla dowolnej liczby γ z przedziału [0, 1] zachodzi związek: f ( γa + (1 − γ )b) ≤ γf (a ) + (1 − γ ) f (b) Funkcja f jest wklęsła, jeżeli funkcja –f jest wypukła 9 Zadanie programowania wypukłego Funkcja liniowa: n α ( x) = p x = ¦ p j x j T j =1 Forma kwadratowa: n n β(x) = xT Cx = ¦¦ cij xi x j i =1 j =1 Funkcja kwadratowa: f ( x) = p T x − xT Cx 10 Zadanie programowania wypukłego Macierz C musi być: Symetryczna: Nieujemnie określona: cij = c ji x T Cx ≥ 0 11 Zadanie programowania wypukłego ad. Jeżeli macierz C nie jest symetryczna to stosuje się podstawienie: cij′ = cij + c ji 2 wtedy: cij′ = c′ji 12 Zadanie programowania wypukłego ad. Twierdzenie 1. Forma kwadratowa jest funkcją wypukłą wtedy i tylko wtedy, gdy macierz formy C jest nieujemnie określona. Twierdzenie 2. Funkcja f mająca pochodne cząstkowe drugiego rzędu w zbiorze wypukłym W jest wypukła w tym zbiorze wtedy i tylko wtedy, gdy dla każdego x ∈ W macierz drugich pochodnych H(x) jest macierzą nieujemnie określoną. 13 Zadanie programowania wypukłego ª ∂ 2 f ( x) « ∂x 2 1 « « ∂ 2 f ( x) « 2C = H (x) = « ∂x1∂x2 « « 2 « ∂ f ( x) « ∂x ∂x ¬ 1 n ∂ 2 f (x) ∂ 2 f ( x) º ... ∂x2 ∂x1 ∂xn ∂x1 »» ∂ 2 f (x) ∂ 2 f ( x) » ... » 2 ∂x2 ∂xn ∂x2 » » ... » 2 2 ∂ f (x) ∂ f ( x) » ... ∂x2 ∂xn ∂xn2 »¼ 14 Zadanie programowania wypukłego Wartość wyznacznika macierzy C oraz wartości wszystkich minorów głównych (elementów na głównej przekątnej) tej macierzy muszą być dodatnie. 15 Zadanie programowania wypukłego Zadanie programowania wypukłego: f ( x) → MAX g1 (x) ≥ 0 g m ( x) ≥ 0 lub: f ( x) → MAX g ( x) ≥ 0 ª g1 (x) º g ( x) = « » « » «¬ g m (x) »¼ 16 Zadanie programowania wypukłego W postaci macierzowej: f ( x) = p T x − xT Cx → MAX Ax ≤ b x≥0 n – ilość zmiennych m – ilość ograniczeń i warunków brzegowych p – wektor funkcji liniowej C – macierz formy kwadratowej A – macierz współczynników ograniczeń b – wektor wyrazów wolnych x – wektor zmiennych decyzyjnych 17 Zadanie programowania wypukłego Przykład 20. Zapisać odpowiednie macierze i wektory dla zadania programowania kwadratowego, oraz sprawdzić czy macierz formy kwadratowej spełnia wymagane warunki. f ( x) = 10 x1 + 25 x2 − 10 x12 − 4 x1 x2 − x22 → MAX g1 (x) = 10 − x1 − 2 x2 ≥ 0 g 2 (x) = 9 − x1 − x2 ≥ 0 g3 (x) = x1 ≥ 0 g 4 (x) = x2 ≥ 0 18 Zadanie programowania wypukłego FC : f ( x1 , x2 ) = 10 x1 + 25 x2 − 10 x12 − 4 x1 x2 − x22 → MAX O : x1 + 2 x2 ≤ 10 x1 + x2 ≤ 9 WB : x1 , x2 ≥ 0 19 Zadanie programowania wypukłego Ograniczenia: Ax ≤ b ª1 2 º A=« » 1 1 ¬ ¼ ª x1 º x=« » ¬ x2 ¼ ª10 º b=« » ¬9¼ 20 Zadanie programowania wypukłego Funkcja celu: f ( x) = p T x − x TCx → MAX f ( x) = 10 x1 + 25 x2 − (10 x12 + 2 x1 x2 + 2 x2 x1 + x22 ) → MAX ª10 º p=« » ¬ 25¼ ª10 2 º C=« » 2 1 ¬ ¼ 21 Zadanie programowania wypukłego Sprawdzenie macierzy C: Czy jest symetryczna? Tak (c12 = c21 ) Czy jest nieujemnie określona? Tak wyznacznik macierzy C: det C = 6 > 0 minory główne: 10 > 0 1> 0 Macierz C spełnia wymagane warunki. 22 Warunki Kuhna - Tuckera Warunki Kuhna - Tuckera Z każdym zadaniem programowania kwadratowego można związać funkcję Lagrange’a: L(x, λ ) = f (x) + λg (x) lub: m L(x, λ ) = f (x) + ¦ λ i gi (x) i =1 λi – mnożniki Lagrange’a 24 Warunki Kuhna - Tuckera Jeżeli f oraz gi mają pochodne cząstkowe można skonstruować problem Kuhna – Tuckera. Składa się on z następujących warunków: ∇ x L( x, λ ) = 0 λg(x) = 0 g ( x) ≥ 0 λ≥0 25 Warunki Kuhna - Tuckera Twierdzenie 3. Zadanie programowania wypukłego i problem Kuhna – Tuckera są sobie równoważne. 26 Warunki Kuhna - Tuckera Przykład 21. Utworzyć problem Kuhna – Tuckera dla programowania kwadratowego z Przykładu 20. FC : zadania f ( x1 , x2 ) = 10 x1 + 25 x2 − 10 x12 − 4 x1 x2 − x22 → MAX O : x1 + 2 x2 ≤ 10 x1 + x2 ≤ 9 WB : x1 , x2 ≥ 0 27 Warunki Kuhna - Tuckera Funkcja Lagrange’a: L(x, λ ) = 10 x1 + 25 x2 − 10 x12 − 4 x1 x2 − x22 + +λ1 (10 − x1 − 2 x2 ) + +λ 2 (9 − x1 − x2 ) + +λ 3 x1 + λ 4 x2 28 Warunki Kuhna - Tuckera Warunki Kuhna - Tuckera: ∂L = 10 − 20 x1 − 4 x2 − λ1 − λ 2 + λ 3 = 0 ∂x1 ∂L = 25 − 4 x1 − 2 x2 − 2λ1 − λ 2 + λ 4 = 0 ∂x2 λ1 (10 − x1 − 2 x2 ) + λ 2 (9 − x1 − x2 ) + λ 3 x1 + λ 4 x2 = 0 29 Warunki Kuhna - Tuckera Warunki Kuhna – Tuckera c.d.: g1 (x) = 10 − x1 − 2 x2 ≥ 0 g 2 (x) = 9 − x1 − x2 ≥ 0 g3 (x) = x1 ≥ 0 g 4 (x) = x2 ≥ 0 λ1 , λ 2 , λ 3 , λ 4 ≥ 0 30 Metoda Wolfe’a Metoda Wolfe’a 1. Zapisanie warunków Kuhna – Tuckera pozwala na sformułowanie pewnego zadania zastępczego. 2. Zadanie zastępcze można rozwiązać metodą Wolfe’a. 3. Na podstawie rozwiązania zadania zastępczego można określić rozwiązanie optymalne zadania programowania kwadratowego. 4. Metoda Wolfe’a jest modyfikacją metody simplex. 32 Metoda Wolfe’a Przykład 22. Sformułować zadanie zastępcze dla zadania programowania kwadratowego z Przykładu 20. Zmiana oznaczeń: było Współczynniki Lagrange’a dla ograniczeń Współczynniki Lagrange’a dla warunków brzegowych λi λi i = 1,..., m − n i = m − n + 1,..., m będzie yi y′j i = 1,..., m − n j = 1,..., n Tabela 22.1. 33 Metoda Wolfe’a Czyli: λ1 → y1 λ 2 → y2 λ 3 → y1′ λ 4 → y2′ 34 Metoda Wolfe’a Sprowadzenie ograniczeń do postaci bazowej: x1 + 2 x2 + x1′ = 10 x1 + x2 + x2′ = 9 x1′, x2′ - zmienne bilansujące 35 Metoda Wolfe’a Zapisanie funkcji Lagrange’a z uwzględnieniem zmiennych bilansujących: L(x, λ ) = 10 x1 + 25 x2 − 10 x12 − 4 x1 x2 − x22 + + y1 [10 − x1 − 2 x2 − x1′ ] + + y2 [9 − x1 − x2 − x2′ ] + + y1′x1 + y2′ x2 36 Metoda Wolfe’a Wykorzystanie warunku Kuhna - Tuckera: ∂L = 10 − 20 x1 − 4 x2 − y1 − y2 + y1′ = 0 ∂x1 ∂L = 25 − 4 x1 − 2 x2 − 2 y1 − y2 + y2′ = 0 ∂x2 37 Metoda Wolfe’a Wprowadzenie zmiennych sztucznych typu w: Zmienne w są wprowadzane do każdego ograniczenia zadania zastępczego, powstałego na podstawie warunku Kuhna – Tuckera. 20 x1 + 4 x2 + y1 + y2 − y1′ + w1 = 10 4 x1 + 2 x2 + 2 y1 + y2 − y2′ + w2 = 25 Zmienne sztuczne są wprowadzane do funkcji celu zadania zastępczego ze współczynnikiem równym 1. 38 Metoda Wolfe’a Zadanie zastępcze: FC : w1 + w2 → MIN O: x1 + 2 x2 + x1′ = 10 x1 + x2 + x2′ = 9 20 x1 + 4 x2 + y1 + y2 − y1′ + w1 = 10 4 x1 + 2 x2 + 2 y1 + y2 − y2′ + w2 = 25 WB : x1 , x2 , x1′, x2′ , y1 , y2 , y1′, y2′ , w1 , w2 , ≥ 0 39 Metoda Wolfe’a Zmienne: xi , yi′ xi′, yi lub to pary zmiennych komplementarnych. Wszystkie pary zmiennych komplementarnych w tym zadaniu: x1 , y1′ x2 , y2′ x1′, y1 x2′ , y2 40 Metoda Wolfe’a warunek Kuhna – Tuckera w Przykładzie 21.: λ1 (10 − x1 − 2 x2 ) + λ 2 (9 − x1 − x2 ) + λ 3 x1 + λ 4 x2 = 0 Gdyby uwzględnić inne oznaczenia, oraz że: x1′ = 10 − x1 − 2 x2 x2′ = 9 − x1 − x2 to miałby on postać: y1 x1′ + y2 x2′ + y1′x1 + y2′ x2 = 0 41 Metoda Wolfe’a Przypomnienie Metoda simplex z kryterium na MIN: Kryterium wejścia Zmienna z najmniejszą wartością wskaźnika optymalności. Kryterium wyjścia Zmienna, dla której iloraz elementu z wektora wyrazów wolnych przez dodatni współczynnik z kolumny zmiennej wchodzącej do bazy ma najmniejszą wartość. Kryterium optymalności Wszystkie wskaźniki optymalności muszą być nieujemne. 42 Metoda Wolfe’a Różnica w metodzie Wolfe’a: Kryterium wejścia Zmienna z najmniejszą wartością wskaźnika optymalności xk. Sprawdzenie czy jej zmienna komplementarna jest zmienną bazową. nie tak Wprowadzamy do bazy zmienną xk. 43 Metoda Wolfe’a Czy zmienna komplementarna zmiennej xk jest zmienną wychodzącą z bazy? tak nie Wprowadzamy do bazy zmienną xk. Nie wprowadzamy do bazy zmiennej xk. Wśród pozostałych zmiennych znajdujemy zmienną o najmniejszym wskaźniku optymalności. 44 Metoda Wolfe’a Przykład 23. Rozwiązać metodą Wolfe’a kwadratowego z Przykładu 20. zadanie programowania UWAGA!!! W przypadku, gdy zmienna komplementarna zmiennej kandydującej do wejścia do bazy jest zmienną bazową pominięto fragmenty kryterium wejścia, gdzie dokonywane jest sprawdzenie, czy ta zmienna jest zmienną wychodzącą z bazy – w zadaniu nie było takiego przypadku. 45 Metoda Wolfe’a Na podstawie zadania zastępczego: Baza startowa: [ x1′, x2′ , w1 , w2 ] 46 Metoda Wolfe’a Zmienna Wskaźnik optymalności x1 x2 x1′ x2′ y1 y2 y1′ y2′ –24 w1 w2 –6 * 0 * 0 –3 –2 1 1 * 0 * 0 Tabela 23.1. 47 Metoda Wolfe’a Rozwiązanie nie jest optymalne. Najmniejszy wskaźnik optymalności: Jej zmienna komplementarna: Do bazy wchodzi: y1′ x1 nie jest zmienną bazową x1 48 Metoda Wolfe’a Zmienna bazowa Wektor wyrazów wolnych Kolumna współczynników dla zmiennej wchodzącej do bazy Wektor ilorazów x1′ 10 1 10 x2′ 9 1 9 w1 10 20 0.5 w2 25 4 6.25 Tabela 23.2. Z bazy wychodzi: w1 49 Metoda Wolfe’a Zmienna x1 x2 x1′ x2′ y1 y2 y1′ y2′ w1 w2 Wskaźnik optymalności * 0 –1.2 * 0 * 0 – 1.8 – 0.8 – 0.2 1 1.2 * 0 Tabela 23.3. 50 Metoda Wolfe’a Rozwiązanie nie jest optymalne. Najmniejszy wskaźnik optymalności: Jej zmienna komplementarna: y1 x1′ y1 jest zmienną bazową nie może być wprowadzone do bazy Drugi najmniejszy wskaźnik optymalności: Jej zmienna komplementarna: Do bazy wchodzi: y2′ x2 nie jest zmienną bazową x2 51 Metoda Wolfe’a Zmienna bazowa Wektor wyrazów wolnych Kolumna współczynników dla zmiennej wchodzącej do bazy Wektor ilorazów x1′ 9.5 1.8 5.2778 x2′ 8.5 0.8 10.625 x1 0.5 0.2 2.5 w2 23 1.2 19.1667 Tabela 23.4. Z bazy wychodzi: x1 52 Metoda Wolfe’a Zmienna Wskaźnik optymalności x1 x2 x1′ x2′ y1 y2 y1′ y2′ 6 w1 w2 * * 0 * 0 0 –1.5 –0.5 –0.5 1 1.5 * 0 Tabela 23.5. 53 Metoda Wolfe’a Rozwiązanie nie jest optymalne. Najmniejszy wskaźnik optymalności: Jej zmienna komplementarna: y1 x1′ y1 jest zmienną bazową nie może być wprowadzone do bazy Drugi najmniejszy wskaźnik optymalności: Jej zmienna komplementarna: y2 x2′ jest zmienną bazową nie może być wprowadzone do bazy Trzeci najmniejszy wskaźnik optymalności: Jej zmienna komplementarna: Do bazy wchodzi: y2 x1 y1′ nie jest zmienną bazową y1′ 54 Metoda Wolfe’a Zmienna bazowa Wektor wyrazów wolnych Kolumna współczynników dla zmiennej wchodzącej do bazy Wektor ilorazów x1′ 5 0.5 10 x2′ 6.5 0.25 26 x2 2.5 –0.25 - w2 20 0.5 40 Tabela 23.6. Z bazy wychodzi: x1′ 55 Metoda Wolfe’a Zmienna Wskaźnik optymalności x1 x2 x1′ x2′ y1 y2 y1′ y2′ –3 w1 w2 * 0 1 * 0 –2 –1 * 0 1 1 * 0 Tabela 23.7. 56 Metoda Wolfe’a Rozwiązanie nie jest optymalne. Najmniejszy wskaźnik optymalności: Jej zmienna komplementarna: x1 y1′ x1 jest zmienną bazową nie może być wprowadzone do bazy Drugi najmniejszy wskaźnik optymalności: Jej zmienna komplementarna: Do bazy wchodzi: x1′ y1 nie jest zmienną bazową y1 57 Metoda Wolfe’a Zmienna bazowa Wektor wyrazów wolnych Kolumna współczynników dla zmiennej wchodzącej do bazy Wektor ilorazów y1′ 10 –1 - x2′ 4 0 - x2 5 0 - w2 15 2 7.5 Tabela 23.8. Z bazy wychodzi: w2 58 Metoda Wolfe’a Zmienna Wskaźnik optymalności x1 x2 x1′ x2′ y1 y2 y1′ y2′ 0 * 0 0 * * 0 0 0 * 0 0 w1 w2 1 1 Tabela 23.9. 59 Metoda Wolfe’a Rozwiązanie jest optymalne. Rozwiązanie zadania zastępczego: 60 Metoda Wolfe’a Zmienna Wartość zmiennej x1 x2 x1′ x2′ y1 y2 y1′ y2′ 0 * 5 0 * * 4 7.5 0 * 17.5 0 w1 w2 0 0 Tabela 23.10. 61 Metoda Wolfe’a Ponieważ suma zmiennych sztucznych jest równa zero (zadanie nie jest sprzeczne) to istnieje rozwiązanie zadania programowania kwadratowego: x1 = 0 x2 = 5 FC : f ( x1 , x2 ) = 100 62 Metoda Wolfe’a Co zrobić jeżeli w zadaniu programowania kwadratowego mamy ograniczenie typu: 2 x1 + 5 x2 ≥ 7 - wprowadzamy zmienną bilansującą: 2 x1 + 5 x2 − x1′ = 7 - wprowadzamy zmienną sztuczną typu v: 2 x1 + 5 x2 − x1′ + v1 = 7 Zmienne sztuczne należy uwzględnić w funkcji celu zadania zastępczego. Czyli funkcja celu mogłaby wyglądać np. tak: w1 + w2 + v1 → MIN 63 Metoda Wolfe’a Jakie zmienne należy wprowadzić do ograniczenia: 2 x1 + 2 x2 ≤ −7 wyraz wolny musi być ≥ 0: −2 x1 − 2 x2 ≥ 7 Należy wprowadzić zmienną bilansującą x′ i sztuczną v. Jakie zmienne należy wprowadzić do ograniczenia: −2 x1 − 2 x2 ≥ −7 2 x1 + 2 x2 ≤ 7 Należy wprowadzić zmienną bilansującą x′. 64 Metoda Wolfe’a Przykład 24. „Szybki” sposób zapisania zadania zastępczego. 65 Metoda Wolfe’a n – ilość zmiennych decyzyjnych m – ilość ograniczeń wraz z warunkami brzegowymi q – ilość ograniczeń = m − n r – ilość zmiennych sztucznych typu v 66 Metoda Wolfe’a Ograniczenia zapisane macierzowo: Ax ≤ b lub w postaci bazowej: Ax + x′x′ + vv = b x′ - wektor zmiennych x′ x′ - jednostkowa macierz dla zmiennych x′ v - wektor zmiennych sztucznych typu v v - macierz współczynników dla zmiennych sztucznych typu v 67 Metoda Wolfe’a Dodatkowo: y , y ′, w - wektory zmiennych y, y′, w y ′, w - jednostkowe macierze dla zmiennych y′ i w 68 Metoda Wolfe’a wymiary macierze n×n C y′ w q×n A q×q x′ n×1 p x y′ w q×1 x′ y b q×r v r×1 v Tabela 24.1. 69 Metoda Wolfe’a Zapis współczynników lewej strony ograniczeń zadania zastępczego w formie macierzowej: ª A x′ 0 M= « T 2 0 C A ¬ 0 v 0º − y′ 0 w »¼ 70 Metoda Wolfe’a Zapis prawej strony ograniczeń zadania zastępczego w formie macierzowej: ªb º B=« » ¬p ¼ Wektor zmiennych: ªxº « x′ » « » «y» Z=« » ′ y « » «v» « » ¬w ¼ 71 Metoda Wolfe’a Dla analizowanego przykładu: ª1 2 º A=« » 1 1 ¬ ¼ ª10 2 º C=« » 2 1 ¬ ¼ ª1 0 º x′ = « » 0 1 ¬ ¼ ª10 º b=« » ¬9¼ ª10 º p=« » ¬ 25¼ ª1 0 º y′ = « » 0 1 ¬ ¼ ª1 0 º w=« » 0 1 ¬ ¼ 72 Metoda Wolfe’a ª1 «1 M=« « 20 « ¬4 2 1 4 2 1 0 0 0 Z = [ x1 T 0 1 0 0 x2 0 0 1 2 x1′ 0 0 0 0 0 0 1 −1 0 1 0 −1 x2′ y1 0 0 1 0 y2 ª10 º «9» B=« » «10 » « » ¬ 25¼ 0º 0» » 0» » 1¼ y1′ y2′ w1 w2 ] T MZ = B 73