Sunteți pe pagina 1din 84

1

PROGRAMAREA LINIARA

1.1 Probleme concrete ce conduc la programare liniara


Între metodele matematice larg utilizate în optimizarea deciziilor în
probleme economice, un rol important îl are programarea matematica cu toate
ramurile ei: programarea liniara, neliniara, parametrica, dinamica, stochastica etc.
Dintre toate acestea, programarea liniara este metoda cea mai raspândita,
pe de o parte datorita caracterului relativ simplu al aparatului matematic utilizat în
modelare si rezolvare, iar pe de alta parte pentru ca este usor accesibila din punct
de vedere al reprezentarii matematice si analizei fenomenelor economice.
În esenta, programarea liniara trateaza o problema manageriala economica
de baza: alocarea de resurse limitate unor activitati ce au ca rezultat realizarea unui
produs sau serviciu, pentru un obiectiv sau un scop dat. În functie de obiectivul
urmarit, se definesc o serie de restrictii care reprezinta relatii de interdependenta
între activitatile ce compun sistemul economic analizat si resursele necesare
(conditii de natura tehnologica, organizatorica sau economica). Resursele
sistemului industrial pot fi de tipul: utilaje sau masini unelte, materie prima, forta
de munca, energie, fonduri banesti etc.
Structura modelului general de programare liniara cuprinde multimea
activitatilor {A1, A2,…,An } care compun sistemul economic analizat, multimea de
resurse necesare {R1 , R2 ,…,Rm } precum si relatiile de interdependenta dintre
acestea. Legatura dintre activitati si resurse poate fi caracterizata numeric cu
ajutorul unor coeficienti tehnici sau coeficienti de consum specific {a ij , i = 1,…,m;
j = 1,…,n} care arata ce cantitate din resursa Ri se consuma pentru producerea unei
unitati din produsul (serviciul) Pj , ca rezultat al activitatii Aj .
Notând cu xj (j = 1,…,n) rezultatul activitatii Aj într-o perioada data si cu b i
(i = 1,…,m) cantitatile disponibile din resursele Ri (i = 1,…,m), se pot scrie
matematic urmatoarele restrictii tehnico-economice:

n
∑ a ij ⋅ x j ≤ bi (1.1)
j=1

7
n
unde ∑ a ij ⋅ x j reprezinta consumul total din resursa i pentru realizarea celor j
j= 1
activitati.
Ín problemele manageriale, valorile negative pentru orice activitate
(produs) nu sunt acceptabile, un alt set de restrictii fiind necesar sa se refere la
conditiile de nenegativitate ale variabilelor xj :

xj ≥0 j = 1,..., n (1.2)

Modelul general al problemei de programare liniara cuprinde, pe lânga


restrictiile (1) si (2), un criteriu de “performanta” care permite evaluarea eficientei
fiecarei activitati. În functie de scopul urmarit, putem alege drept criteriu de
eficienta un indicator care sa minimizeze efortul sau sa maximizeze rezultatul
obtinut ca urmare a realizarii activitatilor ce compun sistemul analizat. Se defineste
astfel functia obiectiv f(x):

f (x ) = ∑ c j ⋅ x j
n
(1.3)
j= 1
al carui optim evalueaza eficienta fiecarei variante de program x. Componentele cj
reprezinta marimi cunoscute (coeficienti) al caror continut si forma de exprimare
depind de natura obiectivului urmarit: beneficiu, productie, volum de încasari,
consum minim de energie, productivitate etc.
În concluzie, modelul matematic general al unei probleme de programare
liniara cuprin de o functie obiectiv liniara si o serie de restrictii, de asemenea
liniare. Restrictiile pot fi inecuatii cu semnul “ ≤ ”, inecuatii cu semnul “ ≥ ”
precum si ecuatii. Functia obiectiv ce trebuie optimizata poate avea sensul de
“maxim” sau de “minim”, dupa natura scopului urmarit.
Clasele de probleme economice rezolvabile prin modele de programare
liniara si structura concreta a unei astfel de aplicatii este determinata, în primul
rând, de obiectivul urmarit.
Astfel, în cazul problemei de determinare a structurii optime a productiei,
se cunosc: cantitatile disponibile din fiecare materie prima (resursa) {b i , i =
1,…,m}, coeficientii tehnologici {a ij , i = 1,…,m, j = 1,…,n}, aij reprezentând
cantitatea din materia prima i necesara fabricarii unei unitati din produsul de tipul j,
câstigul (beneficiul) unitar adus întreprinderii de fabricarea fiecarui produs {cj , j =
1,…,n}. Se cere gasirea acelor cantitati xj ce trebuie fabricate din fiecare tip de
produs astfel încât sa se obtina beneficiul maxim, în conditiile nedepasirii
disponibilu lui din fiecare resursa.
Pentru simplificarea modelului, se presupune ca pretul unui produs nu
depinde de cantitatea produsa din acesta, consumul de materie prima este direct
proportional cu cantitatea produsa si, pentru fiecare produs, consumurile dintr-o
materie prima sau alta nu se conditioneaza reciproc.

8
Modelul matematic este:

 max f (x ) = c1 x1 + c 2 x 2 + ... + c n x n

 a i1 x1 + a i 2 x 2 + ... + ain x n ≤ b i i = 1,..., m (1.4)
x ≥0 j = 1,..., n
 j

Ín unele probleme, în loc de beneficiile unitare se cunosc veniturile unitare,


costurile unitare sau alt criteriu de eficienta, scopul fiind maximizarea venitului,
minimizarea costurilor, respectiv optimul indicatorului de eficienta urmarit. De
asemenea, pot apare conditii de limitare a productiei sau pot apare si alte conditii.
La o problema de programare operativa a productiei restrictiile se refera
la o serie de utilaje cu care se executa produsele, cunoscându-se timpul disponibil
al fiecarui utilaj, pe perioada de timp analizata, b i . Coeficientii tehnologici a ij
reprezinta timpul necesar prelucrarii unui produs j pe utilajul i, scopul fiind
maximizarea productiei.
Modelul matematic corespunzator are forma:

 max f ( x ) = x1 + x 2 + ... + x n

 a i1 x1 + a i 2 x 2 + ... + a in x n ≤ bi i = 1,..., m (1.5)
x ≥ 0 j = 1,..., n
 j

Daca se doreste determinarea modului de combinare a elementelor


componente pentru ca un produs sa rezulte corespunzator calitativ si cu cheltuieli
minime, este vorba despre o problema de amestec optim (problema dietei).
Amestecul trebuie sa contina m substante care se gasesc în cele n materii prime
disponibile în cantitati nelimitate. Fiecare substanta trebuie sa intre în unitatea de
amestec în cantitatea cunoscuta, bi . Se cunosc cantitatile {a ij , i = 1,…,m, j =
1,…,n} din fiecare substanta pe care le contine o unitate din fiecare materie prima
si costurile {cj , j = 1,…,n}unei unitati din aceste materii prime. Se poate scrie
modelul:
 min f (x ) = c1 x1 + c 2 x 2 + ... + c n x n

 a i1 x1 + a i 2 x 2 + ... + a in x n = bi i = 1,..., m (1.6)
x ≥ 0 j = 1,..., n
 j

Variabilele xj reprezinta, în acest caz, cantitatea din fiecare materie prima ce va


intra în amestec, iar functia obiectiv f (x ) = ∑ c j ⋅ x j este costul total al retetei si
n

j=1
trebuie minimizata.

9
1.2 Forme de prezentare a unei probleme de
programare liniara
Din analiza modelelor prezentate în paragraful precedent, rezulta ca într-o
problema de programare liniara pot apare restrictii scrise sub forma de inegalitati
(de tipul “=” sau “≥”) sau egalitati. De asemenea, criteriul de optimizare impune în
unele cazuri maximizarea functiei obiectiv, iar în alte cazuri minimizarea acesteia.
Forma cea mai generala a unei probleme de programare liniara este
urmatoarea:

 a11 x1 + a12 x 2 + ... + a1n x n ≤ b1


 a x + a x + ... + a x ≤ b
 21 1 22 2 2n n 2
................................................

 a r1 x1 + a r 2 x 2 + ... + a rn x n ≤ b r
 a r +1,1 x1 + a r +1,2 x 2 + ... + a r +1,n x n ≥ b r +1

.................................................
 a x + a x + ... + a x ≥ b
 s1 1 s2 2 sn n s
 (1.7)
 a s +1,1 x1 + a s +1,2 x 2 + ... + a s +1,n x n = b s +1
...................................................

 a m1 x1 + a m2 x 2 + ... + a m n x n = b m


x j ≥ 0 ( j = 1,..., n)


 opt f ( x ) = c1 x1 + c 2 x 2 + ... + c n x n
Se introduc notatiile:
a11 a12 ... a1n b1
a 21 a 22 ... a 2 n b2
M M M M M
ar1 a r 2 ... a rn br c1 x1
a r +1,1 a r +1,2 ... a r +1,n b r +1 c2 x2
A= ; b= ; c= ; X =
M M M M M M M
a s1 a s 2 ... a sn bs cn xn
a s +1,1 a s +1,2 ... a s +1,n bs +1
M M M M M
a m1 a m2 ... a m n bm

10
unde: A este o matrice cu m linii si n coloane numita matricea coeficientilor
tehnologici, b este un vector coloana m-dimensional numit vectorul resurselor, c
este un vector coloana n-dimensional numit vectorul costurilor ( vectorul transpus
este vectorul linie c′ = (c1 , c2 ,…,c n )), iar X este un vector coloana n-dimensional
numit vectorul activitatilor.
Pentru studiul si interpretarea unei probleme de programare liniara se
utilizeaza si alte forme ale modelului sau matematic.
Definitia 1. O problema de programare liniara are forma standard daca
toate restrictiile sunt egalitati si toate variabilele sunt supuse conditiei de
nenegativitate.
Matricial, utilizând notatiile anterioare, forma standard se scrie astfel:
 AX = b b∈R m

X ≥ 0 c' , X ∈ R n (1.8)
 opt f (x ) = c ' X A ∈ M m,n

Definitia 2. O problema de programare liniara are forma canonica daca
toate restrictiile sunt concordante si toate variabilele sunt supuse conditiei de
nenegativitate. O restrictie se numeste concordanta daca ea are semnul “≤ “ când
optimizarea este maximizare, sau semnul “ ≥ “ daca optimizarea este minimizare.
Matricial, forma canonica a unei probleme de programare liniara se scrie:
 AX ≥ b  AX ≤ b
 
X ≥ 0 sau  X ≥ 0 (1.9)
 min f ( x ) = c ' X  max f (x ) = c ' X
 
Orice problema de programare liniara poate fi adusa la forma standard sau
la forma canonica cu ajutorul unor transformari elementare efectuate asupra
variabilelor sau/si asupra restrictiilor, precum si asupra operatorului functiei
obiectiv. Aceste transformari sunt urmatoarele:
a. orice problema de maxim poate fi transformata în una de minim si
reciproc, folosind relatia:
max f(x) = - min f(-x) (1.10)
b. orice restrictie de tipul “ ≤ “ se transforma într-o restrictie de forma “ ≥ “
si reciproc folosind relatia:
α ≤ β ⇔ - α ≥ -β (1.11)
c. orice restrictie inegalitate poate fi transformata în egalitate, prin
introducerea unei variabile suplimentare nenegative, folosind relatiile:
α + x = β α − x = β
α≤β ⇔ si α≥β ⇔ (1.12)
 x≥0  x≥0
Variabilele introduse pentru transformarea inegalitatilor în egalitati se
numesc variabile de compensare sau variabile ecart.

11
d. orice restrictie egalitate poate fi transformata în restrictii inegalitate,
folosind relatia:
α ≤ β
α=β ⇔ (1.13)
α ≥ β
e. orice variabila cu restrictie de semn negativa (x = 0) poate fi înlocuita cu
o variabila cu restrictie de semn pozitiva (y ≥ 0), folosind relatia:
x = −y
x≤0⇔  (1.14)
 y≥0
f. orice variabila fara restrictie de semn poate fi înlocuita cu doua variabile
cu restrictie de semn pozitiva , folosind relatia:
x = y − z

x oarecare ⇔  y ≥ 0 (1.15)
 z≥0

Pe baza acestor transformari elementare, pentru oricare problema de
programare liniara exista o problema la forma canonica si o problema la forma
standard, echivalente cu problema initiala. Din motive de simplitate a rezolvarii, în
practica se utilizeaza forma standard (un sistem de ecuatii se rezolva mult mai usor
decât un sistem de inecuatii).

Exemplul 1.1 Modelul matematic al unei probleme de programare liniara.


Forma canonica si forma standard.
O întreprindere dispune de doua resurse R1 si R2 în cantitatile b1 = 40
unitati si b2 = 60 unitati. Din aceste resurse se fabrica doua produse, P1 si P2 care
aduc întreprinderii beneficiile unitare c1 = 10 unitati monetare, respectiv c2 = 15
unitati monetare. Coeficientii de consum specific sunt dati în tabelul de mai jos:

P1 P2
R1 2 4
R2 6 2

Întreprinderea trebuie sa stabileasca ce cantitati va fabrica din fiecare


produs în asa fel încât profitul sa fie maxim. Sa se scrie modelul matematic al
problemei, în forma canonica si în forma standard.

Notam x1 si x2 cantitatile necunoscute ce trebuie fabricate din fiecare


produs.
Functia obiectiv are operatorul “maxim” si expresia:
max f (x ) = 10 x1 + 15 x 2 (1.16)
Sistemul de restrictii tehnico-economice este:

12
 2 x1 + 4 x2 ≤ 40
 (1.17)
 6 x1 + 2 x2 ≤ 60
Conditiile de nenegativitate a variabilelor sunt:
x1 ≥ 0 , x 2 ≥ 0 (1.18)
Relatiile (1.16), (1.17) si (1.18) reprezinta forma canonica a modelului
matematic deoarece restrictiile (1.17) sunt concordante.
Pentru a scrie forma standard se introduc variabilele de compensare
nenegative y1 si y2 si se aplica transformarea elementara “c”. Variabilele de
compensare apar în functia obiectiv cu coeficienti nuli.
Modelul matematic al problemei, în forma standard este:
 max f (x ) = 10 x1 + 15 x 2 + 0 ⋅ y 1 + 0 ⋅ y 2

 2 x1 + 4 x 2 + y1 + 0 ⋅ y 2 = 40
 (1.19)
 6 x1 + 2 x 2 + 0 ⋅ y1 + y 2 = 60
 x1 ≥ 0 ; x 2 ≥ 0 ; y 1 ≥ 0 ; y 2 ≥ 0 .

Probleme propuse spre rezolvare

P 1.1 Un atelier de prelucrari mecanice este specializat în prelucrarea de


seturi de piese pentru tipurile A si B de piese finite. Atelierul dispune de trei tip uri
de utilaje: 1 – strung; 2 – masina de frezat; 3 – masina de gaurit. Timpii minimi
necesari executarii unui set de piese, tij , [min/set piese], fondul disponibil de timp
Fdi [min/luna] si beneficiul planificat b j [unitati monetare/set piese] sunt date în
tabelul urmator:
Tipuri de tij [min/set piese]
produse Fdi [ min/luna]
Grupa de A B
utilaje
1 11 9 9900
2 7 12 8400
3 6 16 9600
b j [u.m./set piese] 90 100

Pentru a determina cantitatea de seturi de piese ce urmeaza a fi prelucrata


pe luna, în conditiile realizarii unui beneficiu maxim, se cere sa se scrie modelul
matematic al problemei, în forma canonica si în forma standard.

P 1.2 Un meniu trebuie sa asigure organismului necesarul de substante S1 ,


S2 si S3 cu ajutorul alimentelor A1 , A2 , A3 . Cantitatile de substante S1 , S2 si S3 ce se
gasesc într-o unitate de aliment de fiecare fel, cantitatile din cele trei substante
necesare organismului, precum si preturile celor trei alimente sunt date în tabel:

13
Aj A1 A2 A3 Necesar
Si [unitati]
S1 4 3 2 24
S2 5 7 2 35
S3 1 5 4 40
Pret [u.m.] 8 7 5

Pentru a determina cantitatile din cele trei alimente ce trebuie introduse în


meniu astfel încât costul total al retetei sa fie minim (în raport cu aceste trei
alimente), sa se scrie modelul matematic al problemei, în forma canonica si în
forma standard.

P 1.3 O întreprindere fabrica patru categorii de produse P1 , P2 , P3 , P4 la trei


locuri de munca L1 , L2 , L3 . Necesarul de timp (în ore) pentru fabricarea fiecarui
produs, capacitatile de productie (în ore) ale celor trei locuri de munca, precum si
preturile de desfacere a produselor sunt trecute în tabelul urmator:

Pj P1 P2 P3 P4 Capacitatea
Li de productie
L1 45 20 20 9 3780
L2 45 25 25 0 4410
L3 9 5 0 0 350
Pret de 1260 1960 700 1000
desfacere [u.m.]

Pentru a determina structura optima a productiei, sa se scrie modelul


matematic al problemei, în forma canonica si forma standard.

P 1.4 Într-un laborator al unei întreprinderi metalurgice se încearca


obtinerea unui aliaj special care trebuie sa contina cel putin 4% Mn, cel putin 3% Cr
si cel putin 2% Ni. Întreprinderea dispune de doua categorii de materii prime care
contin mangan, crom si nichel în cantitatile specificate în tabelul de mai jos:

Aliaje
Materii Mn Cr Ni
prime
M1 2% 4% 2%
M2 6% 3% 1%

Costul unui kilogram de materie prima de tipul M1 este de 70 u.m., iar de tipul
M2 de 55 u.m. Pentru a stabili reteta de amestec optim din punct de vedere al costului,
sa se scrie modelul matematic al problemei, în forma canonica si forma standard.

14
1.3 Principii de baza în rezolvarea unei probleme de
programare liniara în forma standard
Fie problema de programare liniara în forma standard scrisa matricial:

 opt f (x ) = c ′X A = M m,n

 AX = b b∈R m (1.20)
X ≥ 0 X , c′ ∈ R n

Se stie ca un sistem cu m ecuatii si n necunoscute de forma AX = b poate fi:


• incompatibil
• compatibil unic determinat (numai în cazul în care m = n)
• compatibil determinat
Ultimul caz intereseaza cel mai mult pentru ca aici se pune problema de a
alege din mai multe solutii pe cea mai buna.
Daca sistemul nu are solutii atunci evident nici problema de programare
liniara nu are solutii, caz care nu poate intra în discutie .
Daca sistemul are o singura solutie, aceasta este si solutia optima si acest
caz devine la fel de neinteresant ca si cazul precedent.
Presupunem ca numarul restrictiilor m este mai mic decât numarul
necunoscutelor n, m < n si ca rangul matricei A este m. Daca rang ( A) = m rezulta
ca cele m restrictii sunt independente. În caz contrar, se poate renunta la cele care
sunt combinatii liniare ale celor independente.
În plus, daca rang ( A) = m < n , rezulta ca sistemul AX = b reprezinta un
sistem de ecuatii liniare compatibil nedeterminat.
Rezolvarea sistemului se poate face folosind algebra matriciala astfel:
- împartim coloanele matricei A în doua submatrici: minorul principal
(notat B, care este o matrice patratica de dimensiune m si se numeste baza a
sistemului) si restul coloanelor (notat S, care este o matrice cu m linii si n - m
coloane);
- împartim variabilele problemei în doi vectori: vectorul variabilelor
principale (variabile corespunzatoare coloanelor bazei B), notat XB si vectorul
corespunzator celorlalte variabile, numite variabile secundare, notat XS .
Pentru usurinta expunerii si fiind evident ca nu se restrânge generalitatea
problemei, facând eventual o renumerotare, presupunem ca variabilele principale
sunt chiar primele m variabile ale problemei.
- aducem sistemul la forma de mai jos:
X 
A ⋅ X = b ⇔ (BS ) ⋅  B  = b ⇔ B ⋅ X B + S ⋅ X S = b ⇔ B ⋅ X B = b − S ⋅ X S ⇔
 XS 

⇔ X B = B −1 ⋅ b − B −1 ⋅ S ⋅ X S (1.21)

15
Se remarca ca orice alegere a lui X S da o solutie a sistemului. Dintre toate
alegerile posibile, cea mai simpla este XS = 0, care duce la solutia particulara:
 B −1 ⋅ b 
 
 0  
X B =  0   n – m zerouri

(1.22)

 M  
  
 0 
numita solutia de baza asociata bazei B.

Observatia 1. Este evident ca fiecarui minor principal al sistemului (minor


de dimensiune m) îi corespunde o solutie de baza unica.
Observatia 2. Rezolvarea este posibila si sistemul liniar de m ecuatii cu m
necunoscute este compatibil si are solutie unica, daca si numai daca
B ≠ 0 (teorema lui Cramer).

O solutie de baza are cel mult m componente nenule. Este posibil sa existe
si solutii de baza cu mai putin de m componente nenule.Acestea se numesc solutii
de baza degenerate, în timp ce solutiile de baza cu exact m componente nenule se
numesc solutii de baza nedegenerate.
Cu privire la solutiile unei probleme de programare lin iara se introduc
urmatoarele notiuni:
• se numeste solutie admisibila X un element al multimii programelor
(solutiilor) P, care verifica sistemul de restrictii si conditiile de
negativitate: P = {X , AX = b , X ≥ 0};
• se numeste solutie optima X * solutia admisibila care optimizeaza
functia obiectiv: c ′X * ≤ c ′X , (∀ )X ∈ P , pentru o problema de minim,
sau: c ′X * ≥ c ′X , (∀ )X ∈ P , pentru o problema de maxim.
• X B este solutie de baza pentru o problema de programare liniara daca
verifica urmatoarele conditii:
1. este o solutie a sistemului AX = b;
2. coloanele din matricea A corespunzatoare componentelor nenule
ale vectorului X B formeaza un sistem de vectori liniar independenti.
O solutie de baza se numeste solutie de baza admisibila daca componentele
sale nenule sunt nenegative si se numeste solutie de baza optima daca, în plus,
optimizeaza functia obiectiv.

Rezolvarea unei probleme de programare liniara, scrisa în forma standard,


poate conduce la urmatoarele rezultate:

16
1. Sistemul AX = b nu are solutii sau nu are solutii admisibile. În acest caz
problema nu are solutie .
2. Imaginea functiei obiectiv pe multimea solutiilor admisibile este
nemarginita (la + ∞ într-o problema de maxim si la − ∞ într-o problema de minim).
În acest caz spunem ca problema are optim infinit.
3. Imaginea functiei obiectiv pe multimea solutiilor admisibile este
marginita. În acest caz problema are cel putin o solutie si spunem ca are un optim
finit.
Metodele generale de rezolvare a unei probleme de programare liniara se
bazeaza pe câteva proprietati dezvoltate pe baza unor reprezentari geometrice ale
problemei, care poarta denumirea de teoreme fundamentale ale programarii liniare.
Ele sunt urmatoarele:

Teorema 1. Daca problema de programare liniara admite o solutie


