Documente Academic
Documente Profesional
Documente Cultură
BREVIAR TEORETIC Considerm problema de programare liniar scris sub forma standard: [opt ] f = cx
(*)
A M m, n (R ), b M m,1 (R ), c M 1, n (R ), c M 1, n (R ), x M n,1 (R ) .
Ax = b , x0
unde
orice vector x R n care satisface restriciile problemei i condiiile de semn. Notm mulimea soluiilor posibile cu
(*) ,
X p= x R n / Ax = b, x 0 .
Definiia 2. Se numete soluie posibil de baz a problemei (*) ,
orice soluie posibil x R n a problemei (*) care ndeplinete urmtoarele condiii: 1) are cel mult m componente srtict pozitive, iar celelalte sunt egale cu zero; 2) coloanele matricei A corespunztoare componentelor strict pozitive sunt vectori liniar independeni.
Definiia 3. Fie C R n o mulime convex. Un punct v C se numete vrf al mulimii C dac nu exist nici o pereche de vectori
x1 , x 2 C i (0,1) astfel nct v = x1 + (1 )x 2 .
Teorema 1. Orice soluie posibil de baz a problemei (*) este vrf al mulimii soluiilor posibile i reciproc. Definiia 4. Se numete soluie optim a problemei (*) , orice
soluie posibil x o R n a problemei (*) care satisface i condiia de optim, adic f x o = opt f ( x ) .
x X p
( )
Teorema 2. Soluia optim a problemei de programare liniar (*) se afl printre vrfurile mulimii soluiilor posibile X p ale
problemei.
atunci
soluia
p k =1
optim
general
are
forma:
x 0 = k x ok , k 0, k = 1 .
1) optim unic, dac X o conine un singur element; 2) optim multiplu, dac X o conine cel puin dou elemente. Vom prezenta n continuare metode de soluionare a problemelor de programare liniar.
[max] f
= 4 x1 + 7 x 2
x1 + x 2 6 x x 2 1 2 x2 1 x1 , x 2 0
a) S se determine mulimea soluiilor posibile ale problemei. b) S se determine mulimea soluiilor posibile de baz ale problemei. c) S se determine mulimea soluiilor optime ale problemei.
Rezolvare: a ) Reprezentm grafic mulimea soluiilor posibile X p , adic mulimea punctelor planului ale cror coordonate verific restriciile problemei. Scriem ecuaiile ataate celor trei inecuaii i reprezentm grafic dreptele care le corespund acestora n plan: d1 : x1 + x 2 = 6 , care intersecteaz axele n punctele (0, 6 ) i (6, 0 ) . d 2 : x1 x 2 = 2 , care intersecteaz axele n punctele (0, 2 ) i (2,0 ) . d 3 : x 2 = 1 , care este paralel cu Ox1 i taie Ox2 n punctul (0,1) . Determinm mulimea punctelor din plan ale cror coordonate verific restriciile problemei.
Se tie c mulimea punctelor planului ale cror coordonate verific o inecuaie reprezint un semiplan. Fie S1 semiplanul determinat de inecuaia x1 + x 2 6 ; punctul (0, 0) verific inecuaia, deci S1 conine originea. Procednd analog n cazul celorlalte inecuaii i intersectnd semiplanele obinute ( S 2 : x1 x 2 2 , S 3 : x 2 1 , S 4 : x1 0 , S 5 : x 2 0 ), gsim:
x2
S4 D S2
x1
Mulimea soluiilor posibile ale problemei este reprezentat de interiorul i frontiera patrulaterului ABCD : X p = [ABCD] .
A = d 3 Ox2 A(0,1) .
B = d 2 d 3 ; rezolvnd sistemul
x1 x 2 = 2 x2 = 1
Analog, C = d1 d 2 = C (4, 2 ) . D = d1 Ox 2 D(0, 6 ) . Deoarece mulimea X p este mrginit, rezult c: vrfurile patrulaterului ABCD , X pb = {A, B, C , D} . c) Mulimea X ob a soluiilor optime de baz este format din acele elemente ale mulimii X pb (vrfuri ale mulimii soluiilor posibile) n care funcia obiectiv i atinge valoarea optim (n acest caz, valoarea maxim). Avem c f ( A) = f (0,1) = 7 ; f (B ) = f (3,1) = 19 ; f (C ) = f (4, 2) = 30 ; f (D ) = f (0, 6 ) = 42 , deci X ob = {D} = {(0, 6 )} . Mulimea X o a soluiilor optime este X o = {D} = {(0, 6 )} , adic x1 = 0, x2 = 6 ; valoarea optim a funciei obiectiv este max f = 42 .
[max] f
= 2 x1 + 3x 2
2 x1 + 5 x 2 2 2 x1 + 3 x 2 6 x , x 0 1 2
Rezolvare: I. Determinm mulimea soluiilor posibile ale problemei. Scriem ecuaiile ataate celor trei inecuaii i reprezentm grafic dreptele care le corespund acestora n plan: d1 : 2 x1 + 5 x 2 = 2 , care taie axele n punctele 0, 2 i ( 1, 0 ) . Determinm punctele din plan ale cror coordonate verific inecuaiile sistemului, intersectnd semiplanele S1 : 2 x1 + 5 x 2 2 , S 2 : 2 x1 + 3 x 2 6 , S 3 : x1 0 , S 4 : x 2 0 . Obinem:
d 2 : 2 x1 + 3 x 2 = 6 care taie axele n punctele (0, 2 ) i (3, 0 ) .
( 5)
x2
S3 S2 B C A S1 (d1) O S4
x1
(d2)
Mulimea X p a soluiilor posibile ale problemei este reprezentat de interiorul i frontiera triunghiului ABC : X p = [ ABC ] , unde
( 5)
(2 )
Observm c funcia f atinge valoarea maxim n punctele (0, 2 ) i 3 ,1 . Conform observaiei 1 din breviarul teoretic, rezult c soluia optim a problemei este:
t X o = (0, 2 )t + (1 ) 3 ,1 , [0,1] , adic segmentul [BC ] .
( 5)
(3 ,1) = 6 . 2
(2 )
(2 )
[min] f
= 9 x1 + 5 x 2
x1 + x 2 1 x1 + 2 x 2 1 x , x 0 1 2
Rezolvare: Determinm mulimea soluiilor posibile ale problemei. Dreptele ce determin semiplanele ataate celor dou inecuaii sunt: d1 : x1 + x 2 = 1 , care taie axele n punctele (0,1) i ( 1, 0 ) .
d 2 : x1 + 2 x 2 = 1 , care taie axele n punctele 0, 1
( 2 ) i (1, 0) .
Intersectm semiplanele S1 : x1 + x 2 1 , S 2 : x1 + 2 x 2 1 , S 3 : x1 0 , S 4 : x 2 0 .
x2 S3 (d1)
S2 S4 O (d2) S1 x1
Obinem c mulimea soluiilor posibile ale problemei este vid: X p = , prin urmare problema de programare liniar nu are soluie.
[max] f
= 3 x1 + 5 x 2
x1 - 3 x 2 3 2 x1 + x 2 2 x , x 0 1 2
Rezolvare: Determinm mulimea soluiilor posibile ale problemei. Dreptele ce determin semiplanele ataate celor dou inecuaii sunt: d1 : x1 3 x 2 = 3 , care taie axele n punctele (0, 1) i (3, 0 ) . d 2 : 2 x1 + x 2 = 2 care taie axele n punctele (0, 2 ) i ( 1, 0 ) . Mulimea X p a soluiilor posibile ale problemei este reprezentat
de suprafaa haurat.
x2
S3 S2
S4 O (d1)
S1
x1
(d2)
Deoarece mulimea X p este nemrginit i problema este de maxim, rezult c problema are optim infinit (max f = + ) .
[max ] f
= 5 x1 + 3 x2
2 x1 + x2 8 x1 + 2 x2 7 x , x 0 1 2
[max] f
= 5 x1 + 3x2 + 0 x3 + 0 x4 2 x1 + x2 + x3 = 8 x1 + 2 x2 + x4 = 7 xi 0, i = 1,4
b) Scriem matricea sistemului ( A ) , pentru a verifica dac problema are soluie iniial de baz (aceast condiie este ndeplinit dac A conine matricea unitate).
a1 a 2 2 1 A= 1 2 a3 a 4 1 0 ; baza iniial este B = {a3 , a 4 } . 0 1
CB
XB
5
a1
3
a2
0
a3
0
a4
a4
0 0
fj
8 7 0
j
2 1 0 5
1 2 0 3
1 0 0 0
0 1 0 0
8:2 7:1
i coloana CB; de exemplu, primele dou elemente din linia f j s-au determinat astfel:
0 2 f1 = = 0 2 + 0 1 = 0 . 0 1
j se calculeaz astfel:
j = C j f j , pentru probleme de maxim; j = f j C j , pentru probleme de minim;
( C j reprezint prima linie din tabel i este format din coeficienii funciei obiectiv.) Pasul III. Verificm criteriile: Criteriul de optim finit: j 0, j = 1,5 ;
Acest criteriu nu se verific , pentru c 1 = 5 > 0 i 2 = 3 > 0 . Criteriul de optim infinit: k 1,5 astfel nct k > 0 i toate elementele coloanei a k sunt 0 . Acest criteriu nu se verific, pentru c: 1 , 2 > 0 , dar coloanele a1 , a 2 conin cel puin cte o valoare strict pozitiv.
Pasul IV. Schimbm baza: Criteriul de intrare n baz: intr n baz vectorul a k corespunztor diferenei maxime j > 0 .
n cazul nostru, max{5, 3} = 5 , deci intr n baz vectorul a1 . Criteriul de ieire din baz: iese din baz vectorul al corespunztor raportului k minim ( k > 0 ). Coloana k se
determin fcnd raportul ntre elementele coloanei X i elementele strict pozitive ale coloanei vectorului care intr n baz. n cazul acesta, l = min 8 , 7 = 4 , deci iese din baz vectorul a3 .
{2 1}
Pasul V. Trecem la o nou iteraie: Stabilim pivotul, care se gsete la intersecia liniei vectorului care iese ( al ) cu coloana vectorului care intr n baz ( a k ). Completm coloanele B i CB Restul elementelor se determin cu metoda Gauss-Jordan. Calculm noile valori f j i j .
B
a1
CB
XB
5
a1
3
a2
0
a3
0
a4
8 2
a4
5 0
fj
4 3 20
j
1 0 5 0
0 1 0 0
CB
XB
5
a1
3
a2
0
a3
0
a4
5 3
fj
3 2 21
j
1 0 5 0
0 1 3 0
n acest caz, observm c se verific criteriul de optim finit ( j 0, j = 1,5 ). Soluia optim a problemei se citete din coloana XB : x1 = 3 , x 2 = 2 , x3 = 0 , x 4 = 0 , iar valoarea maxim a funciei este f max = 21.
B. Metoda grafic Dreptele ce determin semiplanele ataate restriciilor sunt: d1 : 2 x1 + x 2 = 8 , care taie axele n punctele (0, 8) i (4, 0) . d 2 : x1 + 2 x 2 = 7 , care taie axele n punctele 0, 7 i (7, 0) .
( 2)
S2
C B S4 O A S1 (d1) (d2)
x1
Mulimea X p a soluiilor posibile ale problemei este reprezentat de interiorul i frontiera patrulaterului OABC . Deoarece X p este mrginit, optimul funciei obiectiv se realizeaz ntr-unul din vrfurile poligonului soluiilor posibile. Acestea sunt: O (0, 0) , A 0, 7 , B(3, 2) i C (4, 0) . Avem c: f (0, 0) = 0 , f 0, 7 = 2
( 2)
( )
21 , 2
f (3, 2) = 21 i f (4, 0) = 20 .
Prin urmare, soluia optim a problemei este: X O = (3, 2)t , f max = 21.
6.2.2. REZOLVAREA PROBLEMELOR DE PROGRAMARE LINIAR CARE NU ADMIT SOLUIE INIIAL DE BAZ. METODA BAZEI ARTIFICIALE PROBLEME REZOLVATE
[max ] f
= 5 x1 + 2 x2 + 0 x3 + 0 x4
2 x1 + 3 x2 + x3 = 6 x1 + 2 x2 x4 = 1 xi 0, i = 1,4
Se scrie matricea sistemului( A ) , pentru a verifica dac problema are soluie iniial de baz (aceast condiie este ndeplinit dac A conine matricea unitate).
a1 a 2 a3 a 4 0 2 3 1 0 ; lipsete vectorul e 2 = din matricea A i 1 A= 1 1 0 1 din aceast cauz la restricia a doua vom aduga o variabil artificial y .
Observaie. Variabilele artificiale apar n funcia obiectiv cu coeficientul + M la problemele de minim i M la cele de maxim, unde M . Rezult forma standard de lucru a problemei:
[max ] f
= 5 x1 + 2 x2 + 0 x3 + 0 x4 My
2 x1 + 3 x2 + x3 = 6 x1 + 2 x2 x4 + y = 1 xi 0, i = 1,4
2
a2
0
a3
0
a4
-M
a5
3 1
0 -M
fj
6 1 -M
j
a3
a1
0 5
fj
4 1 5
j
a4 a1
0 5
fj
2 6 30
j
0 -1 M -M 2 -1 -5 5 1 0 0 0
0 1 -M 0 -2 1 5 -M-5 -1 0 0 -M
2 -
Discuie: Dup ce algoritmul simplex a luat sfrit, dac unei variabile artificiale i corespunde n coloana X B o valoare nenul, atunci problema nu are soluie. Dup ce algoritmul simplex a luat sfrit, dac toate variabilele artificiale sunt egale cu 0, atunci decizia este optim finit, iar soluia problemei se citete din coloana XB. Rezultatele obinute n ultima iteraie sunt: x1 = 6 , x 2 = 0 , x3 = 0 , x 4 = 2 , y = 0 . Cum variabila artificial este y = 0 , rezult c
problema are soluie optim: X o = (6,0,0,2) t i f max = 30 .
6.2.3. CAZURI SPECIALE N REZOLVAREA PROBLEMELOR DE PROGRAMARE LINIAR I. Probleme cu optim multiplu
Discuie. a) Dac toate valorile j = 0 din ultima linie a tabelului simplex corespund unor vectori din baza optim (ultima baz), atunci problema are soluie unic. b) Dac k = 0 i vectorul ak nu se afl n baza optim, atunci problema admite optim multiplu. Pentru gsirea unei alte soluii, se introduce n baz vectorul ak .
opt 1 2 Soluia optim general este: X = X + (1 ) X , [0,1].
PROBLEME REZOLVATE
[max] f
= 8 x1 + 5 x2 + 2 x3
x1 + x2 + x3 12 3 x + 2 x + x = 30 2 3 1 2 x + x + x 22 3 1 2 x 0, i = 1,3 i
[max ] f
= 8 x1 + 5 x2 + 2 x3 + 0 x4 + 0 x 5
x1 + x2 + x3 x4 = 12 3 x + 2 x + x = 30 2 3 1 2 x + x + x + x = 22 2 3 5 1 x 0, i = 1,5 i
1 1 1 1 0 A = 3 2 1 0 0 ; 2 1 1 0 1
[max] f
= 8 x1 + 5 x2 + 2 x3 + 0 x4 + 0 x My1 My2
x1 + x2 + x3 x4 + y1 = 12 3 x1 + 2 x2 + x3 + y2 = 30 2 x + x + x + x = 22 3 5 1 2 x 0, i = 1,5 i
Tabelul simplex:
B
a6 a7 a5
CB
XB
8
a1
5
a2
2
a3
0
a4
0
a5
-M
a6
-M
a7
12 10 11
-M -M 0
fj
12 30 22
-42M
j
1 3 2
-4M
1 2 1
-3M
1 1 1
-2M 2+2M
-1 0 0
M -M
0 0 1
0 0
1 0 0
-M 0
0 1 0
-M 0
8+4M 5+3M
a6
a1 a5
-M 8 0
fj
2 10 2
80-2M
j
0 1 0
8 0
0 0 1
0 0 0
1 0 0
-M
3 30 6
M -M
a3
a1 a5
2 8 0
fj
3 9 1 78
j
0 1 0 8 0
1 0 0 2 0
6 18 -
Din ultima iteraie citim soluia optim X 1 = (9,0,3,0,1)t . n linia j avem 1 = 0 , dar vectorul a1 nu se afl n baza optim, de unde rezult c problema are optim multiplu. Pentru gsirea unei alte soluii, introducem n baz vectorul a1 i din urmtoarea iteraie va rezulta X 2 = (6,6,0,4,0)t .
fj
78
j
a2 a1 a5
5 8 0
fj
6 6 4 78
j
8 0 0 1 0 8 0
5 0* 1 0 0 5 0
2 0 2 -1 1 2 0
1 -1 -3 2 -1 1 -1
0 0 0 0 1 0 0
[min ] f
= 7 x1 + 4 x2
x1 + x2 1 x1 + 2 x2 1 x , x 0 1 2
Rezolvare:
[min ] f
= 7 x1 + 4 x2 + 0 x3 + 0 x4 + My
x1 + x2 x3 + y = 1 x1 + 2 x2 + x4 = 1 xi 0, i = 1,4
B
a3
a4
CB
XB
7
a1
4
a2
0
a3
0
a4
M
a5
1/1 1/2
M 0
fj
1 1 M
j
-1 1
-M -M-7
1 2
M M-4
-1 0
-M -M
0 1
0 0
1 0
M 0
a1 a4
M 4
fj
0 1 4 0
-1 0 -M -M
1 0 M 0
iteraie sunt: x1 = 0, x2 = 1 / 2, x3 = 0, x4 = 0, y = 1 / 2. Deoarece variabilei artificiale y i corespunde o valoare nenul, rezult c problema nu are soluie.
III. Probleme cu optim infinit PROBLEME REZOLVATE
[max ] f
= 3 x1 + 5 x2 x1 3 x2 3 - 2 x1 + x2 2 x , x 0 1 2
CB
XB
3
a1
5
a2
0
a3
0
a4
-M
a5
3 -
-M 0
fj
3 2 -3M
j
a1 a4
3 0
fj
3 8 9
j
1 -2 -M 3+M 1 0 3 0
-3 1 3M 5-3M -3 -5 -9 14
-1 0 -M -M -1 -2 -3 3
0 1 0 0 0 1 0 0
1 0 -M 0 1 2 3 -M-3
Se observ c se verific criteriul de optim infinit (coloana a 2 ). n acest caz, problema are optim infinit (max f = + ) .
PROBLEME PROPUSE
S se rezolve prin dou metode urmtoarele probleme de programare liniar i s se compare rezultatele:
[max] f
1.
= 7 x1 + 8 x 2
R: x1 = 2, x 2 = 1; f max = 22 .
2.
R: x1 = 0, x 2 = 1; f min = 7 .
3.
R: x1 = 1, x 2 = 3 ; f max = 13 . 2
4.
5.
R: x1 = 1, x 2 = 3 ; f max = 13 . 2 2
6.
R: x1 = 0, x2 = 1; f min = 2 .
[min] f = 3 x1 + 4 x2
7.
4 x1 7 x 2 28 5 x1 + 2 x 2 10 x , x 0 1 2
[max] f = 3 x1 + 4 x2 2 x1 + x2 12 x1 + 2 x2 4 x , x 0 1 2
8.
R: x1 = 4, x2 = 4; f max = 28 .
[max] f = 3 x1 + 5 x 2
9.
3 x1 + 2 x 2 6 2 x1 + x 2 6 x , x 0 1 2 [opt ] f = 3 x1 + 5 x2
x1 + 2 x2 8 2 x + 3x 6 1 2 3 x1 + x 2 18 x1 , x 2 0
R: x1 = 0, x2 = 3; f max = 15 .
10.
R:
x1 = 4, x 2 = 6; f max = 42 dac problema este de maxim; x1 = 3, x 2 = 0; f min = 9 dac problema este de minim. [max] f = 2 x1 + 5 x2
2 x1 + x 2 5 x1 + 4 x 2 6 x , x 0 1 2
11.
R: x1 = 2, x2 = 1; f max = 9 .
[max] f = 2 x1 + 3 x 2
12.
5 x1 + 3 x 2 30 x1 + 3 x2 12 x , x 0 1 2
R: x1 = 9 , x2 = 5 ; f max = 33 .
2 2 2
13.
3 x1 + x3 + x4 4 2 x1 + x 2 x3 + x4 = 1 x1 + 2 x3 + 2 x 4 + x5 = 2 x 0, i = 1,5 i
R: x1 = 1 , x 2 = 0, x3 = 0, x 4 = 0, x5 = 3 ; f max = 11 2 2 2
[max] f = 5 x1 + 2 x2 + 8 x3 x1 + x2 + x3 18 2 x1 + x 2 + 3 x3 = 45 x + x + 2 x 33 2 3 1 x 0, i = 1,3 i
14.
[max] f = 3 x1 + 5 x 2 + x 3 + 6 x 4
16.
x1 + x 3 + 2 x 4 40 2 x1 + x 2 + 3x 3 16 x + x + 2 x 48 2 3 1 x 0, i = 1,4 i
17.
2 x1 + x 2 + x3 + 3 x 4 + 2 x5 = 40 x1 + 2 x 2 + 3 x3 + x 4 + 3 x5 = 50 xi 0, i = 1,5
R: x1 = 15, x 2 = 9, x3 = 0, x 4 = 0, x5 = 0; f max = 42
[min] f = 10 x1 + 5 x 2 + x3 x1 + x 2 + x3 5 2 x x 2 x3 1 1 x + 3x 2 x 4 2 3 1 x 0, i = 1,3 i
19.
R: x1 = 0, x 2 = 14 , x3 = 11 ; f min = 81 5 5 5
[min] f = 8 x1 + 4 x 2 + 12 x3 + 6 x 4
20.
2 x1 + x 2 + 2 x3 x 4 10 x + 2 x + x + 3 x 9 2 3 4 1 2 x1 + x 2 + 3 x3 + x 4 8 x 0, i = 1,3 i R: x1 = 1 , x 2 = 9, x3 = 0, x 4 = 0; f min = 40 2
23.
R: x1 = 4 , x2 = 28 , x3 = 0, x 4 = 0, x5 = 0; f min = 5 5 5
[min] f = x1 + 2 x 2 x3 + 3 x 4 + x 5
24.
25. 2 x1 + 3x2 + x3 + x4 + 2 x5 = 28
R: x1 = 0, x2 = 0, x3 = 0, x4 = 14, x5 = 7; f max = 35
[min] f = x1 + 2 x 2 + 4 x3 + 2 x 4 + x5
26. x1 + 3x 2 + 2 x3 + 3x 4 + x5 = 2
2 x1 + x 2 + 3 x 3 + 2 x 4 + 3 x5 = 3 xi 0, i = 1,5 7 7
R: x1 = 0, x2 =, x3 = 0, x 4 = 3 , x5 = 5 ; f min = 11 27.
7 [max] f = x1 + 2 x 2 + 3 x 3 + 4 x 4 + 5 x 5 2 x1 + x 2 + 2 x 3 + 3 x 4 + 3 x 5 = 30 x1 + 2 x 2 + 2 x 3 + 2 x 4 + x 5 = 40 xi 0, i = 1,5
R: x1 = 0, x 2 = 18, x3 = 0, x4 = 0, x5 = 4; f max = 56
[min] f = 3 x1 + x2 + 5 x3 + 2 x4 + x5
28. x1 + 2 x2 + 3x3 + 2 x4 + x5 = 20
2 x1 + x2 + x3 + 3 x4 + 3 x5 = 30 xi 0, i = 1,5
R: x1 = 0, x2 = 6, x3 = 0, x 4 = 0, x5 = 8; f min = 14
30. 3 x1 + 2 x 2 + x 3 2
x + x + 2x 1 2 3 1 x 0, i = 1,3 i
x1 + x 2 + x 3 6
R: x1 = 0, x2 = 0, x3 = 6; f min = 18 ;
[max] f = 5 x1 + 6 x 2 + 7 x 3
31. x1 + x 2 + 3 x 3 5
2 x1 + x 2 + x 3 3 x + x + 2x 4 2 3 1 x 0, i = 1,3 i
R: x1 = 0, x2 = 2, x3 = 1; f max = 19 ;
[min] f = 3 x1 2 x 2 + 7 x 3
32. 2 x1 x 2 + 2 x 3 2
3 x + 2 x x 4 2 3 1 x 0, i = 1,3 i
x1 + 3 x 2 x 3 3
R: x1 = 6 , x2 = 5 , x3 = 0; f min = 8 ; 7 7 7
[max] f = 4 x1 + 5 x 2 2 x 3
33. x1 + 3 x 2 + 2 x 3 4
3 x + x x 1 2 3 1 x 0, i = 1,3 i
2 x1 + x 2 + x 3 6
R: x1 = 14 , x2 = 2 , x3 = 0; f max = 66 ;
35. x1 + x 2 + 3 x 3 5
2 x + 3 x + x 3 2 3 1 x 0, i = 1,3 i
x1 + x 2 + 2 x 3 7
R: x1 = 4 , x2 = 0, x3 = 13 ; f min = 4 ; 7 7
[min] f = x1 + 3 x 2 2 x 3 x1 + x 2 + x 3 = 2 36. x1 + 2 x 2 + 3 x 3 5 x + x + 2 x 1 2 3 1 x 0, i = 1,3 i R: x1 = 1 , x2 = 0, x3 = 3 ; f min = 5 ; 2 2 2
[max] f = 4 x1 + 3 x 2 + 10 x3
37. 2 x1 + x 2 + x3 1
x1 + x 2 + 3 x3 2 3 x + x + 2 x 3 2 3 1 x 0, i = 1,3 i
5 5
R: x1 = 1 , x 2 = 0, x3 = 3 ; f max = 34 ;
5 [max] f = 5 x1 + x 2 + 4 x 3
38. x1 + 2 x 2 + 3 x 3 5
2 x + x + x 2 2 3 1 x 0, i = 1,3 i
2 x1 + 3 x 2 + x 3 6
R: x1 = 1 , x 2 = 0, x3 = 8 ; f max = 37 ; 5 5 5
[max] f = 4 x1 x 2 + 6 x 3 + 2 x 4 x1 + x 2 + x 3 + 2 x 4 = 3 2 x + 2 x x 2 2 4 1 x 0, i = 1,4 i
39. 2 x1 + 3 x 2 + x 4 6
R: x1 = 1, x 2 = 0, x3 = 2, x4 = 0; f max = 16 ;
[min] f = 3 x1 4 x 2 + x 3 + 5 x 4 x1 x 3 + 2 x 4 2 40. 2 x1 x 2 + 3 x 4 = 3 x + x 2x 1 3 4 2 x 0, i = 1,4 i
R: x1 = 0, x 2 = 9, x3 = 0, x 4 = 4; f min = 16 .
Modelului matematic al unei probleme de programare liniar i se poate ataa n mod unic o nou problem de programare, numit duala problemei primale. Problema iniial sau primal ( PP ) mpreun cu problema sa dual ( PD ) formeaz un cuplu de probleme duale. Considerm modelul matematic al unei probleme de programare liniar. Spunem c o restricie este concordant cu funcia obiectiv dac este de tipul " " n cazul unei probleme de maxim i dac este de tipul " " n cazul unei probleme de minim. Spunem c o restricie este neconcordant cu funcia obiectiv dac este de tipul " " n cazul unei probleme de maxim i dac este de tipul " " n cazul unei probleme de minim.
Reguli de obinere a problemei duale din problema primal 1. Duala unei probleme de minim este o problem de maxim, iar duala unei probleme de maxim este o problem de minim. 2. Fiecrei restricii din PP i corespunde o variabil n problema dual; numrul variabilelor din PD este egal cu numrul restriciilor din PP , iar numrul restriciilor din PD este egal cu numrul variabilelor din PD . 3. Coeficieni funciei obiectiv din PD sunt termenii liberi din PP , iar termenii liberi din PD sunt coeficieni funciei obiectiv din PP . 4. Matricea coeficienilor sistemului de restricii din PD este transpusa matricei coeficienilor sistemului de restricii din PP .
5. a) Unei restricii concordante cu funcia obiectiv din PP i corespunde o variabil pozitiv n PD . b) Unei restricii neconcordante cu funcia obiectiv din PP i corespunde o variabil negativ n PD . c) Unei restricii de tip egalitate din PP i corespunde o variabil oarecare n PD . 6. a ) Unei variabile pozitive din PP i corespunde o restricie concordant cu funcia obiectiv n PD . b) Unei variabile negative din PP i corespunde o restricie neconcordant cu funcia obiectiv n PD . c) Unei variabile oarecare din PP i corespunde o restricie de tip egalitate n PD .
[min ] f
= 3 x1 7 x 2 + 2 x3 x 4 2 x1 + 3 x 2 + x 4 9 4x x + 2x = 2 1 2 3 3 x1 + x 2 + 2 x3 5 x 4 4 x1 0, x 2 0, x 3 R, x 4 0
[min ] f
PP :
= 3 x1 7 x 2 + 2 x3 x 4 2 x1 + 3 x 2 + x 4 9 4 x1 x 2 + 2 x3 = 2 3 x1 + x 2 + 2 x3 5 x 4 4 x 0, x 0, x R, x 0 2 3 4 1 u1 u2 u3
[max ] f
= 9u1 + 2u 2 + 4u 3 2u1 + 4u 2 + 3u 3 3 3u 1 u 2 + u 3 7 2u 2 + 2u 3 = 2 u 5u 1 1 3 u1 0, u 2 R, u 3 0
dual PD :
Deoarece prima variabil din PP este pozitiv ( x1 0 ), rezult c prima restricie din PD este concordant cu funcia obiectiv ( " " pentru maxim). Analog s-a procedat i pentru obinerea celorlalte restricii din PD . Prima restricie din PP este neconcordant cu funcia obiectiv ( " " pentru minim), rezult c prima variabil din PD este negativ ( u1 0 ). Analog s-a procedat i pentru obinerea semnului celorlalte variabile din PD .
2. S se scrie duala urmtoarei probleme de programare liniar:
[max ] f
= 8 x1 + 3 x 2 + 4 x3
5 x1 + 3 x 2 + 2 x 4 9 4 x1 x 2 + 3 x3 2 6 x1 + 5 x 2 4 x3 1 3 x + x + 2 x 4 1 2 3 xi 0, i = 1,3
Rezolvare:
[max ] f
PP :
= 8 x1 + 3 x 2 + 4 x3 5 x1 + 3 x 2 + 2 x 4 9 4 x1 x 2 + 3 x3 2 6 x1 + 5 x 2 4 x3 1 3 x1 + x 2 + 2 x3 4 x 0, i = 1,3 i u1 u2 u3 u4
[min ] f
PD :
[min ] f
= 30 x1 + 12 x 2 + 36 x3 x1 + 2 x 2 + x3 3 x 2 + x3 5 + 2 x3 1 x1 2 x + x 6 2 1 xi 0, i = 1,3
a ) S se construiasc problema dual. b) S se rezolve problema dual. c) S se determine soluiile optime ale cuplului de probleme primal-dual.
Rezolvare:
[max ] f
= 3u1 + 5u 2 + u 3 + 6u 4 u1 + u 3 + 2u 4 30 2u + u + u 12 2 4 1 u + u + 2u 36 2 3 1 u 0, i = 1,4 i
a ) PD :
CB
UB
3
a1
5
a2
1
a3
6
a4
0
a5
0
a6
0
a7
0 0 0
gj
30 12 36 0
j
a5
a4 a7
0 6 0
gj
6 12 36 72
j
a3
a7 a4
1 6 0
gj
6 12 30 78
j
a3 a4 a2
1 6 5
gj
26 2 10 88
j
0 1 1 0 5 -2 1 1 6 -1 -2 1 3 4 1 0 0 1 5 0
1 0 1 0 1 1 0 1 0 1 1 0 0 6 -5 1 0 0 1 0
2 1 0 0 6 0 1 0 6 0 0 1 0 12 0 0 1 0 6 0
1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 -2 0 0 1 0 0 0 1 0 6 0 0 0 0 1 -2 0 0 1 0 -1 2 1 1 4 0 -1 -4 0 1/3 -2/3 0 1/3 1/3 0 -1/3 2/3 1/3 2/3 14/3 5/3 -2/3 -14/3 -5/3
15 12 -
6 36
12 10
Soluia optim a problemei duale este: u1 = 0, u 2 = 5, u 3 = 1, u 4 = 6, u 5 = 0, u 6 = 0, u 7 = 0 ; g max = 88 . c) Pentru a determina soluia optim a problemei primale se procedeaz n felul urmtor: -se rezolv problema dual cu ajutorul algoritmului simplex primal; -n ultima iteraie a algoritmului simplex primal, pe linia g j , n dreptul coloanelor ce corespund vectorilor care au format baza iniial, se citete soluia optim a problemei primale. Prin urmare, soluia optim a problemei primale este: x1 = 2 / 3, x2 = 14 / 3, x3 = 5 / 3 ; f min = g max = 88 .
Observaie. Este util rezolvarea problemei duale n locul celei primale atunci cnd duala este mai uor de rezolvat cu ajutorul algoritmului simplex primal, cum a fost cazul problemei anterioare.
PROBLEME PROPUSE
[max ] f
1.
= 5 x1 x 2 + 4 x3 + 3 x 4 4 x1 + 3 x 2 + 5 x 4 6 7 x x + 2 x = 5 1 2 3 3 x1 + x 2 + 2 x3 5 x 4 4 x1 0, x 2 0, x3 R, x 4 0
[min ]g = 6u1 + 5u 2 + 4u 3
R: PD :
4u1 + 7u 2 + 3u 3 5 3u 1 u 2 + u 3 1 2u 2 + 2u 3 = 4 5u 5u 3 3 1 u1 0, u 2 R, u 3 0
= 3 x1 7 x 2 + 2 x3 x 4 2 x1 + 3 x 2 + x 4 2 4x x + 2x 1 1 2 3 3 x1 + x 2 + 2 x3 5 x 4 = 3 x1 0, x 2 R, x3 0, x 4 0
[min ] f
2.
[max ]g = 2u1 + u 2 + 3u 3
2u1 + 4u 2 + 3u 3 3 3u u + u = 7 2 3 R: PD 1 3u 2 + 2u 3 2 u 5u 1 3 1 u1 0, u 2 0, u 3 R [min ] f = 8 x1 + 6 x 2 + 3x3 x 4
3.
2 x1 + 3 x 2 + x 4 7 3 x1 + x 2 + 2 x3 5 x 4 4 x R, x 0, x 0, x 0 2 3 4 1 [max ]g = 7 x1 + 4 x 2
2u1 + 3u 2 = 8 3u + u 6 2 R: PD : 1 2u 2 3 u 5u 1 2 1 u 1 0, u 2 0 [max ] f = 2 x1 + 7 x 2 + 2 x3
4.
R:
[min ] f
a ) S se construiasc problema dual. b) S se rezolve problema dual. c) S se determine soluiile optime ale cuplului de probleme primal-dual.
[max ]g = 3u1 + 6u 2 + 5u 3 + u 4
u1 + 2u 2 + u 4 5 2u + u + 2u 2 2 3 1 3u + 3u + 2u 6 3 4 1 u 0, i = 1,4 i
R: a ) PD :
[max ] f
a) S se construiasc problema dual. b) S se determine soluiile optime ale cuplului de probleme primal-dual.
[min ]g = 3u1 + 6u 2 + 5u 3
R: a) PD :
u1 + 2u 2 3 2u + u + u 2 2 3 1 u + u 4 3 1 u 0, i = 1,3 i
2 x1 + x 2 + 2 x3 x4 10 x + 2 x + x + 3 x 9 2 3 4 1 2 x + x + 3 x + x 8 1 2 3 4 x 0, i = 1,3 i a) S se construiasc problema dual. b) S se rezolve problema dual. c) S se determine soluiile optime ale cuplului de probleme primal-dual.
[max ]g = 10u1 + 9u 2 + 8u 3
R: a ) PD :
3 x1 x 2 + x3 7 x1 2 x 2 + 3 x3 3 2 x1 x2 x3 2 x + 2 x 2 x 8 2 3 1 xi 0, i = 1,3 a) S se construiasc problema dual. b) S se determine soluiile optime ale cuplului de probleme primal-dual.
[min ]g = 7u1 + 3u 2 + 2u 3 + 8u 4
R: a ) PD :
t b) X o = 9 , 0, 4 ; f max = 95 ; U o = 0, 7 7 7
3u1 + u 2 + 2u 3 u 4 7 ; u1 2u 2 u 3 + 2u 4 9 u + 3u u 2u 8 2 3 4 1 u 0, i = 1,4 i
t 23 13 , ,0 ; 7 7
g max = 95 .
7
[min ] f
= 3 x1 + 2 x 2 + 4 x 3 + x 4
5 x1 + x 2 4 x 3 + 2 x 4 12 3 x x 3 x + x 9 1 2 3 4 x1 + 2 x 2 2 x 3 x 4 15 x 0, i = 1,4 i
[min ] f
= 3 x1 + 2 x 2 + 4 x 3 + x 4 + 0 x 5 + 0 x 6 + 0 x 7
5 x1 + x 2 4 x 3 + 2 x 4 + x 5 = 12 3 x x 3 x + x + x = 9 1 2 3 4 6 x1 + 2 x 2 2 x 3 x 4 + x 7 = 15 x 0, i = 1,7 i
Realizm prima iteraie din tabelul simplex i verificm dac avem soluie dual realizabil ( j 0, j = 1,7 ):
CB
Baza
a5 a6
a7
XB
3
a1
2
a2
4
a3
1
a4
0
a5
0
a6
0
a7
0 0 0
fj
-12 -9 -15 0
j
-5 -3 -1 0 -3
1 -1 2 0 -2
-4 -3 -2 0 -4
2 1 -1 0 -1
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
Aplicm criteriul de ieire din baz: iese din baz vectorul corespunztor celei mai mici valori negative din coloana X B ; n cazul acesta, min{ 12,9,15} = 15 , deci iese din baz vectorul a 7 . Aplicm criteriul de intrare n baz: se calculeaz rapoartele dintre elementele liniei j i elementele strict negative de pe linia vectorului care iese din baz; va intra n baz vectorul corespunztor celui mai mic raport; n cazul nostru, min 3 , 4 , 1 = 1 , deci va rezulta c intr n baz vectorul a 4 .
{1
2 1
Stabilim pivotul i elementele din urmtoarea iteraie le vom determina folosind metoda Gauss-Jordan. Algoritmul simplex dual ia sfrit cnd se produce unul din urmtoarele evenimente: - toate elementele coloanei X B sunt mai mari sau egale cu zero; n acest caz, decizia este optim finit, iar soluia se citete din coloana X B ; - coloana X B conine elemente strict negative, iar pe linia unui vector corespunztor unei valori strict negative avem numai valori mai mari sau egale cu zero; n acest caz, decizia este: problema nu are soluie. Rezult urmtoarele iteraii:
CB
Baza
a5
XB
3
a1
2
a2
4
a3
1
a4
0
a5
0
a6
0
a7
0 0 1
a6 a4 fj a3 a6 a4 fj
-42 -24 15 15
j
4 0 1
-7 -4 1 1 -2 7/8 3/8
-8 -5 2 2 -2 1 0 0
4 0
0 0 1 1 0 0 0 1
1 0
0 1 0 0 0 0 1 0
0 0
f min = 4 21 + 1 9 = 51 .
4 2 2
PROBLEME PROPUSE
S se rezolve urmtoarele probleme de programare liniar folosind, acolo unde este posibil, algoritmul simplex dual:
[min] f = 3 x1 + 4 x2 + 5 x3
1. x1 2 x2 x3 2
2 x1 x2 3 x3 1 xi 0, i = 1,3 [max] f = x1 2 x 2 x 3 3 x 4
R: X o = (0, 1, 0 )t ; f min = 4
2. x1 + 2 x 2 3x3 x 4 6
2 x1 x 2 x 3 2 x 4 2 x i 0, i = 1,4 [min] f = 3 x1 + x 2 + 2 x 3 + 5 x 4
R: X o = (0, 0, 2, 0 )t ; f max = 2
3. 2 x1 + x 2 2 x 3 x 4 2
x1 2 x 2 x 3 2 x 4 3 x i 0, i = 1,4
t R: X o = 0, 4 , 7 , 0 ; f min = 18 5 5 5
[max] f = x1 2 x 2 + 3 x 3 4 x 4 + 5 x 5
4. 2 x1 + x 2 + x 4 + x 5 = 5
x1 x 2 + x 3 3 x 4 = 4 x i 0, i = 1,5
t R: X o = 0, 0, 11 11 , 5 11 , 11 , [0, 1] ; f max = 13 3 3
[min] f = 5 x1 + 4 x 2 + 3 x 3
5. x1 x 2 x 3 6
2 x1 + 2 x 2 x 3 4 x x + 2 x 12 2 3 1 x 0, i = 1,3 i
R: X o = (7, 5, 0 )t ; f min = 55
[min] f = 4 x1 + 3 x 2 + 2 x 3 + x 4
6. 2 x1 x 2 x3 3x 4 = 3
x1 2 x 2 3 x 3 + x 4 = 3 xi 0, i = 1,4
7. x1 x2 2 x3 4
3 x1 x2 x3 2 xi 0, i = 1,3
t R: X o = 1 , 7 , 0 ; f max = 27 . 2 2 2
[min] f = 5 x1 + 3 x 2 + 2 x 3
8. x1 x 2 + 2 x 3 4
2 x x x 1 2 3 1 x 0, i = 1,3 i
x1 x 2 x 3 5
t R: X o = 0, 14 , 1 ; f min = 44 . 3 3 3
[max] f = 3 x1 x 2 3 x3 x 4
9. x1 x 2 x3 3x 4 = 3
2 x1 2 x 2 + 3 x3 + x 4 = 3 xi 0, i = 1,4
care f max = 15 . 7
10. 2 x1 x 2 + x 3 x 4 = 4
este de minim,
[min] f = 8 x1 + 3 x 2 x1 + 2 x 2 1 x i 0, i = 1,2
11. x1 x 2 1
6.5. REOPTIMIZRI
PROBLEME REZOLVATE
[max ] f
= 7 x1 + 4 x 2
2 x1 + 3 x 2 9 x x 3 1 2 x + x 9 1 2 x 0, i = 1,2 i
a ) S se determine soluia optim a acestei probleme. b) S se determine soluia optim a problemei n cazul n care coeficienii funciei obiectiv devin: ~ b1 ) c = (4,3) ; ~ b2 ) c = (5,5) ; ~ b3 ) c = (1,6) . c) S se determine soluia optim a problemei n cazul n care temenii liberi devin: ~ c1 ) b = (1,2,3) t ; ~ c 2 ) b = (5,3,1) t .
Rezolvare: a) Forma standard de lucru a problemei este:
[max ] f
= 7 x1 + 4 x 2 + 0 x 3 + 0 x 4 + 0 x 5 2 x1 + x 1 x + 1 x 0, i 3x 2 + 0 x3 = 9 x2 + x4 = 3 x2 + i = 1,5 x5 = 9
Pentru rezolvarea problemei vom aplica algoritmul simplex primal. Realizm tabelul simplex:
CB
Baza
a3
a4
XB
7
a1
4
a2
0
a3
0
a4
0
a5
0 0 0
a5 fj
9 3 9 0
j
0 7 0
a3
a1 a5 fj
15 3 6 21
j
0 7 4
a3 a1 a2 fj
12 6 3 54
j
-2 1 1 0 7 0 1 0 7 0 0 1 0 7 0
3 -1 1 0 4 1 -1 2 -7 11 0 0 1 4 0
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0
Rezult soluia optim: X o = (6, 3, 12, 0, 0) t , f max = 54 . b) Modificarea coeficienilor funciei obiectiv Alctuim un tabel simplex n care vom copia datele din ultima iteraie a tabelului precedent, cu excepia liniei C j (unde vom scrie ~ noii coeficieni ai funciei obiectiv, dai de c ), a coloanei C B ~ (unde vom trece tot coeficienii funciei obiectiv dai de c ) i, evident, a liniilor f j i j . Dup ce calculm j sunt posibile dou situaii: 1) toate elementele liniei j sunt negative sau egale cu zero i n acest caz se poate citi soluia optim a problemei modificate; soluia optim a problemei modificate coincide cu soluia optim
a problemei iniiale. Valoarea optim a funciei obiectiv este dat de primul element al liniei f j ; 2) pe linia j exist cel puin un element strict pozitiv i n acest caz se aplic n continuare algoritmul simplex primal, pn la obinerea soluiei optime a problemei modificate. ~ b1 ) n cazul n care c = (4, 3) obinem urmtorul tabel simplex:
CB
Baza
a3 a1 a2 fj
XB
4
a1
3
a2
0
a3
0
a4
0
a5
0 4 3
12 6 3 33
j
0 1 0 4 0
0 0 1 3 0
1 0 0 0 0
Se observ c toate elementele liniei j sunt negative sau egale cu zero. Rezult c soluia optim a problemei modificate coincide cu soluia optim a problemei iniiale: ~ ~ X o = (6, 3, 12, 0, 0) t , f max = 33 .
Baza
a3
XB
5
a1
5
a2
0
a3
0
a4
0
a5
0 5 5
a1 a2 fj
12 6 3 45
j
0 5 5
a4
a1 a2 fj
0 1 0 5 0 0 1 0 5 0
0 0 1 5 0 0 0 1 5 0
Observm c toate elementele liniei j din prima iteraie sunt negative sau egale cu zero, prin urmare soluia optim a problemei iniiale este soluie optim i pentru problema modificat: ~ X 1 = (6, 3, 12, 0, 0) t . Deoarece pe linia j exist 4 = 0 , dar
vectorul a 4 nu se afl n baza optim, rezult c problema are optim multiplu. Introducnd n baz vectorul a 4 , obinem o nou ~ soluie optim: X 2 = (18 / 5, 27 / 5, 0, 24 / 5, 0) t . Soluia optim n form general a problemei este: ~ ~ X opt = X 1 + (1 ) X 2 , [0,1] , iar f max = 45 . ~ b3 ) n cazul n care c = (1,6) obinem urmtorul tabel simplex:
CB
Baza
a3
XB
1
a1
6
a2
0
a3
0
a4
0
a5
0 1 6
a1
a2 fj
12 6 3 24
j
0 1 6
a4
a1 a2
fj
0 1 0 1 0 0 1 0 5 0
0 0 1 6 0 0 0 1 5 0
Pe linia j din prima iteraie exist un element strict pozitiv ( 4 = 5 ), prin urmare vom aplica n continuare algoritmul simplex
2
~ ~ X o = ( 5 , 1 , 9 ,0,0) t , f max = 7 5 + 4 1 = 2 2 2 2 2
39 2
~ ~ Dup formula X B = B 1 b avem c soluia de baz a sistemului ~ de restricii cu termenii liberi dai de b , corespunztoare bazei {a3 , a1 , a 2 } , este:
5 1 5 12 1 2 2 ~ 1 1 X B = 0 2 2 3 = 2 , care are i o component 1 1 1 1 2 0 2 negativ; prin urmare, vom aplica n continuare algoritmul simplex dual.
~ c 2 ) b = (5,3,1) t
CB
Baza
a3
a1 a2
XB
7
a1
4
a2
0
a3
0
a4
0
a5
0 7 4
fj
12 2 -1 10
j
0 7 0
a3
a1 a4 fj
7 1 2 7
j
0 1 0 7 0 0 1 0 7 0
0 0 1 4 0 5 1 -2 7 -3
1 0 0 0 0 1 0 0 0 0
[max ] f
= 5 x1 + 9 x 2
3 x1 + 2 x 2 12 - x + x 8 2 1 x + x 6 2 1 x 0, i = 1,2 i
a) S se rezolve aceast problem. b) S se determine soluia optim a problemei n cazul n care coeficienii funciei obiectiv devin: ~ b1 ) c = (2,1) ; ~ b2 ) c = (1, 6 ) . c) S se determine soluia optim a problemei n cazul n care temenii liberi devin: ~ c1 ) b = (1, 2, 3)t ; ~ c2 ) b = (5, 3, 1)t ; ~ c3 ) b = (1, 2, 4)t .
R: a) X o = (0, 6)t , f max = 54 ; ~ ~ b) b1 ) X o = (6, 0)t , f max = 30 ; ~ ~ b2 ) X o = (0, 6)t , f max = 54 ; ~ ~ c) c1 ) X o = (1, 2)t , f max = 23 ; ~ ~ c2 ) X o = (0, 1)t , f max = 9 ; t ~ ~ c3 ) X o = 7 , 13 , f max = 152 .
(5 5 )
[min ] f
= 5 x1 + 3 x 2
4 x1 + 3 x 2 24 x x 3 2 1 x + x 9 1 2 x 0, i = 1,2 i
R: a) X o = (4, 3)t , f max = 29 ; ~ ~ b) b1 ) X o = (4, 3)t , f max = 39 ; ~ ~ b2 ) X o = (0, 7 )t , f max = 56 ; t ~ ~ c) c1 ) X o = 11 , 1 , f max = 29 ; 2 2 ~ ~o c2 ) X = (1, 0)t , f max = 5 ; ~ ~ c3 ) X o = (3, 1)t , f max = 18 .
a) S se rezolve aceast problem. b) S se determine soluia optim a problemei n cazul n care coeficienii funciei obiectiv devin: ~ b1 ) c = (6, 5) ; ~ b2 ) c = (3, 8) ; c) S se determine soluia optim a problemei n cazul n care temenii liberi devin: ~ c1 ) b = (4, 5, 6)t ; ~ c1 ) b = (5, 3,1)t ; ~ c1 ) b = (3, 2, 4)t .
6.6. REZOLVAREA UNEI PROBLEME DE PROGRAMARE LINIAR PRIN MAI MULTE METODE
PROBLEME REZOLVATE
[min ] f
= 5 x1 + 4 x2 + 6 x3
x1 + 3 x2 + x3 6 2 x + x + 2 x 12 2 3 1 3 x + x + 2 x 24 2 3 1 x 0, i = 1,3 i
Rezolvare:
Metoda I. (folosind algoritmul simplex primal) Forma standard de lucru a problemei este:
[min ] f
CB
Baza
a7
XB
5
a1
4
a2
6
a3
0
a4
0
a5
0
a6
M
a7
M
a8
M
a9
6 6 8
M M M
a8 a9 fj
6 12 24
42M
j
1 2 2 1 3 1
6M 4M
1 -1 2 0 2 0
5M -M
0 -1 0
-M -M
0 0 -1
-M -M
1 0 0
M 0
0 1 0
M 0
0 0 1
M 0
5 M M
a1 a8
a9
fj
6 0 6
6M+30
j
1 0 0
2 1 -1 0 -3 0 2 -1 -5 -1 3 0
-M-1 5M-5 -M
0 0 -1
-M -M
1 -2 -3
-5M+5 -6M+5
0 1 0
M 0
0 0 1
M 0
0 2
5 0 M
a1 a4 a9
6 0 6
6M+30
j
0 0 1
0
6 18 -
fj
5 -M/2+5/2 -M+5 0
-3M/2+5/2 M
5 0 0
fj
a1 a4 a5
8 2 4 40
j
0 0 -1
0
-M 5/3 -M
Rezult soluia optim: X o = (8,0,0,2,4,0) t , f min = 40 . Metoda II.(cu ajutorul problemei duale) Scriem i rezolvm problema dual:
[max]g = 6 y1 + 12 y 2 + 24 y 3
y1 + 2y 2 + 3 y 3 5 2 y + y + y 4 2 3 1 y + 2y + 2 y 6 2 3 1 y 0, i = 1,3 i
[max ]g = 6 y1 + 12 y 2 + 24 y 3 + 0 y 4 + 0 y 5 + 0 y 6
y1 + 2y 2 + 3 y 3 + y 4 = 5 2 y + y + y + y = 4 2 3 5 1 y1 + 2y 2 + 2 y 3 + y 6 = 6 y 0, i = 1,6 i
Baza
a4
YB
6
a1
12
a2
24
a3
0
a4
0
a5
0
a6
5/3 4 3
0 0 0
a5 a6 fj
5 4 6 0
j
24 0 0
a3 a5 a6 fj
3 1 2 0 24 1 0 0 24 0
0 1 0 0 0 0 1 0 0 0
0 0 1 0 0 0 0 1 0 0
0 2
Soluia optim a problemei primale se citete de pe linia f j , n dreptul vectorilor care au format baza iniial : X o = (8,0,0) t , f min = 40 . Metoda III. ( cu ajutorul algoritmului simplex dual) Pentru a se putea aplica algoritmul simplex dual, este necesar s avem o soluie dual realizabil. Pentru aceasta, va trebui s nmulim cel puin o restricie cu -1. Observm c cel mai convenabil este s nmulim toate restriciile cu -1; astfel, cu ajutorul variabilelor de compensare, vom obine matricea identic i algoritmul simplex va fi mai uor de aplicat, n condiiile n care s-a obinut o soluie dual realizabil.
[min ] f
= 5 x1 + 4 x 2 + 6 x 3 x1 3 x 2 x 3 6 - 2 x x 2 x 12 1 2 3 3 x x 2 x 24 1 2 3 x 0, i = 1,3 i
[min ] f
Baza
a4 a5
a6
XB
5
a1
4
a2
6
a3
0
a4
0
a5
0
a6
0 0 0
fj
-6 -12 -24 0
j
0 0 5
a4 a5
a1 fj
2 4 8 40
j
-1 -2 -3 0 -5 0 0 1 5 0
1 0 0 0 0 1 0 0 0 0
0 1 0 0 0 0 1 0 0 0
PROBLEME PROPUSE
[min] f = 5 x1 9 x 2 2x x 4 2. 1 2 x1 + 3 x 2 3 x , x 0 1 2 [max] f = 4 x1 + 3 x 2 2 x1 + x 2 5 x1 + 2 x 2 4 x , x 0 1 2
3.
[min] f = 4 x1 + x 2 3 x 2 x 2 12 4. 1 x1 + x 2 5 x , x 0 1 2
R: X o = (22, 27 )t ; f min = 61 .
[max] f = 3 x1 + 4 x 2
5. 2 x1 + x 2 12
x1 + 2 x 2 4 x , x 0 1 2
[min] f = 3 x1 + 8 x 2
6. 3x1 2 x 2 3
x1 + x 2 2 x , x 0 1 2
[max] f = 7 x1 x 2 7. 3 x1 + x 2 6 x1 + 2 x 2 4 x , x 0 1 2
R: X o = (4, 6 )t ; f max = 42 .
9. x1 + x 2 + x3 3
R: X o = (2, 2, 0 )t ; f max = 10 .
[min] f = 6 x1 x 2 + 5 x3
10. 2 x1 x 2 = 4
[min] f = 2 x1 x 2 + 2 x3
11. x 2 x + x 3 2 3 1
x + x 2x 3 2 3 1 x 0, i = 1,3 i
x1 + x 2 + x3 2
[min] f = 4 x1 3 x 2 + x3
12. 2 x x + 3x = 4 2 3 1
x1 + x 2 + x3 4
x1 x 2 + 2 x3 1 x 0, i = 1,3 i x1 + 3 x 2 + 2 x3 = 30 x1 + x 2 + x3 12 x 0, i = 1,3 i
[max] f = 2 x1 + 8 x 2 + 5 x3
13. x + 2 x + x 22 2 3 1
t R: X o = 0, 3, 5 ; f max = 16 . 2
2 x1 + x3 1 x + 2x 4 3 2 x 0, i = 1,3 i
PROBLEME REZOLVATE 1. Un produs trebuie transportat de la furnizorii F1 , F2 ctre beneficiarii B1 , B2 , B3 . Cantitile de care dispun cei trei furnizori, necesarul fiecrui beneficiar i costurile unitare de transport sunt date n tabelul urmtor:
F1 F2
Necesar
B1 3 4 40
B2 2 5 50
B3 2 6 40
Disponibil
60 70
a ) S se scrie modelul matematic al problemei. b) S se determine planul optim de transport astfel nct costul total de transport s fie minim, pornind de la o soluie de baz obinut prin metoda colului de nord-vest.
Rezolvare: Observaie. Fiecrui furnizor Fi i corespunde n coloana disponibil cantitatea de care dispune, fiecrui beneficiar B j i
corespunde pe linia necesar cantitatea de care are nevoie, iar la intersecia liniei furnizorului Fi cu coloana beneficiarului B j se poate citi elementul Cij = costul unitar de transport de la Fi ctre
B j . Notm cu N suma cantitilor de pe linia necesar i cu D
suma cantitilor din coloana disponibil. a) Notm cu xij cantitatea ce trebuie transportat de la furnizorul "i" ctre beneficiarul " j " , unde i = 1,2 , j = 1,3 i cu f costul total de transport. Observm c N = D , deci problema
este echilibrat. Modelul matematic al problemei de transport este: [min ] f (x ) = 3x11 + 2 x12 + 2 x13 + 4 x21 + 5 x22 + 6 x23
x11 + x12 + x13 = 60 x + x + x = 70 22 23 21 x11 + x 21 = 40 x + x = 50 22 12 x13 + x23 = 40 xij 0, i = 1,2, j = 1,3 b) Etapa I. Se verific dac problema este echilibrat ( N = D ); deoarece N = D = 130 , rezult c aceast condiie este ndeplinit. Etapa II. Se determin o soluie de baz, notat X 0 . Vom folosi metoda colului de nord-vest. 1) Fie NV csua situat n colul de nord-vest al tabelului X 0 . n NV se transport o cantitate egal cu minimul dintre necesarul i disponibilul corespunztoare acestei csue (n NV se scrie valoarea min{40,60}=40). 2) Se scade aceast valoare din disponibilul i necesarul corespunztor csuei NV . Dac s-a epuizat necesarul, se completeaz cu - csuele de pe coloana pe care se afl NV , iar dac s-a epuizat disponibilul se completeaz cu - csuele de pe linia pe care se afl NV . 3) Se reiau paii 1) , 2) pentru matricea rmas necompletat. Obinem soluia X 0 :
40 20 30 40
Etapa III. Se verific dac soluia obinut este: 1) nedegenerat (dac are m + n 1 componente nenule, unde m reprezint numrul de furnizori, iar n reprezint numrul de beneficiari);
2) optim (dac ij 0, ()i = 1, m, j = 1, n ). 1) Se observ c soluia X 0 este nedegenerat. 2) Pentru testarea optimalitii, introducem variabilele
u i , i = 1,2 i v j , j = 1,3 , cu proprietatea c u i + v j = C ij , unde C ij
sunt costurile unitare de transport din csuele bazice (csuele corespunztoare componentelor nenule ale soluiei). 2.1) Pentru determinarea variabilelor u i i v j vom folosi urmtorul tabel, n care am copiat costurile C ij din csuele nebazice i am dat uneia dintre variabile valoarea zero ( u1 = 0 ):
v1 = u1 =0 u2 = v2 =
v3 =
2 5
v3 =3
u1 =0 u2 =3
3 6
2 5
3 6
Toate calculele din etapa III .2) se pot sintetiza n urmtorul tabel:
X0
v1 =3 u1 =0
v2 =2
v3 =3
ij = C ij C ij
40 +
+ 20 30 -
3 6
2 5
3 6
0 2
0 0
1 0
40
u2 =3
Etapa IV. Se observ c exist valori ij > 0 , prin urmare soluia nu este optim. Se alege cea mai mare dintre diferenele ij > 0 (n cazul acesta, 21 ) i n csua corespunztoare acesteia ( x21 ) se scrie . Se formeaz un circuit ce pleac din i revine n , care merge n unghi drept i are colurile nenule. n colurile circuitului se scriu alternativ semnele + , -, ncepnd cu + de la . Se alege = minimul csuelor marcate cu -: = min{40, 30} = 30 . Cu = 30 se determin o nou soluie de baz X 1 , adunnd la csuele marcate cu + i scznd la cele marcate cu -. Vor rezulta urmtoarele iteraii:
X1
v1 =3
+ 40 X2
v2 =2
v3 =5
ij = C ij C ij
10 30 +
50
u1 =0 u2 =1
3 4
v1 =0
2 3
v2 =2
5 6
v3 =2
0 0
0 -2
3 0
ij = C ij C ij
40
50 +
X3
+ 10 30 -
u1 =0 u2 =4
0 4
v1 =1
2 6
v2 =2
2 6
v3 =2
-3 0
0 1
0 0
ij = C ij C ij
Deoarece criteriul de optim se verific ( ij 0, i = 1, 2, j = 1, 3), rezult c soluia gsit n ultima iteraie este optim.
40
20 30
40
u1 =0 u2 =3
1 4
2 5
2 5
-2 0
0 0
0 -1
Observm c toate diferenele ij = 0 corespund unor variabile bazice, deci soluia optim este unic. Am obinut X O :
40 20 30 40
sau: x11 = 0, x12 = 20, x13 = 40, x 21 = 40, x 22 = 30, x 23 = 0. Costul total minim de transport este:
f min = C ij x ij = 3 0 + 2 20 + 2 40 + 4 40 + 5 30 + 6 0 = 430 u.m.
i =1 j =1 2 3
4 2 1 70
1 5 7 80
B3 3 6 4
Disponibil
60 40 100
50
Etapa II. Determinm o soluie iniial de baz. Observaie. n cazul n care nu se specific folosirea unei anumite metode pentru aflarea unei soluii iniiale de baz, este mai bine s determinm cte o soluie prin mai multe metode i s o alegem pe aceea care are costul total de transport minim.
a)
f 0 = 960
u .m .
b) Metoda costului minim pe linie 1) Fie ML csua de pe prima linie creia i corespunde cel mai mic cost. n ML se transport o cantitate egal cu minimul dintre necesarul i disponibilul corespunztoare acestei csue (vom obine astfel x11 = 60 ). 2) Se scade aceast valoare din disponibilul i necesarul corespunztor csuei ML . Dac s-a epuizat necesarul, se completeaz cu - csuele de pe coloana pe care se afl ML , iar dac s-a epuizat disponibilul se completeaz cu - csuele de pe linia pe care se afl ML . 3) Se reiau paii 1) , 2) pentru matricea rmas necompletat. Rezult soluia X 1 :
40 30 f 1 = 510 u . m . 60 20 50
c) Metoda costului minim pe coloan obinem: 1) Fie MC csua de pe prima linie creia i corespunde cel mai mic cost. n MC se transport o cantitate egal cu minimul dintre necesarul i disponibilul corespunztoare acestei csue (vom obine astfel x31 = 70 ). 2) Se scade aceast valoare din disponibilul i necesarul corespunztor csuei MC . Dac s-a epuizat necesarul, se completeaz cu - csuele de pe coloana pe care se afl MC , iar dac s-a epuizat disponibilul se completeaz cu - csuele de pe linia pe care se afl MC . 3) Se reiau paii 1) , 2) pentru matricea rmas necompletat. Rezult soluia X2 :
70 60 20 20 30
f 2 = 470
u .m .
d ) Metoda costului minim n tabel: 1) Fie MT csua de pe prima linie creia i corespunde cel mai mic cost. n MT se transport o cantitate egal cu minimul dintre necesarul i disponibilul corespunztoare acestei csue (vom obine astfel x12 = 60 ). 2) Se scade aceast valoare din disponibilul i necesarul corespunztor csuei MT . Dac s-a epuizat necesarul, se completeaz cu - csuele de pe coloana pe care se afl MT , iar dac s-a epuizat disponibilul se completeaz cu - csuele de pe linia pe care se afl MT . 3) Se reiau paii 1) , 2) pentru matricea rmas necompletat. Rezult soluia X3 :
70 u .m . 60 20 20 30
f 3 = 470
Alegem drept soluie iniial de baz pe aceea care are costul de transport minim, adic pe X2 (care coincide cu X3 ). Etapa III. Soluia aleas este nedegenerat, rmne s verificm optimalitatea.
X0
v1 =-1
60
v2 =1
v3 =2
ij = C ij C ij
u1 =0
20 30 +
-1 3 1
1 5 3
2 6 4
-5 1 0
0 0 -4
-1 0 0
+ 70 -
20
u2 =4
u3 =2
Etapa IV.
X1
v1 =-2 u1 =0 u2 =4
v2 =1
v3 =1
ij = C ij C ij
20 50
60 20 50
u3 =3
-2 2 1
1 5 4
1 5 4
-6 0 0
0 0 -3
-2 -1 0
X O:
1 2 24
3 1 12
B3 2 3 36
Disponibil
42 30
Rezolvare: Etapa 1. Se observ c problema este echilibrat. Etapa II. Determinm o soluie iniial de baz. a) Prin metoda colului de nord-vest rezult soluia X 0 :
24 12 6 30
f 0 = 162
u .m .
24 12 18 18
b)
f 1 = 126
Soluiile obinute prin metoda costului minim pe coloan i n tabel coincid cu X 1 . Vom alege X1 drept soluie iniial de baz. Etapa III. Aceast soluie este nedegenerat; verificm optimalitatea.
X1
v1 =1
+ 18 18 -
v2 =0
v3 =2
ij = C ij C ij
24 +
u1 =0
1 2
0 1
2 3
0 0
-3 0
0 0
12
u2 =1
Observm c 21 = 0 , dar x21 nu este variabil bazic, deci problema are optim multiplu. Vom determina o nou soluie, scriind n csua x21. Rezult = 18 i o nou soluie X 2 :
6 18 36 12
5 2 40
1 6 50
B3 3 4 60
Disponibil
30 80
Rezolvare: Etapa I. Problema este neechilibrat (D < N ) . Pentru echilibrare se introduce un furnizor fictiv, avnd disponibilul egal cu N D = 40 i costurile unitare de transport nule. Obinem problema:
B1 B
2
F1 F2 F3
Necesar
5 2 0 40
1 6 0 50
B3 3 4 0
Disponibil
30 80 40
60
Etapa II. Determinm cte o soluie iniial de baz prin cele patru metode. a ) Prin metoda colului de nord-vest rezult soluia X 0 :
30 10 50 20 60
f 0 = 550
u .m .
f 1 = 270
f 3 = 470 u . m . Alegem X1 drept soluie iniial de baz. Etapa III. Aceast soluie este nedegenerat, rmne s verificm optimalitatea.
v1 =-1
X1
v2 =1
v3 =1
ij = C ij C ij
40 -
30 20
40 20
u1 =0
u2 =3
u3 =-1
-1 2 -2
1 4 0
1 4 0
-6 0 -2
0 -2 0
-2 0 0
5. S se rezolve urmtoarea problem de transport, pornind de la o soluie de baz obinut prin metoda costului minim pe linie:
B1 B
2
F1 F2
Necesar
7 5 12
3 6 24
B3 6 4 18
Disponibil
24 30
Etapa II. Determinm o soluie iniial de baz prin metoda costului minim pe linie i obinem soluia X 0 :
12 24 18
Etapa III. Observm c soluia obinut este degenerat (are numai 3 componente nenule, n loc de 4). Deoarece degenerarea soluiei s-a produs n faza iniial, vom modifica problema astfel: adugm la fiecare cantitate din coloana disponibil o valoare , iar la ultima cantitate de pe linia necesar valoarea m , unde m reprezint numrul de furnizori, iar este un numr pozitiv foarte mic, 0 . Dup ce algoritmul a luat sfrit, nlocuim cu zero i apoi citim soluia optim a problemei. Astfel obinem problema modificat:
F1 F2
Necesar
B1 7 5 12
B2 3 4 24
B3 6 6 18+2
Disponibil
24+ 30+
12
24 -
18+
v1 =5
v2 =3
v3 =6
ij = C ij C ij
u1 =0 u2 =0
5 5
3 3
6 6
-2 0
0 -1
0 0
B1 3 4 2
B2 5 4 6
B3 5 7 7
Disponibil 30 60
9 7 5 8 70
50 90
5 20
6 70
6 70
Rezolvare: Etapa I. Avem D = N = 230 u.m. , deci problema este echilibrat. Etapa II. Determinm o soluie de baz prin metoda costului minim pe coloan i obinem X 0 :
20 10 60 20 50 30 40
Etapa III. a) X 0 are 4 + 4 1 componente nenule, deci este nedegenerat. b) Testm optimalitatea soluiei:
X0
+ 10 60 20 50 + + 30 40 20
u1 = 0
u 2 = 1
u 3 = 2
v1 = 4
v2 = 5
v3 = 5
v4 = 7
ij = C ij C ij
4 3 2 5
5 4 3 6
5 4 3 6
7 6 5 8
1 -1 0 0
0 0 -3 0
0 -3 -4 0
-2 -1 0 0
u4 = 1
Se observ c 11 > 0 , prin urmare soluia nu este optim. Etapa IV. n csua x11 adugm . Alegem = min{20, 40, 20} = 20 . Cu = 20 gsim o nou soluie de baz X1 :
20 10 60 70 50 20
a ) Observm c aceast soluie este degenerat. Deoarece degenerarea soluiei s-a produs pe parcurs , vom scrie ntr-una din csuele eliberate n etapa precedent ( x13 sau x31 ). Vom obine o soluie nedegenerat X 2 :
20 10 60
70
50 20
v3 = 5
v4 = 7
ij = C ij C ij
50 70 20
u1 = 0
u 2 = 1
u3 = 2
u4 = 1
3 2 1 4
5 4 3 6
5 4 3 6
7 6 5 8
0 -2 -1 -1
0 0 -3 0
0 -3 -4 0
-2 -1 0 0
PROBLEME PROPUSE
S se scrie modelul matematic i s se determine planul optim de transport pentru urmtoarele probleme, astfel nct costul total de transport sa fie minim:
1.
B1 B
2
F1 F2
Necesar
4 5 50 50
3 6 60
B3 3 7 50
Disponibil
80 80
R: X o :
50 30 30
2.
B1 B
2
F1 F2 F3
Necesar
4 7 1 100
6 5 2 40
B3 3 1 4
Disponibil
50 80 70
60
R: X o :
50 50 20 20 60
3.
B1 F1 F2 F3
Necesar
6 4 2 70 10 40 30 50
8 5 7 80
B3 3 1 9
Disponibil
60 40 100
50
R: X :
70
4.
B1 F1 F2 F3
Necesar
4 2 1 70 40 10 40 20
1 5 7 20
B3 3 6 4
Disponibil
60 40 100
50
R: X :
20 70
5.
B1 B
2
F1 F2 F3
Necesar
5 3 2 9 8 2
2 6 8 10
B3 4 7 5
Disponibil
8 6 12
R: X :
9 4 3
f min = 89 u.m.
6.
B1
F1 F2 F3
Necesar
3 4 9 60
8 5 7 80
B3 3 6 4
Disponibil
60 40 60
50
X :
60 40 10 30 50
7.
B1 F1 F2 F3
Necesar
5 1 7 80
2 4 1 70
B3 6 3 4
Disponibil
40 60 100
50
R: X o :
20 60 20 50 50
8.
B1 F1 F2 F3
F4
Necesar
2 3 1 4 10
10
4 3 5 5 60
10 10
B3 4 6 6
Disponibil 20 50
7 6 4 7 60
40 80
5 60
R: X o :
10 50 40 20
10 10
50 + 10
F1 F2 F3
7 1 2 5 30
25 + 5
3 4 6 9 55
5 5
5
B3 5 6 1
Disponibil 30 60
8 7 5 4 60
50 80
F4
Necesar
7 70
R: X o :
30
30 5
50 15
60
10.
B1 B
2
F1 F2 F3
F4
Necesar
1 4 2 4 90
4 2 5 6 70
B3 5 7 3
Disponibil 20 55
9 7 5 8 70
40 90
6 65
R: X o :
20 55 40 70
15 20 15
15 15
5 + 15
70
6 4 2 4 25 15 50
5 3 6 6 70 20
B3 4 7 7
Disponibil 35 50
9 5 5 8 85
55 70
3 90
R: X o :
25 70 5 55 30
12.
B1 B
2
F1 F2 F3
F4
Necesar
3 8 5 1 20
2 4 6 6 40
B3 6 2 7
Disponibil 80 35
5 7 6 3 60
50 20
4 95
13.
B1 2 4 2 B2 6 4 6
F1 F2 F3
B3 5 7 1
Disponibil 30 55
9 4 5 8 80
70 90
F4
Necesar
3 35
2 65
6 70