Documente Academic
Documente Profesional
Documente Cultură
PROGRAMAREA LINIARA
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)
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
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
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:
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).
P1 P2
R1 2 4
R2 6 2
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 .
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
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.]
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
⇔ 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.
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.
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:
17
1.4 Algoritmul SIMPLEX primal
AX = b b∈R m
X ≥ 0 c' , X ∈ R n (1.23)
opt f (x ) = c ' X A ∈ M m,n
X B = B −1 ⋅ b − B −1 ⋅ S ⋅ X S (1.24)
( ) 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
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
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.
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
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
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
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.
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,
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.
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.
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 .
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
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
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.
optf (x ) = c ′X
AX = b (1.36)
X ≥ 0
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.
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
32
x1 x2 y1 y 2
A= 2 1 −1 0 (1.41)
1 0 − 1
3
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
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
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
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 ? 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
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.
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
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
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
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
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
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.
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
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
Produse A B C Disponibil
Resurse
R1 2 3 - 20
R2 - 4 5 30
R3 1 2 1 50
Beneficiul unitar 20 40 60
Produse P 1 P2 Timp
Masini disponibil
M1 11 9 9900
M2 7 12 8400
M3 6 16 9600
Beneficiul unitar 900 1000
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.
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
Sortimente A B Capacitatea
Utilaje disponibila
U1 0,2 0,8 6
U2 0,4 1 8
U3 1 0,4 8
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
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.]
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.
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
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.
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.
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
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
PRIMALA DUALA
max f (x ) = c ′X min g (u ) = b′U
′ (1.53)
AX ≤ b A U ≥ c
X ≥ 0 U ≥ 0
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
min f (x ) = c ′X max g (u ) = b ′U
(P) (D)
AX ≥ b A′ U ≤ c
X ≥ 0 U ≥ 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.
i =1
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 ).
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
* * *
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
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.
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?
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
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
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.
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.
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
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
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 .
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
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
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
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
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.
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
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.
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
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
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
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
Exemplul 1.13 Pentru problema de transport data în tabelul 1.37, se aplica metoda
diferentelor comparate pentru aflarea unei solutii admisibile de baza.
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
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
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
(1, 1) (1, 2)
(2, 1) (2, 2)
- 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
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.
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
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
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
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
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
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
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
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
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
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
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
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