admisibila, atunci ea are o solutie de baza admisibila .

Teorema 2. Daca problema de programare liniara admite o solutie optima,


atunci ea are o solutie de baza optima.

Teorema 3. Multimea solutiilor admisibile (optime) este închisa si convexa.


Daca este si marginita, atunci punctele extremale ale acesteia sunt chiar solutiile
admisibile (optime) de baza ale problemei.

Aceste teoreme fundamentale simplifica foarte mult rezolvarea algebrica a


modelului matematic prezentat în forma standard, în cazul în care sistemul este
compatibil nedeterminat, în sensul ca se cerceteaza numai solutiile de baza ale
sistemului de restrictii si cea care satisface functia obiectiv este solutia optima.
Totusi, la o analiza mai atenta, aceasta varianta de rezolvare se dovedeste
nepractica, tinând cont de urmatoarele observatii:
- desi numarul solutiilor de baza este finit (egal cu C nm ), el poate avea
valori foarte mari în cazul problemelor cu multe variabile si restrictii, iar cercetarea
tuturor solutiilor de baza presupune foarte mult timp, chiar daca se apeleaza la un
calculator;
- se va gasi cea mai buna solutie dintre solutiile de baza fara însa sa se
stie daca problema admite, de fapt, un optim finit (ar putea avea un optim infinit);
- nu se poate sti daca un minor m × m este baza decât dupa ce i se
calculeaza determinantul si nu se poate sti daca solutia de baza corespunzatoare
este admisibila decât dupa ce aceasta se calculeaza;
- solutia optima, odata gasita, nu va putea fi recunoscuta ca atare decât
dupa ce se vor calcula toate celelalte solutii de baza, chiar daca ea a aparut la
începutul calculelor.
Din aceste motive s-au dezvoltat o serie de algoritmi de rezolvare a unei
probleme de programare liniara, ce modeleaza fenomene economice, care sa
elimine aceste neajunsuri.

17
1.4 Algoritmul SIMPLEX primal

Algoritmul simplex primal are la baza metoda de rezolvare a sistemelor


liniare dezvoltata în anul 1947 de matematicianul G.B. Dantzig. Algoritmul consta
în examinarea sistematica a multimii programelor (solutiilor) unei probleme de
programare liniara prin trecerea de la un program de baza la altul, cel putin la fel de
bun ca cel precedent. În plus, sunt precizate criteriile care evidentiaza faptul ca
problema de programare liniara admite un optim infinit sau nu admite solutie.
Fie data problema de programare liniara scrisa matricial în forma standard:

 AX = b b∈R m

X ≥ 0 c' , X ∈ R n (1.23)
 opt f (x ) = c ' X A ∈ M m,n

Algoritmul simplex porneste de la presupunerea ca dispunem de o solutie


de baza admisibila XB , corespunzatoare unei baze B. Folosind aceasta baza s-a
rezolvat sistemul de restrictii AX = b, rezultând variabilele principale în functie de
cele secundare sub forma:

X B = B −1 ⋅ b − B −1 ⋅ S ⋅ X S (1.24)

Ín functia obiectiv împartim vectorul linie (transpus) al costurilor si


vectorul coloana al solutiilor în câte doi vectori, corespunzatori variabilelor
principale, respectiv secundare si înlocuim expresia obtinuta pentru variabilele
principale :

( ) X 
( )( ) ( )
f (x ) = c 'B , c 'S ⋅  B  = c 'B ⋅ X B ⋅ c S' ⋅ X S = c 'B B −1 ⋅ b − B −1 ⋅ S ⋅ X S +
XS 
( ) ( )
+ c S' ⋅ X S = c B' ⋅ B −1 ⋅ b − c 'B ⋅ B −1 S − c 'S ⋅ X S = f ( X B ) − Z − c S' ⋅ X S =
= f (X B ) − ∆ ⋅ X S

unde:
- f (X B ) = c 'B ⋅ B −1 ⋅ b este valoarea functiei obiectiv pentru solutia de
baza;
- c 'B ⋅ B −1 ⋅ S = Z este un vector cu n – m componente;
Z = ( zm+1 , zm +2 ,..., z n )
- ∆ = Z − c S' este un vector cu n – m componente;
∆ = (∆ m+1 , ∆ m +2 ,..., ∆ n )

18
Obtinem urmatoarea forma a problemei:

 (max)sau(min ) f ( x ) = f ( X B ) − ∆ ⋅ X S

 X B = B −1 ⋅ b (1.25)

X ≥ 0

Din forma functiei obiectiv se vede ca:


- într-o problema de maxim:
X B este solutie optima ⇔ f ( X B ) − ∆ ⋅ X S ≤ f (X B ) oricare ar fi X S ≥ 0 ⇔
⇔ ∆ ⋅ X S ≥ 0 oricare ar fi X S ≥ 0 ⇔ ∆ ≥ 0
- într-o problema de minim:
X B este solutie optima ⇔ f ( X B ) − ∆ ⋅ X S ≥ f (X B ) oricare ar fi X S ≥ 0 ⇔
⇔ ∆ ⋅ X S ≤ 0 oricare ar fi X S ≥ 0 ⇔ ∆ ≤ 0
Rezultatul obtinut reprezinta criteriul de recunoastere a optimalitatii
solutiei sau, pe scurt, criteriul de optim.
Daca nu sunt îndeplinite conditiile de mai sus, solutia gasita nu este
optima, si, evident, exista o alta solutie de baza admisibila mai buna. Se poate
demonstra matematic ca aceasta noua solutie de baza difera de cea anterioara
printr-o singura variabila. Trebuie deci sa gasim acea variabila principala care iese
din baza si acea variabila secundara care intra în baza. Aceste operatii reprezinta
criteriul de îmbunatatire a solutiei.

Practic se procedeaza în felul urmator:


- într-o problema de maxim:
1. Daca exista diferente ∆ j negative (zj –cj <0, j ∈ {m + 1, m + 2 ,...,n}) se
introduce în baza necunoscuta careia îi corespunde diferenta negativa cea mai
mare. Operatia defineste criteriul de “intrare în baza”. Coloana careia îi
corespunde necunoscuta care intra în baza se numeste coloana pivot.
2. Pentru a afla ce necunoscuta se scoate din baza (criteriul de “iesire din
b
baza”) se calculeaza min i , unde b i sunt termenii liberi din sistemul de
a ij ( p )
restrictii, iar a ij ( p ) sunt coeficientii tehnologici strict pozitivi corespunzatori
necunoscutelor secundare din coloana pivot. Linia pentru care se gaseste
bi
min se numeste linie pivot. Numarul aflat la intersectia coloanei pivot cu
a ij ( p )
linia pivot se numeste numar pivot.
3. Se reia rezolvarea sistemului de restrictii pornind de la noua solutie de
baza si continuând rationamentul.

19
Observatie : Daca exista k, k ∈ {m + 1, m + 2 ,...,n} pentru care zk – ck < 0 si
toti aik ( p ) ≤ 0 pentru i ∈ {1,2,..., m} , atunci problema are un optim infinit.
- într-o problema de minim:
1. Daca exista diferente ∆ j pozitive (zj –cj>0, j ∈ {m + 1, m + 2 ,...,n}), se
introduce în baza necunoscuta careia îi corespunde diferenta pozitiva cea mai mare
(criteriul de “intrare în baza”). Coloana careia îi corespunde necunoscuta care intra
în baza se numeste coloana pivot.
b
2. Se aplica criteriul de “iesire din baza” calculându-se min i unde
a ij ( p )
b i sunt termenii liberi din sistemul de restrictii, iar a ij ( p ) sunt coeficientii
bi
tehnologici strict pozitivi din coloana pivot. Linia pentru care se gaseste min
a ij ( p )
se numeste linie pivot. Numarul aflat la intersectia coloanei pivot cu linia pivot se
numeste numar pivot.
3. Se reia rezolvarea sistemului de restrictii pornind de la noua solutie de
baza si continuând rationamentul.
Observatie : Daca exista k, k ∈ {m + 1, m + 2 ,...,n} pentru care zk – ck > 0 si
toti aik ( p ) ≤ 0 pentru i ∈ {1,2,..., m} , atunci problema are un optim infinit.
Elementele necesare aplicarii algoritmului simplex se trec într-un tabel
numit tablou simplex. Ín tabloul initial, cu configuratia de mai jos, pentru
simplificarea scrierii, s-a presupus ca baza B este formata din primele m coloane
ale matricii A.
Tabelul 1.1
cj → c 1 c 2 … c m c m+1 … c n bi
a ij ( p )
VB cjVB VVB x x2 … x m x m+1 … xn
1
x1 c1 b1 1 0 … 0 a1,m+1 … a1n
x2 c2 b2 0 1 … 0 a2,m+1 … a2n
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
xm cm bm 0 0 … 1 am,m+1 … amn
zj z0 =f(XB) 0 0 … 0 zm+1 … zn
∆j = zj - cj 0 0 … 0 ∆m+1 … ∆n

unde: cj , j = 1,2,…,n sunt coeficientii variabilelor în functia obiectiv;


- VB indica simbolul variabilelor care apartin bazei;
- cjVB sunt coeficientii variabilelor ce apartin bazei în functia obiectiv;
- VVB reprezinta valoarea calculata pentru variabilele ce apartin bazei.

20
Elementele liniei zj se calculeaza cu relatia
m
z j = ∑ c jVB ⋅ a ij , i = 1,...m ; j = 1,..., n
i= 1
Ultima linie a tabelului este destinata calculului componentelor vectorului
∆j ce permite aplicarea criteriului de optim.
Ultima coloana a tabelului se utilizeaza pentru aplicarea criteriului de
îmbunatatire a solutiei initiale prin determinarea variabilei ce va intra în noua baza.
De asemenea, în tabel, apare explicit valoarea functiei obiectiv pentru
solutia de baza considerata, z0 = f (XB) .
Observatie
Pentru ca XB sa fie solutie de baza a sistemului de restrictii AX = b, ea
trebuie sa aiba cel mult m componente nenule si, în plus, coloanele corespunzatoare
componentelor nenule din matricea A sa formeze un sistem de vectori liniar
independenti (pentru ca determinantul lor sa fie nenul). Cel mai simplu sistem de
vectori liniar independenti este cel format din vectori unitate, matricea m × m
corespunzatoare fiind I m. În tabelul initial specific algoritmului simplex s-a
considerat ca se dispune de o astfel de solutie initiala de baza.
Ín cazul în care solutia de baza initiala nu satisface criteriul de optim, deci
poate fi îmbunatatita, se trece la o noua iteratie si se construieste al doilea tablou
simplex. Trecerea la un nou tabel se face prin parcurgerea urmatoarelor etape:
Etapa 1. Se aplica criteriul de intrare în noua baza. Se alege: max z j − c j
j
si variabila corespunzatoare coloanei j (coloana pivot) va intra în noua baza.
 b 
Etapa 2. Se aplica criteriul de iesire din baza. Se alege: min  i  ,
i  aij ( p ) 
 
