zagadnienie dualne zadania programowania liniowego · edyta mr¶owka a zagadnienie dualne zadania...
TRANSCRIPT
Zagadnienie Dualne Zadania
Programowania Liniowego
Seminarium Szkoleniowe
Edyta Mrowka
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
Ogolne zagadnienie PL
Znajdz taki wektor X = (x1, x2, ..., xn) , ktory minimalizuje kombinacjeliniowa
c1x1 + c2x2 + ... + cnxn (1)
przy ograniczeniach liniowych
a11x1 + a12x2 + ... + a1nxn = b1
a21x1 + a22x2 + ... + a2nxn = b2
...
am1x1 + am2x2 + ... + amnxn = bm
xj > 0, j = 1, 2, ..., n
(2)
gdzie aij , bi, cj sa staÃlymi oraz m < n.
1
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
Oznaczenia stosowane w prezentacji
A = [aij ]− macierz wspoÃlczynnikow,
c = (c1, ..., cn)− wektor kosztow,
b = (b1, ..., bm)− wektor ograniczen,
0 = (0, ..., 0)− n-wymiarowy wektor skÃladajacy sie z samych zer,
Pj− j-ta kolumna macierzy A,
P0 = b.
2
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
Zapis macierzowy zadania PL.
Zminimalizowac funkcje celucTX (3)
przy ograniczeniach
AX = b
X > 0 (4)
3
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
Przydatne twierdzenia – powtorzenie
Twierdzenie 1 Zbior wszystkich rozwiazan dopuszczalnych zagadnieniaprogramowania liniowego jest zbiorem wypukÃlym.
Twierdzenie 2 Funkcja celu przyjmuje wartosc minimalna w punkciewierzchoÃlkowym zbioru wypukÃlego, utworzonego na zbiorze rozwiazandopuszczalnych zagadnienia programowania liniowego.
Twierdzenie 3 Jezeli mozna znalezc zbior wektorow P1,P2, ...,Pk (k 6m)liniowo niezaleznych takich, ze
x1P1 + x2P2 + ... + xkPk = P0,
oraz wszystkie xj > 0, to punkt X = (x1, x2, ..., xk, 0, ...0) jest punktemwierzchoÃlkowym zbioru wypukÃlego rozwiazan dopuszczalnych.
4
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
Wnioski 1 Kazdemu punktowi wierzchoÃlkowemu zbioru wypukÃlegorozwiazan dopuszczalnych odpowiada zbior m wektorow liniowo niezaleznychz danego zbioru P1,P2, ...,Pn.
Twierdzenie 4 Jezeli dla dowolnego rozwiazania dopuszczalnegoX = (x10, x20, ..., xm0) ktoremu odpowiada zbior liniowo niezaleznychwektorow P1,P2, ...,Pm speÃlnione sa warunki zj − cj 6 0 dla wszystkichj = 1, 2, ...., n, to
x10P1 + x20P2 + ... + xm0Pm = P0
x10c1 + x20c2 + ... + xm0cm = z0,
okreslaja minimalne rozwiazanie dopuszczalne.
5
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
PrzykÃlad 1
Zminimalizowac funkcje 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 Mrowka a Zagadnienie dualne zadania programowania liniowego
Rozwiazanie 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 Mrowka 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
zj − cj −9 0 0.5 0 −0.75 −2 0
8
Edyta Mrowka 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
zj − cj −11 −0.2 0 0 −0.8 −2.4 0
9
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
Niesymetryczne zagadnienie dualne PL
Zagadnienie pierwotne Zagadnienie dualne
min cTX max λTb
przy ograniczeniach przy ograniczeniach
AX = b
X>0λTA6 cT
UWAGA:
Zadanie dualne zadania dualnego jest poczatkowym zagadnieniempierwotnym.
10
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
Lemat 1 SÃlaby lemat o dualnosci.
ZaÃlozmy, ze X i λ sa rozwiazaniami dopuszczalnymi, odpowiednio, zadaniapierwotnego i dualnego. Wowczas prawdziwa jest nastepujaca nierownosc:
cTX> λTb.
Twierdzenie 5 Niech X0 i λ0 beda rozwiazaniami dopuszczalnymi,odpowiednio, zadania pierwotnego i dualnego. Jezeli
cTX0 = λ0Tb,
to X0 i λ0 sa optymalnymi rozwiazaniami, odpowiednio, zadania pierwotnegoi dualnego.
11
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
Twierdzenie o dualnosci
Twierdzenie 6 Jezeli zagadnienie pierwotne (albo dualne) ma skonczonerozwiazanie optymalne, to odpowiednie zagadnienie dualne (albo pierwotne)ma rowniez skonczone rozwiazanie optymalne i ekstrema funkcji celu sasobie rowne.
Jezeli jedno z zagadnien (pierwotne lub dualne) nie ma optymalnegorozwiazania ograniczonego, to odpowiadajace mu zagadnienie dualne nie marozwiazan dopuszczalnych.
12
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
PrzykÃlad 2
Znalezc rozwiazanie optymalne zagadnienia dualnego z przykÃladu 1
Zadanie pierwotne Zadanie dualne
Zminimalizowac: Zmaksymalizowac:
x2 − 3x3 + 2x5 7λ1 + 12λ2 + 10λ3
przy ograniczeniach przy ograniczeniach
x1 + 3x2 − x3 + 2x5 = 7
−2x2 + 4x3 + x4 = 12
−4x2 + 3x3 + 8x5 + x6 = 10
x1, ..., x6 > 0
λ1 6 0
3λ1 − 2λ2 − 4λ3 6 1
−λ1 + 4λ2 + 3λ3 6 − 3
λ2 6 0
2λ1 + 8λ3 6 2
λ3 6 0
13
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
Baza koncowa metody SIMPLEKS P2,P3,P6 :
B = [P2P3P6]
=
3 −1 0
−2 4 0
−4 3 1
B−1 =
0.4 0.1 0
0.2 0.3 0
1 −0.5 1
.
UWAGA: Jezeli oryginalna macierz wspoÃlczynnikow A zawiera macierzjednostkowa, albo zostanie uzupeÃlniona macierza jednostkowa, to w kazdymkroku obliczen w odpowiednich kolumnach macierzy jednostkowejotrzymamy macierz odwrotna bazy.
14
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
Optymalne rozwiazanie zadania pierwotnego:
X0 = B−1b =(x0
2, x03, x
06
)= (4, 5, 11) ,
c0 =(c02, c
03, c
06
)= (1,−3, 0) .
Minimalna wartosc funkcji celu:
c0X0 = (1,−3, 0)T (4, 5, 11) = −11.
Wektor rozwiazania minimalnego:
Z = cT0 X− cT =(−0.2, 0, 0,−0.8,−2.4, 0) .
15
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
Optymalne rozwiazania zadania dualnego:
λ0 = c0B−1 = (1,−3, 0)
0.4 0.1 0
0.2 0.3 0
1 −0.5 1
= (−0.2,−0.8, 0) .
Wartosc dualnej funkcji celu:
λT0 b =(−0.2,−0.8, 0)
7
12
10
= −11.
16
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
Sprawdzenie:
(−1
5,−4
5, 0
)
1 3 −1 0 2 0
0 −2 4 1 0 0
0 −4 3 0 8 1
6
0
1
−3
0
2
0
−0.2
1
−3
−0.8
−0.4
0
6
0
1
−3
0
2
0
17
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
Symetryczne zagadnienie dualne
Zagadnienie pierwotne Zagadnienie dualne
min cTX max λTb
przy ograniczeniach przy ograniczeniach
AX>b
X>0
λTA6 cT
λ >0.
UWAGA:
Twierdzenie o dualnosci moze byc zastosowane rowniez do symetrycznychzagadnien dualnych.
18
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
PrzeksztaÃlcenie symetryczne zagadnienia programowania
liniowego do postaci rownosci
a11x1 + ... + a1nxn > b1
a21x1 + ... + a2nxn > b2
...
am1x1 + ... + amnxn > bm
⇒
a11x1 + ... + a1nxn − xn+1 = b1
a21x1 + ... + a2nxn − xn+2 = b2
...
am1x1 + ... + amnxn − xn+m = bm
a11λ1 + ... + am1λm 6 c1
a21λ1 + ... + am2λm 6 c2
...
a1nλ1 + ... + amnλm 6 cn
⇒
a11λ1 + ... + am1λm + λm+1 = c1
a21λ1 + ... + am2λm + λm+2 = c2
...
a1nλ1 + ... + amnλm + λm+n = cn
19
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
Niech wektor kolumnowy Y = (y1, y2, ..., ym) skÃlada sie ze zmiennychosÃlabiajacych, ktore przeksztaÃlcaja ukÃlad nierownosci ograniczajacych wukÃlad rownan. Rownowazne zagadnienie PL zapisane za pomoca macierzyzÃlozonych:
max[cT ,0T
] X
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 [A,−I] 6
[cT ,0T
].
20
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
Twierdzenie o zmiennych osÃlabiajacych
Twierdzenie 7 Dla optymalnych rozwiazan dopuszczalnych ukÃladowpierwotnego i dualnego, jezeli tylko wystepuje nierownosc w k−tej zaleznoscidowolnego ukÃladu (odpowiednia zmienna osÃlabiajaca jest dodatnia), to k-tazmienna w jego ukÃladzie dualnym znika. Jezeli k-ta zmienna jest dodatnia wdowolnym ukÃladzie, to k-ta zaleznosc w jego ukÃladzie dualnym jest rownoscia( odpowiednia zmienna osÃlabiajaca jest zerem).
21
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
Complementary Slackness Condition
Twierdzenie 8 Dopuszczalne rozwiazania X i λ dualnej pary problemow saoptymalne, wtedy i tylko wtedy gdy:
(cT − λTA
)X = 0
orazλT (AX− b) = 0.
22
Edyta Mrowka a Zagadnienie dualne zadania programowania liniowego
Dziekuje za uwage.
23