Documente Academic
Documente Profesional
Documente Cultură
mare sau o infinitate de soluţii admisibile, oferind procedeul de selecţie, din spaţiul
soluţiilor, a unei singure soluţii, numită soluţia optimă, şi care satisface una sau
1. Generalităţi. Clasificări.
O mare parte din problemele care se pun în conducerea economică a
Dacă notăm prin xj, 1£j£n, nivelele (necunoscute iniţial) la care trebuie să
obiectiv (sau funcţia de eficienţă sau funcţia criteriu ), problema poate fi pusă
astfel:
fj(x1,x2,...,xn) ³ 0, 1 £ j £ m , (0.2)
fj(x1,x2,...,xn) ³ 0, 1 £ j £ m , (0.4)
agenţilor economici pot fi numite procese de decizie în mai multe etape şi pot fi în
O problemă deosebit de dificilă apare în cazul în care unul sau mai mulţi
priori sau sunt variabile aleatoare ale căror funcţii de repartiţii se pot determina; în
obţine câştigul maxim într-un joc; teoria jocurilor are numeroase aplicaţii practice
în acest domeniu.
Teoria grafurilor şi reţelelor de transport are aplicaţii deosebit de
PROGRAMARE LINIARĂ
programare liniară.
problemă:
maşini-unelte, resurse financiare etc.) care ne sunt date în cantităţi limitate. Vom
i. Cu ajutorul acestor resurse se pot desfăşura mai multe activităţi (de exemplu:
exemplu: dacă avem procesul de producţie j, care constă în fabricarea unui anumit
- cantitatea totală din resursa i folosită pentru producţia totală formată din n
produse:
ai1x1+ai2x2+...+ainxn .
a
j 1
ij x j bi
, iÎ{1, 2,..., m}. (1.1) Deoarece xj
negativ:
nenegativitate.
soluţie sau nici una. Pentru problemele corect puse cel mai frecvent este cazul cu o
infinitate de soluţii.
Adoptarea unei variante de plan (luarea unei decizii) se face pe baza unui
c x
j 1
j j
ceea ce nu prea este în concordanţă cu realitatea) atunci venitul total va fi:
d x
j 1
j j
, iar cheltuielile de producţie , şi deci beneficiul obţinut va fi:
n n n
c x d x (c
j 1
j j
j 1
j j
j 1
j d j )x j
.
(cj 1
j d j )x j
. (1.3)
Problema care se pune acum este de a determina acea variantă de plan, adică
acea soluţie a sistemului de inegalităţi (1.1), (1.2) care dă pentru beneficiarul (1.3)
n
max (c j d j ) x j
n j 1
aij x j bi
j 1
x j 0
(1.4)
b) O problemă de transport.
xij ³ 0, 1 £ i £ m, 1 £ j £ n . (1.9)
m n
c x
i 1 j 1
ij ij
centre de consum este .
m n
a b
i 1
i
j 1
j
Pentru a putea efectua transportul este necesar ca .
acestea trebuie alese cele care dau costului total de transport valoarea minimă.
c x
i 1 j 1
ij ij
min (1.10)
x ij ai
j 1
, 1£i£m (1.11)
x ij bj
i 1 , 1£j£n (1.12)
xij ³ 0, 1 £ i £ m, 1 £ j £ n, (1.13)
totale de transport:
m n
c x
i 1 j 1
ij ij
min , (1.14)
în condiţiile
x ij ai
j 1
, 1£i£m (1.15)
x ij bj
i 1 , 1£j£n (1.16)
cantităţile necesare uzinelor, iar cij este costul unitar de transport de la depozitul i
m n
a b
i 1
i
j 1
j
la uzina j. Pentru a avea soluţii trebuie ca .
model similar în care grupurile de inecuaţii (1.15), (1.16) îşi schimbă sensul.
c) O problemă de investiţii.
este
a x
j 1
j j
max (1.18)
x
j 1
j S
(1.19)
xj ³ 0, 1£j£n. (1.20)
Problema mai poate fi complicată dând anumite reguli suplimentare în
programare liniară
Scrisă matriceal, cea mai generală problemă de programare liniară are forma
A x1 A x 2 A x 3 b
31 32 33 3
(2.1)
x1 ³ 0, x2 oarecare, x3 £ 0
nepozitivitate.
Ax b
x 0
min(max)cx
n
cx ci xi
i 1 (2.2)
Se spune că o problemă are forma canonică dacă toate restricţiile sunt
nenegativitate
Ax b
x 0
min cx
(2.3)
Ax b
x 0
max cx
(2.3')
Observaţie: Orice problemă de forma (2.1) poate fi adusa la forma standard sau
egalitate:
max f ( x) min f ( x)
xX xX
ax b
ax b
ax b
xB
BS 3 b
x sau BxB + SxS = b. (3.1)
şi avem
xB = B1bB1SxS .
xB = B1b , xS=0.
componente nenule.
nule.
se numeşte program de bază (x=0 este program de bază dacă x=0 este program).
Teorema 1. Dacă problema (2.2) are un program, atunci are cel puţin un program
de bază.
Teorema 2. Dacă problema (2.2) are un program optim, atunci are şi un program
de bază optim.
1.4. Fundamentele algoritmului simplex (Danzig
1951)
astfel:
pentru toate bazele B din matricea A (aceste sunt, evident, în număr finit),
acelea care sunt programe de bază (B1b ³ 0) şi alegem pe aceea care dă funcţiei
obiectiv valoarea optimă (cea mai mică sau cea mai mare).
dă funcţiei obiectiv o valoare mai mare sau mai mică, după cum problema este de
cazurile în care problema (2.2) nu are programe sau are optim infinit.
Astfel, dacă B este o bază (să presupunem că B1b ³ 0), sistemul Ax=b se
poate scrie
sau
x B x B y Bj x j
jS
(4.1)
sau pe componente
x B B 1b (4.2)
y Bj B 1a j
, (4.3)
y Bj B 1a j e j
Observaţie: Pentru jÎ B, , ej fiind vectorul unitate.
astfel
n
z c j x j c j x j ci xB yijB x j ci xiB ci yijB c j x j
j 1 jS iB jS iB jS iB
sau
z z B z Bj c j x j
jS
, unde (4.4)
z B ci xiB cB x B
iB (4.5)
z Bj ci yij cB y Bj
iB . (4.6)
Teorema 4. Dacă ($)kÎS cu zk-ck > 0, atunci programul asociat bazei B nu este
optim (cu excepţia cazului când programul este degenerat) şi poate fi îmbunătăţit
Teorema 5. Dacă ($)kÎS cu zk-ck > 0, şi dacă yik £ 0, pentru (")iÎB, atunci
Teorema 6. Dacă zk-ck > 0, dar ($)yik > 0, atunci xk poate creşte până la
valoarea:
xi x
min l
i yik 0 y y lk ,
ik (4.7)
~
pentru care se obţine un nou program de bază asociat bazei B dedusă din B prin
Observaţie: Dacă există mai mulţi indici k pentru care z k-ck > 0, ar fi preferabil să
xl
zk ck
se aleagă acela pentru care ylk are cea mai mare valoare, ceea ce
asigură, în general, o scădere mai rapidă a funcţiei obiectiv şi dă un număr mai
min c x
Ax b
x0
sub forma standard. Pentru această problemă algoritmul simplex are următorul
enunţ.
y Bj B 1a j z Bj
j
(a - coloanele din A), -cj, 1 £ j £ n.
z Bj
1) dacă toţi -cj £ 0, jÎB, programul este optim. Stop !
z Bj
2) dacă ($) -cj > 0, se determină k astfel încât
zk-ck= max{zj-cj}.
xl x
min i
ylk i yik 0 yik
.
~ ~ ~ ~
x B , z B , y Bj z jB c j
, 1 £ j £ n, , 1 £ j £ n, şi se trece la pasul 1,
~
înlocuind baza B cu baza B .
Ax b
x 0
max cx
transformarea sa
într-un tablou numit tabel simplex. Presupunem că baza B este formată din
Coeficienţii
variabilelor
de bază în cl xl xl 0 ... 1 ... 0 yl,m+1 ... yl,k ... yl,n
funcţia
obiectiv
zj-cj
de bază.
B
adică z .
y Bj
Coloanele următoare conţin vectorii (având grijă că pentru variabilele
y Bj
de bază =ej), iar ultima linie conţine diferenţele zj-cj= cB yi-cj.
z Bj B
Pentru calculul elementelor -cj şi z ale primului tablou este util să
~ xl ~ y
xkB ; ykjB lj
ylk ylk (6.1)
~ xl ~ y lj
xiB xi yik i l ; yijB yij yik i l
ylk y lk (6.2)
y lj
; z jB c j z j c j z k ck
~ xl ~
z B z B z k ck
ylk y lk (6.3)
strict necesare.
1.7. Exemplu
Din studiile efectuate, s-a dedus că din timpul lunar de lucru al unor maşini
M1, M2, M3 ce lucrează într-o secţie a unei întreprinderi, ele nu sunt folosite 8 ore,
P1 P2
M1 2 1
M2 3 2
M3 1 3
Rezolvare:
produse.
Formularea matematică a problemei este
2 x1 x2 8
3x 2 x 24
1 2
x1 3 x2 18
x , x 0
1 2
max z 4 x1 3x2
max z 4 x1 3x2
2 x x x 8
1 2 3
3x1 2 x2 x4 24
x 3 x x 18
1 2 5
xi 0, i 1,5
4 3 0 0 0 Alegem min
xi
CVB VB VVB x1 x2 x3 x4 x5
yik
0 8
x3 8 2 1 1 0 0 4
2
24
0 x4 24 3 2 0 1 0 8
3
18
0 x5 18 1 3 0 0 1 18
1
valoarea
alegem min
funcţiei 0 -4 -3 0 0 0
zj-cj<0
obiectiv z
1 1
4 x1 4 1 0 0 8
2 2
1 1
0 x4 12 0 1 0 24
2 2
0 5 1 28
x5 14 0 0 1
2 2 5
valoarea
alegem min
funcţiei 16 0 -1 2 0 0
zj-cj<0
obiectiv z
La prim iteraţie a ieşit din bază x3 şi a intrat x1 , iar la iteraţia a doua a ieşit
din bază x5 şi a intrat x2 .
4 3 0 0 0 Alegem min
xi
CVB VB VVB x1 x2 x3 x4 x5
yik
6 3 1
4 x1 1 0 0 8
5 5 5
46 2 1
0 x4 0 0 1 24
5 5 5
28 1 2 28
3 x2 0 1 0
5 5 5 5
valoarea
alegem min
9 2
funcţiei 23,2 0 0 0
5 5
zj-cj < 0
obiectiv z
c) Culegerea rezultatelor din tabelul simplex final
Maximul funcţiei de optimizat este 23,2 şi se obţine pentru
x1=1,2 ; x2=5,6 ; x3=0 .
Soluţia de bază este nedegenerată.
Valorile variabilelor auxiliare
x3=0 ; x4=9,2 ; x5=0 ,
arată că soluţia optimă face egalităţi doar restricţiile 1 şi 3 , adică se foloseşte
integral timpul la aceste maşini, iar cea de-a doua inegalitate arată că prin aceasta
soluţie nu se utilizează integral timpul celei de-a doua maşini.
Degenerare şi ciclare
la fiecare iteraţie, atunci nici o bază nu se poate repeta (fiecărei baze îi corespunde
m
numărul bazelor este finit (cel mult Cn ), rezultă că într-un număr finit de iteraţii
se ajunge la una din situaţiile a.1) sau b.1) din enunţul algoritmului simplex.
succesive, este posibil să revenim la una din bazele prin care am trecut deja, şi
ciclare.
xl
zk ck
y
Variaţia funcţiei obiectiv la o iteraţie este lk şi această expresie
este nulă dacă şi numai dacă xl =0, adică dacă programul este degenerat.
Pentru o problemă nedegenerată, convergenţa algoritmului simplex, mai
precis faptul că el conduce la o soluţie într-un număr finit de iteraţii, este asigurată.
atunci când criteriul de ieşire al algoritmului simplex, mai precis minimul (4.7), nu
defineşte în mod unic variabila care iese din bază. Presupunem că acest minim se
xl x
h
atinge pentru 2 indici l şi h, adică ylk yhk , şi presupunem că alegem variabila
~ yhk
xhB xh xl 0
xl să părăsească baza. Atunci ylk , şi deci noul program de bază va
fi degenerat.
în acest caz.
liniile corespunzătoare variabilelor nule din tabelul simplex prin pivoţii posibili,
mergând de la stânga spre dreapta; în momentul când unul dintre rapoarte este
mai mic decât celelalte, precizăm variabila care iese din bază ca fiind cea care
algoritmului simplex
vor desfăşura toate cele n activităţi posibile (deci nu se vor produce toate cele n
economice.
unele vor trebui reduse, şi cum nu pot fi reduse decât cel mult până la 0, rezultă că
xk poate creşte cel mult până la valoarea dată de (4.7), pentru care activitatea de
z ck ci yik ck zk
iB
simplex.
când, pentru toate activităţile care nu sunt în bază, avem zk-ck ³ 0, şi deci nici o
1.10. Determinarea unui program de bază iniţial.
Metoda celor două faze permite obţinerea unui program de bază de plecare
min cx
Ax b
x 0
. (10.1)
a
respectivă cu -1. Adăugăm la fiecare ecuaţie câte o variabilă artificială xi şi
obţinem:
Ax Ix a : b
x 0
xa 0
(10.2)
Problema (2.2) are programe dacă (10.2) are programe (x, xa), cu xa=0.
min xia W
Ax Ix 0
a
xi 0, 1 i n
x aj 0, 1 j m
Faza I (10.3)
x=0, xa=b (³0), corespunzător bazei I din matricea acestui sistem [A,I].
a
Deoarece xi ³ 0 Þ xa
i 0
, şi deci minW ³ 0. Sunt posibile 2 cazuri:
(i)(i) dacă minW > 0, atunci problema (10.1) nu are program de bază (dacă ar
Ax b
x 0
min cx
. Faza a II-a
a
Observaţie: Faza I constă din eliminarea din bază a variabilelor artificiale xi şi
înlocuirea lor cu variabilele xj. Când toate variabilele au fost eliminate din bază,
adică la sfârşitul fazei I, coloanele acestora sunt şterse din tabelul simplex şi se
începe faza a II-a pornind de la acest tabel simplex, în care calculăm doar
Dacă rangA<m sau dacă problema este degenerată, atunci când se ajunge la
min
a
x i
=0, este posibil să mai rămână în bază câteva variabile artificiale,
(ii) (ii) dacă rangA<m, nu este posibilă eliminarea tuturor variabilelor xia
(câteva rămân în bază cu valoarea 0). În acest caz, liniile corespunzătoare ale
xj putând fi luată în baza iniţială. Desigur că dacă există k astfel de variabile vom
programare. În acest caz, la sfârşitul fazei I nu mai înlăturăm din tabel coloanele
Exemplu: O balastieră are 3 linii de sortare S1, S2, S3, pentru 2 tipuri de agregate
A1, A2 şi trebuie să sorteze 300 tone din primul tip şi 372 tone din al doilea tip.
Agregat A1 A2 Beneficiu
Linie
de sortare
S1 2 1 5 u. m.
S2 3 2 4 u. m.
S3 1 2 6 u. m.
Cantitatea ce 300 tone 372 tone u. m. unităţi
trebuie sortată monetare
Rezolvare:
a) Modelarea problemei
2 x1 3 x2 x3 300
x1 2 x2 2 x3 372
x , x , x 0
1 2 3 .
2 3 1
A
Deoarece matricea 1 2 3 a restricţiilor nu are o bază evidenţiată,
i) Faza I
min x1 x1
a a
2 x1 3x2 x3 x1a 300
x1 2 x2 2 x3 x2 372
a
x , x , x , xa , xa 0
1 2 3 1 2
0 0 0 1 1 Alegem min
xi
CVB VB VVB x1 x2 x3 x1a x2a
yik
1 300
x1a 300 2 3 1 1 0 100
3
372
1 x2a 372 1 2 2 0 1 186
2
100
2 1 300
0 x2 100 1 0 1
3 3
3
1 172
1 4 129
x a
2 172 0 1 4
3 3
3
3
0 x2 57 1 0 8
4
1
0 x3 129 0 1 24
4
max {5x1+4x2+6x3 }
4
x1 3 x2 57
1
x2 x3 57
3
x1 , x2 , x3 0
5 4 6 Alegem min
xi
CVB VB VVB x1 x2 x3
yik
4 3 228
x2 57 1 0
4 3
1
6 x3 129 0 1 24
4
4
5 x1 76 1 0
3
6 x3 148 0 0 1
nedegenerată.
A x1 A x 2 A x 3 b
31 32 33 3
x 0, x arbitrar , x 0
1 2 3
. (11.1)
At u 1 At u 2 At u 3 c
31 32 33 3
u 0, u arbitrar , u 3 0
1 2
. (11.2)
Duala dualei este chiar problema iniţială. De aceea, (11.1) şi (11.2) formează
a) a) termenii liberi din problema primală devin coeficienţi ai funcţiei obiectiv în
problema duală,
b) b) coeficienţii funcţiei obiectiv din problema primala devin termeni liberi în
problema duală,
minimizare (maximizare),
f) f) variabilele duale (primale) asociate unor restricţii primale (duale) care sunt
max bu
t
A u c
u arbitrar
(11.4)
min cx
Ax b
x 0
(11.5)
max bu
t
A u c
u 0
(11.6)
min cx
A1 x b1
A2 x b2
x 0
(11.7)
este problema
max(b1u1 b2u 2 )
t 1
A1 u A2u c
t 2
u1 0, u 2 arbitrar
. (11.8) În
b) b) una dintre probleme are programe, iar cealaltă nu are; în acest caz,
Corolar. Dacă într-un cuplu de probleme duale, una dintre probleme are un
F(x,u)=c'x+b'u-u'Ax (11.11)
u b ax
i i i
F(x,u)=c'x+ i 1 (11.12)
min cx
Ax b
x 0
(forma standard) (11.14)
max u b
u A c
u arbitrar
(duala formei standard) (11.15)
O condiţie suficientă (şi necesară dacă (11.14) nu este degenerată) pentru ca baza
obiectiv descreşte spre minim, în timp ce algoritmul simplex dual funcţia obiectiv
următorii paşi.
2) dacă
ylj 0 , atunci se determină k astfel încât
z k ck zj cj
min
ylk j ylj 0 ylj
.
~
şi se trece la pas înlocuind B cu B .
ecart formează o soluţie de bază dual admisibilă, deoarece în acest caz zi-ci= ci £ 0.
restricţie nouă
x r , 1 r k
cu M suficient de mare, xn+1 o nouă variabilă, iar , fiind
c r 0
variabilele care corespund coeficienţilor .
Dacă
c f max c j c j 0 , se înlocuieşte x f
din restricţia suplimentară
x f
în funcţia obiectiv. Se obţine o mulţime de n variabile ( xn+1 înlocuieşte )
Exemplu.
Probleme propuse
B300). Staţia este organizată astfel încât fiecare betonieră poate produce orice
ciclurilor de transport pentru cele 3 mărci de betoane fiind de 0,1 ; 0,2 şi 0.1 zile
respectiv 200, 300 şi 400 kg/m3 . Staţia este aprovizionată zilnic cu o cantitate de
Rezolvare
Modelare problemei
transport )
x1 2 x2 x3 1000
2 x 3 x 4 x 1800
1 2 3
xi 0 , i 1, 2, 3
x1 2 x2 x3 x5 1000
2 x 3 x 4 x x 1800
1 2 3 6
xi 0 , i 1,6
xi
CVB VB VVB x1 x2 x3 x4 x5 x6
yik
0 x4 600 1 1 1 1 0 0 600
0 1000
x5 1000 1 2 1 0 1 0 500
2
1800
0 x6 1800 2 3 4 0 0 1 600
3
valoarea
alegem min
funcţiei 0 -1 -1,2 -0,8 0 0 0
zj-cj<0
obiectiv z
0 1 1 1
x4 100 0 1 0 200
2 2 2
1 1 1
1,2 x2 500 1 0 0 1000
2 2 2
1 5 3
0 x6 300 0 0 1 600
2 2 2
valoarea
alegem min
funcţiei 600 -0,4 0 -0,2 0 0,6 0
zj-cj<0
obiectiv z
1 1
x1 200 1 0 1 1 0 200
2
1
1,2 x2 400 0 1 0 0 0 1000
2
3
0 x6 200 0 0 2 0 1 600
2
valoarea
alegem min
funcţiei 680 0 0 0,2 0,8 0,2 0
zj-cj<0
obiectiv z
se verifică pentru soluţia de mai sus cu egalităţi, iar cea de-a treia cu inegalitate.
Rezerve
F 2 3 2 15
B 1 2 3 12
Beneficiu 1,5 4 3
care conţine şi consumurile din aceste rezerve la unitatea de produs pentru fiecare
max f = max{1,5x1+4x2+3x3}
2 x1 3 x2 2 x3 15
x 2 x 3x 12
1 2 3
x1 x2 x3 8
xi , i 1,3
.
x1 = 0 ; x2 = 4,2 ; x3 = 1,2 .
pentru cofraje 4 tipuri de materii prime (panel (P), scândură de brad (SB), dulapi
(D), cuie (C)) care sunt prelucrate la 3 standuri. Repartiţia materiilor prime şi a
următor.
minime.
liniară.
x1 x2 x4 2
x 2x x 4
1 2 4
x 2 x3 x 4 3
xi 0 , i 1,4
.
Două materii prime (M1 , M2 ) necesare realizării acestor produse sunt în cantităţi
limitate, 200 şi respectiv 300 unităţi, celelalte fiind în cantităţi suficiente oricărui
pentru fiecare tip, precum şi beneficiile nete aduse de producerea unei unităţi din
max f = max{6x1+5x2+2x3+6x4+6x5+5x6+6x7}
Aliment A1 A2 A3 Necesar
Substanţă
S1 4 3 2 24
S1 5 7 2 35
S1 1 5 4 40
Preţ 8 7 5
canonică
min f = min{8x1+7x2+5x3}
4 x1 3x2 2 x3 24
5 x 7 x 2 x 35
1 2 3
x1 5 x2 4 x3 40
xi 0 , i 1,3
.
două faze.
min f = min{8x1+7x2+5x3}
4 x1 3x2 2 x3 x4 24
5 x 7 x 2 x x 35
1 2 3 5
x1 5 x2 4 x3 x6 40
xi 0 , i 1,6
.
E3 , E4 . Din cele 4 substanţe trebuie făcut un amestec care să conţină cel puţin 28 ,
30 , 25 şi respectiv 25 unităţi din cele 4 elemente. Câte o unitate din fiecare tip de
Conţinutul unei unităţi din fiecare substanţă în cele 4 elemente este dat de
tabelul următor.
Substanţă S1 S2 S3 S4
Element
E1 3 2 1 3
E2 4 0 3 1
E3 0 3 0 4
E4 5 0 3 1
anumite proprietăţi speciale cer ca acest amestec să conţină cel puţin 3 unităţi din
încât să fie îndeplinite toate condiţiile impuse, iar costul total al amestecului să fie
minim.
3x2 4 x4 25
5 x1 3x3 x4 25
x 3
1
x2 2
x 0 , i 1,4
i .
schimbarea de variabile
y1 = x1-3 , y2 = x2-2 , y3 = x3 , y4 = x4 .
Se obţine problema
3 y1 2 y 2 y3 3 y 4 15
4 y 3 y y 18
1 3 4
3 y 2 4 y 4 19
5 y 3 y y 10
1 3 4
yi 0 , i 1,4
.