numai pentru a ij ( p ) > 0 . Linia astfel determinata (linia pivot) indica variabila care
paraseste baza.
Etapa 3. Calculul elementelor noului tabel simplex, operatie care se
numeste pivotare. Pasii succesivi sunt urmatorii:
- se determina, în precedentul tabel, elementul pivot (aflat la intersectia
coloanei pivot cu linia pivot;
- în noul tabel, locul pivotului este luat de elementul 1, în rest toate
elementele din coloana pivot devin 0 (inclusiv ∆j );
- în noul tabel, toate elementele situate în linia pivot se calculeaza prin
împartirea elementului corespunzator la elementul pivot (inclusiv
elementul din linia pivot si coloana VVB);
- orice alt element al noului tabel, care nu se afla nici în coloana
pivot si nici în linia pivot se calculeaza cu ajutorul “regulei
dreptunghiului”, folosind relatia:
B⋅C
A' = A −
P
21
în care A este elementul din tabloul precedent care se înlocuieste în noul tabel cu
A’ , P este pivotul, iar B si C sunt elementele din tabelul precedent aflate pe linia,
respectiv coloana pivotului.
Daca nu s-a gasit solutia optima, se reia rationamentul de la etapa 1.

Exemplul 1.2 Rezolvarea unei probleme de programare liniara folosind


algoritmul simplex
Íntr-o sectie a unei întreprinderi electronice, la patru locuri de munca se
realizeaza trei tipuri de aparate. La fiecare loc de munca se poate lucra respectiv
2200, 1200, 2000 si 1600 ore/an. Ín tabelul de mai jos se indica duratele de
prelucrare, conform tehnologiei, pentru fiecare aparat (ore/buc.) si beneficiul
obtinut de întreprindere în urma comercializarii fiecarui aparat (u.m./buc.). Sa se
determine planul de productie care sa asigure beneficiul maxim.

j A1 A2 A3 tdi
i
1 2 2 1 2200
2 1 1 0 1200
3 1 1 1 2000
4 1 2 1 1600
bj 3 4 2

Rezolvare: notam x1 , x2 , x3 cantitatile necunoscute ce trebuie realizate din


fiecare tip de aparat si scriem modelul matematic al problemei:

max f = 3 x1 + 4 x 2 + 2 x3
 2 x1 + 2 x 2 + x 3 ≤ 2200
 x + x ≤ 1200
 1 2 (1.26)

 x1 + x 2 + x3 ≤ 2000
 x1 + 2 x 2 + x 3 ≤ 1600
x j ≥ 0, j = 1, 2, 3
Modelul reprezinta forma canonica a problemei de programare liniara,
deoarece toate restrictiile sunt concordante.
Scriem modelul matematic sub forma standard introducând necunoscutele
de compensare y1 , y 2 , y3 si y4. Sistemul de restrictii devine:

 2 x1 + 2 x 2 + x3 + y1 = 2200

 x1 + x 2 + y 2 = 1200
 (1.27)
 x1 + x 2 + x 3 + y 3 = 2000
 x1 + 2 x 2 + x 3 + y 4 = 1600

22
Pentru sistemul de restrictii (1.27), scriem matricea A a coeficientilor
tehnologici, considerând variabilele în ordinea: x1 , x 2 , x3 , y1 , y 2 , y3 si y4 :

 x1 x2 x3 y1 y2 y3 y4 
 
2 2 2 1 0 0 0
A=  1 1 0 0 1 0 0 (1.28)
 
1 1 1 0 0 1 0
 
1 2 1 0 0 0 0

Se constata ca matricea A contine matricea unitate I4 , corespunzatoare


necunoscutelor y1 , y2 , y3 si y4. Cum termenii liberi ai ecuatiilor sistemului (1.27)
sunt toti nenuli, sunt îndeplinite conditiile ca matricea unitate I4 sa fie baza a
sistemului de restrictii. Necunoscutele principale sunt deci y1 , y2 , y3 si y4 , iar
necunoscutele secundare x1 , x2 , x3 . Solutia admisibila de baza de la care va porni
algoritmul simplex se obtine anulând necunoscutele secundare în sistemul de
restrictii (1.27), ceea ce conduce la aflarea valorilor necunoscutelor principale,
egale cu termenii liberi ai ecuatiilor sistemului de restrictii:
 y1   2200 
   
 y2   1200 
 y1 = 2200 y   2000 
 x1 = 0 
  y 2 = 1200  3  
 x2 = 0 ⇒  ⇒ X B =  y 4  sau X B =  1600 
x = 0  y 3 = 2000    
 3  y 4 = 1600  x1   0 
 x2   0 
   
 x3   0 
Cunoscând o solutie admisibila de baza pentru problema data se realizeaza
primul tablou simplex, prezentat în tabelul 1.2.
Tabelul 1.2
cj → 0 0 0 0 3 4 2 bi
VB cjVB VVB y1 y2 y3 y4 x1 x2 x3 a ij ( p )

y1 0 2200 1 0 0 0 2 2 1 1100
y2 0 1200 0 1 0 0 1 1 0 1200
y3 0 2000 0 0 1 0 1 1 1 2000
y4 0 1600 0 0 0 1 1 2 1 800
zj 0 0 0 0 0 0 0 0
∆j = zj - cj 0 0 0 0 -3 -4 -2

Pasii succesivi care se parcurg pentru aplicarea algoritmului de


calcul sunt urmatorii:
Pasul 1. Se aplica criteriul de optim.

23
Deoarece operatorul functiei obiectiv este maxim, iar pe linia ∆j a tabelului
exista diferente zj - cj negative, rezulta ca solutia de baza considerata nu este
optima si ea poate fi îmbunatatita.

Pasul 2. Se aplica criteriul de îmbunatatire a solutiei de baza initiale,


parcurgându-se etapele necesare:
Ø Etapa 1. Se aplica criteriul de intrare în noua baza:

max z j − c j = 4 , deci necunoscuta x2 va intra în noua baza. Coloana pe care se


j
gaseste necunoscuta x2 este coloana pivot.
Ø Etapa 2. Se aplica criteriul de iesire din baza: se calculeaza rapoartele
bi
, pentru toti coeficientii a ij(p) > 0 din coloana pivot, rezultatele trecându-se în
a ij ( p )
coloana din dreapta a tabelului initial. Valoarea minima a raportului este 800, deci
necunoscuta y4 iese din baza. Linia corespunzatoare lui y4 este linia pivot.
Elementul 2, aflat la intersectia coloanei pivot cu linia pivot, se numeste pivot.
Ø Etapa 3. Se realizeaza al doilea tablou simplex (tabelul 1.3) si se
calculeaza elementele acestuia:
- locul pivotului este luat de elementul 1; în rest, toate elementele din
coloana pivot devin 0;
- toate elementele din linia pivot se calculeaza prin împartirea
elementului corespunzator la pivot;
- pentru restul elementelor se aplica regula dreptunghiului.
Tabelul 1.3
cj → 0 0 0 0 3 4 2 bi
VB cjVB VVB y1 y2 y3 y4 x1 x2 x3 a ij(p)
y1 0 600 1 0 0 -1 1 0 0 600
y2 0 400 0 1 0 -1/2 1/2 0 -1/2 800
y3 0 1200 0 0 1 -1/2 1/2 0 1/2 2400
x2 4 800 0 0 0 -1/2 1/2 1 1/2 1600
zj 3200 0 0 0 2 2 4 2
∆j = zj - cj 0 0 0 2 -1 0 0

De exemplu, pentru a determina valoarea elementului situat pe linia


necunoscutei y1 în coloana VVB se formeaza în tabelul 1.3 un dreptunghi imaginar,
care are pe diagonala principala, în coltul de sus, elementul 2200, iar în coltul de
jos elementul pivot egal cu 2; pe diagonala secundara elementele sunt 2 (în coltul
de sus) si 1600 (în coltul de jos):

2200 2

1600 2

24
Elementul de pe aceeasi pozitie din noul tablou simplex (tabelul 1.3) va
1600 ⋅ 2
avea valoarea: A' = 2200 − = 600 .
2
Din analiza tabelului rezultat în a doua iteratie (tabelul 1.3), rezulta ca
solutia gasita:
y1 = 600, y2 = 400, y3 = 1200, x2 = 800, x1 = 0, x3 = 0, y4 = 0,

îmbunatateste valoarea functiei obiectiv, de la valoarea de 1600 u.m. la valoarea de


3200 u.m. Totusi, deoarece exista o diferenta zj - cj negativa, aceasta solutie nu este
cea optima si poate fi îmbunatatita. Plecând de la aceasta ultima solutie de baza, se
reia rationamentul de la pasul 2 al algoritmului.
Va intra în noua baza necunoscuta x1 si va iesi din baza anterioara necunoscuta y1 .
Elementul pivot este elementul 1.
Noul tabel simplex, corespunzator iteratiei a treia, este tabelul 1.4.
Tabelul 1.4
cj → 0 0 0 0 3 4 2
VB cjVB VVB y1 y2 y3 y4 x1 x2 x3
x1 3 600 1 0 0 -1 1 0 0
y2 0 100 -1/2 1 0 0 0 0 -1/2
y3 0 900 -1/2 0 1 0 0 0 1/2
x2 4 500 -1/2 0 0 1 0 1 1/2
zj 3800 1 0 0 1 3 4 1/2
∆j = zj - cj 1 0 0 1 0 0 0

Analizând tabelul rezultat, se constata ca s-a reusit determinarea solutiei


optime, deoarece pe linia diferentelor ∆j nu exista nici o diferenta negativa.
Asadar, solutia optima a modelului matematic în forma standard este:
x1 = 600; x2 = 500; x3 = 0; y1 = 0; y2 = 100; y3 = 900, y4 = 0, iar valoarea
functiei obiectiv este 3800.
Planul de productie optim este obtinut numai din primele doua tipuri de
aparate: 600 buc. realizate din primul tip de aparat si 500 buc. realizate din al
doilea tip de aparat (x3 = 0). Beneficiul maxim ce revine întreprinderii la realizarea
planului de productie optim este de 3800 u.m.
Valorile variabilelor de compensare, corespunzatoare solutiei optime, arata
c a s-au folosit toate orele de lucru disponibile la posturile 1 si 4, ramânând
neutilizate 100 de ore la postul 2 si 900 de ore la postul 3.
Observatie Aplicarea algoritmului necesita cunoasterea unei solutii de baza
admisibila de start si a formei explicite asociate acesteia.
Pentru o problema de programare liniara, o solutie de baza admisibila de
start se poate recunoaste cel mai usor daca matricea A a coeficientilor tehnologici
din sistemul de restrictii contine o submatrice unitate de orinul m (m este numarul
ecuatiilor în sistemul de restrictii), iar termenii liberi ai ecuatiilor sistemului de
restrictii sunt nenegativi.

25
1.5 Metode pentru determinarea unei solutii admisibile
de start
Aplicarea algoritmului simplex presupune cunoasterea unei solutii de baza
admisibile de start (initiale) precum si a formei explicite asociate acesteia, celelalte
forme explicite generându-se apoi succesiv, pâna la obtinerea solutiei optime.
O astfel de solutie de baza admisibila initiala se gaseste usor daca matricea
coeficientilor tehnologici A, asociata sistemului de restrictii, contine o submatrice
unitate de ordinul m (m este numarul de restrictii) si termenii liberi sunt nenegativi.
Daca cele doua conditii nu sunt îndeplinite, se construieste o problema
echivalenta cu problema initiala, în felul urmator:
• În caz ca unele restrictii ale modelului matemetic initial au termeni
liberi negativi, se înmultesc aceste restrictii cu -1, termenii liberi devenind astfel
nenegativi.
• Se aduce problema la forma standard, prin introducerea variabilelor de
compensare necesare.
• Daca matricea A, a sistemului de restrictii rezultat, nu contine toate
coloanele submatricei unitate de ordinul m, se vor adauga noi variabile nenegative
pentru crearea coloanelor lipsa; aceste noi variabile se numesc variabile artificiale
si, spre deosebire de variabilele de compensare, ele apar în functia obiectiv cu un
coeficient comun, foarte mare în valoare absoluta. Coeficientul va fi negativ daca
functia obiectiv trebuie maximizata si pozitiv daca functia obiectiv trebuie
minimizata.
Aceasta metoda de construire a unei solutii admisibile de start poarta
numele de metoda bazei artificiale (sau metoda penalizarii) si va fi detaliata în cele
ce urmeaza.

1.5.1 Metoda bazei artificiale

Fie problema de programare liniara de maxim, scrisa în forma standard:


 max f (x ) = c ′X

 AX = b (1.29)
X ≥ 0

în care am aranjat deja ca termenii liberi sa fie pozitivi (b ≥ 0).
Matricea A a coeficientilor tehnologici este de tipul (m × n) cu m < n si nu
se poate pune în evidenta nici o baza initiala.
Se înlocuieste problema data cu o problema modificata si anume:
max g (x ) = c ′X − MX a

 AX + IX = b
a
(1.30)

 X , X ≥ 0
a

26
unde M = (M, M,…, M) este vectorul penalizarilor având m componente toate
egale cu M, o constanta presupusa foarte mare (mai mare decât orice alta constanta
care ar putea apare în rezolvarea problemei), iar X a un vector care contine atâtea
variabile artificiale câte sunt necesare pentru a forma matricea unitate de ordinul
egal cu numarul de restrictii.
Daca problema initiala este o problema de minim, problema modificata va
fi de forma:
 min g (x ) = c ′X + MX a

 AX + IX = b
a
(1.31)

 X , X ≥ 0
a

Pentru ambele forme ale problemei date (de maxim sau de minim), se
rezolva problema modificata, aplicând algoritmul simplex, putându-se ajunge la
una dintre situatiile:
1. Problema modificata are optim infinit. Atunci si problema initiala are
optim infinit.
2. Problema modificata are optim finit si în solutia de baza optima cel
putin o variabila artificiala are valoare nenula. În acest caz problema initiala nu are
solutii admisibile (este incompatibila).
3. Problema modificata are optim finit si în solutia optima toate variabilele
artificiale au valoare zero. Ignorând valorile acestor variabile se obtine solutia
optima a problemei initiale.
De aceea este suficient sa se rezolve problema modificata, pentru care s-a
pus în evidenta o solutie admisibila de start, pentru a determina solutia optima a
problemei initiale.
Observatie . Variabilele artificiale nu corespund unor marimi economice,
ele fiind introduse doar ca un artificiu de calcul pentru a putea porni algoritmul
Simplex.
Rezolvarea unei probleme de programare liniara folosind metoda bazei
artificiale presupune doua etape:
Etapa I. Se rezolva problema modificata pentru care solutia initiala de baza
de la care porneste algoritmul simplex este, evident:
X a = b adica: x1a = b1 ; x 2a = b2 ,..., x am = bm .
Pentru a determina variabila care iese din baza se alege acea diferenta
∆ j = z j − c j care contine termenul în M cu cel mai mic coeficient negativ (daca
este o problema de maxim) sau cu cel mai mare coeficient pozitiv (daca este o
problema de minim).
Daca o variabila artificiala a fost eliminata din baza putem sa nu mai
calculam elementele coloanei sale în noua baza.
Etapa I se încheie când întâlnim una dintre situatiile:
a. au fost eliminate din baza toate variabilele artificiale; s-a determinat astfel
o solutie de baza admisibila de start pentru problema initiala;

27
b. din baza nu s-au eliminat toate variabilele artificiale, dar cele ramase în
baza sunt nule, iar conditiile de optim sunt verificate; s-a obtinut o posibila solutie de
baza degenerata a problemei intiale;
c. a ramas în baza cel putin o variabila artificiala, strict pozitiva, iar
conditiile de optim sunt verificate; în acest caz problema initiala nu are solutie
admisibila de baza, deci nu admite solutie optima.
Etapa a II –a. Se continua aplicarea algoritmului simplex cu solutia de baza
obtinuta la prima etapa pâna la îndeplinirea conditiei de optim sau se arata ca
problema nu are solutie.

Exemplul 1.3 Metoda bazei artificiale pentru determinarea unei solutii


admisibile de baza de start (initiala).
La o editura se tipareste o carte noua. Coperta poate fi din carton sau simpla.
Fiecare carte cu coperta din carton aduce editurii un profit de 8 u.m., iar cealalta un
profit de 6 u.m. Pentru a lega o carte cu coperta din carton sunt necesare 3 minute, iar
pentru una simpla 2 minute. Legatoria dispune de un numar de 800 de ore pentru
legarea celor doua categorii de coperti. Dintr-un studiu de piata, se stie ca se pot
vinde cel putin 10.000 de carti cartonate si nu mai mult de 6.000 de carti cu coperta
simpla. Sa se determine numarul de carti din fiecare categorie ce trebuie legate, astfel
încât profitul obtinut din vânzarea lor sa fie maxim.

Pasul 1. Se scrie modelul matematic al problemei:


max f ( x ) = 8 x1 + 6 x 2
3 x1 + 2 x 2 ≤ 48000

 x1 ≥ 10000 (1.32)
 x 2 ≤ 6000

x1 ≥ 0 ; x 2 ≥ 0
unde cu x1 s-a notat numarul de carti cu coperta de carton ce trebuie legate, iar cu x2
numarul de carti cu coperta simpla.

Pasul 2. Se aduce modelul matematic la forma standard, prin introducerea


variabilelor de compensare y1 , y2 , si y3 .
max f ( x ) = 8 x1 + 6 x 2
3 x1 + 2 x 2 + y 1 = 48000

 x1 − y2 = 10000 (1.33)
 + y 3 = 6000
 x2
x1 ≥ 0 ; x 2 ≥ 0 ; y1 ≥ 0 ; y 2 ≥ 0 ; y 3 ≥ 0 .

Pasul 3. Se scrie matricea A a coeficientilor tehnologici din sistemul de


restrictii al modelului scris în forma standard.

28
 x1 x 2 y1 y 2 y 3 
 
3 2 1 0 0
A= (1.34)
1 0 0 −1 0 
 
0 1 0 0 1 

Pentru a gasi o solutie de baza admisibila de start, trebuie ca matricea A sa
contina submatricea unitate I3 (m = 3). Ea contine însa doar doua coloane ale
matricei unitate I3 , cele corespunzatoare variabilelor de compensare y1 si y3 , ceea ce
înseamna ca va trebui sa introducem o singura variabila artificiala, x1a , numai în
restrictia a doua, pentru a forma coloana lipsa din matricea I3 .

Pasul 3. Se construieste problema modificata, al carui model matematic este:


max g ( x ) = 8 x1 + 6 x 2 − Mx 1a
3 x1 + 2 x 2 + y 1 = 48000

 x1 − y2 + x1a = 10000 (1.35)
 x2 + y3 = 6000

x1 ≥ 0 ; x 2 ≥ 0 ; y1 ≥ 0 ; y 2 ≥ 0 ; y 3 ≥ 0 ; x1a ≥ 0 .

Pasul 4. Se aplica algoritmul simplex problemei modificate, solutia


admisibila de baza de start fiind formata din variabilele ale caror coloane formeaza
matricea unitate I3 , adica y1 , x1a , y 3 . Primul tablou Simplex este prezentat în tabelul 1.5.

Tabelul 1.5
cj → 8 6 0 0 0 -M bi
VB cjVB VVB x1 x2 y1 y2 y3 x1a
a ij ( p )
y1 0 48000 3 2 1 0 0 0 16000
x1a -M 10000 1 0 0 -1 0 1 10000
y3 0 6000 0 1 0 0 1 0 -
zj -10000M -M 0 0 M 0 -M
? j = zj - cj -M-8 -6 0 M 0 0

Deoarece exista diferente ? j negative, solutia obtinuta nu este solutie


optima si se cauta o noua solutie admisibila de baza. În noua baza intra variabila x1 ,
careia îi corespunde cea mai mare diferenta negativa egala cu (–M-8) si iese din
bi
baza variabila x1a , corespunzatoare valorii minime a raportului , valoare
a ij ( p )
egala cu 10000. Deoarece a fost eliminata din baza variabila artificiala, s-a
determinat o solutie de baza admisibila de start pentru problema initiala, formata din

29
variabilele de baza y1 , x1 si y3 ; se continua algoritmul simplex pentru a determina
solutia optima. Al doilea tablou simplex este prezentat în tabelul 1.6
Tabelul 1.6
cj → 8 6 0 0 0 -M bi
VB cjVB VVB x 1 x2 y1 y 2 y3 a
x1 ai ( p ) j
y1 0 18000 0 2 1 3 0 3 6000
x1 8 10000 1 0 0 -1 0 1 -
y3 0 6000 0 1 0 0 1 0 -
zj 80000 8 0 0 -8 0 8
? j = zj - cj 0 -6 0 -8 0 8+M

Mai exista diferente ? j negative, deci nu a fost gasita solutia optima.


Intra în baza variabila y2 si iese variabila y1 . Al treilea tablou simplex este
prezentat în tabelul 1.7.
Tabelul 1.7
cj → 8 6 0 0 0 -M bi
VB cjVB VVB x1 x2 y1 y2 y3 x1a
ai ( p ) j
y2 0 6000 0 2/3 1/3 1 0 1 9000
x1 8 16000 1 2/3 1/3 0 0 2 24000
y3 0 6000 0 1 0 0 1 0 6000
zj 128000 8 16/3 8/3 0 0 16

? j = zj - cj 0 -2/3 8/3 0 0 16+M

Continua etapa de îmbunatatire a solutiei determinate la iteratia precedenta.


Intra în baza variabila x2 si iese din baza variabila y3 . Tabloul simplex
corespunzator este prezentat în tabelul 1.8.
Tabelul 1.8
cj → 8 6 0 0 0 -M
VB cjVB VVB x1 x2 y1 y2 y3 xa 1
y2 0 2000 0 0 1/3 1 -2/3 1
x1 8 12000 1 0 1/3 0 -2/3 2
x2 6 6000 0 1 0 0 1 0
zj 132000 8 6 8/3 0 2/3 16
? j = zj - cj 0 0 8/3 0 2/3 16+M

Analizând elementele liniei ? j a tabelului 1.8 se constata ca toate diferentele sunt


pozitive, ceea ce înseamna ca ultima solutie admisibila de baza este solutie optima.
În concluzie, solutia optima a problemei date este: numarul cartilor cu
coperta de carton ce trebuie legate este x1 = 12.000 de bucati, iar numarul cartilor
cu coperta simpla ce trebuie legate este x2 = 6.000 de bucati.

30
Profitul maxim obtinut este de 132.000 u.m.
Variabilele de compensare au valorile: y1 =0, y2 = 2.000, y3 = 0, adica s-au
utilizat toate cele 800 de ore de care dispune legatoria, s-au produs în plus 2000 de
carti cartonate, fata de cele 10.000 despre care se stia ca se pot vinde, s-au realizat
exact 6.000 de carti cu coperta simpla.

1.5.2 Metoda celor doua faze

Se considera problema de programare liniara, data în forma standard:

 optf (x ) = c ′X

 AX = b (1.36)
X ≥ 0

Vom presupune ca matricea A a coeficientilor tehnologici din sistemul de


restrictii nu contine nici un vector unitar si ca b = 0 (în caz contrar se înmultesc
cu -1 restrictiile pentru care bi < 0).
Daca se adauga fiecarei restrictii i câte o variabila artificiala x ia ≥ 0 , se
obtine:
 AX + IX a = 0
 (1.37)
 X ≥ 0 ; X a ≥ 0
unde I este matricea unitate de tipul m × m. Problema initiala are solutie daca si
( )
numai daca sistemul (1.37) are solutii de forma X , X a ≥ 0 cu X a = 0 .
Daca se obtine o astfel de solutie de baza cu X a = 0 , atunci vectorul X
constituie o solutie admisibila de baza de start pentru problema (1.36).
Asadar pentru a obtine o solutie a sistemului (1.37) cu X a = 0 , se rezolva
problema de programare liniara:
 m
 min g ( x ) = ∑ x i
a
i =1

 AX + IX = b
a
(1.38)

X ≥ 0, X ≥ 0
a


folosind algoritmul simplex primal. Aceasta constituie faza I a metodei si are drept
scop eliminarea variabilelor artificiale.
Pentru rezolvarea problemei (1.38) dispunem de solutia de baza admisibila
de start X = 0, X a = b , corespunzatoare bazei definite de matricea I atasata
sistemului de restrictii.

31
m m
Deoarece x ia ≥ 0 , rezulta ca ∑i =1
x ia ≥ 0 si deci si min ∑x
i =1
a
i ≥0.

Sunt posibile doua situatii:


m
1. min ∑x
i =1
a
i > 0 si atunci problema (1.36) nu are solutie deoarece nu au

fost eliminate din baza toate variabilele artificiale.


m
2. min ∑x
i =1
a
i = 0 si atunci înseamna ca toate variabilele artificiale au fost

eliminate din baza si s-a obtinut o solutie de baza admisibila de start pentru
problema initiala, cu x ia = 0 , 1 ≤ i ≤ m . Cu aceasta solutie de start se trece la faza a
II-a a metodei care consta în rezolvarea problemei initiale utilizând algoritmul
Simplex primal.
Observatie . Daca în problema initiala exista o variabila xj care apare
într-o singura ecuatie i cu coeficientul aij = 1, ceea ce înseamna ca matricea A
contine un vector unitar, atunci în ecuatia respectiva nu mai este necesara
adaugarea unei variabile artificiale, deoarece variabila xj poate fi luata în baza
initiala.
Se întelege ca, în situatia în care exista k astfel de variabile, se vor
introduce m – k variabile artificiale, iar acest lucru scurteaza timpul de rezolvare al
primei faze a metodei.

Exemplul 1.4 Metoda celor doua faze pentru determinarea unei solutii
admisibile de baza de start (initiala).
Sa se gaseasca solutia optima a problemei de programare liniara al carui
model matematic este urmatorul:
 min f ( x ) = x1 + 6 x 2

 2 x1 + x 2 ≥ 3
 (1.39)
 x1 + 3 x 2 ≥ 4
 x1 , x 2 ≥ 0

Pasul 1. Se aduce modelul matematic al problemei la forma standard prin


introducerea în sistemul de restrictii a variabilelor de compensare y1 si y2 .
 min f ( x ) = x1 + 6 x 2

 2 x1 + x 2 − y 1 = 3
 (1.40)
 x1 + 3 x 2 − y 2 = 4
 x1 , x 2 , y1 , y 2 ≥ 0
Pasul 2. Se scrie matricea A a coeficientilor tehnologici din sistemul de
restrictii (1.40).

32
 x1 x2 y1 y 2 
 
A= 2 1 −1 0  (1.41)
1 0 − 1 
 3

Matricea A nu contine nici un vector unitar, deci nu putem determina direct


o solutie admisibila de baza de start pentru aplicarea algoritmului simplex.
Pasul 3. Se aplica metoda celor doua faze.
Faza I. Se construieste problema modificata prin introducerea variabilelor
artificiale x1a si x 2a (numarul de variabile artificiale introduse este egal cu numarul
vectorilor unitari ce formeaza matricea unitate de ordin egal cu numarul de
restrictii).
Modelul matematic al problemei modificate este:
 min g ( x ) = x1a + x 2a

 2 x1 + x 2 − y 1 + x1a = 3
 (1.42)
 x1 + 3 x 2 − y 2 + x 2 = 4
a


 x1 , x 2 , y1 , y 2 , x1a , x 2a ≥ 0
Se rezolva problema modificata utilizând algoritmul simplex, solutia de start
fiind formata din cele doua variabile artificiale. Primul tablou este prezentat în tabelul 1.9.
Tabelul 1.9
cj → 0 0 0 0 1 1 bi
VB cjVB VVB x1 x2 y1 y2 x1a a
x2 a ij ( p )
xa 1 3 2 1 -1 0 1 0 1
1

x 2a 1 4 1 3 0 -1 0 1 1/4
zj 7 3 4 -1 -1 1 1
? j = zj - cj 3 4 -1 -1 0 0
În iteratia a doua (tabelul 1.10) baza este formata din variabilele x2 si x 2a .
Tabelul 1.10
cj → 0 0 0 0 1 1 bi
VB cjVB VVB x1 x2 y1 y2 x1a
x2a a ij ( p )
x1a 1 5/3 5/3 0 -1 1/3 1 -1/3 1
x2 0 4/3 1/3 1 0 -1/3 0 1/3 4
zj 5/3 5/3 0 -1 1/3 1 -1/3
? j = zj - cj 5/3 0 -1 1/3 0 -4/3

În iteratia a treia (tabelul 1.11), baza este formata din variabilele x1 si x2 .

33
Tabelul 1.11
cj → 0 0 0 0 1 1
VB cjVB VVB x1 x2 y1 y2 x1a x 2a
x1 0 1 1 0 -3/5 1/5 3/5 -1/5
x2 0 1 0 1 1/5 -2/5 -1/5 2/5
zj 0 0 0 0 0 0 0
? j = zj - cj 0 0 0 0 -1 -1

Cele doua variabile artificiale au fost eliminate din baza, min g (x ) = 0 si s-a
obtinut o solutie de baza optima pentru problema modificata: x1 = 1, x2 = 1, y1 =0,
y2 = 0, x1a = 0, x 2a = 0. Faza I s-a încheiat.
Faza a II-a. Cu solutia de baza de start: x1 = 1, x2 = 1, y1 =0, y2 = 0 se
aplica algoritmul simplex problemei initiale (1.40).
Primul tablou simplex este prezentat în tabelul 1.12. El se construieste astfel:
- coeficientii cj sunt cei corespunzatori functiei obiectiv ai problemei intiale;
- valoarea variabilelor de baza, VVB, este cea corespunzatoare solutiei
optime determinata în faza I a metodei;
- elementele aij ale tabloului se preiau din ultimul tablou simplex, cel în
care s-a obtinut solutia optima în faza I (tabelul 1.11);
- elementele liniilor zj si ? j se calculeaza.
Tabelul 1.12
cj → 1 6 0 0 bi
VB cjVB VVB x 1 x2 y 1 y2 a ij ( p )
x1 1 1 1 0 -3/5 1/5
x2 6 1 0 1 1/5 -2/5 5
zj 7 1 6 3/5 -11/5
? j = zj - cj 0 0 3/5 -11/5

Deoarece exista o diferenta ? j pozitiva, iar problema initiala este o


problema de minim, solutia de baza poate fi îmbunatatita. Al doilea tablou simplex
este prezentat în tabelul 1.13.
Tabelul 1.13
cj → 1 6 0 0
VB cjVB VVB x1 x 2 y1 y 2
x1 1 4 1 3 0 -1
y1 0 5 0 5 1 -2
zj 4 1 3 0 -1
? j = zj - cj 0 -3 0 -1

Solutia optima a problemei initiale este: x1 = 4; x2 = 0; y1 = 5; y2 = 0, iar


valoarea minima a functiei obiectiv este egala cu 4.

34
Exemplul 1.5 Cazuri speciale de probleme de programare liniara
a. Problema de programare liniara nu are solutie
Sa se verifice folosind algoritmul simplex ca problema urmatoare nu are solutie.
 max f (x ) = 4 x1 + 3 x 2

 x1 + x 2 ≤ 2
 (1.43)
3 x1 + x 2 ≥ 10
 x1 , x 2 ≥ 0

Se scrie problema în forma standard, introducând variabilele de


compensare y1 si y2 :
 max f (x ) = 4 x1 + 3 x 2

 x1 + x 2 + y 1 = 2
 (1.44)
3 x1 + x 2 − y 2 = 10
 x1 , x 2 , y1 , y 2 ≥ 0
Se scrie matricea A a coeficientilor sistemului de restrictii (44):
 x1 x 2 y 1 y 2 
 
A= 1 1 1 0 (1.45)
 3 1 0 − 1
 
Pentru a forma matricea unitate I2 , se introduce în restrictia a doua variabila
artificiala x1a si se aplica metoda bazei artificiale pentru a gasi o solutie de start
pentru algoritmul simplex.
Problema modificata are urmatorul model matematic în forma standard:
 max f (x ) = 4 x1 + 3 x 2 − M
x + x + y = 2
 1 2 1
 (1.46)
3 x1 + x 2 − y 2 + x1 = 10
a

x , x , y , y , xa ≥ 0
 1 2 1 2 1
Primul tablou simplex este prezentat în tabelul 1.14.
Tabelul 1.14
cj → 4 3 0 0 -M bi
VB cjVB VVB x1 x2 y1 y2 a
x1 a ij ( p )
y1 0 2 1 1 1 0 0 2
x1a -M 10 3 1 0 -1 1 10/3
zj -10M -3M -M 0 M -M
? j = zj - cj -3M-4 -M-3 0 M 0

Pe linia diferentelor ? j exista valori negative, deci solutia de baza nu este


solutie optima. Se construieste al doilea tablou simplex (tabelul 1.15).
35
Tabelul 1.15
cj → 4 3 0 0 -M bi
VB cjVB VVB x1 x2 y1 y2 a
x1 a ij ( p )
x1 4 2 1 1 1 0 0
x1a -M 4 0 -2 -3 -1 1
zj 8-4M 4 4+2M 4+3M M -M
? j = zj - cj 0 1+2M 4+3M M 0

Analizând elementele liniei ? j , se constata ca este îndeplinit criteriul de


optim pentru o problema de maxim (? j ≥ 0), dar în baza a ramas variabila
artificiala. Rezulta ca solutia optima a problemei modificate este imposibila
(nerealizabila) si problema de programare liniara initiala nu are solutie.

b. problema de programare liniara are solutie optima infinita


Sa se rezolve urmatoare problema de programare liniara:
 max f (x ) = x1 + 2 x 2

 x1 + x 2 ≥ 2
 (1.47)
 x2 ≤3
 x1 , x 2 ≥ 0
Se aduce problema la forma standard si se scrie matricea A a coeficientilor
tehnologici din sistemul de restrictii:
 max f (x ) = x1 + 2 x 2
  x1 x 2 y1 y 2 
 x1 + x 2 − y1 = 2  
 A= 1 1 −1 0  (1.48)
 x2 + y 2 = 3 0 0 0 
 x1 , x 2 , y1 , y 2 ≥ 0  1

Cu baza intiala formata din necunoscutele x1 si y2 se construieste primul


tablou simplex (tabelul 1.16).
Tabelul 1.16
cj → 1 2 0 0 bi
VB cjVB VVB x1 x2 y1 y2 a ij ( p )
x1 1 2 1 1 -1 0 2
y2 0 3 0 1 0 1 3
zj 2 1 1 -1 0
? j = zj - cj 0 -1 -1 0

Pe linia ? j exista doua valori negative egale, adica pot intra în noua baza
variabilele x2 si y2 .

36
Pentru a afla variabila care iese din baza initiala, se calculeaza valoarea
bi
minima a raportului , numai pentru acele elemente apartinând coloanei pivot
a ij ( p )
pentru care a ij ( p ) > 0 .
Pe coloana variabilei y1 , elementele sunt -1 si 0 ( a ij ( p ) ≤ 0 ), ceea ce
înseamna ca problema are o solutie optima infinita.
Consideram cea de -a doua valoare negativa ? j , cea corespunzatoare
variabilei x2 . Elementele coloanei corespunzatoare lui x1 sunt ambele strict pozitive
(egale cu 1) si se poate aplica criteriul de iesire din baza. Variabila x2 intra în baza.
Al doilea tablou simplex este prezentat în tabelul 1.17.
Tabelul 1.17
cj → 1 2 0 0 bi
VB cjVB VVB x1 x2 y1 y2 a ij ( p )
x2 2 2 1 1 -1 0 -
y2 0 1 -1 0 1 1 1
zj 4 2 2 -2 0
? j = zj - cj 1 0 -2 0

Se formeaza o noua baza din variabilele x2 si y1 (tabelul 1.18).


Tabelul 1.18
cj → 1 2 0 0
VB cjVB VVB x 1 x 2 y 1 y 2
x2 2 3 0 1 0 0
y1 0 1 -1 0 1 1
zj 6 0 2 0 0
? j = zj - cj -1 0 0 0

Desi nu s-a obtinut solutia optima, algoritmul nu mai poate continua deoarece
elementele coloanei pivot nu sunt strict pozitive. Problema data are optim infinit.

c. problema de programare liniara are solutii optime multiple


Sa se rezolve urmatoarea problema de programare liniara:
 max f (x ) = 3 x1 + 4 x 2 + 2 x 3

 2 x1 + 2 x 2 + x 3 ≤ 2200
 x1 + x 2 ≤ 1200
 (1.49)
 x1 + x 2 + x3 ≤ 2000
 x1 + 2 x 2 + x 3 ≤ 1600

 x1 , x 2 , x 3 ≥ 0

37
Forma standard a problemei este urmatoarea:
 max f (x ) = 3 x1 + 4 x 2 + 2 x 3

 2 x1 + 2 x 2 + x 3 + y1 = 2200
 x1 + x 2 + y 2 = 1200
 (1.50)
 x1 + x 2 + x3 + y 3 = 2000
 x1 + 2 x 2 + x 3 + y 4 = 1600

 x1 , x 2 , x 3 , y 1 , y 2 , y 3 , y 4 ≥ 0

Cu baza initiala formata din variabileele de compensare y1 , y2 , y3 si y4 se


construieste primul tablou simplex (tabelul 1.19):

Tabelul 1.19
cj → 3 4 2 0 0 0 0 bi
VB cjVB VVB x1 x2 x3 y1 y2 y3 y4 a ij ( p )

y1 0 2200 2 2 1 1 0 0 0 1100
y2 0 1200 1 1 0 0 1 0 0 1200
y3 0 2000 1 1 1 0 0 1 0 2000
y4 0 1600 1 2 1 0 0 0 1 800
zj 0 0 0 0 0 0 0 0
? j = zj - cj -3 -4 -2 0 0 0 0

Solutia obtinuta nu este solutie optima, ea poate fi îmbunatatita.


În noua baza intra variabila x2 , iar din baza initiala iese variabila y4 .
Al doilea tablou simplex este prezentat în tabelul 1.20

Tabelul 1.20
cj → 3 4 2 0 0 0 0 bi
VB cjVB VVB x1 x2 x3 y1 y2 y3 y4 a ij ( p )

y1 0 600 1 0 0 1 0 0 -1 600
y2 0 400 ½ 0 -½ 0 1 0 -½ 800
y3 0 1200 ½ 0 ½ 0 0 1 -½ 2400
x2 4 800 ½ 1 ½ 0 0 0 ½ 1600
zj 3200 2 4 2 0 0 0 2
? j = zj - cj -1 0 0 0 0 0 2

Se continua algoritmul cu o noua baza formata din variabilele x1 , y2 , y3 si x2.


Al treilea tablou simplex este prezentat în tabelul 1.21.

38
Tabelul 1.21
cj → 3 4 2 0 0 0 0
VB cjVB VVB x1 x2 x3 y1 y2 y3 y4

x1 3 600 1 0 0 1 0 0 -1
y2 0 100 0 0 -½ -½ 1 0 0
y3 0 900 0 0 ½ -½ 0 1 0
x2 4 500 0 1 ½ -½ 0 0 1
zj 3800 3 4 2 1 0 0 1
? j = zj - cj 0 0 0 1 0 0 1

S-a obtinut solutia optima: x1 = 600; x2 = 500; x3 = 0; y1 = 0; y2 = 100; y3 = 900,


valoarea maxima a functiei obiectiv fiind egala cu 3800.
Analizând linia diferentelor ? j , se constata o valoare nula corespunzatoare
variabilei x3 , variabila care nu apartine bazei optime. Acest lucru înseamna ca prin
introducerea variabilei x3 în baza optima valoarea functiei obiectiv nu se modifica.
De exemplu, introducem în baza optima variabila x3 în locul variabilei x1
(tabelul 1.22).
În tabelul 1.22 s-au calculat numai valorile variabilelor de baza si valoarea
functiei obiectiv pentru variabilele din baza, restul elementelor tabloului neprezentând
importanta.

Tabelul 1.22
cj → 3 4 2 0 0 0 0
VB cjVB VVB x1 x2 x3 y1 y2 y3 y4

x1 3 1200
y2 0 600 Fara
importanta
y3 0 400
x3 2 1000
zj 38000

Rezulta ca problema de programare liniara admite mai multe solutii


optime, pentru toate valoarea optima a functiei obiectiv fiind întotdeauna aceeasi.
În concluzie, o problema de programare liniara are solutii optime multiple
daca exista diferente ? j nule corespunzatoare unor variabile care nu fac parte din
baza optima.

d. problema de programare liniara degenerata


Se stie ca o solutie de baza are cel mult m componente nenule. Daca o
solutie de baza are mai putin de m componente nenule, ea se numeste degenerata ,
iar daca are exact m componente nenule se numeste solutie de baza nedegenerata.

39
Pot aparea probleme degenerate în urmatoarele situatii:
- daca vectorul termenilor liberi are unele componente nule, atunci la
bi
aplicarea criteriului de iesire din baza raportul nu este unic determinat;
a ij ( p )
- în cazul în care vectorul termenilor liberi nu este liniar independent fata
de orice sistem format din m – 1 vectori coloana din matricea A, a coeficientilor
tehnologici ai sistemului de restric tii, la aplicarea criteriului de iesire din baza
bi
raportul nu este unic determinat;
a ij ( p )
Pentru a elimina nedeterminarea criteriului de iesire din baza, se aplica
tehnica perturbarii, care presupune urmatoarele etape:
bi
Pasul 1. Daca minimul raportului nu este unic, ci se realizeaza pe o
a ij ( p )
ai1
multime de indici I0 , se compara rapoartele , i ∈ I 0 , iar variabila care iese
a ij( p )
din baza este cea corespunzatoare raportului minim.
Pasul 2. Daca minimul determinat la pasul 1 nu este unic, ci se realizeaza
a i2
pe o multime de indici I1 , se compara rapoartele , i ∈ I1 ⊂ I 0 , se retine cel
a ij( p )
minim, iar variabila corespunzatoare lui va iesi din baza.
Pasul 3. Se procedeaza tot asa mai departe pâna ce se obtine un minim unic.

Ca exemplu, se cere sa se determine solutia optima pentru urmatoarea


problema de programare liniara:

 min f (x ) = − 2 x 5 + x 6 − 2 x 7 + 2 x 8
1 3

 x1 − 2 x 5 + 3 x 6 + 4 x 7 + x 8 = 0
 x − x − 2x + 3x − x = 0
 2 5 6 7 8 (1.51)
 x3 + x 5 − x 6 + 2 x 7 − 3 x 8 = 0

 x4 + x7 − x8 =2
 x ≥ 0 ( j = 1,2,...,8 )
 j

Se poate observa ca în matricea A a coeficientilor sistemului de restrictii


exista submatricea unitate de ordinul patru, formata cu variabilele x1 , x2 , x3 , x4
(fiecare variabila intra, cu coeficient egal cu 1, într-o unica ecuatie a sistemului de
restrictii al problemei).
Cu variabilele x1 , x2 , x3 , x4 formând baza initiala se construieste primul
tablou simplex (tabelul 1.23).

40
Tabelul 1.23
cj → 0 0 0 0 -1/2 1 -3/2 2 bi
VB cjVB VVB x1 x2 x3 x4 x5 x6 x7 x8 a ij ( p )
x1 0 0 1 0 0 0 -2 3 4 1 0
x2 0 0 0 1 0 0 -1 -2 3 -1 0
x3 0 0 0 0 1 0 1 -1 2 -3 0
x4 0 2 0 0 0 1 0 0 1 -1 2
zj 0 0 0 0 0 0 0 0
? j = zj - cj 0 0 0 0 1/2 -1 3/2 -2

Deoarece exista diferente ? j pozitive, solutia nu este optima. Va intra în


noua baza variabila x7 , coloana corespunzatoare ei fiind coloana pivot (j = 7).
Elementele a ij ale matricei A, care apartin coloanei pivot, sunt notate ai 7 , unde i =
1,2,3,4.
Nu se poate stabili variabila care iese din baza initiala deoarece minimul
b
raportului i , i = 1, 2, 3, nu este unic determinat (trei valori minime egale cu 0).
a i7
Acest minim se realizeaza dupa multimea de indici I 0 = {1, 2, 3} . Aplicând
“pasul 1” al tehnicii perturbarii, descrise anterior, obtinem:
a  a a a  1 0 0
min  i1  = min  11 , 21 , 31  = min  , ,  = 0
i∈I 0  a i 7  a a a
 17 27 37  4 3 2
Nici acest minim nu este unic determinat, ci se realizeaza dupa multimea
de indici I1 = {2, 3} . Se aplica “pasul 2” al tehnicii perturbarii si se obtine:
a  a a  1 0
min  i 2  = min  22 , 32  = min  ,  = 0 , deci i = 3, ceea ce înseamna
i∈I 1  a i 7   a 27 a 37  3 3
ca iese din baza variabila x3 .
Se continua algoritmul simplex cu noua baza formata din variabilele x1 , x2 ,
x7 si x4 .

Observatie . Pentru o problema care are cel putin o solutie degenerata exista
posibilitatea sa apara, în afara de nedeterminarea criteriului de iesire din baza,
fenomenul de ciclare.
Acesta consta în revenirea la una dintre solutiile de baza corespunzatoare
unei iteratii anterioare. În aceasta situatie valoarea functiei obiectiv ramâne
nemodificata pe parcursul mai multor iteratii si ca urmare procesul iterativ continua
la infinit.
Trebuie precizat ca degenerarea nu conduce neaparat la fenomenul de ciclare
si ca în problemele practice rezolvate pâna în prezent nu s-a constatat aparitia ciclarii.

41
Probleme propuse spre rezolvare

P 1.5 O firma produce trei produse A, B, C, folosind trei resurse R1 , R2 , R3 .


Consumurile specifice, cantitatile disponibile din fiecare resursa si beneficiile unitare
sunt prezentate în tabelul urmator:

Produse A B C Disponibil
Resurse
R1 2 3 - 20
R2 - 4 5 30
R3 1 2 1 50
Beneficiul unitar 20 40 60

Utilizând algoritmul simplex sa se determine planul de productie pentru cele


trei produse astfel încât beneficiul sa fie maxim.

P 1.6 Pentru executarea a doua produse P1 si P2 trebuie efectuate operatii


succesive, în ordine aleatoare, pe trei masini-unelte M1 , M2 , M3 . Timpii unitari de
executie (în min/buc), timpul disponibil de lucru pe fiecare masina (min) si beneficiul
unitar obtinut pentru fiecare produs (u.m./buc) sunt date în tabelul de mai jos:

Produse P 1 P2 Timp
Masini disponibil
M1 11 9 9900
M2 7 12 8400
M3 6 16 9600
Beneficiul unitar 900 1000

Utilizând algoritmul simplex, sa se determine planul de productie pentru cele


doua produse astfel încât beneficiul obtinut sa fie maxim.

P 1.7 O întreprindere realizeaza patru categorii de produse P1 , P2 , P3 , P4


utilizând trei locuri de munca L1 , L2 , L3 . Necesarul de timp, exprimat în ore, pentru
fabricarea fiecarui produs, capacitatile de productie ale celor trei locuri de munca
precum si preturile de desfacere a produselor sunt date în tabelul urmator.

Produse P1 P2 P3 P4 Capacitatea
Locuri de munca de productie
L1 45 20 20 9 3780
L2 45 25 25 0 4410
L3 9 5 0 0 350
Pretul de desfacere 1260 1960 700 1000

42
Folosind algoritmul simplex, sa se determine structura optima a productiei
astfel încât pretul total de desfacere a celor patru produse sa fie minim.

P 1.8 Într-o sectie a unei întreprinderi electronice, la patru locuri de munca


Cj , j = 1,2,3,4, se realizeaza trei tipuri de componente Ci , i = 1,2,3. La fiecare loc de
munca se poate lucra respectiv 2200, 1200, 2000 si 1600 ore/an.
În tabelul de mai jos se indica duratele de prelucrare pentru fiecare tip de
componenta (ore/buc) si beneficiul unitar (u.m./buc) obtinut prin vânzarea acestora.

Mj M1 M2 M3 M4 Beneficiul
Ci unitar
C1 2 1 1 1 3
C2 2 1 1 2 4
C3 1 0 1 1 2

Sa se determine planul de productie care sa asigure beneficiul total maxim.

P 1.10 O unitate de productie poate produce doua sortimente A si B dintr-un


produs utilizând trei utilaje U1 , U2 , U3 .
În tabelul urmator sunt date capacitatile masinilor precum si consumul unitar
de ore/masina pentru fiecare sortiment.

Sortimente A B Capacitatea
Utilaje disponibila
U1 0,2 0,8 6
U2 0,4 1 8
U3 1 0,4 8

Sa se stabileasca structura sortimentelor care asigura producerea numarului


maxim de produse în limita capacitatilor disponibile.

P 1.9 Un agricultor doreste sa cultive rosii si ardei pe cele 150 hectare de


suprafata irigabila pe care le poseda. El dispune de 480 ore mâna de lucru si 440 m3
de apa. Un hectar de rosii necesita o ora de mâna de lucru, 4 m3 de apa si aduce un
beneficiu net de 100 u.m. (unitati monetare). Un hectar de ardei necesita 4 ore mâna
de lucru, 2 m3 de apa si aduce un beneficiu net de 200 u.m.
Asociatia locala a agricultorilor doreste sa protejeze pretul rosiilor si nu-i
permite sa cultive decât maxim 90 de hectare de rosii. Suprafata cultivata cu ardei nu
are restrictii de exploatare.
Care este cea mai buna alocare a resurselor astfel încât beneficiul
agricultorului sa fie maxim?

P 1.10 O firma produce doua tipuri de televizoare , T1 si T2 , pe doua linii de


fabricatie L 1 si L2 (câte una pentru fiecare tip de televizor).
43
Capacitatea primei linii L1 este de 30 televizoare pe zi, iar a celei de-a doua
linii L2 de 25 de televizoare pe zi.
Pentru asamblare se folosesc muncitori care lucreaza la ambele tipuri de
televizoare. Sunt disponibile cel mult 70 de ore pe zi la asamblare.
Pentru T1 este necesara o ora, iar pentru T2 sunt necesare 2 ore.
Contributia la profitul firmei este de 2 u.m. la T1 si de 3 u.m. la T2.
Ce plan de productie trebuie sa stabileasca conducerea firmei pentru ca
profitul sa fie maxim?

P1.11 O întreprindere produce un amestec de seminte de floarea-soarelui si


mei pentru hrana pasarilor. Continutul nutritional al amestecului este dat în tabelul de
mai jos:

Continut Floarea-soarelui Mei Necesar


Grasimi 0,3 0,2 24
Proteine 0,5 0,6 60
Substante nedigerabile 0,3 0,2 30
Costul pe kg. 5 u.m. 9 u.m.

Amestecul trebuie sa contina cel putin 24 de unitati de grasimi, cel putin 60


de unitati de proteine si cel mult 30 de unitati nedigerabile.
Sa se determine cantitatile de floarea-soarelui si de mei pe care trebuie sa le
contina amestecul pentru a minimiza costul total.

P 1.12 Un atelier de prelucrari mecanice este specializat în prelucrarea de


seturi de piese pentru tipurile A si B de piese finite. Atelierul dispune de trei tipuri
de utilaje: 1 – strung; 2 – masina de frezat; 3 – masina de gaurit. Timpii minimi
necesari executarii unui set de piese, tij , [min/set piese], fondul disponibil de timp
Fdi [min/luna] si beneficiul planificat b j [unitati monetare/set piese] sunt date în
tabelul urmator:

Tipuri de tij [min/set piese]


produse Fdi [ min/luna]
Grupa de A B
utilaje
1 11 9 9900
2 7 12 8400
3 6 16 9600
b j [u.m./set piese] 90 100

Sa se determine cantitatea de seturi de piese ce urmeaza a fi prelucrata pe


luna, în conditiile realizarii unui beneficiu maxim.

44
P 1.13 Un meniu trebuie sa asigure organismului necesarul de substante
S1 , S2 si S3 cu ajutorul alimentelor A1 , A2 , A3. Cantitatile de substante S1 , S2 si S3
ce se gasesc într-o unitate de aliment de fiecare fel, cantitatile din cele trei
substante necesare organismului, precum si preturile celor trei alimente sunt date în
tabel:

Aj A1 A2 A3 Necesar
Si [unitati]
S1 4 3 2 24
S2 5 7 2 35
S3 1 5 4 40
Pret [u.m.] 8 7 5

Sa se determine cantitatile din cele trei elemente ce trebuie introduse în


meniu astfel încât costul total al retetei sa fie minim (în raport cu aceste trei
alimente).

P 1.14 O întreprindere fabrica patru categorii de produse P1 , P2 , P3 , P4 la


trei locuri de munca L1 , L2 , L3 . Necesarul de timp (în ore) pentru fabricarea fiecarui
produs, capacitatile de productie (în ore) ale celor trei locuri de munca, precum si
preturile de desfacere a produselor sunt trecute în tabelul urmator:

Pj P1 P2 P3 P4 Capacitatea
Li de productie
L1 45 20 20 9 3780
L2 45 25 25 0 4410
L3 9 5 0 0 350
Pret de 1260 1960 700 1000
desfacere [u.m.]

Sa se determine structura optima a productiei astfel încât pretul total de


desfacere sa fie minim.

P 1.15 Într-un laborator al unei întreprinderi metalurgice se încearca


obtinerea unui aliaj special care trebuie sa contina cel putin 4% Mn, cel putin 3%
Cr si cel putin 2% Ni. Întreprinderea dispune de doua categorii de materii prime
care contin mangan, crom si nichel în cantitatile specificate în tabelul de mai jos:

Aliaje
Materii Mn Cr Ni
prime
M1 2% 4% 2%
M2 6% 3% 1%

45
Costul unui kilogram de materie prima de tipul M1 este de 70 u.m., iar de
tipul M2 de 55 u.m. Sa se stabileasca reteta de amestec optim din punct de vedere al
costului.

P1.16 O institutie care efectueaza sondaje de opinie a obtinut un contract


pentru interviuri personale si la telefon.
Clientul a specificat urmatoarele conditii:
- sa se realizeze cel putin 1000 de interviuri, dintre care cel putin
jumatate sa fie efectuate personal;
- cel putin 30% dintre interviuri sa fie programate noaptea;
- la cel mult 40% dintre cei intervievati ziua sa lise dea telefon;
- costurile sunt de 6 u.m. pentru un telefon, de 10 u.m. pentru interviurile
personale, în timp ce interviurile programate noaptea costa cu 20% mai mult decât
cele realizate ziua.
Cum trebuie programate interviurile pentru minimizarea costului total?

P1.17 O firma produce trei tipuri de ceai, C1 , C2 , C3 , folosind amestecuri de


ceaiuri din import, din trei tari T1 , T2 , T3 . Compozitia fiecarui tip de ceai, cantitatile
disponibile si beneficiile unitare sunt date în tabelul de mai jos:

Tara C1 C2 C3 Disponibil (kg)


T1 20% 30% 40% 200
T2 40% 30% 20% 220
T3 40% 40% 40% oricât
Beneficiu unitar 2 3 5

Se pot vinde cel putin 20 de kilograme de ceai C1 .


Care este planul lunar optim de productie, pentru un beneficiu total maxim?

P 1.18 O firma realizeaza trei produse folosind patru tipuri de resurse.


Datele problemei sunt date în tabelul urmator.

Produse P1 P2 P3 Disponibil
Resurse
R1 1 1 2 860
R2 2 3 0 920
R3 0 1 4 860
R4 1 1 1 600
Beneficiu unitar 60 40 100

Sa se determine planul optim de productie pentru un beneficiu total maxim.

46
1.6 Dualitatea în programarea liniara
În principiu, fiecarei probleme de programare liniara (numita problema
primala ) îi corespunde o alta problema de programare liniara, numita duala sa.
Împreuna cele doua probleme formeaza un cuplu primala – duala.

1.6.1 Reguli de construire a problemei duale


Problema duala se construieste folosind elementele problemei primale si o
serie de reguli, câte una pentru fiecare dintre componentele unei probleme de
programare liniara.
Aceste componente se refera la:
1. Natura operatorului functiei obiectiv (minim sau maxim).
2. Necunoscutele problemei, adica vectorul X (vector transpus) al
variabilelor: X ′ = (x1 , x 2 ,..., x n ) .
3. Coeficientii functiei obiectiv, adica elementele vectorului c ′ = (c1 , c 2 ,...,c n ) .
4. Termenii liberi ai restrictiilor, adica elementele vectorului b ′ = (b1 , b2 ,...,b m ) .
5. Coeficientii tehnologici din sistemul de restrictii, adica elementele matricei A:

 a11 a12 L L a1n 


 
 a 21 a 22 L L a 2 n 
A= 
M M M O M 
 
a L L 
 m 1 a m 2 a m n 

6. Natura fiecarei restrictii (“=”, “≥” sau “=”).


7. Conditia de semn a fiecarei variabile: x j ≥ 0 sau x j ≤ 0 sau x j - oarecare.

Elementele proble mei duale vor fi notate astfel:


• u ′ − vectorul variabilelor (transpus);
• c ′D − vectorul coeficientilor functiei obiectiv;
• b ′D − vectorul termenilor liberi ai restrictiilor;
• AD – matricea coeficientilor tehnologici ai restrictiilor.

Regulile de constructie a problemei duale sunt urmatoarele:


1. Duala este o problema de minim daca primala este o problema de maxim si
invers.
2. Fiecarei restrictii i a problemei primale îi corespunde o variabila ui a problemei
duale, deci duala va avea un numar de m variabile, numar egal cu numarul de
restrictii ale problemei primale.
3. Coeficientii functiei obiectiv ai dualei sunt termenii liberi ai restrictiilor
primalei.

47
4. Termenii liberi ai restrictiilor dualei sunt coeficientii functiei obiectiv a
problemei primale.
5. Matricea coeficientilor tehnologici din restrictiile dualei este transpusa matricei
coeficientilor tehnologici din restrictiile primalei.
6. Natura fiecarei restrictii a problemei duale depinde de conditia de semn a
variabilei xj a problemei primale, asociata respectivei restrictii:
- restrictia dualei este concordanta , daca x j ≥ 0 ;
- restrictia dualei este neconcordanta , daca x j ≤ 0 ;
- restrictia dualei este egalitate, daca x j oarecare.
7. Conditia de semn a variabilei ui a problemei duale este:
- u i ≥ 0 , daca restrictia corespunzatoare din primala este concordanta ;
- u i ≤ 0 , daca restrictia corespunzatoare din primala este neconcordanta;
- u i oarecare, daca daca restrictia corespunzatoare din primala este egalitate.

Exemplul 1.6 Constructia dualei unei probleme de programare liniara


Sa se construiasca duala urmatoarei probleme de programare liniara:
 max f (x ) = 2 x1 − x 2

 x1 − x 2 = 3

 x1 ≤ 4
 x1 , x 2 ≥ 0

Conform regulilor enuntate anterior, vom avea:


• Optimul functiei obiectiv a dualei este minim, deoarece primala este o problema
de maxim;
• Variabilele dualei vor fi:
- u1 corespunzatoare restrictiei x1 − x 2 = 3
- u2 corespunzatoare restrictiei x1 ≤ 4
• Coeficientii functiei obiectiv a dualei vor fi egali cu termenii liberi ai restrctiilor
problemei primale; functia obiectiv a dualei este:
min g (u ) = 3u1 + 4u 2
• Duala va avea doua restrictii, câte variabile are primala, ele obtinându-se astfel:
- matricea A′ a coeficientilor tehnologici este transpusa matricei A a primalei:
 x1 x 2   u1 u 2 
   
A =  1 − 1 ⇒ A′ =  1 1 
1 0 − 1 0 
   
- termenii liberi ai restrictiilor dualei sunt egali cu coeficientii functiei obiectiv
ai primalei;

48
- ambele restrictii ale dualei sunt concordante, deoarece cele doua variabile ale
problemei primale x1 , x 2 ≥ 0 ; cum duala este o problema de minim, semnul
restrictiilor este “≥”;
Sistemul de restrictii al dualei va fi:
u 1 + u 2 ≥ 2

 − u1 ≥ −1
• Conditiile de semn ale variabilelor dualei vor fi:
- u1 oarecare, deoarece prima restrictie a problemei primale este egalitate;
- u 2 ≥ 0 , deoarece a doua restrictie a problemei primale este concordanta.
În final, problema duala este:
 min g (u ) = 3u1 + 4u 2

u 1 + u 2 ≥ 2

 − u1 ≥ −1
u 1 oarecare, u 2 ≥ 0

1.6.2 Dualele unor forme particulare de probleme de programare liniara

1. Duala unei forme canonice de maximizare este o forma canonica de


minimizare si reciproc.

PRIMALA DUALA
 max f (x ) = c1 x1 + c 2 x 2 + ... + c n x n  min g (u ) = b1u 1 + b2 u 2 + ... + b m u m
 
 a11 x1 + a12 x 2 + ... + a1n x n ≤ b1  a11u 1 + a 21u 2 + ... + a m1u m ≥ c1
 a 21 x1 + a 22 x 2 + ... + a 2 n x n ≤ b2  a12u 1 + a 22 u 2 + ... + a m 2 u m ≥ c 2 (1.52)
 
............................................. ............................................
 a m1 x1 + a m2 x 2 + ... + a m n x n ≤ bm  a1n u1 + a 2 n u 2 + ... + a m nu m ≥ c n
 
 x1 ≥ 0 , x 2 ≥ 0 ,..., x n ≥ 0 u 1 ≥ 0 , u 2 ≥ 0 ,..., u m ≥ 0

În forma matriciala, cuplul de probleme primala -duala se scrie:

PRIMALA DUALA
 max f (x ) = c ′X  min g (u ) = b′U
  ′ (1.53)
 AX ≤ b A U ≥ c
X ≥ 0 U ≥ 0
 

2. Duala unei probleme în forma standard nu este o problema în forma standard

49
PRIMALA DUALA
 
 max f (x ) ∑
n m

j= 1
cjxj  min g (u ) = ∑ bi u i
 i= 1

n m (1.54)
 ∑ a ij x j = b i = 1,..., m  ∑ a ij u i ≥ c i j = 1,..., n
 j =1  i=1
 x j ≥ 0 j = 1,..., n u i f .r.s i = 1,..., m
 
 

sau matricial
PRIMALA DUALA
 max f (x ) = c ′X  min g (u ) = b′U
  (1.55)
 AX = b  A′ U ≥ c
X ≥ 0 
 U ∈ R ( f .r.s.)
m

Analog, se scrie duala formei standard în care optimul functiei obiectiv este minim.

PRIMALA DUALA
 min f (x ) = c ′X  max g (u ) = b ′U
  (1.56)
 AX = b  A′ U ≤ c
X ≥ 0 
 U ∈ R ( f .r.s.)
m

1.6.3 Teoreme de dualitate

Se considera cuplul de probleme (P)-(D), primala -duala în forma canonica:

 min f (x ) = c ′X  max g (u ) = b ′U
(P)  (D) 
 AX ≥ b  A′ U ≤ c
X ≥ 0 U ≥ 0
 

Teorema 1. Fie X o solutie admisibila a problemei (P) si U o solutie


admisibila a problemei (D). Atunci:
1. c′X ≥ b ′U
2. Daca c′X * = b ′U * atunci X * este o solutie optima a problemei (P) iar
U * este o solutie optima a problemei (D).
Demonstratie:
AX ≥ b  A′U ≤ c 
1.  ⇒ U ′( AX ) ≥ U ′b si  ⇒ X ′( A′U ) ≤ X ′c Rezulta: c′X ≥ b ′U
U ≥0  X ≥0 

50
2. Daca c′X = b ′U si daca X* nu ar fi solutie optima pentru (P) ar exista o solutie
admisibila mai buna X si c′X ≤ c′X * = b ′U , contrar celor demonstrate la punctul
precedent. Rezulta ca X* este solutie optima pentru (P). Analog, U* este solutie
optima pentru (D).
Teorema 2 (teorema fundamentala a dualitatii). Într-un cuplu de probleme
primala -duala, una si numai una din urmatoarele afirmatii este adevarata:
a. Ambele probleme au solutii. În acest caz ambele probleme au solutii
optime si valorile optime ale functiilor obiectiv coincid
b. Una dintre probleme are solutie, iar cealalta nu. În acest caz problema
care are solutie admite un optim infinit.
c. Nici una dintre probleme nu are solutie.

Teorema 3. Daca una dintre problemele unui cuplu primara-duala are


solutie optima atunci si cealalta are solutie optima si valorile optime ale functiilor
obiectiv coincid.
Observatie: pe baza acestei teoreme rezulta ca rezolvarea uneia dintre cele
doua probleme ale cuplului primala -duala ofera solutia optima si pentru cealalta
problema. Alegerea spre rezolvare a uneia dintre probleme este determinata de
dimensiunea cea mai redusa a bazelor admisibile.
Teorema 4 (teorema ecarturilor complementare). O conditie necesara si
suficienta pentru ca un cuplu de solutii admisibile de baza X* si U* sa fie optim este
ca solutiile sa verifice relatiile:
n 
u i*  ∑ a ij x *j − b i  = 0 (i = 1,..., m)
 j =1 
(1.57)
 * *
c j − ∑ a ij u i  x j = 0 ( j = 1,..., n )
m

 i =1 

Pe baza acestor relatii se pot formula urmatoarele concluzii:


n
1. daca u *i > 0 atunci ∑ a ij x*j = bi ;
j=1
n
2. daca ∑ a ij x*j < bi atunci u *i = 0 ;
j=1
m
3. daca x *j > 0 atunci ∑ aij u *i = c j ;
i =1
m
4. daca ∑ aij u *i > c j atunci x *j = 0 .
i =1
Prima relatie arata ca variabila duala corespunzatoare unei resurse
consumate în întregime are o valoare pozitiva.

51
Adoua relatie arata ca daca o resursa nu a fost utilizata în întregime,
variabila duala corespunzatoare ei este nula.
Din analiza relatiilor 3 si 4 se trage concluzia ca daca costul unitar al
activitatii aj , obtinut prin evaluarea consumurilor specifice aij cu ajutorul
componentelor solutiei optime a problemei duale, este egal cu coeficientul cj din
functia obiectiv (de exemplu beneficiul unitar) atunci componenta x *j > 0 , iar daca
acest cost este mai mare decât cj atunci nu este eficient sa includem în programul
optim activitatea aj ( x *j = 0 ).

1.6.4 Interpretarea economica a problemei duale

Se considera urmatoarea problema de programare liniara în care se cere


stabilirea unui plan optim de productie.
O firma realizeaza n produse Pj , j = 1,…,n, folosind m resurse Ri , i =
1,…,m. Consumurile specifice a ij , cantitatile disponibile din fiecare resursa bi si
beneficiile unitare cj pentru fiecare produs sunt cunoscute.
Pentru construirea modelului matematic se introduc variabilele de decizie
xj = numarul de produse Pj (j = 1,…,n) ce se vor fabrica.
Obiectivul firmei fiind maximizarea beneficiului total realizat din vânzarea
produselor, programul liniar pentru determinarea combinatiei optime de produse este:

 max f (x ) = c1 x1 + c 2 x 2 + ... + c n x n
 a x + a x + ... + a x ≤ b
 11 1 12 2 1n n 1
(P)  a 21 x1 + a 22 x 2 + ... + a 2 n x n ≤ b2

.............................................
 a m1 x1 + a m2 x 2 + ... + a m n x n ≤ bm

 x1 ≥ 0 , x 2 ≥ 0 ,..., x n ≥ 0

( )
Sa notam cu X * = x1* , x *2 ,..., x *n combinatia de produse care aduce firmei
( )
beneficiul maxim: B * = max f = f X * = c1 x1* + c *2 + ... + c n x *n
Daca admitem ca singura posibilitate a firmei de a obtine beneficiul B* este
transformarea resurselor disponibile în produse conform programului X* si
vânzarea acestora, apare întrebarea: care este contributia fiecarei resurse în parte la
formarea acestui beneficiu?
Ramân valabile ipotezele de liniaritate care au condus la stabilirea
modelului matematic si anume:
- contributia unei resurse la beneficiul total al firmei este – pâna la o anumita
limita- direct proportionala cu cantitatea disponibila din resursa respectiva;
- nivelul contributiei unei resurse nu este conditionat de celelalte resurse, ci
numai de cantitatea în care ea este disponibila.
52
Notam cu u1* , u *2 ,...,u *m aportul unei unitati din resursa R1 , din resursa R2
s.a.m.d. la formarea beneficiului maxim B* . Dat fiind ipotezele de liniaritate, se
poate scrie:
B * = b1u1* + b2 u *2 + ... + bm u *m (1.58)
Producerea unei unitati din produsul P necesita a 1j unitati din resursa R1 ,
a 2j unitati din resursa R2 ,…, a mj unitati din resursa Rm . Partea din beneficiul B*
corespunzatoare acestor cantitati este
a1 j u1* + a 2 j u 2* + ... + a m ju *m (1.59)
Aceasta marime trebuie sa acopere pretul pe care firma îl încaseaza prin
vânzare, deoarece nu exista alte resurse de formare a beneficiului în afara
( )
transformarii resurselor în produse. Rezulta ca sistemul u * = u1* , u *2 ,...,u *m trebuie
sa satisfaca relatiile:
 a11u 1* + a 21u *2 + ... + a m1u *m ≥ c1

 a12u1* + a 22 u *2 + ... + a m2 u m* ≥ c 2
 (1.60)
............................................

 a1n u1 + a 2 n u 2 + ... + a m nu m ≥ c n
* * *

si de asemenea conditiile de nenegativitate.


Sistemul (1.60) este chiar sistemul de restrictii al problemei duale.
Conform teoremei ecarturilor suplimentare, resurselor utilizate în întregime le
corespund evaluari u i strict pozitive, iar resurselor excedentare le corespund
indicatori u i = 0. Un produs Pj va aparea în solutia optima a problemei primale (xj >0)
numai atunci când costul sau unitar de productie, obtinut prin evaluarea resurselor
consumate cu ajutorul indicatorilor ui , nu depaseste pretul unitar de productie cj , adica:
m
∑ a ij u i = c j
*
(1.61)
i =0
Prin urmare, pentru o problema de programare liniara scrisa sub forma
canonica, în care se cere maximizarea functiei obiectiv, marimea ui (solutie a
problemei duale) reprezinta valoarea ultimei unitati din resursa Ri utilizata în
productie. Având în vedere ca primala este o problema de maxim si duala ei este o
problema de minim, rezulta ca, în conditiile în care cantitatea disponibila din resursa
Ri creste cu o unitate, atunci valoarea functiei obiectiv creste cu valoarea u i.
Indicatorii u i sunt numiti în literatura de specialitate “preturi umbra”.
O alta interpretare pentru aceste preturi umbra poate fi urmatoarea: ele
reprezinta pretul pe care firma îl poate plati în plus, fata de costul de achizitie
initial, pentru cumpararea unei noi unitati din resursa Ri , astfel ca, prin
suplimentarea cantitatii disponibile de resursa, beneficiul total sa ramâna acelasi.
O resursa Ri care a fost utilizata în întregime se numeste resursa rara,
pentru ca lipsa sau neajunsul ei limiteaza productia. Ea este recunoscuta prin faptul
ca, în solutia optima, restrictia care-i corespunde este satisfacuta cu semnul
“=”,variabila de compensare este nula, iar pretul umbra corespunzator este nenul .
53
Exemplul 1.7 Fie problema de programare liniara rezolvata cu algoritmul simplex
primal în exemplul 1.2. Sa se interpreteze economic problema data utilizând solutia
optima a dualei sale.

Íntr-o sectie a unei întreprinderi electronice, la patru locuri de munca se


realizeaza trei tipuri de aparate. La fiecare loc de munca se poate lucra respectiv
2200, 1200, 2000 si 1600 ore/an. Ín tabelul de mai jos se indica duratele de
prelucrare, conform tehnologiei, pentru fiecare aparat (ore/buc.) si beneficiul
obtinut de întreprindere în urma comercializarii fiecarui aparat (u.m./buc.). Sa se
determine planul de productie care sa asigure beneficiul maxim si sa se interpreteze
economic problema data utilizând solutia optima a dualei sale.

j A1 A2 A3 tdi
i
1 2 2 1 2200
2 1 1 0 1200
3 1 1 1 2000
4 1 2 1 1600
bj 3 4 2
S-au notat x1, x2 , x3 cantitatile necunoscute ce trebuie realizate din fiecare
tip de aparat; modelul matematic al problemei este:
max f = 3 x1 + 4 x 2 + 2 x3
 2 x1 + 2 x 2 + x 3 ≤ 2200
 x + x ≤ 1200
 1 2

 1 x + x 2 + x3 ≤ 2000
 x1 + 2 x 2 + x 3 ≤ 1600
x j ≥ 0, j = 1, 2, 3
Prin introducerea necunoscutelor de compensare y1 , y 2 , y 3 si y4 , sistemul de
restrictii devine:
 2 x1 + 2 x 2 + x3 + y1 = 2200

 x1 + x 2 + y 2 = 1200

 x1 + x 2 + x 3 + y 3 = 2000
 x1 + 2 x 2 + x 3 + y 4 = 1600
Solutia optima a problemei primale este data de ultimul tabel simplex,
(tabelul 1.24) si este urmatoarea:
x1 = 600; x2 = 500; x3 = 0, deci planul de productie optim este obtinut
numai din primele doua tipuri de aparate: 600 buc. realizate din primul tip de
aparat si 500 buc. realizate din al doilea tip de aparat.
Beneficiul maxim ce revine întreprinderii la realizarea planului de
productie optim este de 3800 u.m.
54
Tabelul 1.24
cj → 0 0 0 0 3 4 2
VB cjVB VVB y1 y2 y3 y4 x1 x2 x3
x1 3 600 1 0 0 -1 1 0 0
y2 0 100 -1/2 1 0 0 0 0 -1/2
y3 0 900 -1/2 0 1 0 0 0 1/2
x2 4 500 -1/2 0 0 1 0 1 1/2
zj 3800 1 0 0 1 3 4 1/2
∆j = zj - cj 1 0 0 1 0 0 0

Variabilele de compensare sunt:


• y1 = 0, iar restrictia care-i corespunde (prima din sistemul de restrictii
adus la forma standard) este:
2 x1 + 2 x 2 + x 3 + y 1 = 2200 ⇔ 2 ⋅ 600 + 2 ⋅ 500 + 0 + 0 = 2200 ⇔ 2200 = 2200 ,
ceea ce înseamna ca resursa R1 (numarul de ore/an disponibil la primul loc de
munca) este o resursa rara.
Pretul umbra corespunzator acestei resurse este citit pe ultima linie a
tabelului 1.24, corespunzator variabilei y1 , adica u1* = 1 . El arata pretul pe care
firma îl poate plati în plus, fata de costul initial, pentru asigurarea suplimentarii cu
o unitate a numarului de ore disponibil pe an la primul loc de munca, beneficiul
total fiind acelasi.
• y2 = 0, iar restrictia care-i corespunde (a doua din sistemul de restrictii
adus la forma standard) este:
x1 + x 2 + y 2 = 1200 ⇔ 600 + 500 + 0 < 1200 , adica resursa R2 (numarul de ore/an
disponibil la al doilea loc de munca) nu este resursa rara, la cel de-al doilea loc de
munca ramânând disponibile 100 ore/an. Pretul umbra corespunzator se citeste pe
ultima linie a tabelului 1.24, corespunzator variabilei y2 , adica u *2 = 0 .
• y3 = 0, iar restrictia care-i corespunde (a treia din sistemul de restrictii
adus la forma standard) este:
x1 + x 2 + x 3 + y 3 = 2000 ⇔ 600 + 500 + 0 + 0 < 2000 , adica resursa R3 (numarul
de ore/an disponibil la al treilea loc de munca) nu este resursa rara, la cel de-al
treilea loc de munca ramânând disponibile 900 ore/an. Pretul umbra corespunzator
se citeste pe ultima linie a tabelului 1.24, corespunzator variabilei y3 , adica u *3 = 0 .
• y4 = 0, iar restrictia care-i corespunde (a patra din sistemul de restrictii
adus la forma standard) este:
x1 + 2 x 2 + x 3 + y 4 = 1600 ⇔ 600 + 2 ⋅ 500 + 0 + 0 = 1600 , ceea ce înseamna ca
resursa R4 (numarul de ore/an disponibil la locul patru de munca) este o resursa rara.
Pretul umbra corespunzator acestei resurse este citit pe ultima linie a
tabelului 1.24, corespunzator variabilei y4 , adica u 4* = 1 . El arata pretul pe care
firma îl poate plati în plus, fata de costul initial, pentru asigurarea suplimentarii cu

55
o unitate a numarului de ore disponibil pe an la primul loc de munca, beneficiul
total fiind acelasi.
Faptul ca numai doua dintre cele patru resurse sunt resurse rare duce la
concluzia ca se poate realiza acelasi plan optim de productie, obtinându-se acelasi
beneficiu maxim, daca ar fi disponibile numai urmatoarele cantitati de resurse:
1100 ore/an, în loc de 1200 ore/an la al doilea loc de munca si 1100 ore/an în loc
de 2000 ore/an la al treilea loc de munca, restul datelor ramânând neschimbate.

Probleme propuse s pre rezolvare

P1.19 O firma fabrica doua produse P1 si P2 .


În fiecare zi trebuie sa se produca un numar total de cel putin cinci
produse. Consumurile specifice, cantitatile disponibile si costurile de productie
pentru fiecare produs sunt date în tabelu l 1.25
Tabelul 1.25
Resurse Produse Disponibil
P1 P2
R1 = material [kg] 1 3 12
R2 = prelucrare pe masina [ore] 1 - 10
R3 = prelucrare manuala [ore] - 1 3
Cost unitar [u.m.] 3 2
Se cer:
1. Planul optim de productie astfel încât costul total sa fie minim.
2. Problema duala.
3. Interpretarea rezultatelor: variabilele de decizie, variabilele duale
(preturi umbra), variabilele de compensare, din solutia optima.
P 1.20 O companie produce doua tipuri de televizoare, T1 si T2 .
Exista doua linii de fabricatie, L1 si L2 , câte una pentru fiecare tip de televizor.
Capacitatea primei linii este de 30 de televizoare pe zi, iar a celei de-a doua
linii de 25 de televizoare pe zi.
Pentru asamblare se folosesc muncitori care lucreaza la ambele tipuri de
televizoare: pentru T1 este necesara o ora, iar pentru T2 sunt necesare doua ore.
Sunt disponibile cel mult 70 de ore de asamblare pe zi. Contributia fiecarui tip de
televizor la profitul companiei este de 2 u.m. la tipul T1 si 3 u.m. la tipul T2 .
Se cere:
1. Sa se rezolve simultan problema primala si problema duala. Care sunt
solutiile optime ale celor doua probleme si profitul maxim?
2. Managerul companiei doreste sa mareasca cantitatea disponibila la una
dintre cele trei resurse: capacitatea L1 , capacitatea L2 , numarul de ore de asamblare.
Pe care este indicat s-o mareasca si de ce?
3. Se decide introducerea în fabricatie a unui nou produs, televizorul de tip T3 ,
fie pe prima linie de fabricatie, fie pe a doua. Care linie de fabricatie trebuie folosita?

56
Care este planul optim de productie daca pentru tipul T3 profitul este de 4 u.m. si se
folosesc trei ore de asamblare pentru fiecare televizor tip T3?
4. Dar daca se va obtine un contract zilnic de doua televizoare de tip T3 ,
care va fi planul optim de productie si profitul maxim? Care va fi decizia
managerului? Accepta contractul sau nu?

P 1.21 O firma produce un amestec de seminte de mei si floarea soarelui


pentru hrana pasarilor. Continutul nutritional al amestecului este dat în tabelul 1.26.

Tabelu l 1.26
Continut Componentele amestecului Necesar
Mei Floarea-soarelui
Grasimi 0,2 0,3 24
Proteine 0,6 0,5 60
Substante nedigerabile 0,2 0,3 30
Costul unitar [u.m] 9 5

Amestecul trebuie sa contina cel putin 24 unitati grasimi, cel putin 60


unitati proteine si cel mult 30 unitati substante nedigerabile.
Se cere:
1. Sa se determine câte kilograme de mei si câte kilograme de floarea-
soarelui trebuie sa contina amestecul pentru a minimiza costul total.
2. Sa se scrie modelul problemei duale si sa se afle preturile umbra,
interpretând valorile optime ale variabilelor duale.

P 1.22 O unitate economica fabrica trei produse, P1 , P2 , P3 , utilizând trei


resurse: forta de munca, mijloace de munca si materii prime.
Consumurile specifice, cantitatile disponibile din fiecare resursa si preturile
de vânzare ale produselor sunt date în tabelul 1.27.

Tabelul 1.27
Resurse Produse Disponibil
P1 P2 P3
R1 = forta de munca 1 3 4 15
R2 = mijloace de munca 2 5 1 10
R3 = materii prime 4 1 2 25
Pret de vânzare [u.m.] 3 2 6

Se cere:
1. Sa se determine planul optim de productie având drept criteriu de
eficienta valoarea maxima a productiei.
2. Sa se scrie modelul problemei duale.
3. Interpretarea rezultatelor: variabilele de decizie, variabilele duale
(preturi umbra), variabilele de compensare, din solutia optima.
57
1.7 Reoptimizarea în programarea liniara

O problema de programare liniara contine, pe lânga variabilele de decizie


care trebuie aflate, o serie de marimi constante, presupuse cunoscute: coeficientii
tehnologici a ij , disponibilul/necesarul de resurse bi , componentele vectorului
costurilor cj . Eficienta practica a solutiei optime gasite depinde, evident, de precizia
cu care s-a determinat nivelul acestor componente. Pe de alta parte, în situatiile
concrete, deseori apar modificari frecvente ale conditiilor în care se desfasoara
activitatile economice, ceea ce a impus necesitatea elaborarii unor modele
matematice care sa tina seama de caracterul dinamic al fenomenelor economice.
Reoptimizarea unei probleme de programare liniara consta în recalcularea
solutiei optime în cazul în care se modifica o parte dintre conditiile initiale.
Astfel, componentele vectorului termenilor liberi se pot modifica fata de
nivelul lor prestabilit ca urmare a schimbarii capacitatii mijloacelor de munca, a
disponibilului de forta de munca, materii prime, materiale.
Schimbarea tehnologiei de fabricatie are efecte directe asupra costurilor de
productie si asupra consumurilor specifice de resurse.
Daca în perioada de plan se asimileaza un nou produs, în modelul de
programare liniara trebuie introdusa o noua variabila de decizie, iar înlocuirea unei
surse de energie cu alta, a unui material cu altul etc. presupune includerea în model
a unor restrictii suplimentare.
În astfel de situatii, se pune problema daca solutia optima obtinuta pe baza
conditiilor initiale mai ramâne optima si dupa modificarea acestora. Este necesar ca
solutia optima sa fie verificata în noile conditii, iar daca nu mai este optima, atunci
se pune problema de a gasi metode de reoptimizare a solutiei, metode care sa
utilizeze rezultatele anterioare, pentru a reduce astfel volumul de munca necesar.
Asadar, în vederea reoptimizarii unei probleme de programare liniara este
necesar sa se parcurga urmatoarele etape:
1. Verificarea optimalitatii solutiei în conditiile shimbarii datelor initiale.
2. Determinarea solutiei optime a problemei modificate, daca solutia nu
mai este optima.
În continuare se vor trata câteva cazuri de reoptimizare, pe baza formei
standard a unei probleme de programare liniara.
Modificarea vectorului termenilor liberi, b → b ' .

Deoarece matricea coeficientilor tehnologici ramâne aceeasi, baza


problemei initiale ramâne baza si în problema modificata.
Solutia de baza este: X B' = B −1 ⋅ b ' iar ∆' j = c B' ⋅ B −1 ⋅ a j − c 'J = ∆ j .
Noua solutie ar putea sa nu aiba toate componentele pozitive (dupa cum
sunt componentele noului vector b ' , dar sigur toti ∆ j ramân pozitivi, fiind aceiasi
cu cei ai solutiei optime initiale.
Pot apare doua cazuri:

58
a. Daca X B' ≥ 0 , ea este solutie optima a problemei modificate;
b. Daca X B' are cel putin o componenta negativa, pentru a gasi solutia
optima a problemei modificate se aplica algoritmul simplex dual.

Modificarea vectorului costurilor c → c ' .

Deoarece matricea A si vectorul b ramân aceleasi, avem acelasi sistem de


restrictii si deci aceeasi multime de solutii admisibile. Solutia optima a problemei
initiale, fiind solutie de baza admisibila a sistemului de restrictii, va fi solutie
admisibila de baza si în problema modificata. Dispunem deci de o solutie
admisibila de baza si se poate aplica algoritmul simplex primal direct de la ultimul
tabel al problemei initiale, în care se înlocuieste vectorul costurilor c cu vectorul
modificat c ' si se recalculeaza ∆ j , obtinându-se o noua valoare ∆' j .
a. Daca criteriul de optim este îndeplinit (toti ∆' j ≤ 0 , pentru o problema
de minim si toti ∆' j ≥ 0 , pentru o problema de maxim) înseamna ca noua solutie va
fi solutie optima.
b. Daca criteriul de optim nu este îndeplinit, se continua optimizarea ei,
utilizând algoritmul simplex.

Modificarea coeficientilor unei variabile x j


Efectul este modificarea coloanei a j → a 'j din matricea A si/sau a
coeficientului c j → c 'j din functia obiectiv. Exista doua posibilitati:
1. Coloana aj nu face parte din baza B a problemei initiale. În acest caz
baza B a problemei initiale ramâne baza si în problema modificata, solutia
corespunzatoare este aceeasi: X B = B −1 ⋅ b si tabelul simplex este cel
corespunzator problemei initiale în care se modifica doar coloana variabilei xj :
c j → c 'j , B −1 ⋅ a j → B −1 ⋅ a 'j , ∆ j → ∆' j = c B ⋅ B −1 ⋅ a 'j − c 'j
Sunt posibile doua cazuri:
- Daca criteriul de optim este îndeplinit (toti ∆' j ≤ 0 , pentru o problema
de minim si toti ∆' j ≥ 0 , pentru o problema de maxim), solutia optima a problemei
initiale ramâne solutie optima si în problema modificata.
- Daca criteriul de optim nu este îndeplinit, se continua rezolvarea
problemei cu algoritmul simplex.
2. Coloana a j face parte din baza B. În acest caz fosta baza nu mai exista în
maticea A a problemei modificate. Se aplica urmatorul procedeu:

59
a. În problema modificata adusa la forma canonica se scriu toti termenii cu
variabila xj ca o suma de doi termeni, unul având drept coeficient pe cel initial, iar
celalalt diferenta dintre noul coeficient si cel initial:
( ) ( )
c 'j ⋅ x j = c j ⋅ x j + c 'j − c j ⋅ x j ; a ij' ⋅ x j = a ij ⋅ x j + a ij' − a ij ⋅ x j
( ) ( )
b. În toti termenii de forma c 'j − c j ⋅ x j si a ij' − aij ⋅ x j se înlocuieste
variabila xj cu o noua variabila y si se adauga la sistemul de restrictii restrictia xj =
y, obtinându-se o problema echivalenta.
c. Pentru noua problema se cauta o solutie de baza admisibila cu care se
continua algoritmul simplex.

Adaugarea unei restrictii

În problema modificata se va adauga o linie la matricea A si un element la


vectorul b. Se verifica daca solutia optima a problemei initiale verifica noua
restrictie. Daca o verifica ea este solutie optima si a problemei modificate. Daca nu
o verifica, se va cauta în continuare solutia optima.
Din ultimul tabel simplex al problemei initiale, putem scrie:
X B + B −1 ⋅ S ⋅ X S = B −1 ⋅ b = X B
de unde se scot variabilele principale în functie de cele secundare, se înlocuiesc în
noua restrictie si se face ca termenul liber obtinut sa fie pozitiv (eventual prin
înmultirea restrictiei cu -1). Se adauga restrictia sub forma obtinuta la sistemul de
restrictii initial, scris sub forma corespunzatoare ultimului tabel simplex.
Sunt posibile trei cazuri:
1. Daca restrictia nou introdusa este de tipul "≤" , se introduce variabila de
compensare s cu coeficient +1. Se va forma o matrice unitate din coloanele
corespunzatoare variabilelor principale initiale si coloana variabilei s. Tabelul
simplex corespunzator va fi tabelul problemei initiale la care se adauga o linie si o
coloana în plus. Coloana va fi un vectorul unitar corespunzator lui s, iar pe linie
coeficientii cs vor fi: egali cu zero în coloana coeficientilor functiei obiectiv
corespunzatori variabilelor din baza, s în coloana variabilelor bazei, bm+1 în coloana
solutiei de baza, coeficientii noii restrictii (adusa la ultima forma) în interiorul
tabelului si 1 în dreptul noii variabile s.
Solutia gasita are toate componentele pozitive si toti ∆ j pozitivi, deci este
solutia optima cautata.
2. Daca restrictia este de tipul "≥" , variabila de compensare se introduce
cu coeficienrul -1 si solutia corespunzatoare este doar dual admisibila.
Se va cauta solutia optima cu ajutorul algoritmului simplex dual.
3. Daca restrictia este de tipul “=”, se introduce variabila artificiala a, cu
c a = −M , se construieste tabelul asociat (ca în cazul 1) si se obtine o solutie
admisibila cu ∆ j depinzând de M.
Se continua algoritmul simplex primal pâna la gasirea solutiei optime.

60
Exemplul 1.8 O întreprindere dispune de doua resurse R1 si R2 în
cantitatile b 1 = 40 unitati si b 2 = 60 unitati. Din aceste resurse se fabrica doua
produse, P1 si P2 care aduc întreprinderii beneficiile unitare c1 = 10 unitati
monetare, respectiv c2 = 15 unitati monetare. Coeficientii de consum specific sunt
dati în tabelul de mai jos:

Produse P1 P2
Resurse
R1 2 4
R2 6 2

Se cere:
a) Ce cantitati va fabrica din fiecare produs în asa fel încât beneficiul
rezultat sa fie maxim?
b) Cum se modifica planul de productie daca, datorita schimbarii
tehnologiei de fabricatie, beneficiile unitare se modifica la c1' = 20 u.m, iar
c 2' = 5 u.m?
c) Cum se modifica planul de productie daca, din cauza unor
nesincronozari în asigurarea resurselor necesare, cantitatile în care acestea sunt
disponibile se modifica la b1' = 50 unitati, iar b2' = 20 unitati?
Notam x1 si x 2 cantitatile necunoscute ce trebuie fabricate din fiecare produs.
a) Modelul matematic al problemei este:
max f (x ) = 10 x1 + 15 x 2
 2 x1 + 4 x2 ≤ 40

 6 x1 + 2 x2 ≤ 60
