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 rozwiązywania zadań programowania kwadratowego. 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.. 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, ] zachodzi związek: γ a+ ( γ) 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, ] zachodzi związek: f ( γ a+ ( γ) b) γ f( a) + ( γ) f( b) Funkcja f jest wklęsła, jeżeli funkcja f jest wypukła 9
Zadanie programowania wypukłego Funkcja liniowa: n T α ( x) = p x= j= p x j j Forma kwadratowa: Funkcja kwadratowa: n n T β ( x) = x Cx= i= j= cxx ij i j T T f ( x) = p x x Cx 0
Zadanie programowania wypukłego Macierz C musi być: 9 Symetryczna: c ij = c ji 0 Nieujemnie określona: T xcx 0
Zadanie programowania wypukłego ad. 9 Jeżeli macierz C nie jest symetryczna to stosuje się podstawienie: c = ij c ij + c 2 ji wtedy: c = c ij ji 2
Zadanie programowania wypukłego ad. 0 Twierdzenie. 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ą. 3
Zadanie programowania wypukłego 2 2 2 f( x) f( x) f( x)... 2 x x2 x xn x 2 2 2 f( x) f( x) f( x)... 2 2 C= H( x) = x x2 x2 xn x2... 2 2 2 f( x) f( x) f( x)... 2 x xn x2 xn x n 4
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. 5
Zadanie programowania wypukłego Zadanie programowania wypukłego: f ( x) MAX g ( x) 0 g ( ) 0 m x lub: f ( x) MAX gx ( ) 0 gx ( ) g ( ) x = g ( ) m x 6
W postaci macierzowej: f x = p x x Cx Ax b x 0 T T ( ) MAX Zadanie programowania wypukłego 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 7
Przykład 20. Zadanie programowania wypukłego Zapisać odpowiednie macierze i wektory dla zadania programowania kwadratowego, oraz sprawdzić czy macierz formy kwadratowej spełnia wymagane warunki. f( x) = 0x + 25x 0x 4x x x MAX 2 2 2 2 2 g ( x) = 0 x 2x 0 2 g ( x) = 9 x x 0 g g 2 2 ( x) = x 0 3 ( x) = x 0 4 2 8
Zadanie programowania wypukłego FC : f( x, x ) = 0x + 25x 0x 4x x x MAX 2 2 2 2 2 2 O: x+ 2x2 0 x + x 9 2 WB : x, x2 0 9
Zadanie programowania wypukłego Ograniczenia: Ax b A 2 = x x = x 2 0 b = 9 20
Zadanie programowania wypukłego Funkcja celu: f = T T ( x) p x x Cx MAX f( x) = 0x + 25 x (0 x + 2x x + 2 x x + x ) MAX 2 2 2 2 2 2 p 0 = 25 0 2 C = 2 2
Zadanie programowania wypukłego Sprawdzenie macierzy C: 9 ( c = c ) Czy jest symetryczna? Tak 2 2 0 Czy jest nieujemnie określona? Tak wyznacznik macierzy C: detc = 6 > 0 minory główne: 0 > 0 > 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: L( x, λ ) = f( x) + λigi( x) m i= λ i mnożniki Lagrange a 24
Warunki Kuhna - Tuckera Jeżeli f oraz g i mają pochodne cząstkowe można skonstruować problem Kuhna Tuckera. Składa się on z następujących warunków: 9 0 A B L( x, λ) = 0 x λ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
Przykład 2. Warunki Kuhna - Tuckera Utworzyć problem Kuhna Tuckera dla zadania programowania kwadratowego z Przykładu 20. FC : f( x, x ) = 0x + 25x 0x 4x x x MAX 2 2 2 2 2 2 O: x+ 2x2 0 x + x 9 2 WB : x, x2 0 27
Warunki Kuhna - Tuckera Funkcja Lagrange a: L( x, λ) = 0x + 25x 0x 4x x x + 2 2 2 2 2 +λ (0 x 2 x ) + 2 +λ (9 x x ) + 2 2 +λ x + λ x 3 4 2 28
Warunki Kuhna - Tuckera Warunki Kuhna - Tuckera: 9 L = 0 20x 4x λ λ +λ = 2 2 3 0 x L = 25 4x 2x 2 2 λ λ +λ = 2 4 0 x 2 0 λ (0 x 2 x ) +λ (9 x x ) +λ x +λ x = 0 2 2 2 3 4 2 29
Warunki Kuhna - Tuckera Warunki Kuhna Tuckera c.d.: A g ( x) = 0 x 2x 0 2 g ( x) = 9 x x 0 2 2 g g ( x) = x 0 3 ( x) = x 0 4 2 B λ, λ, λ, λ 0 2 3 4 30
Metoda Wolfe a
Metoda Wolfe a. 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
Przykład 22. Metoda Wolfe a Sformułować zadanie zastępcze dla zadania programowania kwadratowego z Przykładu 20. Zmiana oznaczeń: Współczynniki Lagrange a dla ograniczeń Współczynniki Lagrange a dla warunków brzegowych było będzie λ i i=,..., m n yi i=,..., m n λ i i= m n+,..., m y j j =,..., n Tabela 22.. 33
Metoda Wolfe a Czyli: λ y λ2 y2 λ3 y λ4 y 2 34
Metoda Wolfe a Sprowadzenie ograniczeń do postaci bazowej: x + 2x + x = 0 2 x+ x2 + x 2 = 9 x, x - zmienne bilansujące 2 35
Metoda Wolfe a Zapisanie funkcji Lagrange a z uwzględnieniem zmiennych bilansujących: L( x, λ) = 0x + 25x 0x 4x x x + 2 2 2 2 2 [ 0 2 ] [ 9 ] + y x x x + 2 + y x x x + 2 2 2 + yx + yx 2 2 36
Metoda Wolfe a Wykorzystanie 9 warunku Kuhna - Tuckera: L x = 0 20x 4x y y + y = 0 2 2 L x 2 = 25 4x 2x 2y y + y = 0 2 2 2 37
Metoda Wolfe a Wprowadzenie zmiennych sztucznych typu w: Zmienne w są wprowadzane do każdego ograniczenia zadania zastępczego, powstałego na podstawie 9 warunku Kuhna Tuckera. 20x + 4x + y + y y + w = 0 2 2 4x + 2x + 2y + y y + w = 25 2 2 2 2 Zmienne sztuczne są wprowadzane do funkcji celu zadania zastępczego ze współczynnikiem równym. 38
Zadanie zastępcze: Metoda Wolfe a FC : w + w 2 MIN O: x + 2x + x = 0 2 x + x + x = 2 2 20x + 4x + y + y y + w = 0 2 2 4x + 2x + 2y + y y + w = 25 2 2 2 2 WB: x, x, x, x, y, y, y, y, w, w, 0 2 2 2 2 2 9 39
Metoda Wolfe a Zmienne: x, y lub x, y to pary zmiennych komplementarnych. i i i i Wszystkie pary zmiennych komplementarnych w tym zadaniu: x, y 2, 2 x y x, y x 2, y2 40
Metoda Wolfe a warunek Kuhna Tuckera w Przykładzie 2.: λ (0 x 2 x ) +λ (9 x x ) +λ x +λ x = 0 2 2 2 3 4 2 Gdyby uwzględnić inne oznaczenia, oraz że: x = 0 x 2x 2 x = 9 x x 2 2 to miałby on postać: yx yx yx yx + 2 2 + + 2 2 = 0 4
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
Różnica w metodzie Wolfe a: Metoda Wolfe a Kryterium wejścia Zmienna z najmniejszą wartością wskaźnika optymalności x k. Sprawdzenie czy jej zmienna komplementarna jest zmienną bazową. tak nie Wprowadzamy do bazy zmienną x k. 43
Metoda Wolfe a Czy zmienna komplementarna zmiennej x k wychodzącą z bazy? tak jest zmienną nie Wprowadzamy do bazy zmienną x k. Nie wprowadzamy do bazy zmiennej x k. Wśród pozostałych zmiennych znajdujemy zmienną o najmniejszym wskaźniku optymalności. 44
Przykład 23. Metoda Wolfe a Rozwiązać metodą Wolfe a zadanie programowania kwadratowego z Przykładu 20. 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: [ x, x, w, w ] 2 2 46
Zmienna x x 2 x x 2 y y 2 y y 2 w w 2 * * * * Wskaźnik optymalności 24 6 0 0 3 2 0 0 Metoda Wolfe a Tabela 23.. 47
Metoda Wolfe a Rozwiązanie nie jest optymalne. Najmniejszy wskaźnik optymalności: x Jej zmienna komplementarna: y nie jest zmienną bazową Do bazy wchodzi: x 48
Metoda Wolfe a Zmienna bazowa Wektor wyrazów wolnych Kolumna współczynników dla zmiennej wchodzącej do bazy Wektor ilorazów x 0 0 x 2 9 9 w 0 20 0.5 w 2 25 4 6.25 Tabela 23.2. Z bazy wychodzi: w 49
Zmienna x x 2 x x 2 y y 2 y y 2 w w 2 * * * * Wskaźnik optymalności 0.2 0 0.8 0.8 0.2.2 0 Metoda Wolfe a Tabela 23.3. 50
Metoda Wolfe a Rozwiązanie nie jest optymalne. Najmniejszy wskaźnik optymalności: y Jej zmienna komplementarna: x jest zmienną bazową y nie może być wprowadzone do bazy Drugi najmniejszy wskaźnik optymalności: x2 Jej zmienna komplementarna: y nie jest zmienną bazową 2 Do bazy wchodzi: x2 5
Metoda Wolfe a Zmienna bazowa Wektor wyrazów wolnych Kolumna współczynników dla zmiennej wchodzącej do bazy Wektor ilorazów x 9.5.8 5.2778 x 2 8.5 0.8 0.625 x 0.5 0.2 2.5 w 2 23.2 9.667 Tabela 23.4. Z bazy wychodzi: x 52
Zmienna x x 2 x x 2 y y 2 y y 2 w w 2 * * * * Wskaźnik optymalności 6 0 0 0.5 0.5 0.5.5 0 Metoda Wolfe a Tabela 23.5. 53
Rozwiązanie nie jest optymalne. Najmniejszy wskaźnik optymalności: y Metoda Wolfe a Jej zmienna komplementarna: x jest zmienną bazową y nie może być wprowadzone do bazy Do bazy wchodzi: y Drugi najmniejszy wskaźnik optymalności: y2 Jej zmienna komplementarna: x jest zmienną bazową 2 y2 nie może być wprowadzone do bazy Trzeci najmniejszy wskaźnik optymalności: y Jej zmienna komplementarna: x nie jest zmienną bazową 54
Metoda Wolfe a Zmienna bazowa Wektor wyrazów wolnych Kolumna współczynników dla zmiennej wchodzącej do bazy Wektor ilorazów x 5 0.5 0 x 2 6.5 0.25 26 x 2 2.5 0.25 - w 2 20 0.5 40 Tabela 23.6. Z bazy wychodzi: x 55
Zmienna x x 2 x x 2 y y 2 y y 2 w w 2 * * * * Wskaźnik optymalności 3 0 0 2 0 0 Metoda Wolfe a Tabela 23.7. 56
Rozwiązanie nie jest optymalne. Najmniejszy wskaźnik optymalności: x Metoda Wolfe a Jej zmienna komplementarna: y jest zmienną bazową x nie może być wprowadzone do bazy Drugi najmniejszy wskaźnik optymalności: y Jej zmienna komplementarna: x nie jest zmienną bazową Do bazy wchodzi: y 57
Metoda Wolfe a Zmienna bazowa Wektor wyrazów wolnych Kolumna współczynników dla zmiennej wchodzącej do bazy Wektor ilorazów y 0 - x 2 4 0 - x 2 5 0 - w 2 5 2 7.5 Tabela 23.8. Z bazy wychodzi: w2 58
Zmienna x x 2 x x 2 y y 2 y y 2 w w 2 * * * * Wskaźnik optymalności 0 0 0 0 0 0 0 0 Metoda Wolfe a Tabela 23.9. 59
Metoda Wolfe a Rozwiązanie jest optymalne. Rozwiązanie zadania zastępczego: 60
Zmienna x x 2 x x 2 y y 2 y y 2 w w 2 * * * * Wartość zmiennej 0 5 0 4 7.5 0 7.5 0 0 0 Metoda Wolfe a Tabela 23.0. 6
Metoda Wolfe a Ponieważ suma zmiennych sztucznych jest równa zero (zadanie nie jest sprzeczne) to istnieje rozwiązanie zadania programowania kwadratowego: x x 2 = 0 = 5 FC : f ( x, x 2) = 00 62
Metoda Wolfe a Co zrobić jeżeli w zadaniu programowania kwadratowego mamy ograniczenie typu: 2x + 5x 7 2 -wprowadzamy zmienną bilansującą: 2x + 5x x = 7 2 -wprowadzamy zmienną sztuczną typu v: 2x + 5x x + v = 7 2 Zmienne sztuczne należy uwzględnić w funkcji celu zadania zastępczego. Czyli funkcja celu mogłaby wyglądać np. tak: w+ w2 + v MIN 63
Metoda Wolfe a Jakie zmienne należy wprowadzić do ograniczenia: wyraz wolny musi być 0: 2x + 2x 7 2 2x 2x 7 2 Należy wprowadzić zmienną bilansującą x i sztuczną v. Jakie zmienne należy wprowadzić do ograniczenia: 2x 2x 7 2 2x + 2x 7 2 Należy wprowadzić zmienną bilansującą x. 64
Przykład 24. Metoda Wolfe a 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
Ograniczenia zapisane macierzowo: lub w postaci bazowej: Ax b Metoda Wolfe a 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: yy,, w - wektory zmiennych y, y, w y, w - jednostkowe macierze dla zmiennych y i w 68
Metoda Wolfe a wymiary n n q n q q n q q r r macierze C y w A x p x y w x y b v v Tabela 24.. 69
Metoda Wolfe a Zapis współczynników lewej strony ograniczeń zadania zastępczego w formie macierzowej: M A x 0 0 v 0 = T 2 0 0 C A y 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 7
Dla analizowanego przykładu: Metoda Wolfe a A 2 = b 0 = 9 C 0 2 = 2 p 0 = 25 0 x = 0 0 y = 0 0 w = 0 72
Metoda Wolfe a M 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 = 20 4 0 0 0 0 4 2 0 0 2 0 0 B 0 9 = 0 25 Z T = [ x x x x y y y y w w ] T 2 2 2 2 2 MZ = B 73