Documente Academic
Documente Profesional
Documente Cultură
PROGRAMAREA LINIAR
Obiectivele unitii de nvare:
nelegerea i nsuirea principalelor (celor mai uzuale) metode de
rezolvare a problemelor de programare liniar;
nsuirea cunotinelor teoretice privind variantele de formulri
generale ale unei probleme de programare liniar, domeniile sale de aplicare,
teoremele matematice fundamentale, problematica programelor duale.
nsuirea cunotinelor de baz i deprinderilor practice necesare
pentru aplicarea metodei programrii liniare la rezolvarea problemelor
specifice ingineriei sistemelor de producie.
2
5
6
7
7
9
15
15
16
16
23
24
25
Bibliografie
Soluiile problemelor propuse (seciunea 3.3)
25
26
1im ,
aij, bi R
(3.1)
i condiiile de nenegativitate:
x1 0 , x2 0 ,... , xn 0 ,
(3.2)
(3.3)
3. Programarea Liniar
a
j =1
ij
x j bi ,
xj 0 ,
i = 1, 2, , m
j = 1, 2, , n
(3.4)
F = c j x j = maxim ,
j =1
a
j =1
ij
x j bi ,
xj 0 ,
i = 1, 2, , m
j = 1, 2, , n
(3.5)
F = c j x j = minim .
j =1
1im.
(3.9)
j =1
i =1
sistemul de restricii:
a
j =1
ij
(3.8a)
x j + x n +i = bi , 1 i m .
(3.9a)
xn + m
B=
X=
E=
A = [aij]
1 i m
1 j n
A X B, X O
F = C X = min.
A X B, X O ,
(3.10)
(3.11)
unde O este vectorul coloan nul (toate elementele sale sunt egale cu zero).
Forma standard matricial este:
F = C X + O E t = max .
AX + IE = B
,
X O,
EO
(3.12)
3. Programarea Liniar
F = CX = max. (min.)
AX = B
X O .
(3.13)
(3.14)
3. Programarea Liniar
de soluii indic faptul c s-au formulat prea multe restricii, astfel c practic
ele nu pot fi ndeplinite simultan n totalitate).
Observaia B: Problema de programare liniar poate avea soluii, dar nici
una dintre ele s fie admisibil, caz n care A = . n situaia n care A , este
posibil ca funcia F s fie nemrginit pe A, adic s existe un ir de soluii
admisibile de-a lungul cruia funcia obiectiv s tind spre +/- (o valoare
optimal infinit).
Observaia C: O consecin a definiiilor 6 i 7 de mai sus este c, n
condiiile n care restriciile (3.9) sunt liniar independente, fiecare dintre
soluiile de baz ale problemei este nedegenerat, deci prezint m componente
xj nenule i n componente xj nule, 1 j n + m.
Teorema 1: Un sistem de ecuaii / inecuaii liniare, de tipul (3.9)
determin o mulime convex care este fie vid, fie poliedric i nemrginit
(cu un numr finit de vrfuri ns), fie un poliedru convex. Aceast mulime
este mulimea soluiilor admisibile, A.
Teorema 2: Dac mulimea (poliedrul) convex a soluiilor admisibile nu
este o mulime vid, fiecare vrf al poliedrului (mulimii A) determin o soluie
de baz i reciproc (o soluie admisibil este un vrf al poliedrului soluiilor
dac i numai dac este o soluie de baz).
Teorema 3: A) Dac mulimea soluiilor admisibile, A, este nevid i
mrginit, problema (programul liniar) are un optim finit.
B) Dac mulimea soluiilor admisibile, A, este nevid i nemrginit,
funcia - obiectiv poate avea valoarea optimal infinit ( ) sau finit.
C) Dac mulimea soluiilor admisibile, A, este vid, programul liniar
nu are soluii (este incompatibil, deoarece sistemul restriciilor este
contradictoriu).
Teorema 4 (fundamental): Dac un program liniar are un optim finit,
atunci funcia obiectiv, F, i atinge optimul (maximul sau minimul) ntr-o
soluie de baz (vrf al poliedrului) sau eventual ntr-o combinaie convex de
soluii de baz (pe o fa a poliedrului). Practic, soluia optim se afl n unul
dintre vrfurile poliedrului convex al soluiilor admisibile, A.
Observaia D: De cele mai multe ori, soluia optimal este unic. n acest
caz, conform teoremei fundamentale enunate mai sus, soluia optimal
corespunde unei soluii de baz. Dac soluia optimal nu este unic, ea poate
corespunde unei combinaii liniare de soluii de baz
Principala consecin a teoremelor enunate mai sus i n special a celei
fundamentale este c va fi deci suficient s cutm soluia optim a problemei
de programare liniar printre elementele mulimii finite a soluiilor de baz vrfurile poliedrului soluiilor admisibile (n numr de C nn+ m ), i nu n mulimea
A, n general infinit. De aici rezult cea mai simpl metod de rezolvare (a
descrierii totale sau a variabilelor de ecart), descris n subseciunea 3.2.2.
n cazul n = 2 (problem cu dou variabile), se poate utiliza i metoda
grafic de rezolvare, prezentat n aceeai subseciune 3.2.2, n principal cu
scop didactic (pentru o mai bun nelegere a celorlalte metode).
Aceste prime dou metode de rezolvare nu pot fi aplicate cu succes n
cazurile uzuale, datorit numrului mare de restricii m i de variabile n
ntlnite n practic. De aceea, metodele uzuale de rezolvare a problemelor de
programare liniar au ca scop simplificarea algoritmului metodei variabilelor
de ecart, prin folosirea unor metode iterative cu reducerea numrului de
8
3. Programarea Liniar
ncercri pentru obinerea soluiilor optime. Cea mai rspndit dintre aceste
metode este metoda simplex (descris n subseciunea 3.3.1), care este
fundamentat teoretic pe forma explicit a unui program liniar (n raport cu o
baz dat) i pe o serie de teoreme mai complexe, pe care (din acest motiv) nu
le vom mai prezenta.
Exist multe alte metode de rezolvare a problemelor de programare
liniar, unele cu caracter general, cum ar fi utilizarea programelor duale (vezi
subseciunea 3.3.2) i altele adaptate unor probleme de structur special, cum
ar fi procedeul pas cu pas sau metoda fluxului ntr-o reea pentru problemele
de transport (a se vedea seciunea 4.1). Exist, de asemenea, unele extinderi ale
programrii liniare, cum este programarea liniar parametric sau cea n
numere ntregi. S-au dezvoltat, de asemenea, metode i algoritmi pentru
analiza sensibilitii i postoptimizare, care studiaz stabilitatea soluiei optime
n cazul (frecvent ntlnit n practic) n care constantele problemei (aij, bi, cj)
nregistreaz unele variaii.
Capaciti [buc./or]
Piesa A
Tabelul 3.1.
Piesa B
a strungului
25
40
a mainii de gurit
28
35
a mainii de lefuit
35
25
Tabelul 3.2.
Piesa B
Operaia
Piesa A
Strunjire
Gurire
lefuire
Achiziie
20/25 = 0,8
14/28 = 0,5
17,5/35 = 0,5
2,0
20/40 = 0,5
14/35 = 0,4
17,5/25 = 0,7
3,0
Total cheltuieli
Pre vnzare
3,8
5,0
4,6
6,0
Profit/pies
1,2
1,4
3. Programarea Liniar
Rezolvarea prin metoda grafic este ilustrat n figura 3.1. Dreptele Di,
i=1,2,3 , corespund celor trei restricii ale problemei. Dac am reprezenta i
familia de drepte reprezentnd funcia F (pentru a nu ncrca fig. 3.1, acestea
nu au mai fost incluse pe grafic), se obine ca soluie optimal cea
corespunztoare punctului B, i anume:
xopt = 17 buc./or ,
yopt = 13 buc./or .
O (0, 0)
A (0, 25)
B (17, 13) D1D3
C (25, 0)
40
30
A
20
B
10
C
O
10
20
30
40
D1 D2
x
D3
35 x + 28 y + v = 980
25 x + 35 y + w = 875
x, y 0
u , v, w 0
5 4/
C nn+ m = C52 =
= 10 .
1 2/
Soluiile de baz obinute sunt prezentate n tabelul 3.3. Dintre cele 10
soluii, 6 (menionate ca imposibile n tabel) nu sunt admisibile, deoarece
prezint i valori negative ale variabilelor de baz: soluiile 2, 3, 6, 7, 8 i 10.
Celelalte 4 soluii sunt soluiile de baz admisibile (i anume 1, 4, 5 i 9), care
11
Tabelul 3.3.
Soluia
Comentarii
1000
980
875
40
- 140
- 525
35
125
- 350
25
375
280
35
25
105
250
30
28
- 120
175
35
- 400
- 125
- 245
100/7 120/7
16,94 12,90
25,9
38,39
10
xopt = 17 buc./or ,
yopt = 13 buc./or ,
Fmax = 38,4 /or .
Aplicaia 3.2 (problem cu domeniul OABC nemrginit): S se rezolve
urmtoarea problem de programare liniar.
3 x1 + 4 x 2 12 (d1 )
(d 2 )
2 x1 + x 2 2
x 2x 2
(d 3 )
2
1
x1 , x 2 0
F = 3 x1 + 4 x 2 = max .
2 x1 + x2 + x4 = 2
x 2x + x = 2
2
5
1
xi 0, i = 1, ...,5
12
3. Programarea Liniar
x2
d2 d1
soluie variabil
3
2
4 4
+ a
5 5
18 3
x2 = + a
5 5
x1 =
B
A
C
-4
-1
A (0, 2)
B (4/5, 18/5)d1d2
C (2, 0)
d3
x1
-1
Categorii de reparaii
x1
x2
Tabelul 3.4.
Total disponibil
resurse
15 kg
24 ore
**
6 x1 + 2 x2 24
3) condiiile de ne-negativitate: x1 0 , x2 0 .
sunt reprezentate dou drepte ale familiei F, una pentru d = 100 i cealalt
pentru d = 975, care trece prin B). Soluia optimal este deci:
x1opt = 3,75 buc. ,
x2opt = 0,75 buc. ,
Fmax = 975 .
x2
x1 = 0
(0; 3)
3)
AA(0;
B (3,75; 0,75)
BC(3,75;
(4; 0) 0,75)
(la x2 = 12)
C (4; 0)
6x1 + 2x2 = 24
A
F = max. [d=975]
3
3x1 + 5x2 = 15
2
- F [d=100]
x2 = 0
C
x1
6 x1 + 2 x2 + x4 = 24
x1 0, x2 0, x3 0, x4 0
3. Programarea Liniar
Soluia
x1
x2
x3
x4
Tabelul 3.5.
Comentarii
15
24
18
900
12
- 45
-6
800
3,75
0,75
975
Soluie OPTIMAL
(pct. B, F = max)
6 x1 + 10 x2 30
x1 0 , x2 0 .
F = 200x1 + 100x2 = max.
15
xib +
a
jJ
ij
x j = bi , i I ,
16
(3.15)
F= F
c
jJ
3. Programarea Liniar
xj
(3.16)
40. se aplic testul pentru optim infinit ce stabilete dac problema are
un optim infinit: dac aik 0, oricare ar fi i I, atunci problema are
un optim infinit; n caz contrar (exist cel puin un i I, pentru care
aik > 0), se trece la pasul urmtor;
0
5 . se aplic criteriul de ieire din baz: se determin r I (variabila xr
fiind cea care iese din baz), prin aplicarea relaiei de mai jos:
17
b
br
= min i
i
I
;
a
>
0
ik
ark
aik
(3.17)
18
3. Programarea Liniar
x1 + 2 x2 + 2 x3 13
3 x x + x 5 i = 1,2,3
3
1 2
f = 2 x1 + 3x2 + 5 x3 = maxim
Forma standard a problemei se obine din cea canonic din enunul de
mai sus, prin introducerea variabilelor de ecart (funcia - obiectiv f este
aceeai):
x1 + x2 + x3 + x4 = 7
x + 2 x + 2 x + x = 13
1
2
3
5
3 x1 x2 + x3 + x6 = 5
xi 0, 1 i 6
x5 + x1 + 2 x2 + 2 x3 = 13
(*)
x6 + 3 x1 x2 + x3 = 5
f = 0 (2 x1 3 x2 5 x3 )
19
x4 = 7
pentru x = 13
5
x1 =0
x6 = 5
x2 = 0
x3 = 0
f =0
Se alege apoi noua variabil care s intre n baz, astfel nct f s creasc
cel mai rapid. Aceast variabil este x3, ce are coeficientul pozitiv cel mai mare
n expresia funciei obiectiv f.
Se alege variabila din baza iniial care s ias din baz. Aceast
variabil este cea pentru care raportul dintre termenul liber i coeficienii noii
variabile de baz, x3, este pozitiv i minim. Aceti coeficieni sunt:
pentru x4 7/1 = 7;
pentru x5 13/2 = 6,5;
pentru x6 5/1 = 5.
Rezult deci c x6 este variabila care iese din baz. Noua baz este
x3, x4, x5, iar noile variabile din afara bazei sunt x1, x2, x6.
Etapa 20, iteraia 2: Se exprim noua baz i f n funcie de noile variabile
din afara bazei. Din a treia ecuaie (*), se exprim x3 i se nlocuiete apoi n
celelalte ecuaii. Rezult astfel urmtorul sistem, ce reprezint forma explicit
n raport cu noua baz:
x3 = 5
x3 + 3 x1 x2 + x6 = 5
x 2 x + 2 x x = 2 pentru
x4 = 2
1
2
6
() 4
x =0
x5 = 3
x5 5 x1 + 4 x2 2 x6 = 3 x12 =0
f = 25 13 x1 + 8 x2 5 x6 x3 =0 f = 25 (> 0)
Noua variabil care intr n baz este acum x2, unica ce are un coeficient
pozitiv n expresia lui f. Valorile coeficienii variabilelor de baz ce trebuie
determinai pentru a stabili variabila ce iese din baz sunt:
pentru x3 5/-1 = - 5 (<0);
pentru x4 2/2 = 1;
pentru x5 3/4 = 0,75.
Rezult deci c variabila care iese din baz este x5.
Etapa 20, iteraia 3: Noua baz, care este acum x2, x3, x4, se exprima
(alturi de f) n funcie de noile variabile din afara bazei, x1, x5, x6, obinnd
forma explicit n raport cu baza de la aceast iteraie:
5
1
1
3
3
x2 4 x1 + 4 x5 2 x6 = 4
x2 = 4 = 0,75
7
1
1
23 pentru
23
x3 + x1 + x5 + x6 =
x3 =
= 5,75
( ) 4 4
2
4 x1 =0
4
1
1
1
1
x5 =0
x4 + x1 x5 =
x4 = = 0,5
x6 =0
f = 312 3x 2 2 x 2x
f = 31 2 (> 25)
1
5
6
3. Programarea Liniar
(**) pentru iteraia 2 i (***) pentru iteraia 3. Linia de sub cele trei variabile
de baz conine valoarea funciei obiectiv la iteraia respectiv i coeficienii cu
semn schimbat ai lui f din forma explicit corespunztoare iteraiei.
Iteraia
Tabelul 3.6.
x5
x6
CO
VB
VVB
x1
x2
x4
x5
13
(*)
x6
-1
-2
-3
-5
x3
x4
x3
-1
x4
-2
-1
(**)
x5
-5
-2
25
13
-8
x2
3/4
-5/4
1/4
-1/2
x3
23/4
7/4
1/4
1/2
(***)
x4
1/2
1/2
-1/2
31
x4 :
11 - 1 (-1)
=2
1
2 1 - 2 (-1)
=4
1
- 3 1 - (-5) (-1)
= 8
1
x2
0 1 - 1 1
= 1
1
0 1 - 2 1
= 2
1
0 1 - (-5) 1
=5
1
x6
2 x1 + 4 x2 12
4 x + 3 x + 8 x 10
1
2
3
x1 0, x2 0, x3 0
f = x1 + 3x2 2 x3 = maxim
21
Forma standard a problemei, obinut din cea canonic de mai sus, prin
introducerea variabilelor de ecart, este urmtoarea (funcia - obiectiv f fiind
aceeai, nu a mai fost scris din nou):
3x1 x2 + 2 x3 + x4 = 7
2 x + 4 x + x = 12
1
2
5
4 x1 + 3x2 + 8 x3 + x6 = 10
xi 0, 1 i 6
Rezolvare: Baza iniial este: x4 = 7, x5 = 12, x6 = 10, pentru care f = 0.
Variabilele din afara bazei sunt necunoscutele iniiale ale problemei: x1, x2, x3.
Se trece la ntocmirea tabelului simplex (tabelul 3.7 de mai jos) ncepnd
cu prima iteraie, prin aplicarea regulilor enunate mai sus.
La iteraia 1, variabila care intr n baz este x2, singura care prezint
coeficient negativ n linia funciei-obiectiv. Variabila ce iese din baza iniial
este x5, deoarece prin mprirea coloanei VVB la coloana variabilei x2, se obin
valorile: pentru x4 -7 (valoare negativ); pentru x5 3 (cea mai mic
valoare pozitiv); pentru x6 3,33. Pivotul transformrii este evideniat n
tabel, iar coeficienii pentru iteraia urmtoare s-au calculat conform regulilor
explicate mai sus.
Tabelul 3.7.
Iteraia
Coef.
fc. ob.
VB
VVB
x1
x2
x3
x4
x5
x6
x4
-1
x5
12
-2
x6
10
-4
-3
x2
-1/2
1/4
x4
10
5/2
1/4
x6
-5/2
-3/4
-1/2
3/4
-1
x1
4/5
2/5
1/10
x2
2/5
1/5
3/10
x6
11
10
-1/2
11
12/5
1/5
4/5
La iteraia 2, variabila care intr n baz este x1, singura care prezint
coeficient negativ n linia funciei-obiectiv. Variabila ce iese din baza iniial
este x4, deoarece prin mprirea coloanei VVB la coloana variabilei x1, se
obine o valoare pozitiv doar pentru variabila x4.
22
3. Programarea Liniar
F
c j x j = min im
=
=
1
j
( P ) x j 0,
1 j n
n
aij x j bi , 1 i m
j =1
G
bi yi = max im
=
i =1
(D) yi 0,
1 i m
m
aij y j c j , 1 j n
i =1
(3.18)
23
A) Dac (P) are o soluie optim finit, atunci (D) are o soluie
optim finit, iar minF = maxG (valorile optime ale funciilor obiectiv ale
celor dou programe sunt egale).
B) Dac (P) respectiv (D) are soluie optim infinit, atunci (D)
respectiv (P) nu are soluie.
C) Dac (P) respectiv (D) nu are soluie, (D) respectiv (P) fie
nu are soluie, fie are soluie optim infinit.
Consecin (pentru enunul A): Dac x = ( x j ) i y = ( y i ) sunt un cuplu
de soluii de baz, atunci exist relaia:
n
j =1
i =1
F ( x ) = c j x j bi yi = G ( y ) .
(3.19)
x1 + x2 3
y2 + y3 1
x + x 1
y,y ,y 0
1
2
1 2 3
1
max f = x1 + x2
min g = 2 y1 + 3 y2 + y3
2
24
3. Programarea Liniar
2 x1 + x2 + x3 4
x + 2x + 2x 6
2
3
1
x1 0, x2 0, x3 0
f = 5 x1 + 10 x2 + 20 x3 = maxim
Bibliografie
1. Baciu, A., Pascu, A., Puca, E., Aplicaii ale cercetrii operaionale,
Editura Militar, Bucureti, 1988.
2. Brbatu, Gh., Ionescu, V., Cercetarea operaional n ntreprinderile
industriale, Editura Tehnic, Bucureti, 1981.
3. Bebea, N., Metode pentru rezolvarea problemelor de optimizare,
Editura Didactic i Pedagogic, Bucureti, 1976.
4. Dumitrescu, A., Bazele ingineriei sistemelor, Editura Universitii
din Ploieti, 2005.
5. Dumitrescu, I., .a., Aplicaii inginereti ale calculatoarelor, Vol. 2
Optimizri, Editura Didactic i Pedagogic, Bucureti, 1976.
6. Kaufmann, A., Metode i modele ale cercetrii operaionale, Editura
tiinific, Bucureti, 1967.
7. Nica, V., Ciobanu, Gh., .a., Cercetri operaionale, Vol. I, Ed.
Matrix Rom, Bucureti, 1998.
8. Oprian, Gh., Simion, E., Elemente de cercetri operaionale i
criptologie, Editura Politehnica Press, Bucureti, 2002.
9. Rendi, Dorina-Marieta, Metode ale cercetrii operaionale:
programare liniar, teoria jocurilor, teoria grafurilor, Editura
Orizonturi Universitare, Timioara, 2002.
10. Vrnceanu, Gh., Mititelu, t., Probleme de cercetare operaional,
Editura Tehnic, Bucureti, 1978.
1.
2.
25