x1 ≥ 0 , x 2 ≥ 0
Modelul matematic al problemei în forma standard este:
 max f (x ) = 10 x1 + 15 x 2 + 0 ⋅ y 1 + 0 ⋅ y 2

 2 x1 + 4 x 2 + y1 + 0 ⋅ y 2 = 40

 6 x1 + 2 x 2 + 0 ⋅ y1 + y 2 = 60
 x1 ≥ 0 ; x 2 ≥ 0 ; y 1 ≥ 0 ; y 2 ≥ 0 .
Se construieste primul tabel simplex:
Tabelul 1.28
cj → 0 0 10 15 VVB
VB cjVB VVB y1 y2 x1 x2 aij ( p )
y1 0 40 1 0 2 4 10
y2 0 60 0 1 6 2 30
zj 0 0 0 0 0
∆j = zj - cj 0 0 -10 -15

61
Al doilea tabel simplex:
Tabelul 1. 29
cj → 0 0 10 15 VVB
VB cjVB VVB y1 y2 x1 x2 aij ( p )
x2 15 10 1/4 0 1/2 1 20
y2 0 40 -1/2 1 5 0 8
zj 150 15/4 0 15/2 15
∆j = zj - cj 15/4 0 -5/2 0

Al treilea tabel simplex este:


