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

Podobne dokumenty