Documente Academic
Documente Profesional
Documente Cultură
CAPITOLUL 2
PROGRAMAREA LINIARĂ
9
Programare liniară
Toate aceste legături (restricţii) definite de vectorii coloană a(j) se
pot organiza într-o matrice A cu m linii şi n coloane (2.1); fiecare linie se
referă la o resursă bi şi fiecare coloană se referă la o activitate aj.
a11 .........a1n
A Mm.n; A= ( ai,j ), i = 1,..,m, j= 1,...,n; A = (2.1)
a ..........a
m1 mn
b1
m
b2
b R ,b= (2.2)
.
b
m
c1
c
cj R, c Rn c = 2 ; c T (c1 c2 ...c j ...cn ) (2.5)
.
c
n
11
Programare liniară
n
2. relaţiile (2.8) de tipul aij x j bi reprezintă restricţii ce corelează
j 1
volumul consumului activităţilor cu cel al disponibilului pentru
n
fiecare resursă; iar restricţiile de tipul aij x j bi impun un
j 1
consum peste limitele minimale, sunt restricţii tehnico-economice de
tip calitativ;
3. relaţia (2.9) xj 0 j = 1,...,n, numită condiţia de nenegativitate a
variabilelor, asigură obţinerea unei soluţii realizabile în practica
industrială.
Decizia obţinută cu ajutorul modelului nu poate fi recomandată
nemijlocit pentru realizare, deoarece modelul face abstracţie de o serie de
aspecte ale fenomenului studiat, cele ce au la bază o serie de factori ce nu
pot fi formalizaţi.
În practica industrială programarea liniară oferă soluţii care pot
motiva ştiinţific luarea unor decizii de natură strategică, tactică sau a
unor decizii cu conţinut tehnico – organizatoric.
12
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
n
max(min) z c j xi
j 1
n
aij x j bi 1 i m (2.12)
j 1
xj 0 1 j n
min(max) c T x c, x R n
Ax b , unde A M ( R ) m,n (2.13)
x0 b Rm
13
Programare liniară
Forma canonică a problemei de programare liniară
n
min(max) z c j xi
j 1
n
aij x j ()bi 1 i m (2.14)
j 1
xj 0 1 j n
Problema de programare liniară în formă canonică poate fi scrisă
şi sub formă matricială (2.15) :
min(max) c T x C , x R n
Ax ()b unde A M m,n (2.15)
x0 b Rm
14
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
x x1 x2 , unde x1 , x2 0 (2.17)
x1 x, unde x1 0 (2.18)
a T x b a T x y b a T x b a T x y b
şi (2.19)
x 0 x , y 0 x 0 x , y 0
unde y se numeşte variabilă ecart.
Variabilele ecart nu apar în funcţia obiectiv sau astfel spus apar în
funcţia obiectiv dar cu coeficienţi nuli:
e e
c j 0 (unde c j coeficienţi ai variabilelor ecart).
Exemplul 2.1
15
Programare liniară
max 3 x1 x 2 2 x3
3 x x 4,
1 2 (1)
x1 5 x 2 2 x3 3, (2)
x1 4 x3 2, (3)
2 x1 3 x 2 2 x 3 0 , (4 )
x1 , x 2 0, x3 , oarecare
max 3 x1 x 2 2 x4 2 x5
3 x x 4,
1 2
x1 5 x 2 2 x4 2 x5 x6 3,
x1 4 x4 4 x5 x7 2,
2 x1 3 x 2 x 4 x 5 x 8 0 ,
x1 , x 2 ,..., x8 0
max 3 x1 x 2 2 x4 2 x5
3 x1 x 2 4,
3 x1 x 2 4,
x1 5 x 2 2 x4 2 x5 3,.
x 4 x 4 x 2,
1 4 5
2 x1 3 x 2 x 4 x 5 0 ,
x1 , x 2 , x 4 , x 5 0
16
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
n
aij x j bi , i 1, m (2.20)
j 1
xj 0 , j 1, n (2.21)
17
Programare liniară
Adoptarea unei variante de plan (în fapt fundamentarea deciziei)
se face, preferabil, pe baza unui criteriu economic (cel mai uzual –
maximizarea profitului sau în alte cazuri minimizarea costurilor).
Aplicarea acestui criteriu economic, presupune cunoaşterea profitului
total.
n
Deci : c j x j reprezintă profitul total pentru produsele Pj
j 1
Funcţia obiectiv (scop, eficienţă) va fi :
n
max f c j x j (2.22)
j 1
n
max f j 1
cjxj
aij x j bi (2.23)
xj 0
Problema de transport
Un produs omogen P este stocat în m depozite Di, în cantităţile ai ,
i 1, m şi este cerut de spre a fi transportat la n centre de consum Cj ,în
cantităţile bj, j 1, n . Se cunosc costurile cij pe unitatea de produs
transportată de la centrul Di la centrul Cj . Se cere determinarea unui plan
de transport astfel încât costul total de transport să fie minim.
x
j 1
ij ai , i 1, m (2.24)
xi 1
ij bj j 1, n (2.25)
m n
ai b j
i 1 j 1
(2.26)
xij 0 (2.27)
m n
min cij xij (2.28)
i 1 j 1
19
Programare liniară
m n
min( f ) cij xij
i 1 j 1
n
xij ai , i 1, m
j 1 (2.29)
n
xij bi , j 1, n
j 1
x 0, i 1, m, j 1, n
ij
Problemă de repartizare a sarcinilor de producţie
Într-un atelier de montaj echipele E j , j 1, n , pot monta cu
randamente diferite, produsele Pi , i 1, m . Activitatea atelierului este
caracterizată de următoarele date cunoscute: a ij - timpul necesar pentru
montajul unei cantităţi de produs Pi de către echipa E j ; cij - cheltuielile
necesare pentru montajul unei unităţi de produs Pi de către echipa E j ; bi
- cantitatea planificată din produsul Pi , i 1, m ; t j - timpul de lucru
disponibil al echipei E j , j 1, n .
Să se stabilească o repartizare a produselor, echipelor, din
atelierul de montaj astfel încât cheltuielile totale necesare să fie minime.
m n
min f cij xij (2.30)
i 1 j 1
x
j 1
ij bi , i 1, m (2.31)
a x
i 1
ij ij t j , j 1, n (2.32)
xij 0, i 1, m, j 1, n (2.33)
m n
min f cij xij
i 1 j 1
n x b , i 1, m
j ij i
1 (2.34)
m
aij xij t j , j 1, n
i 1
xij 0, i 1, m, j 1, n
n
max f c j x j (2.35)
j 1
21
Programare liniară
Restricţiile de capacitate ale celor m utilaje se exprimă sub forma:
a
j 1
ij xij 1, i 1, m (2.36)
x j 0, j 1, n (2.37)
n
max f j 1
cjxj
m
aij xij 1, i 1, m (2.38)
j 1
x 0, j 1, n
j
min(max) c T x C , x R n
Ax b , unde A M m,n (2.39)
x0 b Rm
Soluţie admisibilă
Un vector x = x1 x2 ... xn R n care satisface restricţiile si
condiţia de nenegativitate se numeşte soluţie admisibilă sau posibilă a
problemei de programare liniară.
22
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
S x R n / Ax b, x 0 (2.40)
Soluţie optimală
O soluţie admisibilă care face optimă funcţia z=min(max)c T x se
numeşte soluţie optimală.
Este posibil ca problema de programare liniara să aibă soluţie
optimă unică, să aibă mai multe soluţii optime sau să nu admită soluţie
optimă.
Soluţie grafică
Acest tip de soluţie va fi studiat detaliat în paragraful 2.2.3.
Demonstraţie:
23
Programare liniară
Fie xS un program al următoarei problemei de programare
liniară:
min c T x
Ax b . (2.41)
x0
24
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
x x
max ( i ), I 1 min ( i ), I 2
1 = iI1 yi 2 = iI 2 yi (2.44)
, I1 , I2
25
Programare liniară
Definiţia 2.3: Vectorul X M se numeşte vârf sau punct extrem al
mulţimii M dacă nu există vectorii x, y M astfel încât
X (1 ) x y,0 1 . În caz contrar X se numeşte punct interior
mulţimii M .
Demonstraţie :
Fie mulţimea soluţiilor admisibile dată de relaţia (2.40).
Fie două soluţii: x1 , x2 S. Atunci pentru 0,1 avem
Demonstraţie.
Presupunem că soluţia admisibilă de bază x are forma
x=(x1 x2 … xm 0 …0T.
Aceasta înseamnă că xi 0 (i = 1, m), vectorii p1, p2, …,pm sunt
liniar independenţi şi x satisface sistemul de restricţii, deci
26
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
x' x1' x2' xm' 00 x' ' x1'' x2'' xm'' 00
T T
,
(2.47)
x1' x1'' , x2' x2'' , xm' xm'' adică x' x' ' (2.50)
Demonstraţie:
Presupunem că se cere ca funcţia obiectiv să fie minimizată.
~
Notam cu M = { xi , i I } mulţimea punctelor extremale ale lui
M şi fie x1 punct extrem pentru care c T x1 = min{c T xi } = z1
iI
27
Programare liniară
Presupunem prin absurd că această afirmaţie nu este adevărată,
~
atunci există x0 M M astfel încât : c T x0 = z0 < z1, deoarece x0 nu
este punct extrem atunci :
x0 = x
iI
i i , I 0 ,
iI
i =1 (2.51)
Consecinţă :
Dacă funcţia obiectiv ia aceeaşi valoare optimă în mai multe
puncte extremale, atunci orice combinaţie liniară convexă a acestora
este soluţie optimă a problemei de programare liniară.
A B, S , cu B a i iI , S a j jJ (2.52)
28
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
I i 1, n a i B (2.53)
J 1,2,..., n/ I
xB
x S , cu x B xi iI , xS x j jJ
(2.54)
x
c B
c S , cu c B ci iI ,
cS c j jJ
(2.55)
c
x B
B, S S b Bx B Sx S b (2.56)
x
x B B 1b B 1 Sx S (2.57)
Notăm cu:
B
x B 1b (2.58)
y Bj B 1a j , j 1, n (2.59)
29
Programare liniară
x B x y Bj x Bj
B
(2.60)
jJ
B
x B
x Rn (2.62)
0
B 1b 0 (2.63)
B S 'x B
z c c S c TB x B c ST x S c TB B 1b B 1 Sx S c ST x S
x
z c TB B 1b c TB ' B 1 S cST ' x S (2.64)
Notăm cu:
B B
z c TB x (2.65)
z Bj c TB y Bj , j 1, n (2.66)
z z z iB c j x Bj
B
(2.67)
jJ
30
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
B
Definiţia 2.7. Constanta z din relaţia (2.67) reprezintă valoarea
funcţiei obiectiv în soluţia asociată bazei B.
a12 x1 a 22 x 2 b2
b) inegalităţi : sau (2.68)
a 21 x1 a 22 x 2 b2
z max( 2 x1 x 2 )
2 x x 2
1 2
x1 2 x 2 2
x1 x 2 5
x1 0 , x 2 0
32
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
x2
d1
C(1,4)
d2
(D
)
D(0,2)
B(4,1)
d3
0 A(2,0) x1
Fig.2.1
x1 2 x2 2
B d 2 d3 B4,1
x1 x2 5
2 x1 2 x2 2
C d1 d 3 C 1,4
x1 x2 5
c1 z
(D): x 2 x1
c2 c1
Exemplul 2.3.
Pentru fabricarea a două produse P1 şi P2, o firmă dispune de patru
tipuri de resurse Ri 1,4 . Cantităţile de resurse Ri folosite pentru
fabricarea fiecărei unităţi din produsele P1 şi P2, în unităţi convenţionale
(tone etc) sunt date în tabelul 2.1.
Se mai cunosc cantităţile disponibile ale firmei din fiecare resursă
Ri i 1,4 şi beneficiile pentru fiecare unitate din cele două produse.
Să se determine planul de producţie astfel ca beneficiul total să fie
maxim.
Tabelul 2.1
Resurse R1 R1 Disponibil
R1 2 2 12
R2 1 2 8
R3 4 0 16
R4 0 4 12
Beneficiu 2 um 3 um
2 x1 2 x 2 12
x 2x 8
1 2
x1 0, x2 0, z 2 x1 3 x2 max
4 x1 16
4 x 2 12
34
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
d 1 2 x1 2 x 2 12
d x 2 x 8
2 1 2
d 3 4 x1 16
d 4 4 x 2 12
(D) 2x1 + 3x2 = z
x2
d3
(D
C(2,3) d4
)
D(0,3)
B(4,2)
d1 d2
0 A(4,0) x1
Fig.2.2
x1 = 4; x2 = 2 f(x) = 14 = max
35
Programare liniară
în ce mai bune ale modelului până când este obţinută o soluţie de bază
optimă. Prin soluţie „mai bună” înţelegând soluţia ce dă funcţiei de
eficienţă (obiectiv) o valoare mai mică, respectiv mai mare decât cele
precedente după cum funcţia de eficienţă este de minim sau de maxim.
Deci acest algoritm este o metodă de examinare sistematică a
programelor de bază ce dă funcţiei de eficienţă o valoare optimă.
Această metodă pune în evidenţă cazul în care problema admite
un optim infinit sau mulţimea programelor este vidă.
min c T x C , x R n
Ax b , unde A M m,n (2.71)
x0 b Rm
36
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
Tabelul 2.2
37
Programare liniară
B B
x x
min i l (2.73)
B B
i I y ylk
ik
~
B B
se obţine un nou program de bază x cel puţin la fel de bun ca x ,
~
corespunzător unei noi baze B care are aceleaşi coloane ca şi B, cu
(l ) (k )
excepţia coloanei a ce se înlocuieşte cu coloana a .
Observaţii:
~
Baza B este primal admisibilă şi verifică toate teoremele
anterioare.
Relaţia (2.73) reprezintă criteriul de ieşire din bază şi ne arată
indicele l I , al coloanei a (l ) ce urmează să părăsească baza B.
În cazul în care există mai mulţi indici k J pentru care se
îndeplinesc (2.72) şi (2.73) atunci se pot construi mai multe baze
primal admisibile şi fiecare dintre acestea modifică valoarea funcţiei
obiectiv.
Pentru a obţine mai repede optimul căutat este indicat a alege acel
indice pentru care se verifică relaţia.
B B
B xl xl B
max (( z j c j ) B ) B ( z k ck ) (2.74)
j J ylk ylk
B B
max ( z j c j ) z k ck (2.75)
j J
elementul de
transformat
y B
ij
y ikB
yijB y ikB
pivotul
Fig.2.3
39
Programare liniară
40
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
Construieste
tabel simplex
initial
Exista
valori pozitive (negative) pe Nu Indica
linia diferentelor? solutia optima STOP
Da
Determina
coloana pivotului
Exista Nu Indica
valori pozitive in coloana solutia optima STOP
pivotului?
Da
Determina
linia pivotului
Calculeaza un nou
tabel simplex
Fig.2.4
41
Programare liniară
x1 x 2 4,
3 x x 18,
1 2
x1 2 x 2 6,
x , x 0
1 2
max 2 x1 x 2 .
x1 x 2 x3 4,
3 x x x 18,
1 2 4
x1 2 x 2 x5 6,
x , x ,..., x 0
1 2 6
max 2 x1 x 2 .
Iteraţia 1
Pasul 1 Fie B o bază admisibilă a problemei formată din coloanele
matricii A şi anume a3, a4 şi a5:
1 0 0
3
4 5
B a , a , a 0 1 0
0 0 1
Pasul 2 Baza B este matricea – unitate, astfel vom calcula următoarele
elemente:
B
B 1 B I şi x B 1b b 4 18 6 ;
y Bj B 1 a j a j , elementele matricii A.
B
z Bj c j c ' B 1a j c j 0 0 0 a j c j c j (2 1 0 0 0)
B
z c B B 1b 0.
42
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
Interpretare geometrică.
43
Programare liniară
Funcţia obiectiv este max(2x1 +x2). Ecuaţia 2x1 +x2 = z reprezintă
o familie de drepte paralele între ele.
În figura 2.4 sunt reprezentate punctat câteva din aceste drepte.
Pentru z=z2, funcţia obiectiv ia valori mai mari decât pentru z = z1, iar
pentru z = z3 valori şi mai mari.
Tabelul 2.3
2 1 0 0 0
CB
V.B. V.V.B xl x2 x3 x4 x5
0 x3 4 1 -1 1 0 0
0 x4 18 3 -1 0 1 0
0 x5 6 -1 2 0 0 1
0 -2 -1 0 0 0
2 1 0 0 0
C B
V.B. V.V.B xl x2 x3 x4 x5
2 x1 4 1 -1 1 0 0
0 x4 6 0 2 -3 1 0
0 x5 10 0 1
1 1 0
8 0 -3 2 0 0
2 1 0 0 0
CB V.B. V.V.B xl x2 x3 x4 x5
2 x1 7 1 0 -1/2 1/2 0
1 x2 3 0 1 -3/2 1/2 0
0 x5 7 0 0 5/2 -1/2 1
17 0 0 -5/2 -3/2 0
2 1 0 0 0
CB V.B. V.V.B xl x2 x3 x4 x5
24 0 0 0 1 1
44
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
Fig.2.5
Însă, după cum se vede din figură, nu există nici un program care
să dea funcţiei obiectiv valoarea z3 (dreapta 2x1 +x2 =z3 nu intersectează
poligonul OABCD – domeniul soluţiilor).
Cea mai mare valoare pe care o poate lua z pentru punctele din
poligonul OABCD se obţine atunci când dreapta 2x1 +x2 = z trece prin
punctul C. Valoarea lui z în acest caz este 2. 42/5 + 36/5 = 24.
Când am aplicat algoritmul simplex, drept bază iniţială am luat
baza B = (a3, a4, a5). Variabilele x1 şi x2 sunt variabile secundare, deci au
valoarea 0; reiese că ne-am găsit în vârful O (0,0) al poligonului OABCD,
iar valoarea funcţiei obiectiv era z = 0. În continuare, variabila x1 intră în
bază şi am obţinut programul x1 = 4, x2 = 0.
Geometric aceasta înseamnă că din vârful O ne-am deplasat până
în vârful A (4,0) de-a lungul muchiei OA. În continuare, din vârful A am
ajuns în vârful B, mergând pe muchia AB (variabila x3 a păstrat tot
valoarea 0, deci ne găseam pe dreapta d1). De aici am ajuns în vârful
optim C, urmând muchia BC.
Valoarea funcţiei obiectiv a crescut de la 0 la 8, apoi la 17 (în
vârful B) şi, în sfârşit, la valoarea maximă 24.
Acest lucru este valabil şi în cazul general: fiecărei baze
admisibile a problemei adusă la forma standard îi corespunde un vârf al
domeniului soluţiilor.
Concluzie: Fiecare iteraţie simplex reprezintă o deplasare de la un
vârf al domeniului soluţiilor, pe o muchie, până la un vârf, care conferă
funcţiei obiectiv o valoare „mai bună”.
Exemplul 2.5.
O companie produce trei tipuri de produse A, B, C. Fiecare dintre
aceste produse trebuie prelucrate tehnologic aceeaşi maşină unealtă, timp
45
Programare liniară
de 2 ore, 3 ore respectiv 1 oră. Maşina unealtă este disponibilă pentru
perioada analizată, 400 ore.
Pentru produsele A şi C se folosesc componente speciale, câte o
bucată pentru fiecare produs, firma având un stoc disponibil pe perioada
analizată de 150 de unităţi din aceste componente. Tot pentru produsele
A şi C se utilizează un aliaj special: pentru o unitate din produsul A se
utilizează 2 kg de aliaj special, iar pentru o unitate din produsul C, 4 kg.
Stocul disponibil este de 200 kg din acest aliaj special.
Studiul de piaţă pentru produsul B arată că se pot vinde pe
perioada analizată cel mult 50 de unităţi din acest produs.
Beneficiul unitar al produselor A, B şi C este respectiv: 8 um
(unităţi monetare), 5 um, 10 um.
Compania doreşte să stabilească planul de producţie care
maximizează beneficiul total pe perioada analizată.
46
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
2 x1 3x 2 x3 x 4 400
x x x 150
1 3 5
2 x1 4 x3 x6 200
x 2 x7 50
xi 0 (i 1,7)
f min( 8x1 5x2 10 x3 )
Matricea coeficienţilor tehnico - economici este:
2 3 1 1 0 0 0
1 0 1 0 1 0 0
A
2 0 4 0 0 1 0
0 1 0 0 0 0 1
Se vor fabrica 100 unităţi din produsul A, 50 unităţi din produsul
B, zero unităţi din produsul C.
Se va obţine beneficiul maxim, egal cu 1050 unităţi monetare.
Semnificaţia variabilelor de compensare rezultă din modul cum
au fost introduse. Verificând restricţiile iniţiale ale problemei cu soluţia
optimă x1 = 100, x2 = 50, x3 = 0 şi comparând cu sistemul de restricţii în
care s-au introdus variabilele de compensare, rezultă:
- orele de lucru pe maşină nu s-au folosit integral, rămânând
disponibile x4 = 50 ore;
- componentele nu s-au folosit integral, rămânând x5 = 50
unităţi.
- stocul de aliaj după efectuarea prelucrărilor este nul x6 = 0
- este satisfăcută condiţia de vânzare pentru B, x7 = 0.
47
Programare liniară
Tabelul 2.4
-8 -5 -10 0 0 0 0
C B
V.B. V.V.B xl x2 x3 x4 x5 x6 x7
0 x4 400 2 3 1 1 0 0 0
0 x5 150 1 0 1 0 1 0 0
0 x6 200 2 0 4 0 0 1 0
0 x7 50 0 1 0 0 0 0 1
0 8 5 10 0 0 0 0
-8 -5 -10 0 0 0 0
CB V.B. V.V.B xl x2 x3 x4 x5 x6 x7
C B
V.B. V.V.B xl x2 x3 x4 x5 x6 x7
0 x4 50 0 0 -3 1 0 -1 -3
0 x5 50 0 0 -1 0 1 -1/2 0
-8 x1 100 2 0 0 0
1 0 1/2
-5 x2 50 0 1 0 0 0 0 1
-1050 0 0 -6 0 0 -4 -5
48
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
max c T' x
A x b (2.77)
x0
în care am aranjat deja ca toţi termenii liberi să fie pozitivi .
Faza 1
Constă în rezolvarea unei probleme de programare liniară auxiliară,
asociată problemei iniţiale. Astfel construim problema:
f ( x a ) min( x ma 1 x ma 2 ... x ma n )
Ax I m x a b (2.78)
x ,xa 0
49
Programare liniară
unde xa sunt variabilele artificiale ce se introduc în restricţiile
problemei atât cât sunt necesare în scopul formării bazei unitare; Im
matricea unitate de ordin m.
Rezolvăm cu algoritmul simplex această problemă, pornind
rezolvarea de la baza matrice unitate, putem ajunge la două situaţii:
Faza 2
Începând de la soluţia găsită la Faza 1 se rezolvă problema
iniţială cu algoritmul simplex. Se îndepărtează din tabelul simplex toate
elementele corespunzătoare variabilelor artificiale (cu excepţia celor care
rămân în bază), introducând coeficienţii funcţiei obiectiv din problema
iniţială.
Dezavantajul metodei constă în faptul că tabelul simplex final de
la faza 1 trebuie modificat pentru a se obţine tabelul simplex iniţial de la
faza 2, eliminându-se coloanele corespunzătoare lui y şi totodată nu vom
avea în tabelele simplex ale problemei iniţiale inversa bazei (se găsea în
dreptul coloanelor matricei unitate din prima fază) necesară în anumite
variante ale algoritmului simplex.
50
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
f max( c T x My)
A x y b (2.80)
x, y 0
Observaţii :
Dacă matricea restricţiilor conţine vectori unitari, atunci
numărul variabilelor artificiale introduse este egal cu m, numărul
vectorilor unitari, indiferent de tipul funcţiei obiectiv.
Dacă la aplicarea algoritmului simplex, o variabilă artificială
iese din bază ea nu va mai intra niciodată, ceea ce arată
eliminarea din calculele ulterioare.
Exemplu 2.6
Un atelier de prelucrări mecanice fabrică două produse P1 şi P2.
Din structura de dezagregarea produselor se deduce că pentru
realizarea produsului P1 sunt necesare 3 componente de tip A şi un
component de tip B, iar pentru realizarea produsului P2 sunt necesare 1
component de tip A şi 4 componente de tip B.
Atelierul dispune în stoc de 10 componente de tip A.
Contractele cu furnizorii pentru componentele de tip B, arată că se
poate realiza aprovizionarea cu acesta în cantitate de cel puţin două
componente B.
51
Programare liniară
Beneficiul unitar pentru produsele P1 şi P2 sunt de 2 um, respectiv
de 3um.
Se doreşte să se stabilească planul de producţie care să
maximizeze beneficiul total.
f max( 2 x1 3 x 2 )
3 x1 x 2 10
x1 4 x 2 2
x ,x 0
1 2
unde x1 , x2 , reprezintă numărul de produse de tip P1 respectiv P2.
Forma standard a problemei va fi:
max f 2 x1 3 x2
3 x1 x 2 x3 10
x1 4 x 2 x 4 2
x ,x ,x ,x 0
1 2 3 4
În matricea A vom introduce variabila x5 cu coeficientul 1 în a
doua ecuaţie şi împreună cu coeficienţii variabilei x3 în final vom avea de
rezolvat problema prin cele două metode:
Metoda celor două faze Metoda coeficienţilor de
penalizare
min( x5 ) max( 2 x1 3 x 2 Mx5 )
3 x1 x2 x3 10 3 x1 x 2 x3 10
x1 4 x2 x4 x5 2 x1 4 x 2 x 4 x 5 2
x ,x ,x ,x ,x 0 x ,x ,x ,x ,x 0
1 2 3 4 5 1 2 3 4 5
0 0 0 0 1
cB xB xB x1 x2 x3 x4 x5
0 x3 10 3 1 1 0 0
1 x5 2 1 4 0 -1 1
2 1 4 0 -1 0
0 0 0 0 1
cB xB xB x1 x2 x3 x4 x5
0 x3 19/2 11/4 0 1 1/4 -1/4
0 x2 1/2 1/4 1 0 -1/4 1/4
0 0 0 0 0 -1
52
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
2 3 0 0
cB xB xB x1 x2 x3 x4
0 x3 19/2 11/4 0 1 1/4
3 x2 1/2 1/4 1 0 -1/4
3/2 -5/4 0 0 -3/4
2 3 0 0
cB xB xB x1 x2 x3 x4
0 x3 4 0 -11 1 3
2 x1 2 1 4 0 -1
4 0 5 0 -2
2 3 0 0
cB xB xB x1 x2 x3 x4
0 x4 4/3 0 -11/3 1/3 1
2 x1 10/3 1 1/3 1/3 0
20/3 0 -7/3 2/3 0
2 3 0 0
cB xB xB x1 x2 x3 x4
0 x4 38 11 0 4 1
3 x2 10 3 1 1 0
30 7 0 3 0
2 3 0 0 -M
cB xB xB x1 x2 x3 X4 x5
0 x3 10 3 1 1 0 0
-M x5 2 1 4 0 -1 1
-2M -M -4M 0 M -M
-M-2 -4M-3 0 M 0
2 3 0 0 -M
cB xB xB x1 x2 x3 x4 x5
0 x3 19/2 11/4 0 1 ¼ -1/4
3 x2 1/2 1/4 1 0 -1/4 1/4
3/2 -5/4 0 0 -3/4 M+3/4
53
Programare liniară
2 3 0 0 -M
cB xB xB x1 x2 x3 x4 x5
0 x3 4 0 -11 1 3 -3
2 x1 2 1 4 0 -1 1
4 0 5 0 -2 2+M
2 3 0 0 -M
cB xB xB x1 x2 x3 x4 x5
0 x4 4/3 0 -11/3 1/3 1 -1
2 x1 10/3 10/3 1 1/3 0 0
20/3 0 -7/3 2/3 0 M
2 3 0 0 -M
cB xB xB x1 x2 x3 x4 x5
0 x4 38 11 0 4 1 -1
3 x2 10 3 1 1 0 0
30 7 0 3 0 M
(max) z c T x
Ax b (2.81)
x0
54
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
yBj=B-1a(j) , j 1, n (2.82)
deducem :
z Bj c j 0, j 1, n (2.86)
xi xiB yik
B
0, i 1, m (2.88)
xiB
0 min (2.89)
B
i yik
B
y 0
ik
xB B
xl xlB 0 ylk
B
xlB l ylk 0 (2.90)
B
ylk
56
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
Problema duală
Dualitatea în programarea liniară ocupă un rol important atât din
punct de vedere teoretic cât şi din punct de vedere practic. Pe teoremele
de dualitatea se bazează mulţi algoritmi de rezolvare a problemelor de
programare liniară.
Fie problema de programare liniara dată sub forma generală
numită problema primală :
max b u b u b u
1 1 2 2 3 3
a11 u1 a 21 u 2 a31 u3 c1
a12 u1 a 22u 2 a32u3 c 2 problema duală (2.92)
a13 u1 a 23 u 2 a33 u3 c3
u1 0 ; u 2 arbitrar ; u3 0
57
Programare liniară
duale una celeilalte, vom spune ca problema (2.91) şi problema (2.92)
formează un cuplu de probleme duale.
Problema duală se obţine din problema primală folosind
următoarele transformări :
Exemplul 2.8
59
Programare liniară
max 3x1 2 x 2 5 x3 x 4
x x 3x x 15
1 2 3 4
2 x1 x3 x 4 5
x 2 x x 10
2 3 4
x1 ,..., x 4 0
u1 u 3 2
3u1 u 2 2u 3 5
u1 u 2 u 3 1
u1 , u 2 , x3 0
Fundamente teoretice
Fără a restrânge din generalitate ne vom ocupa în continuare de
cuplul de probleme duale (2.91) - (2.92), prima fiind considerată
problema primală, iar cea de-a doua, problema duală.
Se notează
P x R n Ax b, x 0 (2.93)
D u R m AT u c, u 0 2.94)
Mulţimile soluţiilor admisibile (sau programelor) ale problemei
primale (2.91), respectiv, duale (2.92).
Teorema 2.8. Dacă x P şi u D , atunci c T x bT u .
60
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
l t 0
(2.95)
t 0
Lt 0 (2.96)
u T A x b 0
(2.97)
T
u c AT u 0
Exemplul 2.9
Într-un atelier mecanic se produc două de tipuri de piese P1, P2.
Timpii unitari de prelucrarea celor două piese pe cele două maşini
unelte M1, M2, profitul unitar şi disponibilul de timp al maşinilor unelte
sunt date în tabelul de mai jos:
61
Programare liniară
P1 P2 Disponibil
resurse
M1 4 3 16sp
M2 1 2 6sp
Profit 3um 7um
unitar
f max( 3 x1 7 x 2 )
4 x 3 x 16
1 2
x1 2 x 2 6
x1 , x 2 0
x2
d1
C(0,3)
B(14/5,8/5)
d2
0 A(4,0) x1
Fig.2.6
Problema duală este:
g min(16 u1 6 u 2 )
4u u 3
1 2
3u1 2u 2 7
u1 , u 2 0
62
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
u2
d2
d1
0 A(0,3/4) B(0,7/2) u1
Fig.2.7
* *
Problema admite soluţia optimă u 1 0 , u 2 7 / 2 .Valoarea
funcţiei obiectiv este g min 21 , evident aceeaşi ca şi în cazul problemei
primale.
Din cele arătate se constată că prin rezolvarea uneia dintre cele
două probleme duale se poate determina şi soluţia celeilalte. Tabelul
simplex final corespunzător uneia dintre probleme conţine componentele
soluţiilor optime ale ambelor probleme.
Aceste rezultate teoretice se utilizează în practica industrială în
cazul când planul de producţie conţine o varietate mare de produse ce se
fabrică în aceleaşi condiţii tehnico economice.
min c T x
Ax b (2.98)
x 0
unde x, c R n , b R m , A M mn , cu rang A = m < n.
Duala acestei probleme este :
max b T u
'
A u c (2.99)
u arbitrar
63
Programare liniară
Definiţia 2.9 O bază B formată cu m coloane liniar independente a lui A
se numeşte dual admisibilă dacă sunt satisfăcute condiţiile
z Bj c j 0, j 1, n (2.100)
u BT c BT B 1 (2.101)
zj cj
B
z k ck
B
min B (2.102)
j
B
ylj 0
y lj
ylkB
64
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
B B
Pasul 2. Se calculează x , z , y Bj , z Bj , c j , j 1, n .
B
min x i x l
iI _
B
zj cj
B
z k ck
B
min B
j
ylj ylkB
yljB 0
65
Programare liniară
START
Construieste
tabel simplex
initial
Exista Nu
variabile de baza cu valori Indica STOP
negative ? solutia optima
Da
Determina
linia pivotului
Exista Nu
valori negative in linia Nu exista STOP
pivotului? solutii
Da
Determina
coloana pivotului
Calculeaza un nou
tabel simplex
Fig.2.8
Exemplul 2.10
max 3x1 2 x 2
x 2 x 3x 4
1 2 3
2 x1 x 2 x3 2
x1 , x 2 , x3 0
max 3x1 2 x 2
x 2 x 3x x 4
1 2 3 4
2 x1 x 2 x3 x5 2
x1 ,..., x5 0
66
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
-3 -2 0 0 0
cB V.B. V.V.B. x1 x2 x3 x4 x5
0 x4 -4 -1 2 -1 1 0
0 x5 -2 -2 -1 1 0 1
0 3 2 0 0 0
z Bj c j 3 0 zB c
min = min , 0 3 B 3 ;
y4B jj 0 1 1
B
j
y4B j 0
y4 j y43
67
Programare liniară
-3 -2 0 0 0
cB V.B. V.V.B. x1 x2 x3 x4 x5
0 x4 2 0 -5/3 1 -2/3 1/3
-3 x5 2 1 -1/3 0 -1/3 -1/3
0 0 3 0 1 1
68
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
69
Programare liniară
Exemplul 2.11
O firmă fabrică trei tipuri de produse P1, P2, P3, utilizând patru
tipuri de resurse R1, R2, R3, R4.
Procesul tehnologic de realizare a celor trei produse, timpul
disponibil al fiecărei resurse, cererea minimă şi maximă din fiecare
produs conform studiului de marketing, precum şi profitul unitar sunt
date în tabelul 2.5.
Tabelul 2.5
Produs Cerere Timp de prelucrare pe Profitul
unitatea de produs unitar
min max R1 R2 R3 R4 um/buc
SN FU32 RU320 Banc
400 de
control
P1 20 200 0.10 0.06 0.18 0.13 10
P2 0 100 0.12 0.05 0 0.10 12
P3 70 180 0.15 0.09 0.07 0.08 15
Timp disponibil pe 36 30 37 38 -
resursă
70
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
f max( 10 x1 12 x 2 15 x3 )
0.1x 0.12 x 0.15 x 36
1 2 3
0.06 x1 0.05 x 2 0.09 x3 30
0.18 x1 0.07 x 2 37
0.13 x1 0.1x 2 0.08 x3 38
20 x1 200
0 x 2 100
70 x3 180
x1 , x 2 , x 3 0
x1 135
x 2 100
x3 70
F .O. 3.600u.m
71
Programare liniară
x6 5.7 Y3 0 - preţ umbră
0.18 135 0.07 100 31.3 37 cu 5.7 u.t.
A treia restricţie este satisfăcută cu semnul „<”, deci din resursa
R3 rămâne un timp disponibil de 5.7 u.t. care nu este utilizat în procesul
de producţie, astfel resursa R3 nu este o resursă rară însă lipsa ei poate
limita producţia, preţul ei umbră fiind nul.
x7 4.85 Y4 0 - preţ umbră
0.13 135 0.1 100 0.08 70 33.15 38 cu 4.85 u.t.
A patra restricţie este satisfăcută cu semnul „<”, deci din resursa
R4 rămâne un timp disponibil de 4.85 u.t. care nu este utilizat în procesul
de producţie, astfel resursa R4 nu este o resursă rară însă lipsa ei poate
limita producţia, preţul ei umbră fiind nul.
x8 65 Y5 0 - preţ umbră
1 135 135 200 cu 65 unităţi de produs P1.
Restricţia cinci este satisfăcută cu semnul „<”, deci din produsul
P1 rămân nevândute o cantitate de 65 unităţi de produs (u.p), astfel P1 nu
este o resursă rară deci are preţul umbră nul.
x9 115 Y6 0 - preţ umbră
1 135 135 20 cu 115 unităţi de produs P1.
Restricţia şase este satisfăcută cu semnul „>”, deci produsul P1
are o cerere maximă de 115 u.p., astfel P1 nu este o resursă rară deci are
preţul umbră nul.
x10 0 Y7 0 - preţ umbră
1 100 100 100
Restricţia şapte este satisfăcută cu semnul „=” ceea ce arată că
produsul P2 este vândut în totalitate – deci este o resursa rară, deci preţul
umbră ar trebui să fie nenul. El totuşi este nul, lucru uşor de explicat din
teorema ecarturilor complementare: condiţia necesară şi suficientă ca
două soluţii admisibile X,Y să fie soluţii optime respectiv la problema
primală şi duală este să fie simultan satisfăcute relaţiile:
Y T ( P0 AX ) 0
T
(Y A C ) X 0
Pentru ca un produs să fie zero este necesar ca un termen sa fie
zero sau ambii egali cu zero. Prin creşterea cu o unitate a restricţiei în loc
de 100 să avem 101 valoarea funcţiei obiectiv rămâne aceeaşi
F.O.=3.600u.m.
x11 110 Y8 0 - preţ umbră
1 70 70 180 cu 110 unităţi de produs P3
72
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
f max( 10 x1 12 x 2 15 x3 )
0.1x 0.12 x 0.15 x 36
1 2 3
0.06 x1 0.05 x 2 0.09 x3 19.4
0.18 x1 0.07 x 2 31.3
0.13 x1 0.1x 2 0.08 x3 33.15
115 x1 135
0 x 2 100
65 x3 70
x1 , x 2 , x 3 0
73