Tabelul 1.30
cj → 0 0 10 15
VB cjVB VVB y1 y2 x1 x2
x2 15 6 3/10 -1/10 0 1
x1 10 8 -1/10 1/5 1 0
zj 170 7/2 1 10 15
∆j = zj - cj 7/2 1 0 0

Solutia optima a problemei este: x1 = 8 unitati, x2 = 6 unitati, iar beneficiul


maxim obtinut este de 170 u.m.
b) Modificarea valorilor componentelor vectorului costurilor nu afecteaza
solutia optima a ultimului tabel simplex, ci doar valoarea functiei obiectiv zj si
linia criteriului de optim, ∆j = zj - cj . Cu noile valori ale coeficientilor cj se
construieste primul tabel simplex al problemei modificate (tabelul 1.31):
Tabelul 1.31
cj → 0 0 20 5 VVB
VB cjVB VVB y1 y2 x1 x2 aij ( p )
x2 5 6 3/10 -1/10 0 1 20
x1 20 8 -1/10 1/5 1 0 -
zj 190 -1/2 35/10 20 5
∆j = zj - cj -1/2 35/10 0 0

Solutia obtinuta nu este solutie optima, algoritmul simplex continua.


Tabelul 1.32
cj → 0 0 20 5
VB cjVB VVB y 1 y 2 x1 x2
y1 0 20 1 -1/3 0 10/3
x1 20 10 0 1/6 1 1/3
zj 200 0 10/3 20 20/3
∆j = zj - cj 0 10/3 0 5/3
Solutia optima a problemei modificate este: x1 = 20 unitati; x2 = 0, cu un
beneficiu total de 200 u.m.

