Академический Документы
Профессиональный Документы
Культура Документы
CHIRCOR MIHAEL
CERCETĂRI OPERAŢIONALE
FUNDAMENTAREA DECIZIILOR ÎN
MANAGEMENTUL SISTEMELOR DE PRODUCŢIE
2004
CUPRINS
1. INTRODUCERE
1.1. Scurt istoric al evoluţiei ştiinţei „Cercetare Operaţională” 3
1.2. Teoria Deciziei şi Cercetare Operaţională 4
1.3. Modelarea matematică în Cercetarea Operaţională 5
2. PROGRAMARE LINIARĂ 7
2.1. Probleme de programare liniară 7
2.1.1. Formularea problemei de programare liniară 7
2.1.2. Forme ale problemei de programare liniară 9
2.1.3. Modelul matematic al problemei de programare liniară 12
2.2. Consideraţii generale privind problemele de programare liniară 16
2.2.1. Soluţii şi fundamente ale problemei de programare liniară 16
2.2.2. Baze ale problemei de programare liniară 20
2.2.3. Interpretarea geometrică a problemei de programare liniară 22
2.3. Metoda Simplex 26
2.3.1. Fundamente teoretice în aplicarea metodei Simplex 26
2.3.2. Algoritmul simplex primal 28
2.3.3. Metode de determinare a unei soluţii de bază iniţiale 35
2.3.4. Interpretarea economică a algoritmului simplex primal 39
2.4. Dualitatea în programarea liniară 41
2.4.1. Problema duală. Fundamente teoretice 41
2.4.2. Algoritmul simplex dual 45
2.4.3. Interpretarea economică a dualităţii 49
2
Cercetări operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
BIBLIOGRAFIE 131
3
4
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
CAPITOLUL 1
INTRODUCERE
1.1. Scurt istoric al evoluţiei ştiinţei „Cercetare Operaţională”
3
Introducere
Control
Fig.1.1.
4
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
5
Introducere
6
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
CAPITOLUL 2
PROGRAMAREA LINIARĂ
2.1. Probleme de programare liniară
§ 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¹
7
Programare liniară
§ x1 ·
¨ ¸
¨x ¸
x∈ R ,x= ¨ 2¸
n
(2.3)
.
¨ ¸
¨x ¸
© n¹
§ c1 ·
¨ ¸
¨ c2 ¸
cj ∈R, c ∈ Rn c = ¨ ¸ ; c T = (c1 c 2 ...c j ...c n ) (2.5)
.
¨ ¸
¨c ¸
© n¹
Sintetizând toate datele de mai sus, obţinem următorul model (2.7, 2.8, 2.9)de
programare liniară.
Relaţiile (2.7), (2.8) şi (2.9) constituie împreună modelul matematic al unei probleme
de programare liniară, având fiecare un rol specific:
8
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
n (2.7)
min(max) z = ¦ c j x j
x j =1
n
° ¦ aij ⋅ x j ≤ bi 1≤ i ≤ k
° j n=1 (2.8)
°
® ¦ aij ⋅ x j ≥ bi k +1≤ i ≤ l
° j =1
° xj ≥ 0 1≤ j ≤ n (2.9)
°¯
n
2. relaţiile (2.8) de tipul ¦ aij ⋅ x j ≤ bi reprezintă restricţii ce corelează volumul consumului
j =1
activităţilor cu cel al disponibilului pentru fiecare resursă; iar restricţiile de tipul
n
¦ aij ⋅ x j ≥ bi impun un consum peste limitele minimale, sunt restricţii tehnico-economice
j =1
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.
9
Programare liniară
O problema de programare liniară este dată sub formă standard dacă toate restricţiile
sale sunt date sub formă de ecuaţii (egalităţi) şi tuturor variabilelor li se impun condiţii de
nenegativitate.
Problema de programare liniară dată în formă standard se scrie în mod explicit (2.12):
n
° max(min) z = ¦ c j x i
° j =1
° n
® ¦ a ij x j = b i 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)
° x≥0 ° b ∈ Rm
¯ ¯
n
° min(max) z = ¦ c j x i
° j =1
°° n
® ¦ a ij x j ≥ ( ≤ ) b i 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) :
10
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
min(max)c T x C , x ∈ R n
° °
® Ax ≥ (≤)b unde ® A ∈ M m ,n (2.15)
° x≥0 ° b ∈ Rm
¯ ¯
x = x1 − x 2 , unde x1 , x 2 ≥ 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).
În aplicaţiile practice apar frecvent situaţii în care modelul conţine simultan restricţii
de toate tipurile (concordante, neconcordante, egalităţi), problema fiind dată în formă
generală, iar rezolvarea ei poate fi abordată fără a restrânge generalitate.
Exemplul 2.1
11
Programare liniară
max(3 x1 − x 2 + 2 x3 )
°
°3 x1 − x 2 = 4 , (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
pozitive: x3 = x4 – x5. Pentru ca problema să aibă forma standard, toate restricţiile trebuie să
fie egalităţi, de aceea în restricţiile (2), (3) şi (4) vom introduce variabilele de egalizare x6, x7,
x8. Forma standard va fi:
max(3 x1 − x 2 + 2 x4 − 2 x5 )
°
° 3 x1 − x 2 = 4 ,
°° 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
12
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)
Sistemul de inecuaţii (2.20) şi (2.21) poate avea o infinitate de soluţii, deci putem
organiza procesul de producţie pentru realizarea produsului P într-o infinitate de moduri dar
respectând condiţiile anterioare .
Acest fapt face evidentă imposibilitatea practică a managerului de a compara toate
variantele de plan posibile deci este necesară introducerea unui alt criteriu.
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 = ¦ cjxj
j =1
°
°
® ¦ 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.
13
Programare liniară
¦x
j =1
ij = ai , i = 1, m (2.24)
¦x
i =1
ij = bj j = 1, n (2.25)
m n
¦ a = ¦b
i =1
i
j =1
j (2.26)
xij ≥ 0 (2.27)
m n
min ¦¦ cij xij (2.28)
i =1 j =1
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
14
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
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
15
Programare liniară
O firmă produce n tipuri de produse care pot fi fabricate pe m utilaje care au capacităţi
de producţie limitate pe o anumită perioadă. Se cunosc: procentul aij din capacitatea utilajului
i necesar pentru producerea unei unităţi din produsul j; profitul unitar cj al produsului j = 1, n .
Să se stabilească un program de fabricaţie care să permită utilizarea optimă a
capacităţii disponibile a celor m utilaje.
n
max f = ¦ c j x j (2.35)
j =1
¦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)
° x≥0 ° b ∈ Rm
¯ ¯
16
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
• Soluţie admisibilă
Un vector x = ( x1 x 2 ... x n ) ∈ R n care satisface restricţiile si condiţia de
nenegativitate se numeşte soluţie admisibilă sau posibilă a problemei de programare liniară.
Mulţimea soluţiilor admisibile, S, este:
{
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:
min c T x
°
® Ax = b . (2.41)
° x ≥ 0
¯
17
Programare liniară
x x
° max (− i ), I 1 ≠ Φ ° min (− i ), I 2 ≠ Φ
λ1 = ® i∈I1 yi λ2 = ® i∈I 2 y i (2.44)
° °
¯− ∞ , I1 = Φ ¯+ ∞ , I2 = Φ
Definiţia 2.1: Fie V un spaţiu liniar peste corpul R şi x, y doi vectori din V. Mulţimea
vectorilor [x, y ] = {X ∈ V / X = (1 − λ) x + λy,0 ≤ λ ≤ 1 } se numeşte segment al lui V (uneşte
vectorul x cu vectorul y ).
Definiţia 2.2: O mulţime M de vectori din V se numeşte mulţime convexă dacă (∀) x, y
∈ M şi
18
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
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 .
Teorema 2.2: Mulţimea soluţiilor admisibile ale unei probleme de programare liniară
este o mulţime convexă .
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
Teorema 2.3: Orice soluţie admisibilă de bază a unei probleme de programare liniară
este vârf sau punct de extrem al mulţimii soluţiilor admisibile.
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
x1 = λx1' + (1 − λ )x1' , x 2 = λx 2' + (1 − λ )x 2'' ,……., x m = λx m' + (1 − λ )x m'' ,.….…, 0 = λx n' + (1 − λ )x n''
(
Însă λ ∈ (0,1) , deci 1 − λ > 0 , iar xi' ≥ 0 i = 1, n şi xi'' ≥ 0 ) (i = 1, n) deoarece
x' , x' '∈ S , astfel că, din cele n – m relaţii se obţin:
x m' +1 = 0 x n' = 0 ; x m'' +1 = 0 x n'' = 0 şi deci vectorii x' , x' ' au formele:
19
Programare liniară
(
x' = x1' x 2' x m' 0 0 )
T
, (
x' ' = x1'' x 2'' x m'' 0 0 )
T
(2.47)
x1' = x1'' , x 2' = x 2'' , x m' = x m'' adică x' = x' ' (2.50)
Aceasta înseamnă că nu există vectorii x' , x' '∈ S astfel ca x = λx'+(1 − λ )x' ' λ ∈ (0,1)
prin urmare x este vârf sau punct de extrem în S.
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
i∈I
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
i∈I
i i , λI ≥ 0 , ¦λ
i∈I
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ă.
Fie problema de programare liniară în forma standard (2.13), în care matricea A are m
linii şi n coloane, iar rang A = m < n. Ecuaţiile ce compun sistemul liniar Ax = b sunt liniar
independente, iar sistemul are o infinitate de soluţii.
Astfel, în matricea A există cel puţin un grup de m coloane liniar independente, care
formează o bază a spaţiului Rm.
Definiţiile ce urmează reprezintă fundamente ce stau la baza rezolvării modelelor de
programare liniară.
Definiţia 2.5 Se numeşte bază a problemei de programare liniară în formă standard un grup
de m coloane liniar independente.
20
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
[ ] [ ]
A = [B, S ] , cu B = a (i ) i∈I , S = a ( j ) j∈ J (2.52)
unde prin I şi J s-au notat mulţimile de indici corespunzători coloanelor din baza B şi,
respectiv, a celorlalte coloane:
{
I = i = 1, n a (i ) ∈ B } (2.53)
J = {1,2,..., n}/ I
ªxB º
x = « S » , cu x B = [xi ]i∈I , xS = x j [ ] j∈J
(2.54)
¬x ¼
ªc B º
c = « S » , cu c B = [ci ]i∈I , cS = c j [ ] j∈J
(2.55)
¬c ¼
ª B
º
[B, S ]⋅ « x S » = b ⇔ Bx B + Sx S =b (2.56)
¬x ¼
Matricea B fiind o bază a spaţiului Rm este inversabilă. Astfel prin înmulţirea relaţiei
(2.56) la stânga cu B-1 se obţine forma explicită a sistemului de ecuaţii:
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)
B
x B = x − ¦ y Bj x Bj (2.60)
j∈J
21
Programare liniară
B
xiB = x i − ¦ y ijB x Bj , i ∈ I (2.61)
j∈J
ª Bº
x B = «x » ∈ Rn (2.62)
¬« 0 ¼»
B −1b ≥ 0 (2.63)
[ ' ªx º
]
B
( )
z = c B c S ⋅ « S » = c TB x B + c ST x S = c TB B −1b − B −1 Sx S + c TS x S
¬x ¼
(
z = c B B b − c TB ' B −1 S − c ST ' x S
T −1
) (2.64)
Notăm cu:
B B
z = c TB x (2.65)
z Bj = c TB y Bj , j = 1, n (2.66)
B
z = z − ¦ z iB − c j x Bj ( ) (2.67)
j∈J
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
®
° 1x − 2 x 2 ≤2
°¯ x1 + x 2 ≤ 5
x1 ≥ 0 , x 2 ≥ 0
şi apoi se ia, în cadranul întâi intersecţia domeniilor ce reprezintă soluţiile, respectiv, ale celor
trei inecuaţii, fig. 2.1.
Prin intersecţia celor trei semiplane s-a obţinut domeniul admisibil, ce este o mulţime
convexă. Coordonatele oricărui punct din acest domeniu satisfac toate restricţiile şi condiţiile
de nenegativitate ale problemei. Conform teoremei 2.4, dacă funcţia obiectiv îşi atinge
valoarea maximă, atunci z ia valoarea maximă într-un vârf ( punct extrem al mulţimii
convexe). Acestea sunt vârfurile poligonului, notate cu: O, A, B, C, D.
23
Programare liniară
x2
d1
C(1,4)
d2
(D
)
D(0,2)
B (4,1)
d3
0 A(2,0) x1
Fig.2.1
x − 2 x2 = 2
B ∈ (d 2 ) (d 3 )® 1 B(4,1)
¯ x1 + x2 = 5
2 x − 2 x 2 = −2
C ∈ (d 1 ) (d 3 )® 1 C (1,4 )
¯ x1 + x 2 = 5
Aflarea soluţiei optime se bazează pe faptul că funcţia obiectiv, având două variabile se
poate reprezenta printr-o dreaptă (D).
c1 z
(D): x 2 = − x1 +
c2 c1
c1
care reprezintă o mulţime de drepte paralele între ele, având panta constantă m = −
c2
z
şi ordonata la origine variabilă, n = .
c1
În problemele de maxim vom alege poziţia care are ordonata la origine astfel ca ea să
furnizeze valoarea maximă pentru z.
Analog pentru problemele de minim.
24
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
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, x 2 ≥ 0, z = 2 x1 + 3 x 2 = max
4
° 1 x ≤ 16
°¯4 x 2 ≤ 12
(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
25
Programare liniară
x1 = 4; x2 = 2 f(x) = 14 = max
min c T x C , x ∈ R n
° °
® Ax = b , unde ® A ∈ M m ,n (2.71)
° x≥0 ° b ∈ Rm
¯ ¯
B
Fie B o bază primal admisibilă extrasă din matricea A şi x = B −1b o soluţie de bază
iniţială a problemei de programare liniară.
Pentru ordonarea şi facilitarea calculelor se utilizează în aplicarea practică a
algoritmului tabele ce poartă denumirea de tabele simplex.
Aceste tabele sunt tabele simple ce au m+1 linii şi n+1 coloane şi cuprind coeficienţii
numerici al problemei (2.71) corespunzători bazei primal admisibile B (tab 2.2).
Tabelul conţine în prima coloană, variabilele de bază (V.B.), în coloana a doua
valoarea variabilelor de bază (V.V.B), iar în următoarele n coloane vectorii y Bj , j = 1, n .
Pe ultima linie a tabelului se trece valoarea funcţiei obiectiv pentru baza B notată cu
B
z şi diferenţele z Bj − c j , j = 1, n .
Acestui tabel se ataşează o linie deasupra variabilelor x j şi o coloană la stânga
coloanei V.B cu coeficienţii corespunzători funcţiei obiectiv c j , j = 1, n .
26
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
Tabelul 2.2
cl ... ck ... cj ... cn
B B
xi xl
min = (2.73)
i∈ I + yikB ylkB
~
B B
se obţine un nou program de bază x cel puţin la fel de bun ca x , corespunzător unei noi
~ (l )
baze B care are aceleaşi coloane ca şi B, cu excepţia coloanei a ce se înlocuieşte cu
(k )
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.
27
Programare liniară
Î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
max (( z j − c j ) B ) = ( z kB − c ) (2.74)
j∈ J ylk ylkB k
B B
max ( z j − c j ) = z k − ck (2.75)
j∈ J
elementul de
transformat
y B
ij y ikB
y ijB y ikB
pivotul
Fig.2.3
28
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
{
Dacă există cel puţin un indice j∈ J + , J + = j ∈ J / z Bj − c j > 0 } astfel încât
Acest algoritm are paşii 1,2,5,6 identici cu algoritmul pentru probleme de minimizare.
• Pasul 3 : Se analizează toate diferenţele z Bj − c j :
B
Dacă toate diferenţele z Bj − c j ≥ 0 , ∀j = 1, n atunci programul x este optim.
{
Dacă există cel puţin un indice j ∈ J − , J − = j ∈ J / z Bj − c j < 0 } astfel încât
29
Programare liniară
START
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
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 ).
Pentru a aplica algoritmul simplex, vom aduce mai întâi problema la forma standard. În acest
scop introducem variabilele ecart x3, x4 şi x5:
x1 − x 2 + x3 = 4,
°3 x − x + x = 18,
°° 1 2 4
−
® 1 x + 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] ;
30
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
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.
Cunoscând toate aceste date, putem forma tabelul simplex iniţial ( tab.2.3).
{ }
Pasul 3. Deoarece există j ∈ J − , J − = j ∈ J / z Bj − c j < 0 astfel încât z Bj − c j < 0 , baza
iniţială nu este optimă.
Pasul 4 Se determină indicele k ∈ J + cu criteriul de intrare în bază
z kB − ck = min ( z Bj − c j ) =min ( − 2,−1 )=-2. Deci indicele k = 1, astfel variabila x1 va intra
j∈ J −
~
în noua bază B şi (∃)k ∈ J + pentru care y kB > 0 .
Pasul 5: Se determina indicele l ∈ I cu criteriul de ieşire din bază
§ xB · xB
¨ i ¸ l 4 18 ½ 4
min ¨ B ¸ = B = min ® , ¾ = ,
¯1 3 ¿ 1
i∈ I
© yij ¹ ylk
y B >0
ik
deci indicele l = 3. Variabila x3 va părăsi baza B. Pivotul este y31= 1
Pasul 6: Se înlocuieşte în baza iniţială B variabila x3 cu variabila x1 obţinându-se astfel o noua
~
baza B ceea ce însemnă că se vor transforma toate mărimile următorului tabel simplex cu
regula dreptunghiului.
Interaţia 4 Deoarece z j − c j ≥ 0 pentru toţi j, baza actuală este optimă. Deci programul optim
42 36 14
al problemei noastre este x1 = , x2 = , x3 = , x 4 = 0 , x5 = 0 ( x 4 şi x5 au valoarea
5 5 5
0, deoarece sunt variabile secundare).
Interpretare geometrică.
31
Programare liniară
Tabelul 2.3
2 1 0 0 0
C B
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
CB 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
C B
V.B. V.V.B xl x2 x3 x4 x5
24 0 0 0 1 1
x2
42 36
C ,
5 5
(d2)
B(7,3)
D (0,3)
(d1)
O (0,0) A(4,0) x1
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.
32
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
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 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ă.
33
Programare liniară
2 x1 + 3 x 2 + x3 + x 4 = 400
° x + x + x = 150
° 1 3 5
®
2
° 1 x + 4 x 3 + x6 = 200
°¯ x 2 + x7 = 50
xi ≥ 0 (i = 1,7)
f = min(−8 x1 − 5 x 2 − 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.
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
34
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
Algoritmul simplex necesită, pentru pornire, ca problema să fie dată în forma standard
şi să aibă o soluţie admisibilă de bază.
Prima dintre condiţii se realizează folosind transformări utilizate în programarea
liniară.
Pentru cea de-a doua condiţie alegerea la întâmplare a unei baze formată din m vectori
ai matricei A, conduce la soluţii de bază nerealizabile cu care algoritmul simplex nu poate
începe.
Găsirea unei baze pur şi simplu prin încercări repetate nu este indicată, această căutare
putând dura foarte mult.
Rezolvarea problemei pleacă de la observaţia că singura bază pentru care calculul de
mai sus se poate face imediat este matricea unitate, caz în care soluţia de bază
corespunzătoare este chiar vectorul termenilor liberi.
Aceasta presupune ca problema să aibă toţi termenii liberi mai mari sau egali cu 0 şi în
matricea A să existe toate coloanele matricei unitate.
În acest sens plecăm de la observaţia că existenţa unui vector din matricea unitate este
echivalentă cu existenţa unei variabile care apare doar în ecuaţia corespunzătoare lui 1 din
acel vector, cu coeficientul 1. Acest lucru poate fi obţinut în două moduri:
1) Alegem o nouă funcţie obiectiv care să-şi atingă extremul printre soluţiile
pozitive chiar pentru y = 0 şi în momentul când am obţinut soluţia respectivă pornim cu
aceasta ca soluţie iniţială algoritmul simplex pentru fosta problemă (Metoda celor două
faze).
2) Adăugăm la vechea funcţie obiectiv noi variabile y cu coeficienţi aleşi astfel
încât aportul variabilelor la valoarea funcţiei să fie contrar scopului dorit (infinit pozitiv
într-o problemă de minim şi infinit negativ într-o problemă de maxim) (Metoda
coeficienţilor de penalizare)
Vom detalia în continuare cele două metode:
max c T' ⋅ x
°
® A⋅ x = b (2.77)
° x≥0
¯
î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
¯
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:
35
Programare liniară
1. minimul funcţiei f este strict pozitiv, aceasta fiind echivalent cu faptul că egalitatea Ax +
Imxa = b se poate obţine doar pentru Imxa > 0 sau altfel spus Ax > b pentru orice x ≥ 0, deci
sistemul Ax = b nu are soluţii admisibile şi în concluzie problema iniţială nu are soluţie.
2. minimul funcţiei f este 0, în acest caz, soluţia optimă obţinută verifică Ax = b, fiind în
concluzie o soluţie admisibilă de bază a primei probleme.
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.
în care toţi termenii liberi sunt pozitivi şi matricea A nu conţine nici un vector coloană unitar.
Construim problema:
f = max(c T x − My)
°
® A⋅ x + y = b (2.80)
° x, y ≥ 0
¯
în care M este o constantă presupusă foarte mare (mai mare decât orice constantă care
ar putea apare în rezolvarea problemei).
Rezolvăm problema cu algoritmul simplex pornind rezolvarea de la baza matrice
unitate, putând ajunge la trei situaţii:
1) problema are optim infinit, în acest caz, problema iniţială are optim infinit ( nu
prezintă interes din punct de vedere tehnico-economic).
2) problema are optim finit şi în soluţia de bază avem cel puţin o variabilă din
vectorul y. În acest caz problema iniţială nu are soluţii admisibile.
3) problema are optim finit şi în soluţia de bază nu avem nici o variabilă din
vectorul y. În acest caz problema iniţială are optim finit, soluţia optimă şi maximul
funcţiei fiind aceleaşi cu cele ale problemei modificate.
Se remarcă faptul că variabilele y nu au aceeaşi semnificaţie economică ca celelalte
variabile, ele fiind introduse doar ca un artificiu de calcul pentru a putea porni algoritmul
simplex.
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.
36
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
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.
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 , x 2 , 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
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
37
Programare liniară
Am obţinut optimul egal cu 0 în soluţia de bază (x3,x2) care va fi soluţia iniţială pentru
algoritmul simplex aplicat problemei iniţiale în a doua fază.
Eliminăm din tabel coloana lui x5, înlocuim valorile coeficienţilor funcţiei obiectiv şi
deci şi valoarea acesteia, valorile z Bj − c j şi rezolvăm problema în continuare, plecând de la
baza primal admisibilă determinată, cu algoritmul simplex primal, obţinând tabelele de mai
jos:
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
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
38
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
(max) z = c T x
°
® Ax = b (2.81)
° x≥0
¯
yBj=B-1a(j) , j = 1, n (2.82)
deducem :
Relaţia de mai sus are următoarea semnificaţie din punct de vedere tehnico-economic,
fabricarea unei unităţi de produs j este echivalentă cu fabricarea cantităţilor y1B, j , y 2Bj ,..., y mj
B
din produsele operaţiilor de bază. Ca urmare, pentru fabricarea unei unităţi din produsul j este
necesar a diminua producţia operaţiilor de bază cu cantităţile y1Bj , y 2Bj ,..., y mj
B
.
39
Programare liniară
z Bj − c j ≥ 0 , j = 1, n (2.86)
atunci programul de fabricaţie curent este optim. Acesta este, criteriul de optimalitate al
algoritmului simplex.
Dacă z Bj − c j < 0 , atunci activitatea secundară j conduce la o majorare a profitului
realizabil prin programul curent, egală cu − ( z Bj − c j ) .
Dintre operaţiile secundare j ∈ J rentabile în raport cu operaţiile de bază se va alege
acea operaţie k care asigură cea mai mare viteză de creştere a valorii curente a producţiei (
interpretarea criteriului de intrare în bază).
O altă problemă care se mai pune este stabilirea cantităţii din produsul j care se poate
realiza în condiţiile date.
Fabricarea unei cantităţi θ din acest produs implică diminuarea producţiei din
produsele operaţiilor de bază astfel:
Evident, desfăşurarea unei activităţi la un nivel negativ este lipsită de sens economic.
Astfel este necesar ca :
xiB
θ ≤ θ 0 = min (2.89)
i yikB
y B >0
ik
xB
xl = xlB − θ 0 ylkB = xlB − l ylkB = 0 (2.90)
ylkB
40
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 u 3 ≤ c1
° ′
®a12 u1 + a 22′u 2 + a32′u 3 = c2 problema duală (2.92)
° ′ ′ ′
° a13 u1 + a 23 u 2 + a33 u 3 ≥ c3
°¯ u1 ≥ 0 ; u 2 arbitrar ; u 3 ≤ 0
Observăm că duala problemei dualei este chiar problema primală. Datorită legăturii
strânse ce se stabileşte între aceste probleme care sunt 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 :
- Termenii liberi din problema primală devin coeficienţi ai funcţiei obiectiv din
problema duală.
- Coeficienţii funcţiei obiectiv din problema primală devin termeni liberi în
problema duală.
- O problemă de maximizare primală devine problemă de minimizare duală.
- Matricea coeficienţilor din problema duală este transpusa matricei coeficienţilor
din problema primală
- Variabilele duale corespunzătoare unor restricţii concordante din problema primală
sunt nenegative, iar cele corespunzătoare unor restricţii primale neconcordante
sunt nepozitive.
- Variabilele primale negative le corespund în problema duală restricţii concordante,
iar variabilelor primale pozitive le corespund în problema duală restricţii
neconcordante.
41
Programare liniară
42
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
Exemplul 2.8
®2 x1 − x3 − x 4 ≤ 5
° x + 2 x − x ≤ 10
° 2 3 4
¯° x1 ,..., x 4 ≥ 0
u1 1 -1 3 1 15
u2 2 0 -1 -1 5
u3 0 1 2 -1 10
x1 x2 x3 x4
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)
{ m T
D = u ∈ R A 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 ≥ b T u .
Propoziţia 2.1. Dacă L este o matrice antisimetrică (LT = -L), atunci sistemul de inegalităţi
liniare
43
Programare liniară
l ⋅ t ≥ 0
® (2.95)
¯t ≥ 0
L ⋅t > 0 (2.96)
Teorema 2.10. (Teorema fundamentală a dualităţii) Fie cuplul de probleme duale (2.91) -
(2.92). Atunci una şi numai una din următoarele situaţii este posibilă :
a) Ambele probleme au soluţii admisibile. În acest caz, ambele probleme au soluţii
optime şi valori optime ale funcţiilor obiectiv sunt egale.
b) Una din probleme are soluţii admisibile, iar cealaltă nu are (este incompatibilă). În
acest caz, problema compatibilă are optim infinit.
c) Nici una dintre probleme nu are soluţii admisibile.
Teorema 2.11. (Teorema ecarturilor complementare). Fie cuplul de probleme duale canonice
(2.91) - (2.92). Atunci x ∈ P şi u ∈ D sunt soluţii optime pentru cele două probleme dacă şi
numai dacă:
( )
°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:
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
Mulţimea soluţiilor admisibile ale problemei (primale) este reprezentată în fig. 2.6.
* *
Problema admite soluţia optimă x1 = 0 , x 2 = 3 , pentru fiecare funcţia obiectiv are
valoarea f max = 21 .
44
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
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 u 1 + 6 u 2 )
°4u + u ≥ 3
° 1 2
®
°3u 1 + 2u 2 ≥ 7
°¯u 1 , u 2 ≥ 0
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 , b ∈ R m , A ∈ M m×n , cu rang A = m < n.
n
45
Programare liniară
max b T u
°° '
®A u ≤ c (2.99)
°u arbitrar
°¯
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 TB B −1 (2.101)
Teorema 2.12. (Teorema de optimalitate). Fie B o bază dual admisibilă pentru problema
{ B
}
primală (2.98). Fie mulţimea I _ = i ∈ I x i < 0 I_=∅, atunci soluţia de bază asociată bazei
B
B, x = B −1b , este o soluţie optimă a problemei (2.98).
Teorema 2.14. (Teorema de îmbunătăţire a soluţiei) Fie B o bază dual admisibilă pentru
problema primală (4.29), iar I_≠∅. Dacă pentru orice i ∈ I _ există j ∈ J astfel încât
y ijB < 0 , şi dacă se alege l ∈ I _ arbitrar, iar k ∈ J astfel încât să fie satisfăcută condiţia :
° z Bj − c j ½° z kB − c k
min ® B ¾= (2.102)
j
B
y <0
°̄ y lj °¿ y lkB
lj
atunci matricea B’ obţinută din B prin înlocuirea coloanei A(l) cu coloana A(k) este o bază
dual admisibilă, iar programul dual asociat uB’ este cel puţin la fel de bun ca programul uB
B B
Pasul 2. Se calculează x , z , y Bj , z Bj , − c j , j = 1, n .
46
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
{}
min x i = x l
i∈I _
B B
Dacă y ijB ≥ 0, j = 1, n , atunci STOP : problema nu are soluţii; astfel se determină indicele
k ∈ J cu criteriul de intrare în bază:
° z Bj − c j ½° z B − c
¾=
k k
min ® B B
j
yljB <0
°̄ y lj °¿ y lk
Pasul 5. Fie baza B’ obţinută din B prin înlocuirea coloanei A(l) cu coloana A(k).
Se trece la Pasul 2, înlocuind peste tot baza B cu baza B’.
Algoritmul simplex dual poate fi exprimat sintetic sub forma schemei logice din
fig.2.8
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
47
Programare liniară
Exemplul 2.10
max(− 3 x1 − 2 x 2 )
° x − 2 x + 3x ≥ 4
° 1 2 3
®
2
° 1 x + x 2 − x 3 ≥ 2
°¯ x1 , x 2 , x3 ≥ 0
max(− 3x1 − 2 x 2 )
°− x + 2 x − 3 x + x = −4
° 1 2 3 4
®
°− 2 x1 − x 2 + x3 + x5 = −2
°¯ x1 ,..., x5 ≥ 0
Baza iniţială B este matricea unitate formată cu coloanele A(4), A(5) . Tabelul simplex asociat
are ca variabile de bază pe x4 şi x5:
-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
°̄ y 4 j y43
48
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 2 0 -5/3 1 -2/3 1/3
-3 x 5 2 1 -1/3 0 -1/3 -1/3
0 0 3 0 1 1
Teoretic. Una din problemele centrale ale programării matematice este caracterizarea
situaţiilor în care există optimul unei probleme şi găsirea unor metode prin care să
recunoaştem optimalitatea unei soluţii.
Teorema fundamentală a dualităţii şi teorema ecarturilor complementare reprezintă
rezultate chiar în acest sens, în care se foloseşte dualitatea.
Practic. Putem rezolva o problemă rezolvând problema duală a acesteia sau cunoscând soluţia
dualei.
În unele cazuri, rezolvarea dualei este mult mai uşoară decât rezolvarea primalei, de
exemplu când numărul de restricţii al primalei este mai mare decât numărul de variabile al
acesteia sau când primala necesită mai multe variabile suplimentare decât duala.
Economic. În cele mai multe probleme economice, a căror rezolvare se face printr-un model
de programare liniară, soluţia dualei aduce o serie de informaţii suplimentare despre problema
studiată.
Semnificaţia economică a soluţiei dualei depinde de specificul problemei şi trebuie găsită de
la caz la caz.
Având în vedere că max[f(x)] = min [g(u)], rezultă că, dacă, cantitatea disponibilă din
resursa Ri creşte cu o unitate, atunci valoarea funcţiei obiectiv creşte cu ui, deci ui măsoară
creşterea valorii funcţiei obiectiv determinată de creşterea cu o unitate a cantităţii disponibile
bi.
Aceste evaluări obţinute dintr-un program optim au fost denumite în literatura de
specialitate "preţuri umbră"(„shadow price”).
Preţul umbră ui arată cu cât se modifică funcţia obiectiv a problemei duale, atunci când
termenul liber al restricţiei Ri se "relaxează" cu o unitate. A "relaxa" are semnificaţia de a
spori cantitatea disponibilă bi a unei resurse deficitare sau, pentru restricţiile de tip calitativ cu
n
limită inferioară impusă ( ¦ a ij x j ≥ bi), de a reduce nivelul termenului liber bi.
j=1
Este evident că, dacă o resursă nu este utilizată în întregime pentru satisfacerea
n
programului optimal xB ( ¦ a ij x j < bi), atunci ui = 0 iar funcţia obiectiv nu este afectată de
j=1
sporire a cantităţii disponibile bi.
Preţurile umbră (preţuri duale) aduc informaţii suplimentare pentru analiza eficienţei
economice a resurselor şi a diferiţilor indicatori economici sau tehnici care apar în restricţiile
unei probleme de programare liniară.
Pe baza lor se pot fundamenta deciziile privind alocarea judicioasă a resurselor, se pot
stabili măsuri de stimulare a consumului raţional al resurselor, se determină cât mai corect
nivelul minim şi maxim al diferiţilor indicatori tehnici şi economici de care depinde structura
planului optim.
49
Programare liniară
Soluţia optimă obţinută prin utilizarea datelor iniţiale poate constitui un punct de
plecare pentru analiza economică privind alocarea eficientă a resurselor.
Pentru problemele în care se cere maximizarea funcţiei f(x), indicatorii zj reprezintă
costul unitar de fabricaţie al produsului j, rezultat din evaluarea coeficienţilor aij prin preţurile
umbră ataşate restricţii1or.
Rezultă că, prin calcularea diferenţei zj-cj, se compară acest cost unitar cu coeficientul
cj (preţ unitar, beneficiu unitar etc.) din funcţia obiectiv.
Dacă există diferenţe negative (zj-cj < 0) înseamnă că, la activităţile respective, preţul
umbră al produsului j (costul unitar de fabricaţie exprimat în indicatori ui) este mai mic decât
venitul realizat şi de aceea activitatea aj este eficientă.
Aşa se explică faptul că va intra în bază vectorul a(k) ce corespunde diferenţei (zj-cj)
minime.
În momentul în care toate diferenţele sunt pozitive (zj-cj ≥ 0) rezultă că nu mai există
activităţi eficiente şi prin urmare soluţia de bază analizată este optimă.
În cazul problemelor de minim, indicatorii zj se pot interpreta ca venituri, exprimate în
preţurile umbră ale restricţiilor, ce se obţin prin realizarea unei unităţi din produsul j.
Prin urmare, dacă există diferenţe pozitive (zj-cj > 0), activităţile aj corespunzătoare
sunt eficiente, deoarece se realizează un venit unitar mai mare decât costul unitar de fabricaţie
(zj > cj).
De aceea, va intra în bază activitatea ak, corespunzătoare diferenţei maxime, iar soluţia
de bază se consideră optimă atunci când toate diferenţele (zj-cj) sunt nepozitive .
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 unitatea de Profitul
produs unitar
min max R1 R2 R3 R4 um/buc
SN 400 FU32 RU320 Banc 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 resursă 36 30 37 38 -
50
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
Din produsul P1 se produc 135 unităţi, din produsul P2 se produc 100 unităţi, din
produsul P3 se produc 70 unităţi. În aceste condiţii valoarea funcţiei obiectiv este de 3.600
unităţi monetare.
Variabilele de compensare (ecart) arată utilizarea resurselor astfel:
• x4 = 0, Y1 = 100 - preţ umbră
0.1 ⋅ 135 + 0.12 ⋅ 100 + 0.15 ⋅ 70 = 36 = 36
Prima restricţie este satisfăcută cu semnul „=” ceea ce înseamnă că resursa R1 este
utilizată în totalitate, deci R2 este o resursă rară – resursă a cărei lipsă / indisponibil ar limita
sau modifica.
În acelaşi timp dacă în prima restricţie mărim timpul disponibil cu o unitate (din 36u.t.
la 37u.t.), valoarea F.O. se modifică în sens pozitiv tocmai cu valoarea preţului umbră, deci
profitul va fi de 3.700 u.m.
• x5 = 10.6 Y2 = 0 - preţ umbră
0.06 ⋅ 135 + 0.05 ⋅ 100 + 0.09 ⋅ 70 = 19.4 < 30 cu 10.6 u.t.
A doua restricţie este satisfăcută cu semnul „<”, deci din resursa R2 rămâne un timp
disponibil de 10.6 u.t. care nu este utilizat în procesul de producţie, astfel resursa R2 nu este o
resursă rară însă lipsa ei poate limita producţia, preţul ei umbră fiind nul.
• 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.
51
Programare liniară
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
Restricţia opt este satisfăcută cu semnul „<”, deci din produsul P3 rămân nevândute o
cantitate de 110 unităţi de produs (u.p), astfel P3 nu este o resursă rară deci are preţul umbră
nul.
• x12 = 0 Y9 = 0 - preţ umbră
1 ⋅ 70 = 70 = 70
Restricţia şapte este satisfăcută cu semnul „=” ceea ce arată că produsul P3 este vândut
în totalitate şi cererea maximă este corectă – 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. Prin
creşterea cu o unitate a restricţiei în loc de 70 să avem 71 valoarea funcţiei obiectiv rămâne
aceeaşi F.O.=3.600u.m.
În concluzie acelaşi plan de producţie se putea face, cu acelaşi profit şi dacă restricţiile
problemei erau următoarele:
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
52
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
CAPITOLUL 3
PROGRAMAREA LINIARĂ DE TIP TRANSPORT
3.1. Formularea unei probleme de transport
Tabelul 3.1
Pi
C1 C2 Cj Cn ai
Cj
P1 c11 c12 c1 j c1n a1
P2 c21 c22 c2 j c2 n a2
Pi ci1 ci 2 cij cin ai
Pm cm1 cm 2 cmj cmn am
bj b1 b2 b j bn
- fiecare centru producător aprovizionează cel puţin un centru consumator şi fiecare centru
consumator este aprovizionată de la cel puţin un centru producător;
- pot exista perechi producător - consumator între care nu se poate face transfer;
- nu există limitări în ceea ce priveşte cantitatea transportată pe fiecare rută;
- fiecărei rute i s-a asociat un cost care nu depinde de sensul de parcurgere.
Obiectivul problemei de transport este găsirea cantităţilor care trebuie transportate pe
fiecare rută astfel încât să se asigure necesarul fiecărui centru consumator, în limitele
cantităţilor aflate în centru producător, şi aceasta cu costuri minime.
53
Programare liniară de tip transport
§ m n −1 ·
° min ¨ ¦¦ ci j xi j ¸
¨ ¸
° © i =1 j =1 ¹
° n −1 _____
°° ¦ xi j ≤ a i , i ∈ 1, m
® m j =1 (3.1)
_______
°
° i =1¦ xi j ≥ b j , j ∈ 1, n − 1
° m, n −1
°¦ a i > ¦ b j , a i ≥ 0 , b j ≥ 0
°¯ i =1 j =1
Astfel în urma acestor transformări se va obţine următorul model matematic echilibrat (3.2):
§ m n −1 ·
° min¨¨ ¦¦ ci j xi j ¸¸
° © i =1 j =1 ¹
° n −1 _____
° ¦ xi j = a i , i ∈ 1, m
® j =1 (3.2)
°m _______
°¦ xi j = b j , j ∈ 1, n − 1
° i =1
°¯ xi j ≥ 0
Orice problemă poate fi transformată într-o problemă de tipul (3.2). Acest caz este
foarte rar în practică, însă el este cel mai simplu din punct de vedere matematic şi astfel va fi
ales pentru formalizarea problemei.
O astfel de problemă se numeşte problemă de transport echilibrată.
In practică pot exista următoarele cazuri:
m n
- Dacă ¦ ai < ¦ b j , se poate adăuga un depozit fictiv Pm+1 care are un disponibil
i =1 j =1
ai b j
xi j = n
(3.3)
¦a
i =1
i
Aplicarea algoritmului simplex este dificilă în acest caz datorită numărului foarte mare
de necunoscute şi a determinării soluţie admisibile de bază.
Într-o problemă de transport nu poate apărea decât varianta de optim finit, existând
întotdeauna soluţii admisibile, iar minimul –∞ nu este posibil, ţinând cont că avem de
minimizat o funcţie liniară cu toţi coeficienţii pozitivi pe o mulţime de soluţii cu toate
componentele pozitive.
54
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
m n
° min( ¦ ¦ cij xij )
i =1 j =1
°
° n x = a , i = 1, m
° j¦ ij i
® =1 (3.4)
°m
° ¦ xij = b j , j = 1, n
°i =1
°0 ≤ xij ≤ α ij , i = 1, m, j = 1, n
¯
m n
°¦ ai = ¦ b j
° i =1 j =1
°° n
®¦ α ij ≥ ai , i = 1, m (3.5)
° j =1
° n
°¦ α ij ≥ b j , j = 1, n
°¯ j =1
Tabelul 3.2
Pi / Cj Cl ... Cj ... Cn ai
55
Programare liniară de tip transport
m p
' '
p n
'' ''
min( ∑ ∑ c ik x ik + ∑ ∑ c kj x kj )
i =1 k =1 k =1 j =1
p
k∑ xik' = ai , i = 1, m
=1
m
∑ x ' = β , k = 1, p
ik k
i =1 (3.6)
n ''
∑ x kj = β k , k = 1, p
j =1
n ''
k∑ x kj = b j , j = 1, n
=1
xik' , x kj'' ≥ 0, i = 1, m, k = 1, p, j = 1, n
unde:
xik' - reprezintă cantitatea ce urmează a fi transportată de la centrul producător i la centrul
intermediar k ;
cik' - costul unitar de transport dintre centrele i şi k ;
x kj'' - cantitatea ce urmează a fi transportată de la centrul k la centrul consumator j ;
c kj'' - costul unitar de transport dintre centrele k şi j.
Condiţia necesară şi suficientă de existenţă a soluţiilor pentru problema (3.6) este:
m p n
¦a = ¦β
i =1
i
k =1
k = ¦bj
j =1
(3.7)
Având în vedere faptul că fiecare intermediar este atât centru destinaţie cât şi centru
sursă, se pot considera următoarele două probleme de transport:
m p
' '
°min(i¦ ¦ cik xik )
=1 k =1
° p
° ¦ x ' = a , i = 1, m
° ik i
®k =1 (3.8)
°m '
° ¦ xik = β k , k = 1, p
° i =1
°¯ xik' ≥ 0, i = 1, m, k = 1, p
56
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
şi
p n
'' ''
° min( ¦ ¦ c kj x kj )
k =1 j =1
°
° n x '' = β , k = 1, p
° j¦ kj k
® =1 (3.9)
° p ''
° ¦ x kj = b j , j = 1, n
° k =1
° x kj'' ≥ 0, k = 1, p, j = 1, n
¯
( ) ( )
' ''
Se poate arăta că x ik şi x kj reprezintă o soluţie optimă a problemei de transport cu
centre intermediare (3.6) dacă şi numai dacă x ik ( ) este o soluţie optimă a problemei de
'
( )''
transport (3.8), iar x kj este o soluţie a problemei de transport (3.9).
În consecinţă, rezolvarea problemei (3.6) este echivalentă cu rezolvarea celor două
probleme (3.8) şi (3.9).
Probleme de repartiţie
m n
min( ∑ ∑ cij xij )
i =1 j =1
n x ≤ a , i = 1, m
j∑ ij i
=1 (3.10)
m
∑ rij xij = b j , j = 1, n
i =1
xij ≥ 0, i = 1, m, j = 1, n
Soluţia admisibile de baza iniţiale, care are cel mult (m+n-1) componente nenule, este
o soluţie nedegenerată. Dacă numărul soluţiilor este mai mic decât (m+n-1) soluţia este
degenerată.
Această metodă se mai numeşte Metoda diagonalei principale sau Metoda lui
Dantzing.
Metodă nu ţine cont de costurile de transport cij şi numai de cantităţile disponibile în
centrele producătoare şi cererea centrelor consumatoare.
57
Programare liniară de tip transport
Etapele metodei:
• Se alege x11 = min (a1b1 ) ( (1,1) fiind colţul stânga sus – NV). Sunt posibile următoarele
cazuri:
1) min(a1 , b1 ) = a1 x11 = a1 , iar x1 j = 0, j = 1, n . Necesarul centrului C1 devine b1 − a1 .
2) min(a1 , b1 ) = b1 x11 = b1 , iar xi1 = 0, i = 1, m . Disponibilul centrului P1 devine a1 − b1 .
3) a1 = b1 x11 = a1 = b1 , iar x1 j = 0, j = 1, n şi xi1 = 0, i = 1, m .
• Se elimină de sus în jos sau de la stânga la dreapta prima linie respectiv prima coloană din
tabel. Următoarele componente strict pozitive ale soluţiei de bază iniţiale se determină în mod
analog, considerând colţul NV rămas după eliminarea anterioară.
Exemplul 3.1 :
Pentru problema de transport ale cărei date sunt centralizate în tabelul 3.3 să se
determine soluţia de bază iniţială utilizând metoda lui Dantzing.
Tabelul 3.3
Q1 Q2 Q3 Q4
P1 7 8 5 3 11
P2 2 4 5 9 11
P3 6 3 1 2 8
5 9 9 7 30
5 6 0 0 0 5 6 0 0 0
0 x 22 x 23 x 24 11 0 3 x 23 x 24 8
0 x 32 x33 x 34 8 0 0 x33 x34 8
0 3 9 7 0 0 9 7
58
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
5 6 0 0 0 5 6 0 0 0
0 3 8 0 0 0 3 8 0 0
0 0 x33 x34 8 0 0 1 7 0
0 0 1 7 0 0 0 0
tabelul 3.8 tabelul 3.9
Metodă ţine cont atât de costurile de transport cij cât şi de cantităţile disponibile în
centrele producătoare şi cererea centrelor consumatoare.
• ( )
Se alege clk = min cij . Se determină x lk = min(al , bk ) Sunt posibile următoarele cazuri:
1) min(al , bk ) = al x lk = al , iar xlj = 0, j = 1, n . Necesarul centrului Cj devine bk − al .
2) min(al , bk ) = bk x lk = bk , iar xik = 0, i = 1, m . Disponibilul centrului Pi devine al − bk .
3) al = bk x lk = al = bk , iar xlj = 0, j = 1, n şi xik = 0, i = 1, m .
• Se elimină de sus în jos sau de la stânga la dreapta linia respectiv coloană din tabel.
Se determină în mod analog, considerând variabila de cost minim din subtabelul rămas după
eliminarea anterioară.
Dacă sunt mai multe costuri minime egale, atunci se ia în considerare mai întâi variabile care
ia valoare maximă.
Generalităţi
Rezolvarea problemei de transport prin metoda simplex este, în general, puţin
eficientă. Câteva dintre motive sunt următoarele:
- numărul mare de variabile, egal cu m, n
- absenţa unei baze iniţiale. Varianta de rezolvare prin considerarea unor variabile
auxiliare pentru fiecare linie şi coloană şi aplicarea metodei celor două faze este
laborioasă;
- apariţia frecventă a cazurilor de degenerare datorită numărului mare de elemente
ale matricei coeficienţilor A egale cu 0 şi 1 .
Metoda potenţialelor reprezintă o metodă specială de testare şi îmbunătăţire a soluţiei unei
probleme de transport.
59
Programare liniară de tip transport
§m n ·
° max¨ ¦ ai u i + ¦ b j v j ¸
° ¨ ¸
° © i =1 j =1 ¹
®u i + v j ≤ cij , i = 1, m, j = 1, n (3.11)
°
° ui arbitrar , i = 1, m
° v j arbitrar , j = 1, n
¯
(cij − u i − v j ) ⋅ x ij = 0, i = 1, m, j = 1, n ) (3.12)
Pentru ca relaţia de mai sus să fie satisfăcută este suficient ca (u i , v j ) să fie soluţii ale
sistemului
în care s-a notat mulţimea de indici J = {(i, j ) xij este variabila de bază }.
Propoziţia 3.1 Sistemul de ecuaţii are o infinitate de soluţii. Dacă (ui0 , v 0j ) este o soluţie
particulară şi k o constantă oarecare, atunci orice soluţie a sistemului este de forma:
°u i = ui0 + k , i = 1, m
® 0 (3.14)
°̄v j = v j − k , j = 1, n
Pentru rezolvarea sistemului se poate fixa arbitrar una dintre necunoscute, fără a
influenţa optimalitatea soluţie problemei de transport; de obicei se alege ui = 0 .
Observaţie. Rezolvarea sistemului se poate efectua direct pe tabelul de rezolvare al
problemei. Valorile variabilelor ui şi v j se înscriu la marginile tabelului ; din acest motiv ele
se mai numesc şi valori marginale .
Algoritmul metodei potenţialelor
60
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
Pasul 5. Se calculează criteriul de ieşire din bază θ = x st = min{x ij (i, j ) este căsuţă de rang
par în ciclu }şi se determină variabila x st va ieşi din bază.
Observaţii :
1) Soluţia iniţială de bază obţinută la pasul 1 al algoritmului depinde de metoda folosită
pentru determinarea ei. Aceasta nu influenţează, soluţia optimă a problemei, ci
eventual numărul de iteraţii pentru obţinerea soluţiei optime.
3) Tabelele ce se vor construi la aplicarea algoritmului vor fi formate din căsuţe (i, j) ce
pot avea una din configuraţiile
cij
cij δ ij
+(-) xij xij=0
Prima indică o căsuţă corespunzătoare unei valori de bază ( xij > 0 ), iar cea de-a doua
o căsuţă corespunzătoare unei valori nebazice ( xij = 0 ) , pentru care se calculează valoarea
δ ij .
Simbolurile + sau – apar dacă căsuţa face parte din ciclul construit la pasul 4 al
algoritmului. Simbolul + indică o căsuţă de rang impar , iar simbolul – indică o căsuţă de rang
par.
Exemplul 3.2
Fie date trei fabrici producătoare (P1, P2, P3) ale aceluiaşi produs, care trebuie să
aprovizioneze cu acest produs patru consumatori (C1, C2, C3, C4). În tabelul 3.10 sunt date
cantităţile disponibile în centrele producătoare (ai), cantităţile necesare în centrele
consumatoare (bj) şi costurile pe unitatea de transport.
Să se determine planul optim de transport în condiţiile costurilor minime.
61
Programare liniară de tip transport
Tabelul 3.10
Pi / Cj C1 C2 C3 C4 ai
P1 8 7 3 6 19
P2 4 6 7 3 20
P3 3 4 2 5 16
bj 15 12 14 14 55
3 4
Problema de transport este echilibrată deoarece ¦ ai = ¦ b j = 55 , iar pentru
i =1 j =1
rezolvarea ei se va aplica metoda potenţialelor si pentru determinarea soluţiei de bază se va
aplica metoda costului minim din tabel.
Iteraţia 1.
Pasul 1. Prin metoda costului minimal se determină soluţia de bază iniţială iar calculele sunt
prezentate în tabelul 3.11:
Tabelul 3.11
7 12 0 0 19 12
6 0 0 14 20 6 0
2 0 14 0 16 2 0
15 12 14 14
13 0 0
7
0
62
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie
{ }
Pasul 4. Se calculează δ lk = max δ ij / (∀)(i, j ) ∉ J = δ 13 = 4 variabila x13 va intra în bază
Se construieşte ciclul : (1,3), (1,1), (3,1), (3,3), (1,3) care este indicat în tabelul 3.13.
Pasul 5. Se determină
{ }
θ = x st = min xij / (i, j )este casuta de ordin par = min{7,14} = x11 = 7 variabila x11 va
ieşi din bază.
Pasul 6. Se modifică valorile căsuţelor din ciclul de mai sus:
x13 = 0 + 7 = 7, x11 = 7 − 7 = 0, x 31 = 2 + 7 = 9, x 33 = 14 − 7 = 7 .
Noua soluţie de bază admisibilă este înscrisă in tabelul 3.14
Tabelul 3.14
v1=4 v2=7 v3=3 v4=3
u1=0 8 -4 7 3 6 -3
7 12 7 0
u2=0 4 6 1 7 -4 3
6 0 0 14
u3=-1 3 4 2 2 5 -3
9 0 7 0
Iteraţia 3 .
Rezultatele sunt consemnate în tabelul 3.15, deoarece δ ij < 0, ∀(i, j ) ∉ J rezultă că
soluţia este optimă .
Tabelul 3.15
v1=6 v2=7 v3=3 v4=5
u1=0 8 -2 7 3 6 -1
0 5 14 0
u2=-2 4 6 -1 7 -6 3
6 0 0 14
u3=-3 3 4 2 -2 5 -3
9 7 0 0
63
Elemente de teoria grafurilor
CAPITOLUL 4
ELEMENTE DE TEORIA GRAFURILOR
4.1. Fundamente în teoria grafurilor
Prin definiţie un graf este o pereche (X, U ) unde mulţimea X este numită mulţimea
nodurilor (sau vârfurilor) iar mulţimea U este mulţimea muchiilor.
Notaţii utilizate :
64