Zagadnienie Dualne Zadania Programowania Liniowego
Transkrypt
Zagadnienie Dualne Zadania Programowania Liniowego
Zagadnienie Dualne Zadania Programowania Liniowego Seminarium Szkoleniowe Edyta Mrówka Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego Ogólne zagadnienie PL Znajdź taki wektor X = (x1 , x2 , ..., xn ) , który minimalizuje kombinacje liniowa̧ c1 x1 + c2 x2 + ... + cn xn (1) przy ograniczeniach liniowych a11 x1 + a12 x2 + ... + a1n xn = b1 a21 x1 + a22 x2 + ... + a2n xn = b2 ... (2) am1 x1 + am2 x2 + ... + amn xn = bm xj > 0, j = 1, 2, ..., n gdzie aij , bi , cj sa̧ staÃlymi oraz m < n. 1 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego Oznaczenia stosowane w prezentacji A = [aij ] − macierz wspóÃlczynników, c = (c1 , ..., cn ) − wektor kosztów, b = (b1 , ..., bm ) − wektor ograniczeń, 0 = (0, ..., 0) − n-wymiarowy wektor skÃladaja̧cy siȩ z samych zer, Pj − j-ta kolumna macierzy A, P0 = b. 2 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego Zapis macierzowy zadania PL. Zminimalizować funkcje celu cT X (3) przy ograniczeniach AX = b X > 0 (4) 3 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego Przydatne twierdzenia – powtórzenie Twierdzenie 1 Zbiór wszystkich rozwia̧zań dopuszczalnych zagadnienia programowania liniowego jest zbiorem wypukÃlym. Twierdzenie 2 Funkcja celu przyjmuje wartość minimalna̧ w punkcie wierzchoÃlkowym zbioru wypukÃlego, utworzonego na zbiorze rozwia̧zań dopuszczalnych zagadnienia programowania liniowego. Twierdzenie 3 Jeżeli można znaleźć zbiór wektorów P1 , P2 , ..., Pk (k 6 m) liniowo niezależnych takich, że x1 P1 + x2 P2 + ... + xk Pk = P0 , oraz wszystkie xj > 0, to punkt X = (x1 , x2 , ..., xk , 0, ...0) jest punktem wierzchoÃlkowym zbioru wypukÃlego rozwia̧zań dopuszczalnych. 4 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego Wnioski 1 Każdemu punktowi wierzchoÃlkowemu zbioru wypukÃlego rozwia̧zań dopuszczalnych odpowiada zbiór m wektorów liniowo niezależnych z danego zbioru P1 , P2 , ..., Pn . Twierdzenie 4 Jeżeli dla dowolnego rozwia̧zania dopuszczalnego X = (x10 , x20 , ..., xm0 ) któremu odpowiada zbiór liniowo niezależnych wektorów P1 , P2 , ..., Pm speÃlnione sa̧ warunki zj − cj 6 0 dla wszystkich j = 1, 2, ...., n, to x10 P1 + x20 P2 + ... + xm0 Pm = P0 x10 c1 + x20 c2 + ... + xm0 cm = z0 , określaja̧ minimalne rozwia̧zanie dopuszczalne. 5 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego PrzykÃlad 1 Zminimalizować funkcjȩ celu: x2 − 3x3 + 2x5 przy ograniczeniach: x1 + 3x2 − x3 + 2x5 = 7 −2x2 + 4x3 + x4 = 12 −4x2 + 3x3 + 8x5 + x6 = 10 x1 , ..., x6 > 0 6 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego Rozwia̧zanie zadania • I krok SIMPLEKS cj 0 1 −3 0 2 0 Baza c P0 P1 P2 P3 P4 P5 P6 P1 0 7 1 3 −1 0 2 0 P4 0 12 0 −2 4 1 0 0 P6 0 10 0 −4 3 0 8 1 zj − cj 0 0 −1 3 0 −2 0 7 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego • II krok SIMPLEKS cj 0 1 −3 0 2 0 Baza c P0 P1 P2 P3 P4 P5 P6 P1 0 10 1 2.5 0 0.25 2 0 P3 −3 3 0 −0.5 1 0.25 0 0 P6 0 1 0 −2.5 0 −0.75 8 1 −9 0 0.5 0 −0.75 −2 0 zj − cj 8 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego • III krok SIMPLEKS cj 0 1 −3 0 2 0 Baza c P0 P1 P2 P3 P4 P5 P6 P2 1 4 0.4 1 0 0.1 0.8 0 P3 −3 5 0.2 0 1 0.3 0.4 0 P6 0 11 1 0 0 −0.5 10 1 −11 −0.2 0 0 −0.8 −2.4 0 zj − cj 9 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego Niesymetryczne zagadnienie dualne PL Zagadnienie pierwotne Zagadnienie dualne min cT X max λT b przy ograniczeniach AX = b X>0 przy ograniczeniach λT A 6 cT UWAGA: Zadanie dualne zadania dualnego jest pocza̧tkowym zagadnieniem pierwotnym. 10 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego Lemat 1 SÃlaby lemat o dualności. ZaÃlóżmy, że X i λ sa̧ rozwia̧zaniami dopuszczalnymi, odpowiednio, zadania pierwotnego i dualnego. Wówczas prawdziwa jest nastȩpuja̧ca nierówność: cT X > λT b. Twierdzenie 5 Niech X0 i λ0 bȩda̧ rozwia̧zaniami dopuszczalnymi, odpowiednio, zadania pierwotnego i dualnego. Jeżeli cT X0 = λ0 T b, to X0 i λ0 sa̧ optymalnymi rozwia̧zaniami, odpowiednio, zadania pierwotnego i dualnego. 11 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego Twierdzenie o dualności Twierdzenie 6 Jeżeli zagadnienie pierwotne (albo dualne) ma skończone rozwia̧zanie optymalne, to odpowiednie zagadnienie dualne (albo pierwotne) ma również skończone rozwia̧zanie optymalne i ekstrema funkcji celu sa̧ sobie równe. Jeżeli jedno z zagadnień (pierwotne lub dualne) nie ma optymalnego rozwia̧zania ograniczonego, to odpowiadaja̧ce mu zagadnienie dualne nie ma rozwia̧zań dopuszczalnych. 12 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego PrzykÃlad 2 Znaleźć rozwia̧zanie optymalne zagadnienia dualnego z przykÃladu 1 Zadanie pierwotne Zminimalizować: Zadanie dualne Zmaksymalizować: x2 − 3x3 + 2x5 przy ograniczeniach 7λ1 + 12λ2 + 10λ3 przy ograniczeniach λ1 6 0 x1 + 3x2 − x3 + 2x5 = 7 3λ1 − 2λ2 − 4λ3 6 1 −2x2 + 4x3 + x4 = 12 −λ1 + 4λ2 + 3λ3 6 − 3 −4x2 + 3x3 + 8x5 + x6 = 10 λ2 6 0 x1 , ..., x6 > 0 2λ1 + 8λ3 6 2 λ3 6 0 13 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego Baza końcowa metody SIMPLEKS P2 , P3 , P6 : B B−1 = [P2 P3 P6 ] 3 −1 0 = −2 4 0 −4 3 1 0.4 0.1 0 = 0.2 0.3 0 . 1 −0.5 1 UWAGA: Jeżeli oryginalna macierz wspóÃlczynników A zawiera macierz jednostkowa̧, albo zostanie uzupeÃlniona macierza̧ jednostkowa̧, to w każdym kroku obliczeń w odpowiednich kolumnach macierzy jednostkowej otrzymamy macierz odwrotna̧ bazy. 14 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego Optymalne rozwia̧zanie zadania pierwotnego: ¡ 0 0 0¢ −1 X0 = B b = x2 , x3 , x6 = (4, 5, 11) , ¡ 0 0 0¢ c0 = c2 , c3 , c6 = (1, −3, 0) . Minimalna wartość funkcji celu: T c0 X0 = (1, −3, 0) (4, 5, 11) = −11. Wektor rozwia̧zania minimalnego: Z = cT0 X̄ − cT = (−0.2, 0, 0, −0.8, −2.4, 0) . 15 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego Optymalne rozwia̧zania zadania dualnego: λ0 = c0 B −1 0.4 = (1, −3, 0) 0.2 1 0.1 0.3 −0.5 0 0 1 = (−0.2, −0.8, 0) . Wartość dualnej funkcji celu: λT0 b 7 = (−0.2, −0.8, 0) 12 = −11. 10 16 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego Sprawdzenie: µ ¶ 1 1 4 − ,− ,0 0 5 5 0 3 −1 0 2 −2 4 1 0 −4 3 0 8 0 0 1 6 −0.2 1 −3 −0.8 −0.4 0 6 0 1 −3 0 2 0 0 1 −3 0 2 0 17 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego Symetryczne zagadnienie dualne Zagadnienie pierwotne Zagadnienie dualne min cT X max λT b przy ograniczeniach przy ograniczeniach AX > b λT A 6 cT X>0 λ > 0. UWAGA: Twierdzenie o dualności może być zastosowane również do symetrycznych zagadnień dualnych. 18 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego PrzeksztaÃlcenie symetryczne zagadnienia programowania liniowego do postaci równości a11 x1 + ... + a1n xn > b1 a11 x1 + ... + a1n xn − xn+1 = b1 a21 x1 + ... + a2n xn > b2 a21 x1 + ... + a2n xn − xn+2 = b2 ... ⇒ ... am1 x1 + ... + amn xn > bm am1 x1 + ... + amn xn − xn+m = bm a11 λ1 + ... + am1 λm 6 c1 a11 λ1 + ... + am1 λm + λm+1 = c1 a21 λ1 + ... + am2 λm 6 c2 a21 λ1 + ... + am2 λm + λm+2 = c2 ... a1n λ1 + ... + amn λm 6 cn ⇒ ... a1n λ1 + ... + amn λm + λm+n = cn 19 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego Niech wektor kolumnowy Y = (y1 , y2 , ..., ym ) skÃlada siȩ ze zmiennych osÃlabiaja̧cych, które przeksztaÃlcaja̧ ukÃlad nierówności ograniczaja̧cych w ukÃlad równań. Równoważne zagadnienie PL zapisane za pomoca̧ macierzy zÃlożonych: £ T T¤ X max c , 0 Y przy ograniczeniach: [A, −I] X Y = b, X Y > 0. Zagadnie dualne tego przeksztaÃlconego zadania pierwotnego jest postaci: max λT b przy ograniczeniach £ T T¤ λ [A, −I] 6 c , 0 . T 20 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego Twierdzenie o zmiennych osÃlabiaja̧cych Twierdzenie 7 Dla optymalnych rozwia̧zań dopuszczalnych ukÃladów pierwotnego i dualnego, jeżeli tylko wystȩpuje nierówność w k−tej zależności dowolnego ukÃladu (odpowiednia zmienna osÃlabiaja̧ca jest dodatnia), to k-ta zmienna w jego ukÃladzie dualnym znika. Jeżeli k-ta zmienna jest dodatnia w dowolnym ukÃladzie, to k-ta zależność w jego ukÃladzie dualnym jest równościa̧ ( odpowiednia zmienna osÃlabiaja̧ca jest zerem). 21 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego Complementary Slackness Condition Twierdzenie 8 Dopuszczalne rozwia̧zania X i λ dualnej pary problemów sa̧ optymalne, wtedy i tylko wtedy gdy: ¡ T ¢ T c −λ A X=0 oraz λT (AX − b) = 0. 22 Edyta Mrówka a Zagadnienie dualne zadania programowania liniowego Dziȩkujȩ za uwagȩ. 23