62
 50 
c) Se modifica vectorul resurselor care devine: b ' =   si se afla solutia
 20 
de baza a problemei modificate: X B' = B −1 ⋅ b ' , unde B −1 este matricea inversa a
bazei optime a problemei initiale si se gaseste în tabelul simplex final al problemei
initiale, fiind formata din coeficientii aij ai variabilelor y1 si y2 , care formeaza baza
initiala (matricea marcata în tabelul 1.30):
 3 −1
 
X B =  10
' 5  ⋅  50  =  13 
 − 1 1   20   − 1
 
 10 5 
Se reface tabelul simplex optim introducand acest vector în coloana
corespunzatoare valorii variabilelor bazei. Deoarece are o componenta negativa,
solutia optima se va afla folosind algoritmul simplex dual.

Tabelul 1.33
cj → 0 0 10 15
VB cjVB VVB y1 y2 x1 x2
x2 15 13 3/10 -1/10 0 1
x1 10 -1 -1/10 1/5 1 0
zj 170 7/2 1 10 15
∆j = zj - cj 7/2 1 0 0

Tabelul 1.34
cj → 0 0 10 15
VB cjVB VVB y1 y2 x1 x2
x2 15 10 0 1 3 1
y1 0 10 1 -2 -10 0
zj 170 0 15 30 15
∆j = zj - cj 0 15 20 0

Solutia optima a problemei modificate este: x1 = 0; x2 = 10 unitati si un beneficiu


total de 170 u.m.

Probleme propuse
max f (x ) = 3 x1 − x 2 + 2 x 3
 x1 + x 2 ≤ 4

P 1.23 Pentru problema :  x 2 + x 3 ≥ 3 sa se gaseasca solutia
x + 2 ≤ 5
 2 3
x1 , x 2 , x 3 ≥ 0
optima daca functia obiectiv se modifica la forma: max f (x ) = x1 + 3 x 2 − 2 x3

63
max f ( x ) = −4 x1 − x 2 + 2 x 3
 4 x1 + 2 x 2 − x3 ≤ 17

P 1.24 Pentru problema:  2 x1 + x 2 + 5 x 3 ≥ 14 sa se afle solutia
 x − 5 x − 3 x ≥ −15
 1 2 3
x1 , x 2 , x 3 ≥ 0
optima daca vectorul resurselor se modifica în problema la forma standard si
devine: b ' = (2, 5, 6 )T .

P 1.25 Pentru elaborarea programului de dezvoltare a unei centrale


industriale se pune problema stabilirii variantei optime de dotare cu mijloace de
munca achizitionate din import. În tabelul 1.35 sunt sintetizate informatii cu privire
la capacitatea de productie, consumul de materii prime de tipul M1 fabricate în tara
si de tipul M2 importate, precum si preturile unitare de achizitie a trei tipuri de
utilaje. Toate cele trei tipuri de utilaje se folosesc la fabricarea aceluiasi produs.

Tabelul 1.35
Indicatori Tip de utilaj
1 2 3
Capacitatea anuala de productie a unui utilaj [unitati] 3 4 5
Consumul anual de materii prime M1 pe un utilaj [unitati] 3 6 5
Consumul anual de materii prime M2 pe un utilaj [unitati] 2 1 3
Pretul de achizitie a unui utilaj [u.m.] 10 7 9

Analizând evolutia cererii pentru produsul ce urmeaza a fi fabricat pe


aceste utilaje, s-a ajuns la concluzia ca volumul productiei trebuie sa atinga un
nivel anual de cel putin 700 de unitati.
Având în vedere ca disponibilul de materii prime din tara si din import este
de 500 unitati si respectiv 300 de unitati, sa se afle care este solutia optima daca
vectorul resurselor se modifica devenind b ' = (700 , 800 , 500 )T .
Se modifica solutia optima a problemei initiale daca vectorul costurilor
devine c ' = (10, 9, 9 ) ?

max f (x ) = 3 x1 + 4 x 2 − 2 x 3
10 x1 + 7 x 2 − x 3 ≥ 36

P 1.26 Pentru problema :  x1 + x 2 ≤ 5 sa se gaseasca solutia
x + x − x ≤ 3
 1 2 3
x1 , x 2 , x 3 ≥ 0

optima daca functia obiectiv se modifica la forma: max f (x ) = x1 + 3 x 2 − 2 x 3 .

64
1.8 Problema clasica de transport
O problema de transport consta în determinarea unui plan de transport
pentru un produs omogen, de la anumite centre producatoare, în scopul satisfacerii
cerintelor unor consumatori si minimizarii cheltuielilor de transport.
Se considera ca exista un numar Di de furnizori (depozite) care poseda
produsul respectiv în cantitati egale cu d i , i = 1, 2,…, m si n centre beneficiare Bj ,
j = 1, 2, …, n, care solicita acest produs în cantitatile necesare, b j .
Se presupune ca o unitate de produs transportata de la depozitul Di la
beneficiarul Bj costa cij unitati banesti.
Se cere sa se determine planul optim de transport, adica ce cantitati xij de
produs trebuie sa fie transportate de la fiecare depozit la fie care beneficiar, astfel
încât sa fie respectate conditiile:
- sa fie satisfacuta în cea mai mare masura cererea de produse în centrele
beneficiare;
- cheltuielile totale de transport sa fie minime.
Datele initiale ale unei probleme de transport se prezinta într-un tabel de
forma tabelului 1.36.
Tabelul 1.36
Bj B1 B2 … Bj … Bn Disponibil, d i
Di
D1 c11 c12 … c1j … c1n d1
x11 x12 x1j x1n
D2 c21 c22 … c2j … c2n d2
x21 x22 x2j x2n
M M M M M M M M
Di ci1 ci2 … cij … cin di
xi1 xi2 xij xin
M M M M M M M M
Dm cm1 cm2 … cmj … cmn dm
xm1 xm2 xmj xmn
Necesar, b j b1 b2 … bj … bn

Modelul matematic al acestei probleme de transport este urmatorul:


min f (x ) = ∑ ∑ c ij x ij
m n

i=1 j =1

n
 ∑ x ij ≤ d i , i = 1, m
 j =1
m (1.62)
 ∑ x ≥ b , j = 1, n
 i=1 ij j

x ij ≥ 0, i = 1, m , j = 1, n

65
Modelul (1.62) este modelul unei probleme de programare liniara, la care
se mai poate adauga conditia de nenegativitate pentru d i , b j , cij , i = 1, m , j = 1, n .
Definitia 1. Problema de transport se numeste echilibrata daca:
m n
∑ di = ∑ b j (1.63)
i =1 j =1
În caz contrar, problema se numeste neechilibrata.
Orice problema de transport neechilibrata se poate transforma într-o
problema echilibrata astfel:
n m
a. daca ∑ b j < ∑ d i , se introduce un beneficiar fictiv Bn+1 , pentru care
j= 1 i =1
m n
necesarul va fi: bn +1 = ∑ d i − ∑ b j , iar costurile unitare de transport
i =1 j =1

ci ,n+1 , i = 1, m vor fi egale cu zero;


n m
b. daca ∑ b j > ∑ d i , se introduce un depozit fictiv Dm+1 , pentru care
j= 1 i =1
n m
disponibilul va fi: d m+1 = ∑ b j − ∑ d i , iar costurile unitare de transport
j =1 i =1

cm +1, j , j = 1, n vor fi egale cu zero;


m n
Definitia 2. O problema de transport are forma standard daca ∑ d i = ∑ b j .
i =1 j =1
Modelul matematic al unei probleme de transport în forma standard este:
min f (x ) = ∑ ∑ c ij x ij
m n

i=1 j =1

n
 ∑ x ij = d i , i = 1, m
 j =1
m (1.64)
 ∑ x = b , j = 1, n
 i=1 ij j

x ij ≥ 0, i = 1, m , j = 1, n
Rezolvarea unei probleme de transport se face numai pentru forma
standard, adica numai pentru problema de transport echilibrata.
( )
Definitia 3. O matrice X = xij , i = 1, m, j = 1, n ale carei componente
satisfac sistemul de restrictii si conditiile de nenegativitate ale modelului matematic
(1.64) se numeste solutie admisibila a problemei de transport.
Daca, în plus, matricea X minimizeaza functia obiectiv a modelului
matematic (1.64) ea se numeste solutie optima sau plan de transport optim pentru
problema data.

66
Se demonstreaza ca o problema de transport echilibrata admite cel putin o
solutie admisibila si ca rangul matricei C a coeficientilor necunoscutelor din
sistemul de restrictii al modelului matematic (1.64) este: rang C = m + n -1. Acest
lucru înseamna ca exista m + n -1 vectori coloana liniari independenti ce vor forma
o baza a spatiului Rm+n+1 . Prin urmare va existe cel putin o solutie admisibila de
baza, cu cel mult m + n -1 componente pozitive. Daca solutia admisibila de baza
are exact m + n -1 componente pozitive, ea se numeste solutie admisibila de baza
nedegenerata. Daca solutia admisibila de baza are mai putin de m + n -1
componente pozitive, ea se numeste solutie admisibila de baza degenerata.
Definitia 4. O problema de transport se numeste degenerata daca ea admite
o solutie admisibila de baza degenerata.

Desi sunt îndeplinite toate conditiile care permit aplicarea algoritmului


simplex pentru rezolvarea problemei de transport, exista un algoritm de rezolvare
specific, mult mai usor de aplicat. Acest algoritm presupune doua etape:
Etapa I. Determinarea unei solutii admisibile de baza.
Etapa a II-a. Îmbunatatirea solutiei de baza în pasi succesivi, pâna la
aflarea solutiei optime.

Metode pentru determinarea unei solutii admisibile de baza

Deoarece fiecare variabila corespunde unei rute (este cantitatea de produs


transportata pe aceasta ruta), iar fiecare ruta corespunde unei perechi furnizor-
beneficiar, vom identifica fiecare variabila xij cu ruta (i, j).
A gasi o solutie de baza nedegenerata înseamna a gasi cel mult m + n – 1
rute, din cele m?n posibile, pe care sa transportam cantitatea disponibila. Rutele vor
fi organizate într-un tabel asemanator celui în care se prezinta datele problemei de
transport, fiecarei rute asociindu-se o casuta (i, j):
ruta (i, j)

Bj B1 B2 … Bj … Bn Disponibil, d i
Di
D1 d1
D2 d2
M M
Di di
M M
Dm dm
Necesar, b j b1 b2 … bj … bn

În cazul problemei de transport, gasirea unei solutii initiale de baza nu este


dificila, existând o multime de metode în acest scop, care încearca nu numai aflarea
acesteia, ci chiar gasirea uneia cât mai buna.

67
Pentru determinarea unei solutii admisibile de baza pentru o problema de
transport echilibrata, se folosesc, în principal, urmatoarele metode:
- metoda coltului Nord-Vest;
- metoda elementului minim pe linie;
- metoda elementului minim pe coloana;
- metoda elementului minim în tabel;
- metoda diferentelor comparate.
În principiu, toate aceste metode urmeaza o schema comuna:
a. se alege o ruta initiala, dupa o anumita regula;
b. se transporta pe aceasta ruta maximul posibil, egal cu minimul dintre
cantitatea care mai este disponibila la furnizorul corespunzator acestei rute si
cantitatea care mai este necesara beneficiarului corespunzator rutei, în momentul
alegerii rutei respective;
c. dupa folosirea unei rute, fie se epuizeaza disponibilul furnizorului, fie se
asigura întregul necesar beneficiarului, fie ambele si anumite rute nu mai pot fi
folosite; ele se numesc rute blocate si se evidentiaza prin înscrierea unei liniute în
casuta corespunzatoare.
d. se alege urmatoarea ruta si se reia algoritmul de la pasul (b) pâna când
nu mai ramâne nici o ruta nefolosita sau neblocata.

1. Metoda coltului Nord-Vest

Se considera problema de transport echilibrata si se construieste tabelul cu


datele problemei: cantitatile disponibile d i , cantitatile necesare bj , costurile unitare
de transport cij , cu i = 1, 2,…, m si j = 1, 2, …, n.
Procedeul porneste cu determinarea necunoscutei aflate în casuta din coltul
stâga-sus (coltul Nord-Vest) a tabelului ca valoare minima între cantitatile
disponibila si necesara corespunzatoare: x11 = min (d1 , b 1).
Daca min (d1, b1 ) = d 1 , se anuleaza valorile necunoscutelor din toate
celelalte casute ale primei linii a tabelului (cantitatile nule se marcheaza cu o linie
orizontala) si se recalculeaza cantitatea necesara beneficiarului B1 : b1' = b1 − d1 .
Daca min (d1, b1 ) = b 1 , se anuleaza valorile necunoscutelor din toate
celelalte casute ale primei coloane a tabelului si se recalculeaza cantitatea ramasa
disponibila în depozitul D1 : d 1' = d 1 − b1 .
Se renunta la linia/coloana pentru care se completeaza cantitatea
disponibila/necesara.
Se continua procedeul cu alocarea unei valori casutei situate în coltul
Nord-Vest a tabelului ramas, tinând cont de cantitatile disponibile si necesare
recalculate, pâna la alocarea totala a cantitatilor d i si b j.
La epuizarea elementelor de comparat, se obtine o solutie admisibila de baza.

Exemplul 1.9 Se da problema de transport cu datele initiale prezentate în tabelul 1.37.


Se cere sa se afle o solutia admisibila de baza prin metoda coltului Nord-Vest.

68
Tabelul 1.37
Bj B1 B2 B3 B4 B5 di
Di
D1 90 120 140 80 60
120
D2 100 140 70 120 90
110
D3 60 160 130 140 100
70
bj 80 72 75 28 45

3 5
Problema este echilibrata: ∑ d i = ∑ b j = 300 .
i =1 j =1
Se da necunoscutei x11 (situata în coltul din stânga-sus) valoarea:
x11 = min (80, 120) = 80, restul necunoscutelor coloanei 1 fiind nule (cantitatea
necesara beneficiarului B1 a fost asigurata).
În depozitul D1 a mai ramas o cantitate disponibila egala cu:
d 1' = d 1 − x11 = 120 − 80 = 40 .
Se elimina coloana 1 din tabel. Se da necunoscutei x12 (prima din coltul
( )
stânga-sus) valoarea: x12 = min d1' , b2 = min (40, 72 ) = 40 , restul necunoscutelor
din prima linie a tabelului fiind nule (s-a epuizat cantitatea disponibila în depozitul
D1 ). Se recalculeaza cantitatea necesara beneficiarului B2 :
b2' = b2 − x12 = 72 − 40 = 32 .
Se elimina si linia 1 din tabel. Se da necunoscutei x22 (situata în coltul N-V
( )
al tabelului ramas) valoarea: x 22 = min b 2' , d 2 = min (32 , 110 ) = 32 , toate celelalte
necunoscute din a doua coloana a tabelului fiind nule (s-a epuizat si cantitatea
necesara beneficiarului B2 ). Cantitatea ramasa disponibila în depozitul D2
este:d 2' = d 2 − x 22 = 110 − 32 = 78 .
Se elimina si coloana 2 din tabel. Se da necunoscutei x23 (situata în coltul
( )
N-V al tabelului ramas) valoarea: x 23 = min b3 , d 2' = min (75, 88 ) = 75 , ultima
necunoscuta din coloana a treia fiind nula (s-a epuizat si cantitatea necesara
beneficiarului B3 ). Cantitatea ramasa disponibila în depozitul D2 este:
d 2" = d 2' − x 23 = 78 − 75 = 3 .
Se elimina si coloana 3 din tabel.
Se da necunoscutei x24 valoarea: x 24 = min d 2" , b4 = min (3, 28 ) = 3 , ( )
anulându-se si ultima necunoscuta de pe linia 2.
Cantitatatea necasara beneficiarului B4 se recalculeaza:
b4' = b4 − x 23 = 28 − 3 = 25 .

69
Se elimina si linia 2 din tabel. Se da necunoscutei x34 valoarea:
( )
x 34 = min b4' , d 3 = min (25, 70 ) = 25 . Cantitatea ramasa disponibila în depozitul D3
este: d 3' = d 3 − x 34 = 70 − 25 = 45 . A mai ramas de stabilit valoarea unei singure
( )
necunoscute: x 35 = min d 3' − b5 = d 3 − x34 = 70 − 25 = 45 .
Solutia obtinuta este prezentata în tabelul 1.38.

Tabelul 1.38
Bj B1 B2 B3 B4 B5 di
Di
D1 90 120 140 80 60
80 40 - - - 120
D2 100 140 70 120 90
- 32 75 3 - 110
D3 60 160 130 140 100
- - - 25 45 70
bj 80 72 75 28 45

S-a obtinut o solutie de baza admisibila cu sapte componente nenule:


x11 = 80; x12 = 40; x22 = 32; x23 = 75; x24 = 3; x34 = 25; x35 = 45; solutia este
nedegenerata deoarece are m + n -1 = 3 + 5 - 1 = 7 componente nenule.
Valoarea functiei obiectiv pentru aceasta solutie admisibila de baza este:
Z 0 = 80 ⋅ 90 + 40 ⋅ 120 + 32 ⋅140 + 75 ⋅ 70 + 3 ⋅ 120 + 25 ⋅ 140 + 45 ⋅ 100 = 29.090 u.m.

Observatie . Metoda coltului Nord-Vest opereaza numai cu valorile d i si b j , fara a


lua în consideratie costurile unitare cij. Este evident ca un cost total minim al
transportului se va obtine utilizând rutele cu costuri unitare mici. Pe aceasta
observatie se bazeaza metodele urmatoare de determinare a unei solutii admisibile
de baza pentru problema de transport.

2. Metoda elementului minim pe linie

Metoda elementului minim pe linie (costului minim pe linie) consta în


alegerea, pentru fiecare dintre liniile tabelului initial al problemei de transport, a
celui mai mic cost unitar.
Se da variabilei corespunzatoare acestei pozitii valoarea cea mai mica între
cantitatea disponibila si cea necesara de pe linia si coloana aferente.
Se începe cu prima linie de sus a tabelului: se alege c1k = min cij si apoi
j
x1k = min (d 1 , b k ) .
Se recalculeaza cantitatile disponibile si necesare: d 1' = d 1 − x1k
si bk' = b k − x1k .

70
Daca a fost alocata întreaga cantitate disponibila pe prima linie, se suprima
linia 1 sau coloana k careia îi corespunde diferenta nula (variabilele de pe linia sau
coloana suprimata devin egale cu zero), apoi se trece la a doua linie si pe rând la
urmatoarele, reluându-se procedeul.
Daca nu a fost alocata întreaga cantiate disponibila pe prima linie, se cauta
urmatorul element minim din aceasta linie, dând variabilei corespunzatoare
valoarea egala cu diferenta de cantitate, pâna la epuizarea întregii cantitati
disponibile în depozitul D1 .

Exemplul 1.10 Pentru problema de transport data în tabelul 1.37, se aplica metoda
elementului minim pe linie pentru aflarea unei solutii admisibile de baza.
Solutia obtinuta este prezentata în tabelul 1.39.
Pe prima linie a tabelului initial costul unitar cel mai mic este c15 = 60. Se
da variabilei x15 valoarea: x15 = min (d 1 , b5 ) = min (120 , 45 ) = 45 .Beneficiarului B5 i
s-a satisfacut cererea, restul necunoscutelor de pe coloana 5 sunt nule, iar coloana 5
se suprima. Se recalculeaza cantitatea ramasa în depozitul D1 :
d 1' = d 1 − x15 = 120 − 45 = 75
În noul tabel, se continua procedeul alegând, tot de pe linia 1, costul unitar
minim pentru casutele ramase (deoarece cantitatea aflata în depozitul D1 nu a fost
epuizata). Acest cost unitar minim este c14 = min (90, 120,140 , 80 ) = 80 . Se da
( )
variabilei x14 valoarea: x14 = min d 1' , b4 = min (75, 28 ) = 28 , se anuleaza variabilele
de pe coloana 4 (cererea beneficiarului B4 a fost satisfacuta), se elimina si coloana
4 din tabel si se recalculeaza cantitatea ramasa în depozitul D1 :
d 1" = d 1' − x14 = 75 − 28 = 47 .
Aceata cantitate este valoarea ce se va da variabilei x11 , aflata pe pozitia
corespunzatoare celui mai mic cost unitar de pe linia 1, în tabelul ramas. Se
anuleaza restul variabilelor de pe linia 1 (a fost epuizata cantitatea disponibila în
depozitul D1 ), iar linia 1 se elimina. Se recalculeaza cantitatea necesara
beneficiarului B1 : b1' = b1 − x11 = 80 − 47 = 33 .
Se trece la linia a doua. Costul unitar cel mai mic este c23 = 70. Se da
variabilei x23 valoarea: x23 = min (d 2 , b 3 ) = min (110, 75) = 75. Cererea
beneficiarului B3 a fost satisfacuta, restul variabilelor de pe coloana 3 sunt nule. Se
recalc uleaza cantitatea ramasa în depozitul D2 : d 2' = d 2 − x 23 = 110 − 75 = 35 . Se
cauta urmatorul cost unitar minim de pe linia 2, care este c 21 = 100. Se da variabilei
( )
x21 valoarea: x 21 = min d 2' , b1' = min (35 , 33 ) = 33 . Variabila x31 = 0 (cererea
beneficiarului B1 a fost satisfacuta), coloana 1 se elimina. Se recalculeaza
cantitatea disponibila în depozitul D2 : d 2" = d 2' − x 21 = 35 − 33 = 2 .
Variabila x22 = 2 si întreaga cantitate disponibila în depozitul D2 a fost distribuita.

71
Se recalculeaza cantitatea necesara beneficiarului B2 : b2' = b2 − x 22 = 72 − 2 = 70 .
Se elimina linia 2 din tabel si se trece la linia 3 dând singurei variabile ramase,
( )
variabila x32 valoarea: x 23 = min d 3 , b 2' = b2' − x 22 = 70 .

Tabelul 1.39
Bj B1 B2 B3 B4 B5 di
Di
D1 90 120 140 80 60
47 - - 28 45 120
D2 100 140 70 120 90
33 2 75 - - 110
D3 60 160 130 140 100
- 70 - - - 70
bj 80 72 75 28 45

S-a obtinut o solutie admisibila de baza nedegenerata, valoarea functiei


obiectiv fiind:
Z 0 = 47 ⋅ 90 + 28 ⋅ 80 + 45 ⋅ 60 + 33 ⋅100 + 2 ⋅140 + 75 ⋅ 70 + 70 ⋅ 160 = 29 .200 u.m.

3. Metoda elementului minim pe coloana

Se procedeaza în mod similar metodei anterioare, cu deosebirea ca se


lucreaza pe coloanele tabelului initial al problemei de transport. Se începe cu prima
coloana din stânga. Se cauta c i1 = min c i1 si se da variabilei xi1 valoarea:
i
x i1 = min (d i , b1 ) . Se recalculeaza cantitatile disponibile si necesare de pe linia i si
coloana 1: a i' = d i − xi1 si b1' = b1 − x i1 .
Daca a fost alocata întreaga cantitate disponibila pe prima coloana, se
suprima coloana 1 sau linia i careia îi corespunde diferenta nula (variabilele de pe
linia sau coloana suprimata devin egale cu zero), apoi se trece la a doua coloana si
pe rând la urmatoarele, reluându-se procedeul.
Daca nu a fost alocata întreaga cantiate disponibila pe prima coloana, se
cauta urmatorul element minim din aceasta coloana, dând variabilei
corespunzatoare valoarea egala cu diferenta de cantitate, pâna la epuizarea întregii
cantitati necesare beneficiarului B1 .

Exemplul 1.11 Pentru problema de transport data în tabelul 1.37, se aplica metoda
elementului minim pe coloana pentru aflarea unei solutii admisibile de baza.
Se analizeaza prima coloana a tabelului (cea din stânga) si se alege costul
unitar minim, c31 = 60.
x 31 = min (d 3 , b1 ) = min (70, 80 ) = 70 , restul variabilelor fiind nule.

72
Se recalculeaza cantitatea necesara beneficiarului B1 :
b1' = b1 − x 31= 80 − 70 = 10 . Se aloca aceasta valoare variabilei pozitionate în casuta
cu urmatorul cost unitar minim de pe coloana 1: x11 = 10 . Variabila x21 = 0 (a fost
satisfacut necesarul beneficiarului B1 ) si coloana 1 se elimina din tabel. Se
recalculeaza cantitatea disponibila în depozitul D1 : d 1' = d 1 − x11 = 120 − 10 = 110 .
Se trece la a doua coloana a tabelului redus. Se cauta elementul minim,
care este c 12 = 120. Variabilei corespunzatoare, x12 , i se da valoarea:
( )
x12 = min d 1' , b2 = min (110 , 72 ) = 72 , restul variabilelor de pe coloana a doua fiind
nule (a fost satisfacut necesarul beneficiarului B2 ).
Se recalculeaza cantitatea ramasa în depozitul D1 : d 1" = d 11 − x12 = 110 − 72 = 38 .
Se trece la a treia coloana procedându-se analog. Solutia obtinuta este
prezentata în tabelul 1.40.
Tabelul 1.40
Bj B1 B2 B3 B4 B5 di
Di
D1 90 120 140 80 60
10 72 - 28 10 120
D2 100 140 70 120 90
- - 75 - 35 110
D3 60 160 130 140 100
70 - - - - 70
bj 80 72 75 28 45

Pentru aceasta solutie admisibila de baza, functia obiectiv are valoarea:


Z 0 = 10 ⋅ 90 + 72 ⋅120 + 28 ⋅ 80 + 10 ⋅ 60 + 75 ⋅ 70 + 35 ⋅ 90 + 70 ⋅ 60 = 24 .980 u.m.

4. Metoda elementului minim din tabel

Metoda consta în alegerea celui mai mic cost unitar din tabelul initial al
problemei de transport, variabilei corespunzatoare fiindu-i data o valoare egala cu
cea mai mica dintre cantitatile disponibila si necesara de pe linia si coloana acestui
cost unitar minim.
( ) (
Se alege c kp = min c ij si se ia x kp = min d k , b p .
1≤i≤ m
)
1≤ j ≤n
Se recalculeaza cantitatile disponibile si necesare si se suprima din tabel
linia sau coloana pe care aceste cantitati au fost completate.
În tabelul redus, se cauta din nou cel mai mic cost unitar, variabilei
respective dându-i-se o valoare egala cu cea mai mica dintre cantitatile disponibila
si necesara ramase.
Se repeta procedeul pâna când toate cererile sunt satisfacute.

73
Exemplul 1.12 Pentru problema de transport data în tabelul 1.37, se aplica metoda
elementului minim din tabel pentru aflarea unei solutii admisibile de baza. Solutia
obtinuta este prezentata în tabelul 1.41.
Tabelul 1.41
Bj B1 B2 B3 B4 B5 di
Di
D1 90 120 140 80 60
10 37 - 28 45 120
D2 100 140 70 120 90
- 35 75 - - 110
D3 60 160 130 140 100
70 - - - - 70
bj 80 72 75 28 45

Valoarea functiei obiectiv este:


Z 0 = 10 ⋅ 90 + 37 ⋅120 + 28 ⋅ 80 + 45 ⋅ 60 + 35 ⋅ 140 + 75 ⋅ 70 + 70 ⋅ 60 = 24.630 u.m.

5. Metoda diferentelor comparate

Metoda consta în introducerea unor penalitati în cazul în care nu se


foloseste casuta cu cel mai mic cost unitar cij . Aceste penalitati reprezinta diferenta
dintre cel mai mic element (cost unitar) dintr-o linie sau coloana si urmatorul
element ca valoare, din linia sau coloana respectiva. Pentru diferenta cea mai mare,
de pe o linie sau de pe o coloana, se aloca variabilei corespunzatoare celui mai mic
cost unitar, din acea linie sau coloana, o valoare egala cu valoarea minima dintre
cantitatile disponibila si necesara. Se suprima linia sau coloana pe care nu se mai
poate interveni si se repeta procedeul în tabelul redus.

Exemplul 1.13 Pentru problema de transport data în tabelul 1.37, se aplica metoda
diferentelor comparate pentru aflarea unei solutii admisibile de baza.

Tabelul initial al problemei de transport se completeaza cu o linie în partea


de jos si cu o coloana în dreapta, în care se vor calcula penalitatile (tabelul 1.42).
Diferenta cea mai mare între costul unitar minim si urmatorul cost unitar,
ca valoare, este corespunzatoare coloanei 3 si este egala cu 60 (c33 – c23 = 60).
În coloana 3 se cauta elementul minim, care este c23 si se da variabilei x23
valoarea: x 23 = min (d 2 , b 3 ) = min (110, 75 ) = 75 . Restul variabilelor de pe coloana 3
sunt nule, iar coloana 3 se suprima.
Cantitatea disponibila în depozitul D2 se recalculeaza:
d 2' = d 2 − x 23 = 110 − 75 = 35 .
Se repeta procedeul în tabelul redus (tab.1.43), format prin eliminarea
coloanei B3 . Diferenta cea mai mare între costul unitar minim si urmatorul cost
unitar, ca valoare, este corespunzatoare atât liniei 3 cât si coloanei 4.

74
Se alege una dintre ele, de exemplu, cea corespunzatoare liniei 3.
Cel mai mic cost unitar de pe linia 3 este c31 . Se da variabilei x31 valoarea:
x 31 = min (d 3 , b1 ) = min (70, 80 ) = 70 .
Toate celelalte variabile de pe linia 3 sunt egale cu zero, deoarece a fost
epuizata întreaga cantitate disponibila în depozitul D3 .
Se elimina linia 3 si se recalculeaza necesarul beneficiarului B1 :
b1' = b1 − x 31 = 80 − 70 = 10 .
Se repeta procedeul, obtinându-se, succesiv, tabelele 1.44, 1.45, 1.46, 1.47.
Solutia finala este prezentata în tabelul 1.48.

Tabelul 1.43
Bj B1 B2 B4 B5 di Pen.
Di
D1 90 120 80 60 20
120
D2 100 140 120 90 10
35
D3 60 160 140 100 40
70 - - - 70
bj 80 72 28 45
Pen. 30 20 40 30

Tabelul 1.44
Bj B1 B2 B4 B5 di Pen.
Di
D1 90 120 80 60 20
28 120
D2 100 140 120 90 10
- 35
bj 10 72 28 45
Pen. 10 20 40 30

Tabelul 1.45
Bj B1 B2 B5 di Pen.
Di
D1 90 120 60 30
45 92
D2 100 140 90 10
- 35
bj 10 72 45
Pen. 10 20 30

75
Tabelul 1.46 Tabelul 1.47
Bj B1 B2 di Pen. Bj B2 di
Di Di
D1 90 120 30 D1 120
- 47 47 47
D2 100 140 40 D2 140
10 35 25 25
bj 10 72 bj 72
Pen. 10 20 Pen. 20

Tabelul 1.48
Bj B1 B2 B3 B4 B5 di
Di
D1 90 120 140 80 60
- 47 - 28 45 120
D2 100 140 70 120 90
10 25 75 - - 110
D3 60 160 130 140 100
70 - - - - 70
bj 80 72 75 28 45

Valoarea functiei obiectiv pentru aceasta solutie admisibila de baza este:


Z 0 = 47 ⋅120 + 28 ⋅ 80 + 45 ⋅ 60 + 10 ⋅ 100 + 25 ⋅140 + 75 ⋅ 70 + 70 ⋅ 60 = 24 .450 u.m.

Comparând valorile functiei obiectiv, pentru cele cinci metode utilizate, se


constata ca valoarea minima este obtinuta în cazul aplicarii metodei diferentelor
comparate, iar valoarea maxima în cazul metodei elementului minim pe linie.
În general, nu se poate concluziona care dintre metode este recomandabil a
fi folosita, alegerea fiind influentata de datele initiale ale problemei de utilizat.

Metoda potentialelor pentru determinarea solutiei optime

Fie problema de transport în forma standard:


min f (x ) = ∑ ∑ c ij x ij (1)
m n

i=1 j =1

n
 ∑ x ij = d i , i = 1, m (2 a )
 j =1
m (1.65)
 ∑ x = b , j = 1, n (2b )
 i=1 ij j

x ij ≥ 0, i = 1, m , j = 1, n (3 )

76
Se scrie duala acestei probleme astfel: fiecarei restrictii de tipul (2a) i se
asociaza o variabila u i , i = 1, m si fiecarei restrictii de tipul (2b) variabila
v j , j = 1, n . Cum fiecare variabila apare o singura data în (2a) si o singura data în
(2b), duala va avea forma:
 m n
 max g = ∑ d 1u i + ∑ b jv j
i =1 j= 1


u i + v j ≤ c ij , i = 1, m, j = 1, n (1.66)

u i , v j oarecare


( )
Notând x ij* , respectiv u *i , v *j componentele solutiilor optime ale celor
doua probleme, din teoria ecarturilor complementare, rezulta:
( )
x *ij c ij − u *i − v *j = 0, i = 1, m , j = 1, n (1.67)
Pornind de la o solutie de baza nedegenerata, unde exista m + n – 1
componente xij > 0, solutia va fi optima daca:
c ij = u *i + v *j (1.68)
pentru toate rutele (i, j ) pentru care xij > 0.
Relatiile (1.68) reprezinta un sistem de m + n – 1 ecuatii cu m + n
necunoscute u i si vj , care se rezolva dând uneia dintre necunoscute o valoare
arbitrara, de exemplu u 1 = 0.
Algoritmul de rezolvare a unei probleme de transport prin metoda
potentialelor, pornind de la o solutie admisibila de baza nedegenerata, presupune
urmatoarele etape:
Etapa 1. Se asociaza fiecarei linii a tabelu lui unei probleme de transport
câte o variabila u i si fiecarei coloane câte o variabila vj . Pentru casutele care
corespund variabilelor de baza se construieste sistemul: u i + v j = c ij si se rezolva.
Etapa 2. Se calculeaza marimile δ ij = u i + v j − cij , i = 1, m , j = 1, n .
a. Daca δ ij ≤ 0, (∀) i = 1, m, (∀) j = 1, n , atunci solutia admisibila de baza
este solutie optima a problemei date.
b. Daca (∃) δ ij > 0 , solutia initiala nu este solutie optima si trebuie
îmbunatatita. Se trece la etapa 3.
Etapa 3. Se determina δ lk = maxδ ij . Pornind din casuta (l, k) se
construieste un circuit (un lant închis) format din casute ale tabelului, care trece
numai prin pozitii (i, j) carora le corespunde o cantitate xij > 0, prin treceri
alternative pe linii si respectiv coloane, astfel încât sa se asigure întoarcerea în
casuta (l, k) din care s-a pornit.
Se noteaza casutele din circuit, alternativ cu “+” si “-“, într-un sens
oarecare (de exemplu invers trigonometric), începând cu casuta (l, k).
77
Etapa 4. Pentru casutele notate “-“se examineaza cantitatile xij si se
determina valoarea minima, notata θ , a acestor valori. Se aduna valoarea θ la
cantitatile xij aflate în casutele notate”+” si se scade θ din cantitatile xij aflate în
casutele notate “-“. Se obtine o noua solutie admisibila de baza deoarece în casuta
(l, k) a aparut o componenta pozitiva θ , iar una dintre componentele solutiei
initiale a devenit nula. Se reia algoritmul de la etapa 1, pentru a verifica daca noua
solutie este optima sau nu.

Exemplul 1.14 Sa se afle costul minim de transport pentru problema ale carei date
initiale sunt date în tabelul 1.37.
Consideram solutia admisibila de baza obtinuta prin metoda elementului
minim din tabel în exemplul 1.12. Solutia este prezentata în tabelul 1.49.

Tabelul 1.49
Bj B1 B2 B3 B4 B5 di
Di
D1 90 120 140 80 60
10 37 - 28 45 120
D2 100 140 70 120 90
- 35 75 - - 110
D3 60 160 130 140 100
70 - - - - 70
bj 80 72 75 28 45

Etapa 1. Se verifica daca solutia admisibila de baza este solutie optima.


Se ataseaza fiecarei linii a tabelului 1.49 o variabila u i si fiecarei coloane o
variabila vj si se scrie sistemul u i + vj = cij , considerând numai casutele (i, j) pentru
care variabilele xij > 0:
u 1 = 0
u 1 + v1 = 90 
u + v = 120 u 2 = 20
 1 2
u 3 = −30
u 1 + v 4 = 80 
  v = 90
u 1 + v 5 = 60 Se rezolva sistemul pentru u 1 = 0. Rezulta:  1
u + v = 140  v 2 = 120
 2 2  v3 = 50
u 2 + v 3 = 70 
  v 4 = 80
u 3 + v1 = 60  v = 60
 5
Etapa 2. Se calculeaza: δ ij = u i + v j − cij , i = 1, m , j = 1, n . Aceste valori se
înscriu într-o matrice ∆ ij , cu m linii si n coloane.
Observatie. Evident, pentru pozitiile (i, j) corespunzatoare componentelor
nenule ale solutiei admisibile de baza, δ ij = 0 .

78
Matricea ∆ ij este urmatoarea:
vj v1 v2 v3 v4 v5
ui
u1 0 0 -90 0 0
u2 10 0 0 -20 -10
u3 0 -70 -110 -90 -70

Deoarece exista o valoare δ ij > 0 si anume δ12 = 10 , solutia admisibila de


start nu este solutie optima si trebuie îmbunatatita.
Etapa 3. Având o singura valoare δ ij > 0 , ea este si valoarea maxima a
diferentelor δ ij strict pozitive. Vom forma un circuit începând din casuta
corespunzatoare acestei valori maxime δ ij , adica din casuta (2, 1), deplasându-ne în
sus pe coloana 1, pâna la casuta (1, 1), apoi la dreapta pe linia 1 pâna la casuta (1, 2),
în jos pe coloana 2 pâna la casuta (2, 2) si la stânga pe linia 2, închizând circuitul în
aceeasi casuta din care am pornit, casuta (2, 1).

(1, 1) (1, 2)

(2, 1) (2, 2)

Înscriem în casutele circuitului valorile componentelor solutiei initiale si


notam colturile acestuia alternativ cu “+” si “-“, în sens invers trigonometric,
începând cu casuta de pornire, casuta (2, 1).
(- (+ (- (+
) )
10 37 - 47

- 35 10 25
(+ (- (+ (-
Etapa 4. Pentru casutele notate “-“se examineaza cantitatile xij si) se
)
determina valoarea minima, θ , a acestor valori. Se aduna valoarea θ la cantitatile
xij aflate în casutele notate”+” si se scade θ din cantitatile xij aflate în casutele
notate “-“.
θ = min (10 , 35 ) = 10 si
x 21 = 0 + 10 = 10 , x11 = 10 − 10 = 0, x12 = 37 + 10 = 47 , x 22 = 35 − 10 = 25 .
S-a obtinut o noua solutie, noi valori având componentele corespunzatoare
casutelor circuitului. Ramân nemodificate componentele corespunzatoare casutelor
din tabelul initial (tab. 1.49), care nu apartin circuitului considerat.

79
Noua solutie admisibila de baza este prezentata în tabelul 1.50

Tabelul 1.50
Bj B1 B2 B3 B4 B5 di
Di
D1 90 120 140 80 60
- 47 - 28 45 120
D2 100 140 70 120 90
10 25 75 - - 110
D3 60 160 130 140 100
70 - - - - 70
bj 80 72 75 28 45

Se verifica daca aceasta noua solutie este solutie optima sau nu, reluând
algoritmul de la etapa 1.
u 1 = 0
u 1 + v 2 = 120 
u + v = 80 u 2 = 20
 1 4
u 3 = −20
u 1 + v 5 = 60 
  v1 = 80
u 2 + v1 = 100 0 Se rezolva sistemul pentru u 1 = 0. Rezulta: 
u + v = 140  v 2 = 120
 2 2  v3 = 50
u 2 + v 3 = 70 
  v 4 = 80
u 3 + v1 = 6  v = 60
 5
Matricea ∆ ij este urmatoarea:

vj v1 v2 v3 v4 v5
ui
u1 -10 0 -90 0 0
u2 0 0 0 -20 -10
u3 0 -60 -100 -80 -60

Deoarece δ ij ≤ 0 , solutia obtinuta este solutie optima pentru problema data.


Asadar: x12 = 47 ; x14 = 28; x15 = 45; x 21 = 10 ; x 22 = 25; x 23 = 75; x 31 = 70
Valoarea minima a costului total de transport este:
Z = 47 ⋅ 120 + 28 ⋅ 80 + 45 ⋅ 60 + 10 ⋅ 100 + 25 ⋅ 140 + 75 ⋅ 70 + 70 ⋅ 60 = 24.450 u.m.

Observatii
1. Daca pentru solutia optima exista δ ij = 0 , pentru (i, j) indici în afara
bazei, se poate obtine o noua solutie optima plecând de la casuta (i, j) si aplicând
etapele 3 si 4 ale algoritmului. În acest caz, problema are solutie optima multipla.
80
2. Daca în matricea ? exista mai multe diferente δ ij pozitive, de valoare
egala, vom alege, pentru a începe circuitul, acea ruta careia îi corespunde în tabelul
initial costul unitar cel mai mic.
3. Exista probleme practice ce conduc la un model al problemei de
transport în care se cere maximizarea functiei obiectiv. Aflarea unei solutii
admisibile de baza prin metodele: elementului minim pe linie, elementului minim
pe coloana si elementului minim din tabel devin metodele elementului maxim: pe
linie, pe coloana sau în tabel si se aplica pornind de la valoarea cea mai mare a
coeficientului cij de pe linie, coloana sau tabel. Metoda coltului Nord-Vest se aplica
fara nici o modificare.
Calculul diferentelor δ ij se face dupa relatia:
δ ij = cij − u i − v j , i = 1, m , j = 1, n
iar conditia de optim este aceeasi: δ ij ≤ 0, (∀) i = 1, m , j = 1, n .
4. Exista situatii în care anumite rute între furnizori si consumatori nu pot
fi folosite, cel putin temporar. Rezolvarea acestor probleme se face cu un model de
transport obisnuit, în care rutelor interzise li se asociaza costuri de transport foarte
mari în raport cu costul rutelor utilizabile. Prin aceste costuri foarte mari,
algoritmul de rezolvare este fortat sa ocoleasca rutele interzise.
5. În rezolvarea unei probleme de transport, poate apare o solutie
admisibila de baza degenerata, caz în care nu se poate aplica metoda potentialelor
pentru aflarea solutiei optime. Evitarea acestui lucru se face aplicand metoda
perturbarii, ce consta în reformularea problemei, punând:
d i (ε ) = d i + ε , i = 1, m
b j (ε ) = b j , j = 1, n − 1
bn (ε ) = m ⋅ ε , ε > 0, arbitrar de mic
Cu aceste date se determina solutia initiala de baza ale carei componente
depind de ε . Se pune conditia ca ε → 0 si se vor obtine componente bazice nule,
care se trateaza ca si când ar fi pozitive.

Exemplul 1.15 Se da problema de transport prezentata în tabelul 1.51

Bj B1 B2 B3 B4 di
Di
D1 4 2 5 4
100
D2 6 7 3 8
100
D3 3 5 4 5
100
bj 110 90 50 50

81
Pentru aflarea unei solutii admisibile de baza se aplica metoda elementului
minim în tabel. Solutia obtinuta (tab. 1.52) are 5 componente nenule, deci este o
solutie degenerata, deoarece o solutie nedegenerata ar fi trebuit sa aiba m + n – 1 =
3 + 4 – 1 = 6 componente nenule.
Se aplica metoda perturba
Tabelul 1.52
Bj B1 B2 B3 B4 di
Di
D1 4 2 5 4
10 90 - - 100
D2 6 7 3 8
- - 50 50 100
D3 3 5 4 5
100 - - - 100
bj 110 90 50 50

Se aduna la fiecare cantitate disponibila di o valoare ε , considerata foarte


mica. Pentru echilibrarea problemei adunam m ⋅ ε la cantitatea necesara unui
beneficiar (de exemplu beneficiarului B4 ).
Problema reformulata este prezentata în tabelul 1.53.

Tabelul 1.53
Bj B1 B2 B3 B4 di
Di
D1 4 2 5 4
100 + ε
D2 6 7 3 8
100 + ε
D3 3 5 4 5
100 + ε
bj 110 90 50 50 + 3ε

Solutia initiala de baza se afla aplicând tot metoda elementului minim din
tabel si este prezentata în tabelul 1.54.
Tabelul 1.54
Bj B1 B2 B3 B4 di
Di
D1 4 2 5 4
10 − ε 90 - 2ε 100 + ε
D2 6 7 3 8
- - 50 50 + ε 100 + ε
D3 3 5 4 5
100 + ε - - - 100 + ε
bj 110 90 50 50 + 3ε
82
Se da lui ε valoarea zero si se obtine o solutie cu componenta x14 = 0, pe
care o tratam ca si când ar fi pozitiva. Solutia de baza obtinuta este prezentata în
tabelul 1.55 si este considerata o solutie nedegenerata.
Se poate aplica, în aceste conditii, metoda potentialelor pentru a gasi
solutia optima a problemei de transport data.
Tabelul 1.55
Bj B1 B2 B3 B4 di
Di
D1 4 2 5 4
10 90 - 0 100
D2 6 7 3 8
- - 50 50 100
D3 3 5 4 5
100 - - - 100
bj 110 90 50 50

Probleme propuse

P 1.28 O societate dispune de trei centre de productie A, B si C care


realizeaza acelasi tip de produs. Produsele fabricate sunt distribuite spre vânzare la
patru magazine M1 , M2 , M3 si M4 . Capacitatile de productie pe saptamâna ale celor
trei centre, cererile magazinelor în aceasta perioda si costurile unitare de transport
sunt date în tabelul de mai jos:

Bj M1 M2 M3 M4 di
Di
A 4 2 5 4
10 90 - 0 80
B 6 7 3 8
- - 50 50 100
C 3 5 4 5
100 - - - 120
bj 50 60 90 100

Se cere sa se determine planul optim de transport al produselor de la cele


trei centre de productie la cele patru magazine de desfacere, astfel încât costul total
al transportului sa fie minim.

P. 1.29 O societate petroliera dispune de cinci rafinarii A, B, C, D si E care


utilizeaza materie prima din import ce provine de la patru furnizori W, X, Y si Z.
Capacitatea de productie a fiecareia dintre rafinarii (în mii de tone), cantitatile
expediate de furnizori (în mii de tone) si costurile unitare de transport sunt date în
tabelul urmator.

83
Bj A B C D E di
Di
W 110 120 100 105 115
60
X 165 155 150 180 175
40
Y 200 210 203 206 209
75
Z 130 125 127 132 132
25
bj 50 75 30 25 20

Se cere sa se stabileasca un plan optim de transport al produselor petroliere


de la furnizori la rafinarii, astfel încât costul total al transportului sa fie minim.

P 1.30 Din trei depozite D1 , D2 , D3 trebuie transportate cantitati de produs


la patru centre de vânzare B1 , B2 , B3 si B4 , astfel încât costul total al transportului
sa fie minim. Datele problemei sunt prezentate în tabelul de mai jos:

Bj B1 B2 B3 B4 di
Di
D1 3 2 3 4
70
D2 1 2 3 4
10
D3 3 2 2 1
20
bj 50 25 15 10

a. Sa se determine solutia optima daca solutia initiala de baza este


determinata prin metoda coltului Nord-Vest.
b. Sa se determine solutia optima daca solutia initiala de baza este
determinata prin metoda elementului minim din tabel.

P. 1.31 Fie problema de transport data prin tabelul urmator. Sa se


determine planul optim de transport si costul minim al transportului.

Bj B1 B2 B3 di
Di
D1 165 195 240
20
D2 30 45 75
20
bj 10 10 10

84
P 1.32 O companie detine un produs în trei depozite. Produsul trebuie
transportat în patru orase. Datele transportului sunt prezentate în tabelul de mai jos.

Bj B1 B2 B3 B4 di
Di
D1 12 7 13 9
50
D2 9 5 16 14
36
D3 6 9 10 8
38
bj 24 30 30 40

Se cere sa se determine planul optim de transport la cost total minim.

P 1.33 O companie fabrica un anumit produs în patru din sectiile sale S1 , S2 , S3 , S4.
Produsul este transportat la patru centre de distributie C1 , C2 , C3 , C4 .
Costurile de transport pe unitatea de produs, capacitatile de productie ale
celor patru sectii si capacitatile de depozitare ale centrelor de distributie sunt date
în tabelul urmator.

Bj C1 C2 C3 C4 di
Di
S1 5 4 2 10
20
S2 3 6 5 7
50
S3 6 5 7 12
25
S4 2 9 5 8
40
bj 36 18 27 24

Sa se determine planul optim de transport pentru cost total minim.

P 1.34 O societate are doua fabrici de frigidere, una în orasul O1 si alta în


orasul O2 . Fabrica din O1 produce 160 frigidere pe saptamâna, iar cea din O2 , 200
de masini pe saptamâna. Societatea trimite produsele la centrele de desfacere din
orasele O3 si O4 , care cer, fiecare, câte 140 frigidere pe saptamâna. Costurile
unitare de transport sunt date în tabelul de mai jos:

O3 O4
O1 26 30
O2 26 24

85
Exista posibilitatea ca produsele sa fie trimise mai întâi la centrele C1 Si C2
si apoi, de acolo, la destinatiile finale, O3 si O4 . Costurile de transport sunt
respectiv:

C1 C2 O3 O4 C1 C2
O1 7 14 C1 15 17 0 7
O2 15 12 C2 14 15 7 0

Se cere:
1. Care este planul de transport si costul total minim daca produsele sunt
trimise direct la destinatar?
2. Care este planul de transport si costul total minim daca se folosesc
centrele intermediare C1 si C2?

P 1.35 O firma are trei sectii situate în orase diferite, în care se produc
radiatoare. Fiecare dintre ele poate fabrica cel mult 100, 50, 50 respectiv, pe
saptamâna. Acestea se transporta la trei magazine care pot sa vânda cel mult 90, 80
si 100 radiatoare pe saptamâna.
Profitul realizat de firma depinde atât de sectia în care a fost fabricat, cât si
de magazinul care solicita produsele. Profitul unitar este dat în tabelul urmator.

M1 M2 M3

S1 219 237 204


S2 228 255 210
S3 180 225 207

Sa se determine solutia optima ce maximizeaza profitul companiei.

P 1.36 Sa se determine solutiile optime ale problemelor de transport, de


cost minim, din tabelele urmatoare.

Bj B1 B2 B3 di Bj B1 B2 B3 di
Di Di
D1 5 10 10 D1 8 6 10
55 125
D2 20 30 20 D2 4 9 8
80 150
D3 10 20 30 D3 7 6 5
75 95
bj 70 100 40 bj 110 85 175

86
P 1.37 Fie problema de transport definita prin tabelul de mai jos,
coeficientii cij semnificând costuri unitare de transport.

Bj B1 B2 B3 B4 di
Di
D1 11 12 10 10
60
D2 17 16 15 18
30
D3 19 21 20 22
90
bj 50 75 30 25

Se cere:
a. Sa se gaseasca o solutie admisibila de baza utilizând metoda
diferentelor maxime;
b. Sa se afle planul optim de transport pentru cost total minim.

P 1.38 O firma textila are doua fabrici, doi furnizori de materii prime si trei
centre de desfacere. Costurile de transport pentru o tona de încarcatura între furnizor
si fabrici si între fabrici si centrele de desfacere sunt date în tabelul de mai jos:

Fabrica A B Centru de
desfacere 1 2 3
Furnizor Fabrica
1 1 1,5 A 4 2 1
2 2 1,5 B 3 4 2

Sunt disponibile 10 tone de la furnizorul 1 si 15 tone de la furnizorul 2.


Cele trei centre de desfacere necesita 8, 14 respectiv 3 tone de produse finite. Cele
doua fabrici au capacitate de productie nelimitata.
Se cere:
a. Sa se reduca problema la o problema de transport cu doua surse si trei
destinatii si sa se determine un plan de transport care sa minimizeze cheltuielile
totale.
b. Daca fabrica A are o capacitate de productie de 8 tone si fabrica B o
capacitate de productie de 7 tone, sa se descompuna problema în doua probleme de
transport si sa se rezolve.

P 1.39 În trei aeroporturi A1 , A2 , A3 se afla disponibile avioanele d i . Ele


trebuie trimise în cinci orase O1 , O2 , O3 , O4 , O5 , astfel încât numarul lor sa fie cel
înscris la necesarul b j . În tabelul urmator se da timpul pe care îl face un avion de la
fiecare aeroport la fiecare oras. Sa se întocmeasca un program de zbor astfel încât
timpul total sa fie minim.

87
Bj O1 O2 O3 O4 O5 di
Di
A1 1 2 1 5 2
60
A2 3 4 1 3 1
50
A3 1 5 2 4 3
5
bj 10 15 20 30 45

P 1.40 O companie de transport are sase mijloace de transport de diferite


tipuri si anume: A – o camioneta, B – doua camioane si C – trei TIR-uri, ale caror
costuri de transport si încarcare sunt date în tabelul urmator:

Tip Cost fix Cost variabil Capacitate


[u.m./zi] pe km pe tona [tone]
A 1.500 3 75 4
B 2.100 1,2 105 8
C 2.400 1,8 90 10

Pentru fiecare zi, costurile variabile sunt stabilite atât pe baza distantelor
parcurse, cât si a tonelor transportate.
Într-o anumita zi, exista cinci comenzi de transport, de la garaj la diversi
destinatari, distantele fiind date în tabelul de mai jos:

Comenzi de transport 1 2 3 4 5
Cantitatea transportata [tone] 8 10 3 2 5
Distanta [km] 320 200 450 550 280

Distantele sunt de la garaj la destinatari si în fiecare caz mijlocul de


transport se întoarce gol.
Toate cele cinci transporturi se efectueaza în aceeasi zi si fiecare mijloc de
transport poate face un singur transport. Încarcatura se considera indivizibila.
Se cere:
1. Sa se determine costul total pe zi pentru fiecare dintre mijloacele de
transport ce pot transporta cantitatea ceruta prin comanda.
2. Ce mijloc de transport va executa fiecare comanda astfel încât costul
total sa fie minim?

P 1.41 Fie problemele de transport definite prin tabelele urmatoare,


coeficientii cij semnificând costuri unitare de transport.
Sa se afle planul optim de transport pentru cost total minim.

88
Bj B1 B2 B3 di Bj B1 B2 B3 di
Di Di
D1 7 3 4 D1 20 30 10
2 100
D2 2 1 3 D2 30 40 25
3 300
D3 3 4 6 D3 35 15 20
5 100
bj 4 1 5 bj 150 125 225

a b

Bj B1 B2 B3 di Bj B1 B2 B3 di
Di Di
D1 14 13 15 D1 50 50 60
300 100
D2 11 10 13 D2 40 90 40
200 120
D3 12 13 11 D3 80 50 20
200 160
bj 400 140 100 bj 90 200 90

c d

Bj B1 B2 B3 B4 di
Di
D1 3 3 1 4
15
D2 3 4 3 6
17
D3 4 3 6 2
18
bj 10 12 9 9
e
Bj B1 B2 B3 B4 di
Di
D1 4 3 1 1
1200
D2 1 4 3 1
1200
D3 2 2 1 3
600
bj 900 1050 450 600
F

89
90

S-ar putea să vă placă și