You are on page 1of 128

ADINA RUSU

CERCETĂRI
OPERAŢIONALE

IAŞI, 2007
CUPRINS
CUPRINS ............................................................................................. 1
CERCETĂRI OPERAŢIONALE (CO) ............................................... 3
PROGRAMARE LINIARĂ................................................................. 3
MODELUL MATEMATIC ................................................................. 3
METODE DE REZOLVARE A PROBLEMELOR DE PL.............. 11
METODA GRAFICĂ ........................................................................ 11
FORMA STANDARD A PROBLEMEI DE PROGRAMARE
LINIARĂ ........................................................................................... 19
SOLUŢII ALE UNEI PROBLEME DE PL....................................... 22
ALGORITMUL SIMPLEX ............................................................... 28
ETAPELE ALGORITMULUI SIMPLEX PENTRU PROBLEME DE
MAXIM.............................................................................................. 28
ALGORITMUL SIMPLEX PENTRU PROBLEME DE MINIM .... 34
BAZA ARTIFICIALĂ. METODA PENALIZĂRILOR ................... 36
METODA PENALIZĂRII PENTRU PROBLEME DE MINIM ...... 37
METODA PENALIZĂRII PENTRU PROBLEME DE MAXIM .... 38
RESURSE RARE. PREŢ UMBRĂ ................................................... 43
ANALIZA SENZITIVĂ .................................................................... 56
ANALIZA SENZITIVĂ PENTRU COEFICIENŢII DIN FUNCŢIA
OBIECTIV ......................................................................................... 56
ANALIZA SENZITIVĂ PENTRU TERMENII LIBERI DIN
RESTRICŢII ...................................................................................... 69
PROGRAMARE ÎN NUMERE ÎNTREGI ........................................ 76
METODA „RAMIFICĂ ŞI MĂRGINEŞTE” ................................... 78
PROGRAMARE MULTICRITERIALĂ........................................... 91
MODELUL MATEMATIC ............................................................. 100
PROBLEME DE TRANSPORT ŞI PROBLEME DE REPARTIŢIE
.......................................................................................................... 107
PROBLEME DE TRANSPORT...................................................... 107
ETAPA I. SOLUŢIA DE PORNIRE ............................................... 112
ETAPA A II-A. DETERMINAREA SOLUŢIEI OPTIME............. 118
B I B L I O G R A F I E ...................................................................... 128

2
CERCETĂRI OPERAŢIONALE (CO)

Cercetarea operaţională a apărut în timpul celui de-al


doilea război mondial, când liderii militari au cerut inginerilor şi
matematicienilor să studieze probleme legate de securitatea
convoaielor militare de nave împotriva submarinelor şi a
operaţiilor de bombardare.
În prezent, cercetarea operaţională este numită adesea şi
„Ştiinţa managementului”, deoarece furnizează metode ştiinţifice
şi tehnice de luare a deciziilor optime în management, prin care
se pot determina cele mai bune căi de operare ale unui sistem.

PROGRAMARE LINIARĂ

Programarea liniară (PL) este o metodă matematică de


optimizare cu aplicaţii în diverse domenii ca: industrie,
agricultură, probleme de transport şi repartiţie, investiţii,
reclame, finanţe.
Scopul principal constă în determinarea alocării optime a
unor resurse, de care se dispune în cantităţi limitate, pentru a se
obţine valoarea optimă a unui anumit obiectiv, de exemplu
minimizarea costurilor de producţie sau maximizarea profitului.
Pentru rezolvarea oricărei probleme de programare liniară
trebuie creat un model matematic.

MODELUL MATEMATIC

Pentru ilustrarea elementelor de bază ale modelului


matematic în programare liniară, etapele şi terminologia
corespunzătoare, se va analiza un exemplu simplu de problemă
de producţie, ce conţine doar două variabile.

3
Exemplul 1
O firmă importă componente pentru asamblarea a două
modele de computere personale: PC1 şi PC2.
În urma vânzării unui produs PC1 firma obţine un profit
de 50 u.m (unităţi monetare – lei, euro, $ etc) iar în urma
vânzării unui produs PC2 firma obţine un profit de 40 u.m.
În săptămâna următoare de producţie sunt disponibile 150
de ore pentru asamblare. Asamblarea unui PC1 durează 3 ore iar
a unui PC2 durează 5 ore.
Firma are în stoc numai 20 de monitoare pentru PC2,
adică, pot fi asamblate săptămânal cel mult 20 calculatoare PC2.
Spaţiul total de depozitare este de 30 m2. Un PC1 ocupă
0,8 m2 iar un PC2 ocupă 0,5 m2.
Conducerea firmei doreşte să stabilească planul de
producţie pentru săptămâna următoare (adică să determine
numărul calculatoarelor PC1 şi PC2 care se vor asambla) astfel ca
profitul total să fie maxim.
Se consideră că toate calculatoarele asamblate vor fi
vândute, iar restul resurselor (ambalaje, monitoare pentru PC1,
etc. ) sunt disponibile la firmă.
Pentru obţinerea modelului matematic este utilă
sintetizarea datelor din exemplu în Tabelul 1.
Tabelul 1
Consumuri pentru o
Resurse unitate din: Disponibil
PC1 PC2
Resursa 1(R1)
3 ore 5 ore 150 ore
Asamblare (ore)
Resursa 2 (R2)
Spaţiu de 0,8 m2 0,5 m2 30 m2
depozitare (m2)
Profit unitar (um) 50 um 40 um

4
Etapele de creare a modelului matematic sunt:
Etapa 1. Identificarea variabilelor şi a unităţilor de măsură
Variabilele de decizie sunt necunoscutele problemei.
În problemă se cere planul de producţie adică numărul
calculatoarelor de fiecare fel care se vor asambla. Deci variabile
de decizie (VD) sunt:
x1= numărul de calculatoare PC1
x2= numărul de calculatoare PC2
care se vor asambla săptămâna următoare.
Cu ajutorul V.D se construieşte modelul matematic.
Etapa 2. Exprimarea profitului total, ce trebuie maximizat,
printr-o funcţie numită funcţia obiectiv (FO), deci, criteriul de
performanţă.
Deoarece profitul pentru un PC1 este 50 um iar firma
produce un număr x1 calculatoare PC1, profitul pentru toate cele
x1 calculatoare este 50x1. Similar, profitul pentru toate cele x2
calculatoare PC2 este de 40x2.
Deci funcţia obiectiv FO este:
I. f ( x ) = 50 x1 + 40 x2 = MAX ( um )
Etapa 3. Exprimarea restricţiilor
Restricţiile sau constrângerile sunt condiţii ce trebuie
satisfăcute privind resursele, condiţii de fabricaţie, de vânzare
etc, adică exprimă condiţiile în care se desfăşoară procesul
studiat.
II. Restricţii
• Restricţia privitoare la asamblare (resursa 1)
1. 3 x1 + 5 x2 ≤ 150 ore
• Restricţia privind spaţiul de depozitare (resursa 2)
2. 0.8 x1 + 0.5 x2 ≤ 30 m2
• Restricţia privind numărul de monitoare pentru
PC2 (resursa 3), care condiţionează nr de PC2 ce se
vor asambla:

5
3. x2 ≤ 20
Etapa 4. Condiţii de nenegativitate
Acestea se impun pentru variabilele de decizie, atât
datorită interpretării lor (număr de calculatoare) cât şi datorită
metodei de aflare a soluţiei optime.
III. x1 ≥ 0 , x2 ≥ 0
Rezultă că modelul matematic al problemei, exprimat cu
ajutorul variabilelor de decizie x1 şi x2 este:
I. Funcţia obiectiv:
f ( x ) = 50 x1 + 40 x2 = MAX ( um )
II. Restricţii:
1. 3x1 + 5 x2 ≤ 150 (ore)
2. 0.8 x1 + 0.5 x2 ≤ 30 (m2)
3. x2 ≤ 20 (nr. de monitoare)
III. Condiţii de negativitate
x1 ≥ 0 , x2 ≥ 0
Se va arăta că soluţia optimă a acestei probleme este:
Se vor fabrica un număr de
 x1 = 30 calculatoare PC1

 x2 = 12 calculatoare PC2
iar profitul maxim este de 1980 um. Această soluţie optimă arată
că pentru nici un alt plan de prducţie nu se poate obţine un profit
mai mare decât 1980 um.
Exemplul 2
O fabrică de jucării produce trei feluri de roboţi de
jucărie.
Pentru producerea primei versiuni de roboţi V1, sunt
necesare 10 minute de fabricare şi ambalare şi 2 kg de plastic, a
doua versiune V2 , are nevoie de 12 minute de fabricare şi
ambalare şi 3 kg de plastic, iar a treia versiune V3 are nevoie de
15 minute de fabricare şi ambalare şi 4 kg plastic.

6
Pentru următorul ciclu de producţie sunt disponibile 8 ore
de fabricare şi ambalare şi 200 kg de plastic.
Profitul este de 1 um pentru fiecare robot V1, 5 um pentru
fiecare robot V2 şi 6 um pentru fiecare robot V3.
Pentru a onora comenzile primite trebuie produse minim
10 bucăţi din fiecare versiune.
Determinaţi cantităţile optime de producţie pentru a
obţine un profit maxim.
Modelul matematic se elaborează cu ajutorul variabilelor
de decizie, deci:
 Se identifică variabilele de decizie care dau cantităţile
ce se vor produce:
 x1 = numărul de bucăţi din roboţii V1

 x2 = numărul de bucăţi din roboţii V2
 x = numărul de bucăţi din roboţii V
 3 3

Datele din problemă se sintetizează în tabelul 2.


Tabelul 2
Consumuri specifice
Resurse Disponibil
V1 V2 V3
Resursa 1 (R1)
10 12 15 8 ore = 480
Timp de fabricare şi
min min min min
ambalare (minute)
Resursa 2 (R2)
2 kg 3 kg 4 kg 200 kg
Cantităţi de plastic (kg)
Profit (um) 1 um 5 um 6 um
Se observă că timpul de fabricare şi ambalare este
exprimat în minute iar timpul disponibil de producţie este
exprimat în ore. Trebuie folosită aceeaşi unitate de timp deci 8
ore = 8 × 60 = 480 min.
Modelul matematic este:
I. Funcţia obiectiv (FO) ce exprimă profitul total
f ( x ) = 1x1 + 5 x2 + 6 x3 = max

7
II. Restricţiile ce exprima utilizarea resurselor, deci
condiţii de fabricaţie şi condiţii de vânzare
1. 10 x1 + 12 x2 + 15 x3 ≤ 480 (minute de fabricare şi
ambalare)
2. 2 x1 + 3x2 + 4 x3 ≤ 200 ( kg de plastic )
3. x1 ≥ 10 bucăţi ( contract V1 )
4. x2 ≥ 10 bucăţi ( contract V2 )
5. x3 ≥ 10 bucăţi ( contract V3 )
III. Condiţii de nenegativitate
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0
În concluzie, modelul matematic al unei probleme de
programare liniară are următoarele elemente principale:
1. Un set de variabile de decizie xi, i = 1, n care
determină ceea ce se cere în problemă, adică va
determina complet decizia ce va fi luată
2. O funcţie obiectiv, care exprimă criteriul de
performanţă adică ceea ce dorim să optimizăm.
Aceasta este o funcţie liniară în variabilele de
decizie, care trebuie maximizată (de exemplu
profitul) sau minimizată (de exemplu costurile de
producţie). FO se mai numeşte funcţie economică.
3. Restricţiile sau constângerile care sunt condiţii ce
trebuie satisfăcute în procesul studiat. Restricţiile
sunt relaţii liniare, ecuaţii sau inecuaţii, pe care le
satisfac variabilele de decizie şi se referă la
utilizarea resurselor: materiale, ore de producţie,
condiţii de fabricaţie, contracte etc.
4. Condiţii de nenegativitate pentru toate variabilele
(necesare în aflarea soluţiei optime).
În cazul general, modelul matematic se poate prezenta în
una din formele:

8
a) Forma dezvoltată
Dacă x1, x2, ... xn sunt variabilele de decizie avem:
I. Funcţia obiectiv
f ( x ) = c1 x1 + c2 x2 + ... + cn xn = ( Max sau Min )
II. Restricţiile
1) a11 x1 + a12 x2 + ... + a1n xn ( <, =, > ) b1

2 ) a21 x1 + a22 x2 + ... + a2 n xn ( <, =, > ) b2


m ) a x + a x + ... + a x ( <, =, > ) b
 m1 1 m2 2 mn n m

III. Condiţii de nenegativitate


x1 ≥ 0, x2 ≥ 0, ..., xn ≥ 0
Notaţiile utilizate în model sunt:
• Variabilele de decizie xi, i = 1, n se mai notează
x = ( x1 , x2 , ...xn ) ;
T

• Coeficienţii cj, j = 1, n din FO sunt numiţi


coeficienţii funcţiei obiectiv. Ei sunt constanţi şi
cunoscuţi şi pot avea orice semn;
• Avem „m” restricţii. Coeficienţii restricţiilor sunt
aij (coeficientul din linia i al variabilei xj) sunt
constanţi şi cunoscuţi şi pot avea orice semn;
• Termenii liberi din restricţii bi, i = 1, m , sunt
constanţi şi cunoscuţi. Iniţial pot avea orice semn
dar pentru aplicarea algoritmului simplex de aflare
a soluţiei optime ei sunt nenegativi;
• Condiţiile de nenegativitate sunt impuse.
b) Forma matriceală
Pentru a obţine forma matriceală a modelului matematic
se introduc următoarele matrici:
• Matricea variabilelor cu n linii şi o coloană
X ∈ M n1

9
 x1 
 
x
X =  2  = ( x1 x2  xn ) ∈ M n1
T

 
 
 xn 
• Matricea coeficienţilor din FO ∈ M 1n
C = ( c1 c2 … cn ) ∈ M 1n
• Matricea coeficienţilor din restricţii
 a11 a12 . . a1n 
 
a a22 . . a2 n 
A =  21 ∈ M mn
 . . . . . 
 
 am1 am 2 . . amn 
• Matricea termenilor liberi din restricţii cu m linii şi
o coloană
 b1 
 
 b2 
B = ( b1 b2 . . bm ) =  .  ∈ M m1
T

 
 . 
b 
 m
Forma matriceală a modelului matematic este:
I. ( FO ) f ( x ) = C ⋅ X = Max sau Min
II. Restricţii A ⋅ X ( <, =, > ) B
III. Condiţii de nenegativitate X ≥ 0
c) Forma vectorială
Matricele cu o linie şi n coloane sau cele cu n linii şi o
coloană pot fi considerate elemente ale unui spaţiu vectorial sau
liniar Rn, deci vor fi numite vectori.
Astfel X, C, B sunt vectori: X , C ∈ R n , B ∈ R m
Dacă se introduc, în plus, încă n vectori din Rm, având
drept componente coloanele matricei A, adică

10
 a11   a12   a1n   b1 
       
 a21   a22   a2 n   b2 
P1 =  .  ; P2 =  .  ...; Pn =  .  , B = P0 =  .  atunci forma
       
 .   .   .   . 
a  a  a  b 
 m1   m2   mn   m
vectorială a problemei de PL este
 f ( x ) = CX = OPT ( MAX sau MIN )( FO )

 x1 P1 + x2 P2 + .. + xn Pn ( <, =, > ) P0 ( restricţie )
X ≥ 0

METODE DE REZOLVARE A PROBLEMELOR DE PL

După crearea modelului matematic al problemei urmează


rezolvarea ei adică determinarea soluţiei optime.
Există mai multe metode de aflare a soluţiei optime,
printre care:
• Metoda grafică, ce se poate aplica doar pentru cazul în
care modelul are doar două variabile de decizie x1 şi
x2 .
• Algoritmul simplex, aplicabil la orice număr finit de
VD, elaborat şi aplicat de George B Dantzig în 1947.

METODA GRAFICĂ

Metoda grafică de aflare a soluţiei optime se utilizează


numai la probleme cu două VD x1 şi x2 (sau x şi y).
Este importantă deoarece se definesc (şi vizualizează)
tipurile de soluţii: soluţii admisibile (SA), soluţii admisibile de
bază (SAB), soluţia optimă (SO), dacă există.

11
Se precizează şi cazurile în care: soluţia optimă este
unică, există mai multe soluţii optime, nu există soluţie optimă
ori nu există un optim finit.
Se îndeplinesc mai întâi condiţiile de nenegativitate
x = x1 ≥ 0 şi y = x2 ≥ 0 .
Fie planul ( x1ox2 ) sau ( xoy )
• Condiţia x1 ≥ 0 se compune din
 x1 = 0 dreaptă ( axa Ox2 )

 x1 > 0 semiplan
x2 = y

x1 = x



Figura 1
• Condiţia x2 ≥ 0 se compune din
 x2 = 0 dreaptă ( axa Ox1 )

 x2 > 0 semiplan
Cum ambele x1 ≥ 0 , x2 ≥ 0 trebuie să fie satisfăcute
simultan, intersectăm semiplanele. Rezultă că soluţia optimă,
dacă există, se află în cadranul I.

12
Cele de mai sus pot fi aplicate pentru orice restricţie adică
o inecuaţie de tipul mx1 + nx2 ≥ ( ≤ ) b .
De exemplu 4 x1 + 2 x2 ≥ 8 înseamnă
4 x1 + 2 x2 = 8 ( reprezintă o dreaptă )
 adică o dreaptă împarte
4 x1 + 2 x2 > 8 ( reprezintă un semiplan )
planul ox1x2 în două semiplane.
În toate punctele unuia dintre semiplane este satisfăcută
inecuaţia 4 x1 + 2 x2 > 8 iar în toate punctele celuilalt este
satisfăcută inecuaţia 4 x1 + 2 x2 < 8 . Pentru a vedea ce semiplan
alegem, este suficient să verificăm un singur punct.
Procedăm astfel:
 Figurăm dreapta d: 4 x1 + 2 x2 = 8 , prin tăieturi. Când
x2 = 0 ⇒ 4 x1 = 8, x1 = 2 ⇒ A ( 2, 0 ) ;
Când x1 = 0 ⇒ 2 x2 = 8, x2 = 4 ⇒ B ( 0, 4 ) . Dreapta trece
prin punctele A(2,0) şi B(0,4) şi împarte planul în
două regiuni.
x2

B(0,4)

o A(2,0) x1

Figura 2

13
 Căutăm regiunea în care este satisfăcută inecuaţia
4 x1 + 2 x2 > 8 . De exemplu C(1,0) nu satisface
inecuaţia, deoarece 4 ⋅1 + 2 ⋅ 0 < 8 , deci nici un punct
din triunghiul AOB nu satisface 4 x1 + 2 x2 > 8 , în
schimb coordonatele tuturor punctelor din aria
haşurată satisfac inecuaţia.
Cel mai uşor se verifică originea O(0,0) adică
4⋅0 + 2⋅0 < 8 .
Bazându-ne pe această consideraţie să rezolvăm problema
de PL din exemplul 1. Reamintim modelul matematic al
problemei:
I. f ( x ) = 50 x1 + 40 x2 = MAX ( FO )
II. Restricţii:
1) 3x1 + 5 x2 ≤ 150 ( ore )
2) 0.8 x1 + 0.5 x2 ≤ 30 ( m 2 )
3) x2 ≤ 20 ( număr de monitoare )
III. Condiţii de nenegativitate: x1 ≥ 0 , x2 ≥ 0
• Condiţiile de nenegativitate sunt satisfăcute în
cadranul I.
• Pentru a satisface restricţiile procedăm asfel: la
fiecare restricţie se ataşează:
 O ecuaţie, ce reprezintă o dreaptă;
 O inecuaţie strictă ce reprezintă un semiplan;
 Se alege semiplanul corespunzător;
 Deoarece toate restricţiile trebuie să fie satisfăcute,
intersectează toate ariile.
Se obţine astfel aria admisibilă. Coordonatele tuturor
punctelor acestei arii verifică toate restricţiile şi condiţiile de
nenegativitate.
Mulţimea soluţiilor admisibile (SA) este mulţimea
coordonatelor (x1, x2) ale tuturor punctelor care satisfac toate

14
restricţiile şi condiţiile de nenegativitate. Punctele se află în aria
admisibilă şi pe conturul ei.
Pentru cele 3 restricţii avem reprezentarea din Figura 3:
Restricţia 1: 3 x1 + 5 x2 ≤ 150 ( ore )
 Dreapta d1: 3 x1 + 5 x2 = 150 trece prin A1(50,0),
B1(0,30). Inecuaţia 3 x1 + 5 x2 < 150 este satisfăcută
în triunghiul A1OB1 deoarece originea O(0,0)
satisface 3 ⋅ 0 + 5 ⋅ 0 < 180
 Dreapta d2: 0.8 x1 + 0.5 x2 = 30 trece prin A2(37,5;0)
şi B2(0,60). Inecuaţia 0.8 x1 + 0.5 x2 < 30 este
satisfăcută în triunghiul A2OB2
 Dreapta d3: x2 = 20 este paralelă cu axa ox1.
Inecuaţia x2 < 20 este satisfăcută în aria dintre axa
ox1 şi dreapta x2 = 20 .

Figura 3

15
Aria admisibilă este reprezentată haşurat. Aria admisibilă
are o infinitate de puncte, deci mulţimea soluţiilor admisibile
este în acest caz infinită.
În această mulţime trebuie să alegem acel punct ale cărui
coordonate conferă funcţiei obiectiv valoare cea mai mare. Acel
punct va reprezenta soluţia optimă.
Este clar că trebuie să restrângem mulţimea de puncte în
care să căutăm soluţia optimă, astfel ca această mulţime să fie
finită. Aria admisibilă este o mulţime convexă.
Se cercetează numai vârfurile acestei mulţimi.
Coordonatele vârfurilor poligonului convex, care înconjoară aria
admisibilă constituie mulţimea (x1,x2) a soluţiilor admisibile de
bază. Soluţia optimă se află în unul din vârfurile poligonului.

Figura 4

Pentru determinarea soluţiei optime se poate proceda în


două moduri:

16
Metoda 1
Se calculează coordonatele vârfurilor O, A2, M, N, B3, şi
apoi se află valoarea funcţiei obiectiv în fiecare vârf. Soluţia
optimă este punctul (x1,x2) care conferă funcţiei obiectiv
valoarea cea mai mare.
Avem:
 O(0;0)
 A2(37,5;0)
 M ∈ d1 ∩ d 2 deci rezolvăm sistemul
3 x1 + 5 x2 = 150
 ⇒ M(30;12)
0.8 x1 + 0.5 x2 = 30
 N ∈ d1 ∩ d3 deci rezolvăm sistemul
3 x1 + 5 x2 = 150   50 
 ⇒ N  ; 20 
x2 = 20   3 
 B3(0;20).
Valorile funcţiei obiectiv în aceste puncte sunt:

O ( 0, 0 ) ; f ( O ) = 50 ⋅ 0 + 40 ⋅ 0 = 0

 A ( 37,5;0 ) ; f ( A ) = 50 ⋅ 37,5 + 40 ⋅ 0 = 1875

 M ( 30,12 ) ; f ( M ) = 50 ⋅ 30 + 40 ⋅12 = 1980

 N  50 ; 20  ; f ( N ) = 50 ⋅ 50 + 40 ⋅ 20 = 1633,3
  3  3

 B3 ( 0, 20 ) ; f ( B3 ) = 50 ⋅ 0 + 40 ⋅ 20 = 800
Rezultă că soluţia optimă este în punctul M(30,12).
Se vor fabrica x1=30 calculatoare PC1 şi x2=12
calculatoare PC2. Profitul maxim obţinut este maxf=1980 um.

Metoda a 2-a
Se caută valoarea maximă a FO, care este tot liniară, deci
acesteia i se poate ataşa o dreaptă:

17
D: 50 x1 + 40 x2 = λ , cu λ = max
unde λ este un parametru deoarece la fiecare pereche (x1,x2)
funcţia obiectiv poate lua o altă valoare, notată λ.
Dorim să găsim λ = max . Deoarece dreapta D nu se poate
reprezenta aflându-i intersecţiile cu axele vom folosi forma
y = mx + n unde m este panta dreptei iar n este tăietura (când
x=0, y=n).
5 λ
Avem 40 x2 = −50 x1 + λ sau D: x2 = − x1 +
4 40
5 λ
Deci panta este − = constant iar n = variabil. Relaţia
4 40
reprezintă o familie de drepte paralele, deoarece toate au aceeaşi
pantă.
Se va alege punctul din aria admisibilă, pentru care
λ
valoarea n = este cea mai mare, deoarece aveam λ = max .
40

Figura 5

18
În figura precedentă se figurează punctat dreapta D. Apoi
se deplaseză D, paralel cu ea însăşi, până la aria admisibilă şi se
alege punctul în care tăietura la origine, n, este cea mai mare
(Figura 5).
Acest punct este M(30;12).
Deci s-a determinat soluţia optimă, adică planul optim de
producţie x1=30, x2=12 şi valoarea maximă a profitului, 1980.

FORMA STANDARD A PROBLEMEI DE PROGRAMARE


LINIARĂ

Soluţia optimă a unei probleme de programare liniară, se


poate obţine prin aplicarea algoritmului simplex, atunci când
modelul matematic are mai mult de două variabile de decizie.
Pentru aplicarea algoritmului, problema trebuie adusă la
forma standard (FS), în care sunt satisfăcute următoarele trei
condiţii:
1) În membrul drept al restricţiilor există numai termeni
liberi şi aceştia sunt nenegativi bi ≥ 0, i = 1, m
2) Toate restricţiile modelului trebuie să fie exprimate
prin egalităţi, deci toate restricţiile vor fi ecuaţii.
3) Toate variabilele din model sunt nenegative xi ≥ 0 ∀i
Orice model matematic poate fi adus la forma standard.
Pentru a îndeplini cele trei condiţii se procedează astfel:
1a) Dacă iniţial într-o restricţie aveam variabile în membrul
drept, acestea se trec în membrul stâng;
1b) Dacă iniţial aveam un termen liber în membrul stâng, acesta
se va trece în membrul drept;
1c) Dacă termenul liber din membrul drept este negativ, atunci
restricţia respectivă se va înmulţi cu (-1).

19
De exemplu restricţia iniţială era: x1 + x2 + 4 < x3 . Avem
x1 + x2 − x3 + 4 < 0 apoi x1 + x2 − x3 < −4 ( −1) deci − x1 − x2 + x3 > 4
şi ultima formă a restricţiei îndeplineşte condiţia 1) din FS.
2) O inecuaţie poate fi înlocuită cu o ecuaţie prin introducerea
unei variabile noi, numită variabilă de compensare, echilibrare
sau ecart. Variabila de compensare se adună ori se scade în
membrul stâng al restricţiei, după cum inecuaţia era ≤ sau ≥.
Aceste variabile de compensare introduse în inecuaţii pentru a le
transforma în ecuaţii sunt nenegative şi au interpretări
economice.
De exemplu, în cazul inecuaţiilor:
2 x1 + x2 − 3 x3 ≤ 100
 , x1 , x2 , x3 ≥ 0
3
 1x + 2 x2 + x3 ≥ 50
se introduc variabilele de compensare x4 cu semnul + şi x5 cu
semnul -:
2 x1 + x2 − 3x3 + x4 = 100
 xi ≥ 0, i = 1,5
3x1 + 2 x2 + x3 − x5 = 50
deoarece în prima membrul stâng era mai mic decât membrul
drept iar în a doua inecuaţie, membrul stâng era mai mare decât
în membrul drept.
3) Dacă iniţial în modelul matematic există şi variabile care nu
satisfac de la început condiţiile de nenegativitate, atunci acestea
vor putea fi îndeplinite cu ajutorul unei substituţii, efectuate în
restricţii şi în funcţia obiectiv.
Avem două situaţii:
a) Variabila xi este negativă sau nepozitivă xi ≤ 0 ; în acest
caz substituţia este xi = − xi , xi ≥ 0 ;
b) Variabila xi are semn oarecare adică poate avea valori
pozitive, valori negative ori poate fi zero: xi=oarecare.
Substituţia este xi = xi+ − xi− , xi+ ≥ 0, xi− ≥ 0 .

20
Variabilele nepozitive sau variabilele cu semn oarecare
pot apare în formularea problemelor duale, ataşate problemelor
primale şi au interpretări economice (preţuri umbră). Variabilele
cu semn oarecare pot apare mai ales în programarea
multicriterială, în care variabilele deviaţionale de la obiectivele
propuse care au fost introduse în modelarea obiectivelor, pot lua
valori pozitive, negative sau nule.
De exemplu, pentru problema de PL:
f ( x ) = 2 x1 + x2 + 3x3 = max ,
 x1 + 2 x2 + x3 = 15

 x1 − 2 x2 + 2 x3 = 18
x1 ≤ 0 , x2 ≥ 0 , x3 = oarecare
 x1 = − x1'
se vor efectua substituţiile  + −
x1' ≥ 0 , x3+ ≥ 0 , x3− ≥ 0 iar
 x3 = x3 − x3
forma standard este:
f ( x ) = −2 x1' + x2 + 3x3+ − 3x3− = max
− x1 + 2 x2 + x3 − x3 = 15
' + −

 ' + −
− x1 − 2 x2 + 2 x3 − 2 x3 = 18
x1' ≥ 0 , x2 ≥ 0 , x3+ ≥ 0 , x3− ≥ 0 .
În cazul general, forma standard a unei probleme de PL se
poate prezenta în una din formele:
a) FS dezvoltată
f ( x ) = c1 x1 + c2 x2 + ... + cn xn = optim ( max sau min )
a11 x1 + a12 x2 + ... + a1n xn = b1

a21 x1 + a22 x2 + ... + a2 n xn = b2


am1 x1 + am 2 x2 + ... + amn xn = bm
b) FS matriceală
f ( x ) = C ⋅ X = optim

21
A⋅ X = B
X ≥0
c) FS vectorială
f ( x ) = C ⋅ X = optim
x1 P1 + x2 P2 + ... + xn Pn = B
X ≥0
unde A ∈ M mn este matricea coeficienţilor din restricţii, C ∈ M 1n
este matricea linie a coeficienţilor din FO, X ∈ M n1 este matricea
coloană a necunoscutelor iar Pi ∈ M m1 sunt matricele ce au drept
componente coloanele matricei A.
Se observă că restricţiile reprezintă un sistem de m ecuaţii
cu n necunoscute.
Se consideră îndeplinirea următoarelor două ipoteze:
1. numărul m al restricţiilor este strict mai mic decât
numărul n al necunoscutelor;
2. rangul matricei A este m.
Prima ipoteză ne arată că sistemul de ecuaţii ce reprezintă
restricţiile este compatibil nedeterminat, caz în care căutarea
soluţiei optime a problemei are sens.
Ipoteza a 2-a arată că cele m restricţii sunt liniar
independente. În caz contrar se renunţă la ecuaţiile care sunt
combinaţii liniare ale celorlalte.

SOLUŢII ALE UNEI PROBLEME DE PL

Pentru aflarea soluţiei optime a unei probleme de PL,


trebuie să fie satisfăcute, în primul rând, restricţiile şi condiţiile
de nenegativitate.
Restricţiile formează un sistem liniar de m ecuaţii cu n
necunoscute, deci apar 3 situaţii:

22
• Sistemul este incompatibil, deci problema de PL
nu are soluţie;
• Sistemul este compatibil unic determinat iar
componentele soluţiei unice sunt nenegative. În
acest caz aceasta este şi soluţia optimă;
• Sistemul satisface ipotezele 1 şi 2 ( m < n şi
rang A = m) deci este compatibil nedeterminat; în
această infinitate de soluţii trebuie aleasă soluţia
optimă, dacă există.
În rezolvarea problemei de PL prin metoda grafică s-a
văzut că există trei tipuri de soluţii.
1. Soluţii admisibile (SA)
Soluţia admisibilă a unei probleme de PL este un vector
x = ( x1 x2 x3 … xn ) care satisface toate restricţiile şi condiţiile de
T

nenegativitate.
Datorită ipotezelor 1 şi 2, sistemul restricţiilor este
compatibil nedeterminat, deci mulţimea soluţiilor este, în
general, infinită.
Este imposibil să se calculeze valoarea funcţiei obiectiv în
toate aceste soluţii admisibile pentru a o alege pe aceea care
conferă funcţiei obiectiv valoarea optimă cerută, deci soluţia
optimă se va căuta într-o submulţime a SA, care să aibă un
număr finit de elemente.
2. Soluţie admisibilă de bază (SAB)
Aceasta este o soluţie care satisface următoarele trei
condiţii:
a) Este soluţie admisibilă.
b) Are cel mult m componente strict pozitive iar celelalte
n-m sunt egale cu zero.
c) Vectorii Pi, ce au drept componente coloane ale matricei
A, care corespund celor m componente nenegative (de la
condiţia b) sunt liniar independenţi.

23
În algoritmul simplex aceşti vectori Pi sunt vectorii bazei
1 0 0
     
0 1 0
canonice E = ( e1 e2 … em ) adică e1 =  .  , e2 =  .  , ..., em =  .  .
     
. . .
0 0 1
     
Din acest motiv variabilele nenegative din SAB se mai
numesc variabile bazice.
Mulţimea SAB are cel mult Cnm elemente.
Dacă o SAB are exact m componente strict pozitive, ea se
numeşte nedegenerată iar dacă are mai puţin de m componente
strict pozitive, ea este degenerată.
3. Soluţie optimă
Aceasta este o soluţie admisibilă care conferă funcţiei
obiectiv valoarea optimă cerută.
În algoritmul simplex soluţia optimă este căutată în
mulţimea SAB.
Exemplu
Fie problema de PL
f ( x ) = 6 x1 + 4 x2 = max
 x1 + 3 x2 ≤ 15

4 x1 + 2 x2 ≤ 20
x ≤ 4
 1
Se cer:
1) Să se aducă problema la forma standard;
2) Să se afle cel puţin două SAB.
Rezolvare:
1) Adunăm în membrul stâng al fiecărei restricţii câte o
variabilă de compensare
f ( x ) = 6 x1 + 4 x2 = max

24
 x1 + 3 x2 + x3 = 15

4 x1 + 2 x2 + x4 = 20
x + x = 4
 1 5
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0 .
Sistemul de 3 ecuaţii cu 5 necunoscute al restricţiilor este
compatibil nedeterminat deoarece matricea coeficienţilor
restricţiilor
1 3 1 0 0
 
A =  4 2 0 1 0  are rang A=3
1 0 0 0 1
 
unde
1 0 0
∆ pr = 0 1 0 = 1 ≠ 0
0 0 1
Notăm
1  3 1 0 0
         
P1 =  4  ; P2 =  2  ; P3 = e1 =  0  ; P4 = e2 =  1  ; P5 = e3 =  0 
1     0 1
  0 0    
Necunoscutele x3, x4, x5 devin necunoscute principale iar
x1 şi x2 sunt necunoscute secundare.
Soluţia sistemului de ecuaţii este:
 x1 = α ∈ R
x = β ∈ R
 2
 x3 = 15 − x1 − 3 x2
 x = 20 − 4 x − 2 x
 4 1 2

 x5 = 4 − x1
Deci există o infinate de soluţii. Cum α , β ∈ R putem lua
α = 0 şi β = 0 şi obţinem o SAB

25
 x1 = 0 
 
 x2 = 0 
x0 =  x3 = 15 
 
 x4 = 20 
 x =4 
 5 
care verifică toate cele 3 condiţii din definiţia SAB.
a) Verifică restricţiile şi are componente nenegative adică
este admisibilă;
b) Are 3 componente strict pozitive şi 5-3=2 egale cu zero
deci este nedegenerată;
c) Vectorii P3, P4 şi P5, care corespund componentelor
nenule ale soluţiei x3, x4 şi x5 sunt liniar independenţi, deoarece
ei formează baza canonică (au componente egale cu cele din
coloanele matricei unitate).
2) Pentru a găsi altă SAB se vor folosi transformările
elementare într-un sistem de ecuaţii, pentru a obţine
coloanele matricei unitate pe alte locuri, în loc de 3, 4
şi 5.
Aceste transformări se pot efectua fie în sistemul de
ecuaţii, fie în matricea lărgită şi avem:
• Se înmulţeşte o ecuaţie (linie din matrice) cu un
număr nenul;
• Se înmulţeşte o ecuaţie (linie) cu un număr nenul şi
se adună rezultatul la o altă ecuaţie (linie).
Pentru exemplificare, se va obţine coloana (1 0 0)T pentru
variabila x2.
1
Înmulţim prima ecuaţie cu pentru a obţine coeficientul
3
1 pentru x2:

26
1 1
3 x1 + x2 + x3 = 5
3

4 x1 + 2 x2 + x4 = 20
x + x = 4
 1 5

Înmulţim prima linie cu (-2) şi adunăm rezultatul la linia a 2-a:
1 1
 3 x1 + x2 + 3 x3 = 5

10 2
 x1 − x3 + x4 = 10
3 3
 x1 + x5 = 4


Soluţia sistemului, cu variabilele bazice x2, x4, x5 iar cele
secundare x1 = 0 şi x3 = 0 este:
x1 = 0 x2 = 5 x3 = 0 x4 = 10 x5 = 4
şi este tot SAB nedegenerată.
Matriceal, putem scrie:
1 1 
 1 0 0 5
1 3 1 0 0 15  3 3
   
4 2 0 1 0 20  ∼  4 2 0 1 0 20  ∼
1 0 0 0 1 4   1 0 0 0 1 4 
  
 
1 1 
 3 1 0 0 5
3
 
10 2
∼ 0 − 1 0 10 
 3 3 
 
1 0 0 0 1 4
 
 
Se pot obţine şi alte SAB, prin folosirea celor două
transformări elementare.

27
ALGORITMUL SIMPLEX

Algoritmul simplex (primal) a fost elaborat şi aplicat de


G. B. Dantzig în 1947 ca metodă de rezolvare a unor probleme
de optimizare.
Metoda simplex cercetează valorile funcţiei obiectiv în
mulţimea SAB şi permite trecerea de la o soluţie la o alta „mai
bună” fără a fi necesară cercetarea tuturor SAB şi este un proces
iterativ.
Etapele algoritmului simplex se pot stabili atăt pentru
probleme de maxim cât şi pentru probleme de minim, deşi se
poate înlocui aflarea lui maxf cu aflarea lui min(-f) deoarece:
max f = − min ( − f )
şi
min f = − max ( − f ) .
La probleme de maxim, dacă x0 şi x’ sunt două SAB,
soluţia x’ este mai bună decât x0 dacă f ( x ') ≥ f ( x0 ) adică
valoarea funcţiei obiectiv creşte.
Pe lângă faptul că prin algoritmul simplex se determină
atât soluţia optimă cât şi valoarea optimă a funcţiei obiectiv,
rezultă şi cazurile în care nu există soluţie optimă sau valoarea
optimă a FO nu este finită.

ETAPELE ALGORITMULUI SIMPLEX PENTRU


PROBLEME DE MAXIM

După aducerea la forma standard a problemei de PL, se


aplică algoritmul simplex cu următoarele etape:
Etapa I. Se determină o SAB de pornire. Apar două situaţii:

28
• Matricea A a coeficienţilor variabilelor din
restricţii conţine toate coloanele matricei unitate de
ordinul m, I m
În acest caz, SAB se află din restricţii prin anularea
variabilelor nebazice (secundare).
• Matricea A nu conţine toate coloanele matricei Im.
În acest caz se foloseşte metoda bazei artificiale.

Etapa II. Se alcătuieşte primul tabel simplex. Capul de tabel este:

c1 c2 . . . cn
Baza CB P0
P1 P2 . . . Pn

zk-ck
• Pe coloana 1 (baza) se scriu vectorii bazei
canonice, în ordinea apariţiei lor în bază deci:
primul este vectorul care are componentele
(1 0 0 … 0 ) , al doilea este cel de componente
T

( 0 1 0 … 0 ) , ... iar ultimul de pe coloana 1, are


T

componentele ( 0 … 0 0 1) .
T

• Pe coloana a doua, CB, se scriu coeficienţii din


funcţia obiectiv, ci, care corespund variabilelor
bazice xi de pe prima coloană.
• Pe coloana a 3-a, P0 se scriu componentele soluţiei
de pornire X0.
Pe prima linie din tabel se scriu coeficienţii c1, c2, ... cn
din funcţia obiectiv a tuturor variabilelor.

29
• Pe coloanele P1, P2, ..., Pn se scriu respectiv
coloanele matricei A a coeficienţilor variabilelor
din restricţii.
• Pe ultima linie din primul tabel simplex se
calculează diferenţele zk − ck din relaţia:
zk − ck = CB ⋅ Pk − ck
Practic se procedează astfel: se înmulţesc elementele
coloanei CB, pe rând cu elementele coloanelor P1, ..., Pn sumând
rezultatele şi apoi se scade coeficientul ck din FO ce se află
deasupra coloanei Pk, k = 1, n .
De exemplu z1 − c1 = CB ⋅ P1 − c1 , z2 − c2 = CB ⋅ P2 − c2 ,etc.
Etapa III. Se aplică criteriul de optimalitate:
a) Toate diferenţele zk − ck ≥ 0 , soluţia este optimă şi stop.
b) Există şi diferenţe zk − ck < 0 , soluţia de pe coloana P0 nu
este optimă şi trecem la
Etapa IV. Se va efectua o schimbare de bază. Criteriul de intrare
în bază pentru probleme de maxim este
min ( zk − ck ) = zh − ch ( zk − ck < 0 )
k

adică intră în bază vectorul Ph căruia îi corespunde cea mai mică


valoare negativă pentru zk − ck .
Acest vector Ph intră în bază în locul unuia dintre vectorii
Pi aflaţi pe coloana 1 (baza), deci unul dintre aceşti vectori va
ieşi din bază şi trecem la etapa următoare:
Etapa V. Aplicarea criteriul de ieşire din bază
Apar două situaţii:
a) Vectorul Ph, care a intrat în bază are toate componentele
(de pe coloana sa) nepozitive, adică aih ≤ 0 . În acest caz
problema de PL nu are soluţie STOP.
b) Vectorul Ph care a intrat în bază are şi componente strict
pozitive. În acest caz, aplicăm criteriul de ieşire din bază:
Iese din bază vectorul Pj pentru care avem:

30
bi bj
min
i
=
aih a jh
(a
ij > 0)

adică se alege valoarea minimă a raportului dintre componentele


soluţiei (aflate pe coloana P0) şi componentele strict pozitive ale
vectorului Ph care a intrat în bază.
Elementul aflat la intersecţia coloanei Ph cu linia
vectorului Pj care a ieşit din bază, se numeşte pivot.
Etapa VI. După aplicarea etapelor 4 şi 5 se va obţine un nou
tabel simplex.
După introducerea pe coloana „baza” a vectorului Ph în
locul lui Pj, ceea ce înseamnă că vectorul Ph va deveni un vector
din baza canonică, se înlocuieşte pe coloana CB coeficientul Ch
din funcţia obiectiv.
Apoi se procedează astfel:
Regula 1 Se obţine mai întâi linia vectorului Ph, care a
intrat în bază, prin împărţirea la pivot a liniei care a corespuns lui
Pj. Astfel în noul tabel simplex va apare cifra 1 în locul
pivotului.
Celelalte componente ale vectorului Ph trebuie să fie zero,
deoarece acesta are drept componente una din coloanele matricei
unitate.
Pentru a obţine celelalte linii din al doilea tabel, se aplică
regula 2:
Regula 2 Linia obţinută prin regula 1 se înmulţeşte
convenabil iar rezultatul se adună pe rând, la toate liniile din
tabelul precedend astfel că pe toată coloana pivotului se obţine
cifra zero. Pe coloana lui P0 se va obţine, în al doilea tabel, o
nouă soluţie admisibilă de bază, având componentele nenegative.
După calcularea liniei zk − ck în al doilea tabel se repetă
etapele, începând cu etapa 3.
După un număr finit de iteraţii se va determina soluţia
optimă, dacă există; se specifică şi faptul că nu există soluţie
optimă ori pot exista mai multe soluţii optime.

31
Valoarea funcţiei obiectiv se calculează din CB ⋅ P0 şi
odată cu fiecare nouă soluţie găsită ea creşte.

Exemplu
O firmă produce trei produse X, Y, Z folosind trei resurse
R1 un material, R2 ore de prelucrare şi R3 alt material.
Consumurile specifice, cantităţile disponibile din resurse şi
profiturile unitare sunt date în Tabelul 3.
Tabelul 3
Consumuri specifice
Resurse Disponibil
X Y Y
R1 6 4 40
R2 2 1 1 50
R3 8 0 10 60
Profit unitar 80 40 120
Se cere planul de producţie zilnic, pentru cele trei
produse, astfel încât profitul total să fie maxim.
Care este utilizarea resurselor?
Soluţia
• Formăm modelul matematic.
Introducem variabilele de decizie:
x1=numărul de produse X ce se vor fabrica
x2=numărul de produse Y ce se vor fabrica
x3=numărul de produse Z ce se vor fabrica
Modelul matematic este:
f ( x ) = 80 x1 + 40 x2 + 120 x3 = max
6 x1 + 4 x2 ≤ 40

2 x1 + x2 + x3 ≤ 50
8 x + 10 x ≤ 60
 1 3

• Se aduce la forma standard:


f ( x ) = 80 x1 + 40 x2 + 120 x3 = max

32
6 x1 + 4 x2 + x4 = 40

2 x1 + x2 + x3 + x5 = 50 xi ≥ 0 i = 1, 6
8 x + 10 x + x = 60
 1 3 6

• Se scrie matricea coeficienţilor restricţiilor şi


vectorii Pi
 6 4 0 1 0 0
 
A =  2 1 1 0 1 0
 8 0 10 0 0 1 
 
P1 P2 P3 P4 P5 P6
Etapa I:
Se observă că vectorii bazei sunt P4 P5 P6 deci
necunoscutele bazice (principale) sunt x4, x5 şi x6. Soluţia
admisibilă de bază de pornire este X 0 = ( 0 0 0 40 50 60 )
T

aflată prin anularea necunoscutelor secundare.


Etapa II: Se construieşte primul tabel simplex. Diferenţele
zk − ck se calculează astfel:
z1 − c1 = cB ⋅ P1 − c1 = 0 ⋅ 6 + 0 ⋅ 2 + 0 ⋅ 8 − 80 = −80 ,
z2 − c2 = cB ⋅ P2 − c2 = 0 ⋅ 4 + 0 ⋅ 1 + 0 ⋅ 0 − 40 = −40 , etc.
80 ⇓ 40 ↓ 120 0 0 0 Etapa III: Soluţia nu
Baza CB P0
P1 P2 P3 P4 P5 P6 este optimă deoarece
P4 0 40 6 4 0 1 0 0 există valori negative pe
P5 0 50 2 1 1 0 1 0
linia zk − ck
← P6 0 60 8 0 10 0 0 1
Etapa IV: intră P3
zk-ck 0 -80 -40 -120 0 0 0
min ( −80, −40, −120 ) = −120
⇐ P4 0 40 6 4 0 1 0 0 Etapa V: iese
P5 0 44 12 10 1 0 0 1 −1 10  50 60 
min  ,  = 6 adică
 1 10 
P3 120 6 8 10 0 1 0 0 1 10
vectorul P6
zk-ck 720 16 -40 0 0 0 12
Etapa VI:

33
P2 40 10 3 2 1 0 14 0 0 pt. linia
P5 0 34 −3 10 0 0 − 1 4 1 −1 10 pivotului;
• pt. celelalte linii
P3 120 6 8 10 0 1 0 0 1 10
se aplică regula 2
zk-ck 1120 76 0 0 10 0 12

Este satisfăcut criteriul de optimalitate, toate diferenţele


zk − ck ≥ 0 . Soluţia optimă se citeşte pe coloana P0: x1 = 0 , x2 = 10 ,
x3 = 6 , x4 = 0 , x5 = 34 , x6 = 0 deci se vor fabrica: 0 produse X, 10
produse Y, 6 produse Z, iar profitul maxim este 1120 um.
Variabilele de compensare arată cum s-au folosit resursele:
x4 = 0 arată că resursa 1, primul material, a fost utilizat în
întregime ( 6 ⋅ 0 + 4 ⋅10 = 40 )
x5 = 34 arată că au rămas nefolosite 34 ore pe zi
( 2 ⋅ 0 + 10 + 6 = 16 < 50 cu 34 ore )
x6 = 0 arată că resursa a 3-a, al doilea material, a fost
utilizat integral ( 8 ⋅ 0 + 0 + 10 ⋅ 6 = 60 )

ALGORITMUL SIMPLEX PENTRU PROBLEME DE


MINIM

Deşi avem min f = − max ( − f ) este mai comod să se


specifice etapele algoritmului pentru probleme de minim.
Acestea sunt identice cu etapele pentru probleme de
maxim cu următoarele două excepţii:
Etapa III:Criteriul de optimalitate este:
a) Dacă toate diferenţele zk − ck ≤ 0 atunci soluţia este
optimă;
b) Dacă există şi diferenţe zk − ck > 0 , soluţia nu este optimă
şi trecem la etapa a IV-a;

34
Etapa IV: La probleme de minim se schimbă criteriul de intrare
în bază.
Intră în bază vectorul Ph căruia îi corespunde cea mai
mare valoare pozitivă pe linia zk − ck :
max ( zk − ck ) = zh − ch ( zk − ck > 0 )
k

Exemplu
Să se rezolve problema de programare liniară:
f ( x ) = 4 x1 − 2 x2 − 8 x3 + 12 x4 + 2 x5 = min
3 x1 + 2 x3 + x4 = 4

2 x1 + x2 − x3 = 2
− x + x = 1
 1 5
xi ≥ 0 i = 1,5

Soluţie
Matricea coeficienţilor restricţiilor este
 3 0 2 1 0
 
A =  2 1 −1 0 0 
 −1 0 0 0 1 
 
P1 P2 P3 P4 P5
Baza este ( P4 , P2 , P5 ) iar SAB de pornire se obţine anulând
necunoscutele secundare x1 = 0 , x3 = 0 deci x0 = ( 0 2 0 4 1) .
T

Din următorul tabel simplex se obţine soluţia optimă:

4 -2 -8 12 2
Baza CB P0
P1 P2 P3 P4 P5
P4 12 4 3 0 2 1 0
P2 -2 2 2 1 -1 0 0
P5 2 1 -1 0 0 0 1
zk-ck 26 0 34 0 0
3 1
P3 -8 2 0 1 0
2 2

35
7 1
P2 -2 4 1 0 0
2 2
P5 2 1 -1 0 0 0 1
zk-ck -22 -25 0 0 -17 0

Soluţia X * = ( x1 = 0 x2 = 4 x3 = 2 x4 = 0 x5 = 1) , min f = −22 este


optimă deoarece este satisfăcut criteriul de optimalitate, toate
diferenţele zk − ck ≤ 0 .

BAZA ARTIFICIALĂ. METODA PENALIZĂRILOR

Pentru determinarea soluţiei de pornire, după aducerea la


forma standard, apar două situaţii:
• Matricea A conţine toate coloanele matricei unitate
Im; SAB de pornire se află anulând necunoscutele
secundare (nebazice);
• Matricea A nu conţine toate coloanele lui Im. În acest
caz se va crea o bază artificială canonică.
Se adaugă, alături de matricea A, coloanele din matricea
Im care lipseau; aceste coloane din matricea unitate sunt
componente ale unor vectori artificiali iar baza canonică formată
şi cu ajutorul vectorilor artificiali este o bază artificială.
Adăugarea vectorilor artificiali presupune adunarea unor
noi necunoscute, numite necunoscute artificiale în relaţiile ce
reprezintă restricţiile.
Pentru aflarea soluţiei optime a problemei iniţiale, se
consideră o nouă problemă, numită modificată, în care s-a
schimbat şi expresia funcţiei obiectiv, folosind metoda
penalizărilor sau metoda celor M mari, unde M este un număr
foarte mare, numit factor de penalizare.

36
METODA PENALIZĂRII PENTRU PROBLEME DE MINIM

După aducerea la forma standard, dacă în matricea A


lipsesc unele coloane din Im, se procedează astfel:
Se obţine problema modificată prin:
• Se adaugă la matricea A, coloanele din matricea
unitate care lipseau, pentru obţinerea bazei artificiale.
Aceasta înseamnă că se adună câte o necunoscută
artificială numai în restricţiile indicate de cifra 1 ce
corespund vectorilor artificiali.
• În funcţia obiectiv se adună produsul dintre vectorul
de penalizare M şi suma variabilelor artificiale
introduse.
Exemplu
O firmă fabrică 3 piese de mobilier: canapele, birouri şi
fotolii costurile de producţie pentru fiecare din ele fiind 3, 2
respectiv 2 um. În fabricarea lor se folosesc 2 resurse, lemn şi
material de tapiţerie ce se află pe stoc. Rentru a-şi epuiza
stocurile trebuie folosite cel puţin 80 de unităţi de lemn şi cel
puţin 60 de unităţi de material de tapiţerie. Consumurile
specifice şi costurile de producţie sunt date în Tabelul 4.
Tabelul 4
Consumuri specifice
Resurse Disponibil
C B F
R1(lemn) 4 2 1 80
R2(material tapiţerie) 2 - 1 60
Cost de producţie 3 2 2

Modelul matematic este următorul:


f ( x ) = 3 x1 + 2 x2 + 2 x3 = min
 4 x1 + 2 x2 + x3 ≥ 80

 2 x1 + x3 ≥ 60
xi ≥ 0 i = 1, 2,3

37
Se aduce la forma standard:
f ( x ) = 3 x1 + 2 x2 + 2 x3 = min
 4 x1 + 2 x2 + x3 − x4 = 80

 2 x1 + x3 − x5 = 60
xi ≥ 0 i = 1,5
Se scrie A matricea coeficiemţilor din restricţii:
 4 2 1 −1 0 
A= 
 2 0 1 0 −1
Deoarece aceasta nu conţine nici o coloană din I2, se
adaugă doi vectori artificiali ce vor forma baza artificială:
 4 2 1 −1 0  1 0 
A=  
 2 0 1 0 −1 0 1 
P1 P2 P3 P4 P5 P6a P7a
Problema modificată este:
f ( x ) = 3 x1 + 2 x2 + 2 x3 + M ( x6a + x7a ) = MIN
 4 x1 + 2 x2 + x3 − x4 + x6a = 80

 2 x1 + x3 − x5 + x7 = 60
a

xi ≥ 0 i=1,5 , x6a ≥ 0 x 7a ≥ 0

METODA PENALIZĂRII PENTRU PROBLEME DE


MAXIM

După aducerea la forma standard, matricea A a


coeficienţilor din restricţii nu conţine toate coloanele din Im.
Pentru obţinerea problemei modificate în cazul acesta, avem:
• Se adaugă coloanele care lipseau din matricea unitate,
la matricea A, pentru formarea bazei unitare. Aceasta
presupune adunarea unor necunoscute artificiale
numai în ecuaţiile indicate de cifra 1 din vectorii
artificiali.

38
• În funcţia obiectiv se scade produsul dintre factorul de
penalizare M şi suma variabilelor artificiale introduse.
Exemplu
Problema iniţială de PL este:
f ( x ) = 12 x1 + 16 x2 = max
2 x1 + 3 x2 ≤ 48000

 x2 ≥ 10000 x1 ≥ 0, x2 ≥ 0
 x ≤ 6000
 1
Soluţie
Se aduce problema la forma standard:
f ( x ) = 12 x1 + 16 x2 = max
 2 x1 + 3 x2 + x3 = 48000

 x2 − x4 = 10000 xi ≥ 0 i = 1,5
 x + x = 6000
 1 5
Matricea A nu conţine coloana ( 0 1 0 ) şi de aceea se
T

introduce vectorul P6a cu aceste componente:


2 3 1 0 0  0 
  
A = 0 1 0 −1 0  1 
1 0 0 0 1  
  0 
P1 P2 P3 P4 P5 P6a
Baza este ( P3 P6a P5 ) iar forma modificată a problemei
este:
f ( x ) = 12 x1 + 16 x2 − Mx6a = MAX
 2 x1 + 3 x2 + x3 = 48000

 x2 − x4 + x6 = 10000
a

 x + x = 6000
 1 5
xi ≥ 0 i = 1,5, x6a ≥ 0
În continuare se va aplica algoritmul simplex problemei
modificate. Se poate lucra cu M ori i se poate da lui M o valoare

39
numerică foarte mare. Unele programe pe calculator consideră
M = 900000000 .
Poate apare una din următoarele trei situaţii în rezolvarea
problemei modificate care să conducă la aflarea soluţiei
problemei originale, dacă ea există.
1) Toţi vectorii artificiali au fost eliminaţi din bază. În
acest caz s-a obţinut o SAB de pornire pentru
problema iniţială; se continuă algoritmul simplex şi se
determină, dacă există, soluţia optimă a problemei
iniţiale.
2) Nu toţi vectorii artificiali au ieşit din bază, dar
necunoscutele artificiale care corespund vectorilor
artificiali rămaşi în bază sunt egale cu zero. Rezultă o
soluţie de pornire degenerată pentru problema iniţială
şi se continuă algoritmul simplex.
3) A rămas în bază măcar un vector artificial, căruia îi
corespunde pe coloana lui P0 o variabilă artificială
strict pozitivă şi sunt îndeplinite condiţiile de
optimalitate. În această situaţie problema iniţială nu
are soluţie.

Exemplu

Se aplică algoritmul simplex la problema de maxim


precedentă, adusă în forma standard:
f ( x ) = 12 x1 + 16 x2 − Mx6a = MAX
 2 x1 + 3 x2 + x3 = 48000

 x2 − x4 + x6 = 10000 xi ≥ 0 i = 1,5, x6a ≥ 0
a

 x + x = 6000
 1 5

12 16 0 0 0 -M
Bază CB P0
⇓↓ P1 ↓ P2 P3 ⇓ P4 P5 P6a
P3 0 48000 2 3 1 0 0 0

40
← P6a -M 10000 0 1 0 -1 0 1
P5 0 6000 1 0 0 0 1 0
zk-ck -12 -M-16 0 M 0 0
⇐ P3 0 18000 2 0 1 3 0 -3
P2 16 10000 0 1 0 -1 0 1
P5 0 6000 1 0 0 0 1 0
zk-ck -12 0 0 -16 0 16+M
P4 0 6000 23 0 13 1 0 -1
P2 16 16000 23 1 13 0 0 0

P5 0 6000 1 0 0 0 1 0

zk-ck −4 3 0 16 3 0 0 M
1 2
P4 0 2000 0 0 1 − -1
3 3
1 2
P2 16 12000 0 1 0 − 0
3 3
P1 12 6000 1 0 0 0 1 0
16 4
zk-ck 264000 0 0 0 M
3 3

În prima linie, zk-ck, avem z2 − c2 = − M − 16 care este cea


mai mică valoare negativă deci P2 intră în bază.
48000 10000 
Iese P6 deoarece min  ,  = 10000 . În al doilea
 3 1 
tabel s-a obţinut o soluţie de pornire pentru problema iniţială,
care însă, nu este soluţia optimă: x1 = 0 , x2 = 10000 , x3 = 18000 ,
x4 = 0 , x5 = 6000 iar max f = 16000 .
Soluţia optimă se determină din ultimul tabel simplex:
x1 = 6000 , x2 = 12000 , x3 = 0 , x4 = 2000 , x5 = 0
iar max f = 264000 = 12 ⋅ 6000 + 16 ⋅ 12000

41
Exemplu
Se aplică algoritmul simplex pentru problema precedentă
de minim:

32 2 0 0 M M
Baza CB P0
P2
↓ P1 P3 ⇓ P4 P5 Pa
6 P7a
← P6 M 80
a
4 2 1 -1 0 1 0
P7a
M 60 2 0 1 0 -1 0 1
zk-ck 6M-3 2M-2 2M-2 -M -M 0 0
1 1 1 1
P1 3 20 1 − 0 0
2 4 4 4
1 1 1
⇐ P7a M 20 0 -1 -1 − 1
2 2 2
1 M 5 M 3 M 3
zk-ck 0 -M- - - -M - + 0
2 2 2 2 4 2 4
1 1 1
P1 3 30 1 0 0 − 0
2 2 2
P4 0 40 0 -2 1 1 -2 -1 2
1 3 3
zk-ck 90 0 -2 − 0 - -M -M+
2 2 2

Soluţia optimă este


x1 = 30 , x2 = 0 , x3 = 0 , x4 = 40 , x5 = 0 iar max f = 90 .
Obesrvaţie
Un alt mod de precizare a metodei penalizării este:
 Forma modificată se obţine prin:
• În fiecare restricţie care nu conţine o variabilă
izolată (care nu mai apare în celelalte restricţii)
care are coeficientul +1, se adaugă o nouă
variabilă, numită variabilă artificială;
• Variabilele artificiale se introduc în funcţia
obiectiv cu coeficientul:
+M dacă funcţia obiectiv este de minim;

42
-M dacă funcţia obiectiv este de maxim.
 Dacă după rezolvare s-au obţinut condiţiile de
optim şi cel puţin o variabilă artificială are în
soluţia optimă o valoare nenulă, atunci problema
iniţială nu are soluţie.

RESURSE RARE. PREŢ UMBRĂ

Programarea liniară se ocupă cu utilizarea optimă a


resurselor.
Resursele consumate în întregime în procesul optim de
producţie se mai numesc resurse rare, deoarece lipsa ori
neajunsul lor poate limita producţia, deci şi profitul.
În cazul refacerii structurilorori planificării orelor de
producţie, este necesar să se cunoască ce resurse sunt mai
valoroase în sensul că prin suplimentarea lor se ajunge la
creşterea valorii maxime a profitului.
Informaţii asupra acestei probleme se obţin cu ajutorul
preţurilor umbră, ataşate fiecărei resurse.
Fiecărei probleme de programare liniară, numită
problemă primală i se poate ataşa o altă problemă, numită
problemă duală, după anumite reguli.
Problema duală se construieşte, tot ca model de
programare liniară, cu ajutorul datelor din problema primală.
Variabilele duale optime se mai numesc preţuri umbră.
Se ştie că fiecare restricţie din problema primală se referă
la una din resurse ori condiţii de producţie, de vânzare etc.
La fiecare restricţie se ataşează câte o variabilă duală, deci
preţurile umbră (variabilele duale optime) se referă tot la resurse
ca şi restricţiile.
Avem următoarele interpretări
a) Preţul umbră (dual) ataşat unei resurse (restricţii) este
cantitatea cu care se va modifica (creşte sau scade) valoarea

43
optimă a funcţiei obiectiv, dacă se va creşte cu o singură unitate
unitate cantitatea disponibilă din acea resursă (adică termenul
liber din restricţie)
b) Preţul umbră este suma care poate fi plătită în plus faţă de
costul de achiziţie iniţial, pentru cumpărarea unei noi unităţi
dintr-o resursă rară, astfel ca, prin suplimentarea cantităţii
disponibile din acea resursă, beneficiul total să nu scadă, ori
costul total să nu crească.
Aceste interpretări au loc în două condiţii:
1) Soluţia optimă a problemei să fie nedegenerată
2) Intervalele în care sunt valabile interpretările a) şi b)
ale preţurilor umbră sunt determinate de analiza
senzitivă pentru pentru termenii liberi din restricţii.
Se întâlnesc, deci, următoarele tipuri de variabile
I. Variabile de decizie
Acestea determină ceea ce se cere în problemă, adică vor
determina decizia ce va fi luată.
Cu ajutorul lor se elaboreză modelul matematic. Soluţia
optimă se citeşte în ultimul tabel simplex, pe coloana lui P0, când
sunt satisfăcute condiţiile de optimalitate.
O variabilă x j > 0 arată că activitatea j căreia i-a fost
ataşată variabila de decizie este inclusă în program deci se
efectuează ca activitate eficientă.
Dacă x j = 0 atunci activitatea j nu se efectuează ea fiind
nerentabilă.
II. Variabile de compensare, echilibrare sau
ecart
Acestea se introduc pentru aducerea la forma standard, în
restricţii.
Valorile lor optime se citesc odată cu cele ale variabilelor
de decizie, pe coloana lui P0.
• Dacă variabila de compensare din restricţia j,
ataşată resursei Rj, este nulă, atunci restricţia j este

44
satisfăcută cu semnul „=”, resursa Rj a fost
consumată în întregime, deci este o resursă rară.
În general, preţul umbră ataşat unei resurse rare este
nenul.
• Dacă variabila de compensare dintr-o restricţie are,
în soluţia optimă, valoare strict pozitivă atunci
restricţia este satisfăcută ca inegalitate.
 În cazul în care aveam „≤”, variabila de
compensare a fost adunată şi valoarea ei arată cât
din membrul drept a rămas neutilizat.
 În cazul în care aveam „≥”, variabila de
compensare se mai numeşte surplus sau variabilă
de exces, deoarece ea arată cât s-a realizat în plus
faţă de membrul drept.
 Dacă variabila de compensare este strict pozitivă
atunci preţul umbră ataşat resursei este nul deci
prin suplimentarea acelei resurse, valoarea optimă
a funcţiei obiectiv nu se modifică.
III. Variabile duale optime sau preţurile
umbră
Se ataşează restricţiilor deci dau indicaţii asupra
resurselor, conform interpretărilor a) şi b).
Preţurile umbră se citesc pe ultima linie di tabelul
simplex, adică pe linia lui zk-ck
 În dreptul coloanelor variabilelor de compensare,
dacă vectorii corespunzători formau baza canonică,
în ordinea vectorilor din matricea unitate
 Pe coloanele variabilelor artificiale, tot ordinea
coloanelor din matricea unitate iniţială, făcând
M=0.
 În dreptul coloanelor variabilelor de compensare
scăzute pentru aducerea la forma standard, dar
acestei citiri i se va schimba semnul.

45
Observaţie pentru variabilele de decizie
Tot pe linia lui zk-ck din ultimul tabel simplex se citeşte şi
costul redus, în dreptul coloanelor ce corespund variabilelor de
decizie.
Costul redus pentru o variabilă de decizie care are
valoarea zero în soluţia optimă, (ceea ce indică faptul că
activitatea pe care o reprezenta variabila de decizie nu se
efectuează), este cantitatea necesară pentru a creşte (sau micşora)
coeficientul acelei variabile, în funcţia obiectiv, astfel ca după
modificarea acelui coeficient, variabila să aibe valoare strict
pozitivă în noua soluţie optimă.
Dacă variabila de decizie are valoare strict pozitivă în
soluţia optimă, costul redus este nul.
Costul redus pentru o activitate nerealizată mai reprezintă
cantitatea cu care descreşte profitul (creşte costul) dacă o
activitate care nu era folosită este forţată să fie utilizată; de
exemplu dacă x1 = 0 , şi se impune ca restricţie x1 ≥ 1 , profitul va
scădea exact cu valoarea costului redus a variabilei x1.
Exemplu
O fabrică de mobilă produce birouri şi dulapuri, folosind
timpul de asamblare şi lemn.
Consumurile specifice, preţurile de vânzare şi cantităţile
disponibile din resurse sunt date în tabel:
Consum pentru um
Resurse Disponibil
Birou Dulap
Asamblare (min) 10 8 600 min
Lemn (kg) 6 12 600 kg
Preţ de vânzare (um) 15 9
a) Dacă fabrica doreşte să contracteze cel puţin 40 de
birouri, care va fi planul de producţie, preţul maxim de vânzare?
Cum sunt utilizare resursele? Care dintre resurse ar trebui
suplimentată dacă se urmăreşte fabricarea unui număr mai mare
de produse? Care este costul redus?

46
b) Răspundeţi la aceleaşi întrebări dacă se doreşte
contractarea a cel puţin 40 de dulapuri.
Ce decizie va lua managerul; a) sau b)?
c) Care va fi planul de producţie şi preţul maxim de vânzare
dacă în cazul a) preţul dulapurilor este crescut cu 3 um?
x1= numărul de birouri ce se vor fabrica
x2= numărul de dulapuri ce se vor fabrica
Cazul a) model matematic
f ( x ) = 15 x1 + 9 x2 = max
1) 10 x1 + 8 x2 ≤ 600, minute de asamblare

 2) 6 x1 + 12 x2 ≤ 600, kg de lemn x1 ≥ 0 x2 ≥ 0
3) x ≥ 4, contract
 1
Forma standard este
f ( x ) = 15 x1 + 9 x2 = max
10 x1 + 8 x2 + x3 = 600

6 x1 + 12 x2 + x4 = 600 xi ≥ 0 i = 1,5
 x − x = 40
 1 5
Forma modificată pentru aplicarea metodei penalizărilor,
se datoreşte faptului că în matricea
10 8 1 0 0  0 
  
A =  6 12 0 1 0  0 
 1 0 0 0 −1 1 
  
lipseşte coloana P6 , deci forma modificată este
a

f ( x ) = 15 x1 + 9 x2 − Mx6a = MAX
10 x1 + 8 x2 + x3 = 600

6 x1 + 12 x2 + x4 = 600 xi ≥ 0 , i = 1,5 x6 ≥ 0
a


 x1 − x5 + x6 = 40
a

Tabelul simplex:
15 9 0 0 0 -M
Baza CB P0
P1 P2 P3 P4 P5 P6a
P3 0 600 10 8 1 0 0 0

47
P4 0 600 6 12 0 1 0 0
Pa
6 -M 40 1 0 0 0 -1 1
zk-ck -M-15 -M-9 0 0 M 0
P3 0 200 0 8 1 0 10 -10
P4 0 360 0 12 0 1 6 -6
P1 15 40 1 0 0 0 -1 1
zk-ck 0 -9 0 0 -15 M+15
4 1
P5 0 20 0 0 1 -1
5 10
36 3
P4 0 240 0 − 1 0 0
5 5
4 1
P1 15 60 1 0 0 0
5 10
zk-ck 900 0 3 1,5 0 0 M
Interpretarea acestui tabel simplex:
• Planul de producţie este: x1 = 60 , x2 = 0 deci se vor
fabrica 60 de birouri iar dulapurile sunt
nerentabile, deci nu se vor produce.
Valoarea maximă a preţului de vânzare este 900 de unitâţi
monetare.
Valorile variabilelor de compensare sunt: x3 = 0 , x4 = 240 ,
x5 = 20 deci s-au consumat toate minutele de asamblare, au rămas
240 kg de lemn din cele 600 kg şi s-au făcut în plus 20 de birouri
faţă de cele 40 contractate.
Preţurile umbră se citesc în dreptul coloanelor matricei
unitate, care au format baza iniţială, făcând M = 0 deci:
• Preţul umbră pentru orele de asamblare este 1,5.
• Preţul umbră pentru lemn este 0
• Preţul umbră al restricţiei a 3-a, ce reprezintă
contractul, este 0, (pentru M=0) ori în dreptul
coloanei ( 0 0 −1) , dar este tot 0 şi cu semn
T

schimbat.

48
Costurile reduse pot fi citite pe coloanele variabilelor de
decizie P1 şi P2 pe linia lui zk-ck deci:
• Costul redus pentru birouri este 0 deoarece ele se
fabrică
• Costul redus pentru dulapuri este 3 deoarece în
acest moment ele sunt nerentabile la preţul de
vânzare 9 um.
Dacă însă preţul de vânzare ar fi 9 + 3 = 12 sau mai mult,
ele pot fi fabricate.
Toate aceste rezultate puteau fi sintetizate în tabelul:
Variabile de decizie Cost redus
60 0
0 3
max f = 90
Variabile de compensare Preţuri umbră
1) 0 1,5
2) 240 0
3) 20 0
În plus rezultă că singura resursă care ar trebui
suplimentată este prima, timpul de asamblare, deoarece dacă am
avea 600+1 minute, valoarea maximă a vânzărilor ar creşte cu
1,5 adică ar deveni 900 + 45 = 945 um.
Însă această proprietate este valabilă doar în intervalul dat
de analiza senzitivă pentru termenul liber 600 din prima
restricţie. Se poate arăta că acesta este [ 400,1000] .
Cazul b) model matematic
f ( x ) = 15 x1 + 9 x2 = max
1) 10 x1 + 8 x2 ≤ 600, minute de asamblare

 2) 6 x1 + 12 x2 ≤ 600, kg de lemn x1 ≥ 0, x2 ≥ 0
3) x ≥ 4, contract
 1
Forma modificată este în acest caz
f ( x ) = 15 x1 + 9 x2 − Mx6a = MAX

49
10 x1 + 8 x2 + x3 = 600

6 x1 + 12 x2 + x4 = 600 xi ≥ 0 i = 1,5 , x6 ≥ 0
a


 x1 − x5 + x6 = 40
a

Tabelul simplex
15 9 0 0 0 -M
Baza CB P0
P1 P2 P3 P4 P5 P6a
P3 0 600 10 8 1 0 0 0
P4 0 600 6 12 0 1 0 0
P6a -M 40 1 0 0 0 -1 1
zk-ck -15 -M+9 0 0 M 0
P3 0 280 10 0 1 0 8 -8
P4 0 120 6 0 0 1 12 -12
P2 9 40 0 1 0 0 -1 1
zk-ck -15 0 0 0 9 9+M
5
P3 0 80 0 0 1 − -12 12
3
1
P1 15 20 1 0 0 2 -2
6
P2 9 40 0 1 0 0 -1 1
zk-ck 660 0 0 0 2,5 21 M-21
Tabelul rezultatelor este:
Variabile de decizie Cost redus
20 0
40 0
max f = 660
Variabile de compensare Preţuri umbră
1) 0 1,5
2) 240 0
3) 20 0
Deci: se vor produce 20 de birouri, 40 de dulapuri,
valoarea maximă a vânzărilor este 660 um, rămân neutilizate 80
minute de asamblare dincele 600, dar restricţiile următoare sunt

50
satisfăcute cu semnul egal deci „lemnul” li „contractul” sunt
resurse rare.
Dacă în loc de 600 kg lemn am avea 601 kg, valoarea
vânzărilor ar creşte cu 2,5 devenind 662,5.
În schimb dacă în loc de 40 dulapuri s-ar contracta 41,
valoarea vânzărilor ar scădea cu 21, devenind 639 um.
Aceste afirmaţii privind preţul umbră au loc doar în
intervalele precizate de analiza senzitivă în care pot varia cele
600 kg lemn şi cele 40 de valori ale contractului.
Costul redus este zero deoarece atât birourile cât şi
dulapurile se fabrică. Intervalul în care este valabil preţul umbră
de 2,5 pentru lemn este acela în care 600 variază în [ 480,640] iar
pentru 40 este [33,3;50] .
c) Dacă preţul dulapurilor devine 12 um, deci creşte cu
cele 3 um specificate de costul redus, fabricarea dulapurilor
devine rentabilă. Avem următoarele două soluţii optime
alternative:
 Fie cea prezentată la punctul a
x1 = 60, x2 = 0, max f = 900
 Fie
x1 = 40, x2 = 25, max f = 900
Managerul ia decizia să contracteze birourile deoarece
preţul total de vânzare în cazul a) este mai mare decât în cazul b)
al contractării dulapurilor.
Dacă însă, poate creşte preţul de vânzare al dulapurilor,
de la 9 um la 12 um (sau mai mult), atunci poate contracta cele
40 de birouri, pe care le livrează toate la contract, dar poate
fabrica şi 25 de dulapuri, consumând astfel mai bine resursele,
deoarece rămân doar 60 kg lemn..
Exemplu
O firmă poate fabrica două produse A şi B. Costurile de
producţie şi consumurile specifice sunt date în tabel.

51
Trebuie folosite cel puţin 240 de minute de producţie, cel
mult 200 unităţi de material şi trebuiesc produse cel puţin 10
unităţi din produsul A pentru onorarea unui contract. Datele sunt
sintetizate în tabel:
A B Disponibil
R1 ore de producţie 2 4 ≥240
R2 kg de material 1 2 ≤200
R3 vânzare 1 0 ≥10
Cost unitar de producţie 4 2
a) Să se determine planul optim de producţie astfel încât
costul total de producţie să fie minim
b) Care este utilizarea resurselor?
c) Ce se intâmplă dacă fiecare dintre cele trei resurse, este
suplimentată, pe rând cu câte o singură unitate? Dar dacă se
micşorează pe rând cu o unitate?
Ce este mai convenabil să modificăm (presupunând că se
respectă analiza senzitivă)?
Soluţie
Se introduc variabilele de decizie care vor da planul de
producţie:
x1= numărul de produse A ce se vor fabrica
x2= numărul de produse B ce se vor fabrica
Modelul matematic al problemei este:
f ( x ) = 4 x1 + 2 x2 = MIN
Restricţiile
1)2 x1 + 4 x2 ≥ 240 timp de productie

 2) x1 + 2 x2 ≤ 200 unitati de material x1 ≥ 0, x2 ≥ 0
3) x ≥ 10 vanzare contract
 1 ( )
Forma standard:
f ( x ) = 4 x1 + 2 x2 = MIN

52
1)2 x1 + 4 x2 − x3 = 240

2) x1 + 2 x2 + x4 = 200 xi ≥ 0, i = 1,5
3) x − x = 10
 1 5
Din matricea unitate lipsesc coloanele 1 şi 3
2 4 −1 0 0  1 0
  
A = 1 2 0 1 0  0 0
1 0 0 0 −1 1 
  0
P1 P2 P3 P4 P5 P6a P7a
Rezultă că în restricţia 1 se va aduna o variabilă artificială
x iar în restricţia 3 se va duna o variabilă x7a ; baza canonică este
a
6

( Paa P4 P7a ) .
În funcţia obiectiv se adună factorul de penalizare M;
înmulţit cu suma celor două variabile artificiale, deci modelul
matematic modificat al problemei este
f ( x ) = 4 x1 + 2 x2 + M ( x6a + x7a ) = MIN
1)2 x1 + 4 x2 − x3 + x6a = 240

 2) x1 + 2 x2 + x4 = 200 xi ≥ 0, i = 1,5 , x6a ≥ 0 , x7a ≥ 0

3) x1 − x5 + x7 = 10
a

Tabelul simplex:
4 2 0 0 0 M -M
Baza CB P0
P1 P2 P3 P4 P5 Pa
6 P7a
P6a
M 240 2 4 -1 0 0 1 0
P4 0 200 1 2 0 1 0 0 0
P7a
M 10 1 0 0 0 -1 0 1
zk-ck 3M-4 4M-2 -M 0 -M 0 0
1 1 1
P2 2 60 1 − 0 0 0
2 4 4
1 1
P4 0 80 0 0 1 0 − 0
2 2
P7a M 10 1 0 0 0 -1 0 1

53
1 1
zk-ck M-3 0 − 0 -M -M 0
2 2
1 1 1 1
P2 2 55 0 1 − 0 −
4 2 4 2
1 1
P4 0 80 0 0 1 0 − 0
2 2
P1 4 10 1 0 0 0 -1 0 1
1 1
zk-ck 0 0 − 0 -3 -M 3-M
2 2
Razultatele obţinute prin algoritmul simplex se pot citi din
ultimul tabel: soluţia optimă este pe coloana P0, costurile reduse,
pe linia zk-ck sunt pe coloanele P1 şi P2, costurile reduse sunt
citite în una din formele:
 Fie pe coloanele P6a , P4, P7a care au format baza
iniţială; făcând M=0 (pe linia zk-ck)
 Fie pe coloana lui P3, ( −1 0 0 ) , dar cu semn
T

schimbat, pe coloana P4 ( 0 1 0 ) corect şi pe


T

coloana lui P5 ( 0 0 −1) dar cu semn schimbat şi


T

1
au valorile, respectiv: , 0, 3.
2
Sistemul tuturor rezultatelor, inclusiv valoarea totală
minimă a costurilor de producţie este:
Variabile de decizie Cost redus
x1 10 0
x2 55 0
min f = 150 um
Variabile de compensare Preţuri umbră
1) 0 0,5
2) 80 0
3) 0 3
Interpretările rezultatelor
• Se vor produce 10 produse A şi 55 produse B

54
• Costul total minim de producţie: 150 um
• Prima resursă, orele de producţie, este resursă rară.
Variabila de compensare este x3 = 0 , restricţia este
satisfăcută cu semnul „=”, resursa este consumată
în întregime, iar preţul umbră asociat este 0,5
um/1oră.
Aceasta înseamnă că dacă în loc de 240 ore avem 241 ore,
costul total minim creşte cu 0,5 la fiecare oră adăugată şi scade
cu 0,5 la fiecare oră scăzută din cele 240 disponibile.
• Resursa a doua, materialul, nu a fost consumată în
întregime deci nu este resursă rară. Din acest
material au rămas un număr de x4 = 80 kg . Preţul
umbră asociat materialului este egal cu zero deci
costul total minim rămâne neschimbat dacă
adăugăm ori scădem un kg la cei 200 existenţi.
Este important de menţionat faptul că dacă în loc de 200
kg de material am fi planificat un număr de 200 − 80 = 120 kg, am
fi realizat exact acelaşi plan de producţie cu acelaşi cost total
minim şi am fi consumat toate cele 120 kg (fără stoc
suplimentar).
• A treia resursă este tot resursă rară.
Variabila de compensare x5 = 0 , restricţia este satisfăcută
cu semnul „=” iar preţul umbră ataşat este egal cu 3.
Aceasta înseamnă că dacă în loc de 10 produse A
contractate, vom avea 11, costul total creşte cu 3 adică devine
153 şi invers, dacă în loc de 10 se contractează un număr de 9
produse A, costul total scade cu 3 adică devine 147.
Toate aceste consideraţii pentru preţurile umbră sunt
adevărate în intervalele date de analiza senzitivă pentru termenii
liberi din restricţii.

55
ANALIZA SENZITIVĂ

În modelul matematic al unei probleme de PL s-a


presupus că toţi parametrii care intervin sunt constanţi.
În general, coeficienţii variabilelor din funcţia obiectiv
reprezintă costurile de producţie unitare, la probleme de minim şi
beneficiile unitare ale produselor fabricate, la probleme de
maxim. Aceşti coeficienţi se pot schimba de la o producţie la
alta, din cauze diferite, de exemplu scumpirea gazelor naturale
ori a curentului electric.
Termenii liberi din restricţii pot fi cantităţi disponibile din
resurse, condiţii de vânzare, de contracte etc. Şi aceşti termeni
liberi se pot schimba, fie de la o producţie la alta, fie în timpul
procesului de producţie studiat.
Obiectivul principal al analizei senzitive este
determinarea efectului asupra soluţiei optime, ale unor variaţii
ale coeficienţilor din funcţia obiectiv sau ale termenilor liberi din
restricţii.
Uneori, variaţiile acestor parametri conduc la aceeaşi
soluţie optimă sau dau diferenţe mici ale soluţiei optime, deci
soluţia optimă este insenzitivă la schimbări.
Este posibilă şi o schimbare considerabilă a soluţiei
optime în afara unor intervale de variaţie stabilite respectiv
pentru coeficienţii din funcţia obiectiv sau pentru termenii liberi
din restricţii.

ANALIZA SENZITIVĂ PENTRU COEFICIENŢII DIN


FUNCŢIA OBIECTIV

Analiza senzitivă pentru coeficienţii variabilelor din


funcţia obiectiv stabileşte intervalele în care pot varia ficare

56
dintre coeficienţi, astfel încât soluţia optimă să rămână
neschimbată. Aceasta înseamnă că în aceste intervale, valorile
variabilelor optime xi i = 1, n rămân aceleaşi , dar valoarea optimă
a funcţiei obiectiv se poate schimba, din cauza modificării
coeficienţilor variabilelor din funcţia obiectiv în aceste intervale.
Simultan rezultă şi costul redus. Aceste rezultate sunt
valabile pentru problemele nedegenerate deci în care există un
număr de m restricţii iar soluţia optimă conţine m variabile strict
pozitive.
În soluţia optimă, este posibil ca una dintre variabilele de
decizie, xi = 0 . Aceasta înseamnă că activitatea i asociată
variabilei de decitie xi , nu este rentabilă şi nu va fi utilizată. În
ultimul tabel simplex care dădea soluţia optimă, vectorul Pi
corespunzător variabilei xi nu era în bază.
Într-o problemă nedegeneratăde maxim (minim) costul
redus pentru o variabilă de decizie care avea valoarea zero în
soluţia optimă, este cantitatea cu care trebuie crescut (micşorat)
coeficientul său din funcţia obiectiv pentru ca ea să aibă valoare
strict pozitivă, în noua soluţie optimă obţinută după modificarea
coeficientului său din funţia obiectiv. Pentru variabilele de
decizie care au fost strict pozitive, costul redus este zero.
Costul redus pentru o activitate neutilizată ( xi = 0 ) mai
reprezintă cantitatea cu care va descreşte profitul (sau va creşte
costul) dacă o activitate nerentabilă este forţată să fie utilizată
prin impunerea restricţiei xi ≥ 1 . Cazul particular în care atât
variabila de decizie cât şi costul redus asociat ei sunt egale cu
zero, indică existenţa unei soluţii optime alternative.
Costul redus se citeşte pe ultima linie din tabelul simplex,
zk-ck, în dreptul coloanelor vriabilelor de decizie.
Pentru probleme degenerate, în care numărul variabilelor
strict pozitive este mai mic decât numărul restricţiilor, atât
semnificaţiile costului redus cât şi a preţului umbră, nu mai sunt
adevărate.

57
Analiza senzitivă se bazează pe faptul că la un moment
dat variază câte un singur coeficient din funcţia obiectiv,
celelalte mărimi rămânând la valorile iniţiale.
În general, pentru problema iniţială:
 f ( x ) = c1 x1 + c2 x2 + ... + cn xn = opt

 Ax = P0
x ≥ 0

pentru analiza senzitivă a coeficienţilor c1, c2 ... cn se vor rezolva
un număr de n probleme în care se modifică, pe rând, doar un
coeficient din funcţia obiectiv:
Problema 1
f ( x ) = ( c1 + λ ) x1 + c2 x2 + ... + cn xn = OPT
 Ax = P0

x ≥ 0
Problema a 2-a
f ( x ) = c1 x1 + ( c2 + λ ) x2 + ... + cn xn = OPT
 Ax = P0

x ≥ 0
...
Problema a n-a
f ( x ) = c1 x1 + c2 x2 + ... + cn −1 xn −1 + ( cn + λ ) xn = OPT
 Ax = P0

x ≥ 0
Practic, algoritmul simplex dă simultan soluţia optimă a
problemei iniţiale şi analiza senzitivă a tuturor coeficienţilor din
funcţia obiectiv, cu următoarele modificări:
• Deasupra liniei coeficienţilor din funcţia obiectiv
se mai adaugă n linii ce corespund coeficienţilor
din cele n probleme

58
• Se adaugă n coloane cB ( λ ) , pentru coeficienţii
variabilelor bazice ce se vor introduce doar în
ultimul tabel simplex
• Se calculează încă n linii zk-ck folosind coeficienţii
celor n probleme, respectiv
• Se impun condiţiile de optimalitate pentru toate
cele n probleme şi se obţin intervalele în care pot
varia fiecare dintre coeficienţi, astfel încât soluţia
optimă obţinută pe coloana lui P0 a problemei
iniţiale să rămână optimă
Exemplu
O firmă fabrică trei produse folosind două resurse.
Consumurile specifice, cantităţile disponibile din resurse şi
profiturile unitare sunt date în tabel:
A B C Disponibil
Kg R1 2 3 5 90 kg
Ore R2 1 2 3 50 ore
Profit unitar 3 4 8

a) Determinaţi soluţia optimă şi profitul total maxim


b) Cât ar trebui să fie profitul pentru produsul B pentru ca
acesta să devină rentabil?
c) Care este costul pe care îl poate plăti în plus managerul
pentru achiziţionarea unor noi unităţi de material? Dar orele pe
maşină?
d) Determinaţi intervalele pentru fiecare dintre beneficiile
unitare ale celor 3 produse pentru ca soluţia optimă obţinută la
punctul a) să rămână neschimbată?
Soluţie
Răspunsul la toate cele 4 întrebări este dat de algoritmul
simplex, care va rezolva simultan şi analiza senzitivă.
Problema iniţială este:
f ( x ) = 3 x1 + 4 x2 + 8 x3 = max

59
2 x1 + 3 x2 + 5 x3 ≤ 90
 , x1 ≥ 0 , x2 ≥ 0 , x3 ≥ 0
 x1 + 2 x2 + 3 x3 ≤ 50
unde variabilele de decizie x1, x2 şi x3 reprezintă respectiv
numărul de produse A, B şi C care se vor fabrica.
Pentru analiza senzitivă a celor trei coeficienţi 3, 4 şi 8 se
rezolvă următoarele trei probleme:
Problema 1
f ( x ) = ( 3 + λ ) x1 + 4 x2 + 8 x3 = max
2 x1 + 3 x2 + 5 x3 ≤ 90
 , α ∈ R xi ≥ 0 i = 1, 2, 3
 x1 + 2 x2 + 3 x3 ≤ 50
Problema 2
f ( x ) = 3 x1 + ( 4 + β ) x2 + 8 x3 = max
2 x1 + 3 x2 + 5 x3 ≤ 90
 xi ≥ 0, i = 1, 2, 3, β ∈ R
 x1 + 2 x2 + 3 x3 ≤ 50
Problema 3
f ( x ) = 3 x1 + 4 x2 + ( 8 + γ ) x3 = max
2 x1 + 3 x2 + 5 x3 ≤ 90
 xi ≥ 0, i = 1, 2, 3, γ ∈ R
 x1 + 2 x2 + 3 x3 ≤ 50
Aici α, β, γ sunt parametri.
Se aduce la forma standard, adunând câte o variabilă de
compensare: x4 în restricţia de material şi x5 în restricţia orelor.
Se adaugă trei linii pentru coeficienţii din funcţia obiectiv
a celor trei produse şi trei coloane pentru coeficienţii variabilelor
bazice.
Tabelul simplex:
3+ λ 4 8 0 0
Probl. Probl. Probl. 3 4 + β 8 0 0
Baza I II III CB P0 3 4 8 + γ 0 0
cI cII cIII 3 4 8 0 0
P1 P2 P3 P4 P5
P4 0 90 2 3 5 1 0

60
P5 0 50 1 2 3 0 1
zk-ck -3 -4 -8 0 0
20 1 1 5
P4 0 − 0 1 −
3 3 3 3
50 1 2 1
P3 8 1 0
3 3 3 3
1 4 8
zk-ck − 0 0
3 3 3
P1 3+ λ 3 3 3 20 1 -1 0 3 -5
P3 8 8 8 + γ 8 10 0 1 1 -1 2
zk-ck 140 0 1 0 1 1
I zk-ck 0 1 − λ 0 1 + 3λ 1 − 5λ
II zk-ck 0 1− β 0 1 1
III zk-ck 0 1 + γ γ 1 − γ 1 + 2γ
S-au obţinut mai întâi toate rezultatele problemei iniţiale:
Variabile de decizie Cost redus
x1 = 20 0
x2 = 0 1
x3 = 10 0
max f = 140
Variabile de compensare Preţuri umbră
1) x4 = 0 1
2) x5 = 0 1
a) Se vor fabrica 20 produse A, produsul B nu se fabrică,
produsele C se vor fabrica 10, ambele resurse sunt rare,
consumate în întregime iar profitul total maxim este 140 um.
b) Costul redus pentru b este 1, deci dacă profitul său unitar
4 creşte cu 1 unitate devenind 5, atunci produsul B se poate
produce.
De fapt la c2 = 5 avem soluţia alternativă, cea precedentă
ori x1 = 30 , x2 = 10 , x3 = 0 , x4 = 0 , x5 = 0 max f = 140 (şi suntem în
intervalul dat de anliza senzitivă)

61
c) Costul pe care îl poate păti în plus la o nouă suplimentare
a resurselor este dat de preţul umbră, deci 1um/kg pentru
material şi 1um/oră pentru producţie (dacă suntem în intervalele
date de anilza senzitivă)
d) Pentru a determina intervalul în care poate varia primul
coeficient, 3 al variabilei x1 pentru ca soluţia optimă de la
punctul a) să rămână neschimbată, se impun condiţiile de
optimalitate la problema I, zk − ck ≥ 0 . Avem:
1 − λ ≥ 0

1 + 3λ ≥ 0
1 − 5λ ≥ 0

1 1 1 1
Din acestea, avem λ ≤ 1 λ ≥ − şi λ ≤ adică − ≤ λ ≤ .
3 5 3 5
Atunci coeficientul 3 + λ al primei probleme va fi cuprins in
1 8 1 16
intervalul dat de 3 − = şi 3 + = .
3 3 5 5
8
Limita inferioara pentru interval este deci = 2,667 iar cea
3
16
superioara este = 3, 2 . Pentru problema a 2-a avem similar:
5
1 − β ≥ 0 deci β ≤ 1 . Intervalul este β ∈ ( −∞,1] deci coeficientul 4
variază într-un interval care nu are limită inferioara iar limita
superioară este 4 + 1 = 5 , adică 4 ∈ ( −∞,5] .
Pentru problema a 3-a avem:
γ ≥ −1
1 + γ ≥ 0 γ ≥ 0
γ ≥ 0  1

 deci γ ≤ 1 şi γ ∈  ,1
1 − γ ≥ 0  2 
1 + 2γ ≥ 0 γ ≥ 1
 2
Atunci coeficientul 8 variaza în [7,5;9] . Rezultatele se pot
prezenta în tabelul:

62
Limita inferioara Valoarea originala Limita superioara
2,667 3 3,2
nu are 4 5
7,5 8 9
Din tabel rezultă că soluţia optimă rămâne neschimbată
când coeficienţii variază în aceste intervale.
În particular x2 = 0 dacă 4 ∈ ( −∞,5] . Rezultă că dacă în loc
de 4 avem c2 = 5 soluţia x2 = 0 se menţine încă, dar rezultă şi
costul redus, egal cu 5 − 4 = 1 , adică pentru c2 = 5 sau mai mult
(de exemplu 5,001), produsul B devine rentabil şi se poate
fabrica, după cum deja s-a menţionat.
Exemplu
La o intreprindere se realizează trei tipuri de aliaje.
Acestea trebuie să conţină, pe lângă materialele principale şi
Carbon, Nichel şi Magneziu. Procentele pentru fiecare tonă de
aliaj sunt date în tabel, unde se specifică şi costurile pe o tonă din
fiecare aliaj.
Aliaj 1 Aliaj 2 Aliaj 3
Carbon 3% 2% 6%
Nichel 6% 3% 1%
Magneziu 8% 3% 1%
cost/1 tonă 18 15 9
Cerinţele de fabricaţie sunt:
• Să se consume cel mult 4 tone de carbon
• Să se folosească cel puţin 3,5 tone de nichel
• Să se utilizeze exact 4 tone de magneziu
Se cer:
a) Să se afle câte tone se vor fabrica din fiecare aliaj astfel
încât costul total de producţie să fie minim
b) Să se interpreteze valorile variabilelor de compensare,
preţurile umbră şi costurile reduse
c) Să se efectueze analiza senzitivă pentru coeficienţii din
funcţia obiectiv

63
d) O tonă din fiecare aliaj se poate vinde cu 30 um.
Formulaţi modelul matematic pentru determinarea planului de
producţie când profitul total este maxim. Şi în acest caz
răspundţi la întrebările a), b) şi c).
Soluţie
a) Se introduc variabilele de decizie xi= numărul de tone din
aliajul i, i=1, 2, 3 care se vor fabrica, pentru a obţine costul total
minim de producţie
Avem
f ( x ) = 18 x1 + 15 x2 + 9 x3 = MIN
1)0,03x1 + 0,02 x2 + 0,06 x3 ≤ 4

 2)0,06 x1 + 0,03 x2 + 0,01x3 ≥ 3,5 xi ≥ 0 i = 1, 2,3
3)0,08 x + 0,03 x + 0,01x = 4
 1 2 3

Punctele a, b şi c se rezolvă simultan prin algoritmul


simplex.
Pentru analiza senzitivă se variază pe rând câte un singur
coeficient din funcţia obiectiv, restricţiile rămânând
neschimbate.
Funcţiile obiectiv pentru aflarea intervalelor de variaţie
ale coeficienţilor 18, 15 şi 9, în care soluţia problemei rămâne
optimă, sunt respectiv:
I. f ( x ) = (18 + λ ) x1 + 15 x2 + 9 x3 = MIN
II. f ( x ) = 18 x1 + (15 + β ) x1 + 9 x3 = MIN
III. f ( x ) = 18 x1 + 15 x2 + ( 9 + α ) x3 = MIN
Forma standard a restricţiilor este aceeaşi la toate
problemele:
1)0,03 x1 + 0,02 x2 + 0, 06 x3 + x4 = 4

 2)0,06 x1 + 0,03 x2 + 0,01x3 − x5 = 3,5 xi ≥ 0 i = 1,5
3)0,08 x + 0, 03 x + 0,01x = 4
 1 2 3

Matricea coeficienţilor restricţiilor conţine numai prima


coloană din matricea unitate I3, deci în restricţiile 2) şi 3) se
adună câte o variabilă artificială.

64
Forma modificată pentru metoda penalizărilor pentru
problema iniţială este:
f ( x ) = 18 x1 + 15 x2 + 9 x3 + Mx6a + Mx7a = MIN
1)0,03 x1 + 0,02 x2 + 0, 06 x3 + x4 = 4

 2)0,06 x1 + 0,03 x2 + 0,01x3 − x5 + x6 = 3,5
a


3)0,08 x1 + 0, 03 x2 + 0,01x3 + x7 = 4
a

xi ≥ 0 , i = 1,5 , x6a ≥ 0 x7a ≥ 0


La punctul c) se cere analiza senzitivă a coeficienţilor din
funcţia obiectiv.
Pentru simplicitate se va efectua prin calcul, analiza doar
a coeficientului 9, iar pentru ceilalţi doi se vor da doar
rezultatele.
Algoritmul simplex, unde se introduc doar coeficienţii
pentru problema a 3-a este:
18 15 9+α 0 0 M M
Baza CIII CB P0 18 15 9 0 0 M M
a
P1 P2 P3 P4 P5 P6 P7
a

P4 0 4 0,03 0,02 0,06 1 0 0 0


a
P6 M 3,5 0,06 0,03 0,01 0 -1 1 0
P7
a
M 4 0,08 0,03 0,01 0 0 0 1
zk-ck 0,14M-18 0,06M-15 0,02M-9 0 -M 0 0
0, 07 0, 45 0, 75
P4 0 2,5 0 1 0 0 −
8 8 2
a 0, 06 0, 02
P6 M 0,5 0 0 -1 1 -0,75
8 8
3 1 25
P1 18 50 1 0 0 0
8 8 2
0, 03M − 33 0, 01 27
zk-ck 0 M + 0 -M 0 -0,75M+225
4 4 4
11, 5 1, 29 3, 5 3, 5
P4 0 0 0 0 1 − 0,5
6 24 3 3
200 1 400 400
P2 15 15 0 1 0 − -100
3 3 3 3
P1 18 18 25 1 0 0 0 50 -50 50

65
zk-ck 0 0 -4 0 -1100 -M+1100 -M-600
0 0 −4 − α 0 -1100 -M+1100 -M-600
În ultimul tabel simplex se introduc datele pe coloana cIII
şi se calculează o nouă linie zk-ck.
Din impunerea condiţiilor de optimalitate avem −4 − λ ≤ 0
deci λ ≥ −4 adică λ ∈ [ 4, ∞ ) . Atunci 9 + α are ca limită inferioară
5 iar limită superioara nu are; deci pentru 9 ∈ [5, ∞ ) soluţia optimă
a problemei iniţiale rămâne optimă.
Rezultatele obţinute din algoritmul simplex la care se
adaugă analiza senzitivă şi pentru ceilalţi doi coeficienţi, sunt:

Variabile de decizie Cost redus


x1 = 25 tone 0
200
x2 = = 66,667 tone 0
3
x3 = 0 -4
min f = 1450
Variabile de compensare Preţ umbră
11,5
1) = 1,917 0
6
2) 0 1100
3) 0 -600

Analiza senzitivă
Limita inferioară Valoarea originală Limita superioară
Nu are 18 40
6,75 15 27
5 9 Nu are

Interpretarea acestor rezultate este:


a) Se vor fabrica 25 tone din aliajul 1 şi 66,667 tone din
aliajul 2. Aliajul al 3-lea nu se fabrică deoarece are costul de
producţie prea mare şi este nerentabil. Trebuie să se remarce

66
faptul că deşi costul 9 um pentru o tonă este cel mai mic dintre
cele trei, (celelalte erau 18 um/1 tonă şi 15 um/1 tonă) totuşi el
trebuie micşorat cu o cantitate egală cu costul său redus, deci să
devină 9 − 4 = 5 um pentru o tonă sau mai puţin pentru a putea
produce aliajul 3.
Valoarea totală minimă a costurilor este 1450 um.
b) Prima resursă, carbonul, nu este consumată în întregime.
Din cele 4 tone disponibile au rămas neutilizate 1,917 t. Celelalte
două resurse au fost consumate în întregime, deci sunt resurse
rare. Preţul umbră asociat nichelului este de 1100 pe o tonă, ceea
ce înseamnă că dacă ne-am afla în intervalul precizat de analiza
senzitivă pentru termenul liber 3,5 şi am dori să creştem cu o
unitate valoarea de 3,5, costul de producţie ar creşte cu 1100
um/1 tonă de nichel. Însă nu ne aflăm în intervalul dat de analiza
senzitivă pentru termeniiliberi din restricţii.
Se poate arăta că aceste intervale sunt
Limita inferioară Valoarea originală Limita superioară
2,08 4 Nu are
3 3,5 4
3,5 4 4,67
Creşterea permisă, pentru a nu modifica esenţial soluţia
optimă, este doar de 0,5 în plus sau în minus faţă de 3,5 şi
proprietatea menţionată a preţului umbră se păstrează numai în
acest interval, deci costul creşte corespunzător cu
sumplimentarea resursei până la 4 tone.
Pentru resursa a 3-a, magneziu, preţul umbră este egal cu
(-600) um pentru o tonă de magneziu deci dacă în loc de 4 tone
se folosesc mai multe, până în 4,67, costul total scade
corespunzător.
c) Analiza senzitivă pentru coeficientul 9 a fost indicată prin
9 ∈ [ 5, ∞ ) deci în acest interval se păstrează soluţia optimă, în
particular x3 = 0 .

67
Costul redus se poate obţine deci şi prin analiza senzitivă,
deoarece pentru a ieşi din interval avem să scădem costul cu 4
um pentru o tonă de carbon.
d) Deoarece o tonă din fiecare aliaj se poate vinde cu 30
um/1 tonă, profitul este respectiv
30 − 18 = 12 um pentru 1t de carbon

30 -15 = 15 um pentru 1t de nichel
30 - 9 = 21 um pentru 1t de magneziu

Modelul matematic al problemei de maxim este
f ( x ) = 12 x1 + 15 x2 + 21x3 = MAX
1)0,03 x1 + 0,02 x2 + 0,06 x3 ≤ 4

 2)0,06 x1 + 0,03 x2 + 0,01x3 ≥ 3,5 x1 ≥ 0 , x2 ≥ 0 x3 ≥ 0
3)0,08 x + 0, 03 x + 0,01x = 4
 1 2 3

Soluţia optimă a acestei probleme este prezentată în tabel:


Variabile de decizie Cost redus
x1 = 0 21
x2 = 125 0
x3 = 25 0
max f = 2400 um
Variabile de compensare Preţ umbră
1) 0 300
2) 0,5 0
3) 0 300
Analiza senzitivă pentru coeficienţii din funcţia obiectiv
este:
Limita inferioară Valoarea originală Limita superioară
Nu are 12 33
7,533 15 63
5 21 69

68
iar Analiza senzitivă pentru termenii liberi din restricţii este:
Limita inferioară Valoarea originală Limita superioară
2,67 4 24
Nu are 3,5 4
3,5 4 6
cu interpretări similare.
Acum primul aliaj este nerentabil. Profitul său trebuie să
devină 12 + 21 = 33 um pentru 1 tonă din aliajul 1 pentru ca acesta
să poată fi rentabil, lucru ce rezultă şi din prima linie a analizei
senzitive.
Resursele 1 şi 3 sunt consumate în întregime.
La fiecare suplimentare cu 1 tonă din prima resursă, până
la 24 de tone (deci o suplimentare de 20 t), profitul creşte cu 600
um/t, iar la o suplimentare a resursei a 3-a cu o tonă (doar cu 2 t
este posibil), profitul creşte cu 600 um/1 tonă.
Valorile tuturor variabilelor de decizie şi de compensare
din soluţia optimă nu se schimbă dacă fiecare dintre coeficienţii
din funcţia obiectiv variază în intervalele date de analiza
senzitivă.
În plus dacă se impune fabricarea unei tone din aliajul 1,
adică se introduce şi restricţia x1 ≥ 1 atunci profitul total scade cu
valoarea costului redus, adică devine 2400 − 21 = 2379 um.

ANALIZA SENZITIVĂ PENTRU TERMENII LIBERI DIN


RESTRICŢII

Preţul umbră este cantitatea cu care se modifică valoarea


optimă a funcţiei obiectiv dacă se măreşte cu o unitate cantitatea
disponibilă din resursa căreia i s-a asociat acest preţ umbră.
S-ar putea crede că dacă preţul umbră asociat resursei este
de exmplu 10 um pe o unitate din acea resursă, se poate
suplimenta foarte mult valoarea disponibilă din resursă, de

69
exemplu cu 500 de unităţi, sperând că beneficiul va creşte cu
10 ⋅ 500 = 5000 um, în cazul unei probleme de maxim.
Acest lucru nu este adevărat. Iniţial, când a rezultat un
anumit preţ umbră strict pozitiv, resursa respectivă era
consumată în întregime (resursă rară). Însă tot suplimentând
cantitatea disponibilă din resursă este posibil ca să nu mai fie
consumată în întregime, adică preţul său umbră să devină egal cu
zero ori să-şi schimbe valoarea. Avem următoarele două
proprietăţi:
1) Analiza senzitivă pentru termenii liberi din restricţii
conţine intervalele în care trebuie să se menţină
fiecare dintre aceşti termeni liberi pentru ca preţul
umbră asociat restricţiei (resursei) să rămână
nemodificat.
Această proprietate are loc atunci când se variază doar un
singur termen liber, ceilalţi rămânând la valorile iniţiale. Tot în
aceste condiţii, mai există încă o caracteristică:
2) Analiza senzitivă pentru termenii liberi din restricţii
stabileşte intervalele în care pot varia fiecare dintre
termenii liberi astfel încât baza din ultimul tabel
simplex să rămână neschimbată. Aceasta înseamnă că
în aceste intervale de variaţie, soluţia optimă conţine
aceleaşi variabile strict pozitive, eventual cu alte
valori.
Ambele proprietăţi menţionate sunt valabile doar pentru
soluţii optime nedegenerate.
Pentru aflarea acestor intervale, din problema iniţială se
obţin alte m probleme (m este numărul restricţiilor). În fiecare
dintre aceste probleme se variază pe rând câte un singur termen
liber, restul datelor fiind neschimbate.
Algoritmul simplex rezolvă simultan determinarea
soluţiei optime a problemei iniţiale şi analiza senzitivă pentru
termenii liberi din restricţii. Sunt necesare următoarele
modificări:

70
• Se introduc în plus un număr de m coloane ale
soluţiilor celor m probleme, pe lângă coloana P0 a
soluţiei problemei iniţiale
• După obţinerea soluţiei optime a problemei iniţiale
se impun condiţii de nenegativitate a soluţiei
optime pentru soluţia fiecăreia dintre cele m
probleme, aflată pe coloanele noi introduse.

Exemplu
O fabrică produce trei produse A, B, C folosind două
tipuri de materie primă M1 şi M2. Consumurile specifice din
resurse, cantităţile disponibile din resurse şi profiturile unitare
sunt date în tabel:
Consumuri specifice
Resurse Disponibil
A B C
Material 1 1 1 1 10
Material 2 2 3 1 18
Profit unitar 10 6 8
Datorită condiţiilor de vânzare, cantitatea fabricată din
produsul B trebuie să fie cel mult un sfert din întreaga producţie.
Se cer:
a) Planul de producţie pentri obţinerea profitului total
maxim
b) Analiza senzitivă pentru termenii liberi din restricţiile ce
se referă la utilizarea materialelor
c) Dacă se poate suplimenta doar unul dintre cele două
material, care din ele se va suplimenta? Cu ce cantitate? Care
este profitul total maxim şi care este planul de producţie?

71
Soluţie
Se notează variabilele de decizie cu
 x1 = numarul de produse A care se vor fabrica

 x2 = numarul de produse B care se vor fabrica
 x = numarul de produse C care se vor fabrica
 3
Modelul matematic este pentru problema iniţială:
f ( x ) = 10 x1 + 6 x2 + 8 x3 = MAX

1) x1 + x2 + x3 ≤ 10, pentru materialul 1

 2)2 x1 + 3x2 + x3 ≤ 18, pentru materialul 2 x1 ≥ 0 , x2 ≥ 0 x3 ≥ 0
 1
3) x2 ≤ ( x1 + x2 + x3 ) , vanzare
 4
Restricţiile trebuie aduse la forma standard.
Pentru a treia restricţie avem
4x2 ≤ x1 + x2 + x3
deci
− x1 + 3x2 − x3 ≤ 0
Cele trei probleme pentru efectuarea analizei senzitive
sunt:
I. f ( x ) = 10 x1 + 6 x2 + 8 x3 = MAX
 x1 + x2 + x3 ≤ 10 + λ

2 x1 + 3 x2 + x3 ≤ 18 , xi ≥ 0 i = 1,3
− x + 3 x − x ≤ 0
 1 2 3

II. f ( x ) = 10 x1 + 6 x2 + 8 x3 = MAX
 x1 + x2 + x3 ≤ 10

 2 x1 + 3 x2 + x3 ≤ 18 + λ xi ≥ 0 i = 1,3
− x + 3x − x ≤ 0
 1 2 3

III. f ( x ) = 10 x1 + 6 x2 + 8 x3 = MAX
 x1 + x2 + x3 ≤ 10

 2 x1 + 3x2 + x3 ≤ 18 xi ≥ 0 i = 1, 2,3
− x + 3x − x ≤ λ
 1 2 3

72
unde λ este un parametru, λ ∈ R .
Aducerea la forma standard a problemei iniţiale se obţine
prin adunarea unor variabile de compensare:
f ( x ) = 10 x1 + 6 x2 + 8 x3 = MAX
 x1 + x2 + x3 + x4 = 10

2 x1 + 3x2 + x3 + x5 = 18 xi ≥ 0 i = 1,6
− x + 3x − x + x = 0
 1 2 3 6

Algoritmul simplex rezolvă simultan analiza senzitivă


cerută. Se adaugă două coloane ce corespund termenilor liberi
din restricţiile 1 şi 2.
10 6 8 0 0 0
Baza CB PI(λ) PII(λ) P0
P1 P2 P3 P4 P5 P6
P4 0 10 + λ 10 10 1 1 1 1 0 0
P5 0 18 18 + λ 18 2 3 1 0 1 0
P6 0 0 0 0 -1 3 -1 0 0 -1
zk-ck -10 -6 -8
λ 1 1 1
P4 1+ λ 1− 1 0 − 1 − 0
2 2 2 2
λ 3 1 1
P1 10 9 9+ 9 1 0 0
2 2 2 2
λ 9 1 1
P6 9 9+ 9 0 − 0 1
2 2 2 2
zk-ck 0 9 -3 0 5 0
P3 8 2 + 2λ 2 − λ 2 0 -1 1 2 -1 0
P1 10 8 − λ 8+λ 8 1 2 0 -1 1 0
P6 0 10 + λ 10 10 0 4 0 1 0 1
zk-ck 0 6 0 6 2 0
a) Soluţia optimă a problemei iniţiale este dată în tabel:
Variabile de decizie Cost redus
x1 = 8 0
x2 = 0 6
x3 = 2 0

73
max f = 96
Variabile de compensare Preţ umbră
1) 0 6
2) 0 2
3) 10 0
Avem următoarele interpretări:
Se vor fabrica 8 produse A şi 2 produse C. Produsul B nu
se fabrică. Pentru a putea deveni rentabilă fabricarea lui, profitul
său trebuie să crească de la 6 um la 12 um ori mai mult.
Valoarea maximă a profitului este de 96 um.
Ambele materiale sunt resurse rare şi au respectiv preţul
umbră de 6 um pentru o unitate din materialul 1 şi 2 um pentru o
unitate din al doilea material.
b) Soluţia optimă a problemei I, citită pe coloana PI(λ) este:
 x1 = 8 − λ
x = 0
 2
 x3 = 2 + 2λ

 x4 = 0
 x5 = 0

 x6 = 10 + λ
max f = 10 ( 8 − λ ) + 6 ⋅ 0 + 8 ( 2 + 2λ ) = 96 + 6λ , λ ∈ R
Însă aceasta constituie soluţia optimă dacă are
componentele nenegative: 8 − λ ≥ 0 , 2 + 2λ ≥ 0 , 10 + λ ≥ 0
Din acestea rezultă λ ≤ 8 , λ ≥ −1 , λ ≥ −10 .
Deci λ ∈ [ −1,8] . Atunci termenul liber din prima restricţie
a problemei I, care era 10 + λ va avea limita inferioară
10 + ( −1) = 9 iar limita superioară 10 + 8 = 18 .
Soluţia optimă a problemei II, citită pe coloana PII(λ) este:

74
 x1 = 8 + λ
x = 0
 2
 x3 = 2 − λ

 x4 = 0
 x5 = 0

 x6 = 10
iar
max f = 10 ( 8 + λ ) + 6 ⋅ 0 + ( 2 − λ ) ⋅ 8 = 96 + 2λ
Însă trebuie îndeplinită condiţia de nenegativitate a
soluţiei:
8 + λ ≥ 0, 2 − λ ≥ 0
De aici rezultă λ ≥ −8 şi λ ≤ 2 adică λ ∈ [ −8, 2]
Atunci termenul liber din restricţia a 2-a, care corespunde
problemei II, era 18 + λ şi va avea limita inferioară egală cu
18 − 8 = 10 iar limita superioară egală cu 18 + 2 = 20 .
Analiza senzitivă pentru termenii liberi din restricţii este:

Limita inferioară Valoarea originală Limita superioară


9 10 18
10 18 20
-10 0 Nu are
unde s-a trecut şi analiza senzitivă pentru termenul liber din
restricţia a 3-a.
c) Dacă se poate suplimenta cantitatea disponibilă dintr-o
singură resursă, se obeservă mai întâi că primul material are prţul
umbră mai mare decât cel de-al doilea material.
De fapt, valoarea optimă a problemei iniţiale care era 96,
creşte cu 6 um pentru fiecare unitate de material în plus, până de
disponibilul iniţial care era 10 unităţi, ajunge la 18 unităţi după
cum rezultă din analiza senzitivă.
Avem, la problema I:
f ( x ) = 96 + 6λ , λ ∈ [ −1,8]

75
Deci suplimentam cu 8 unităţi disponibilul şi avem
max f = 96 + 6 ⋅ 8 = 144 um .
Pentru resursa a 2-a, preţul umbră este de 2 um pentru o
unitate din materialul al doilea, din analiza senzitivă se vede că
acest preţ umbră este valabil numai pentru o creştere de la 18 la
20, deci doar cu 2 unităţi de material şi deci
f ( x ) = 96 + 2λ = 96 + 2 ⋅ 2 = 100 um
În concluzie se va suplimenta doar materialul I, cu 8
unităţi. Soluţia optimă va fi: ( λ = 8 )
 x1 = 0
x = 0
 2
 x3 = 18

 x4 = 0
 x5 = 0

 x6 = 18
max f = 144 um

PROGRAMARE ÎN NUMERE ÎNTREGI

Soluţia optimă a unei probleme de programare liniară,


obţinută prin algoritmul simplex, se află în mulţimea numerelor
reale nenegative  + .
În cazul unei probleme care are conţinut economic,
aceasta poate fi acceptatilădacă, de exemplu, trebuie fabricate un
număr de 18,75 tone de aliaj.
Dacă însă produsele fabricate sunt indivizibile, de
exempolu se fabrică birouri, televizoare, maşini etc., atunci
soluţia optimă e caută în mulţimea numerelor întregi nenegative
+ .
Soluţia optimă a unei probleme, căutată în mulţimea
 + nu se poate obţine prin rotunjirea soluţiei optime a aceleiaşi

76
probleme dar găsită prin algoritmul simplex în  + . Uneori, prin
rotunjirea unei soluţii aflate în  + se poate obţine o „soluţia”
care nu verifică restricţiile, deci care nu este nici măcar o soluţie
adminisibilă.
Pentru determinarea soluţiei optime în numere întregi
avem o programare discretă în sensul că, de exemplu, la metoda
grafică, soluţia optimă este calculată în punctele discrete, din
interiorul ariei admisibile, care au coordonatele numere întregi.
Printre metodele de aflare a soluţiei în numere întregi
nenegative avem:
• metoda „Ramifică şi mărgineşte” („Branch and
Bound”) utilizată de obicei şi în programarea pe
calculator;
• metoda datorată lui R. Gomory;
Ambele metode pot folosi algoritmul simplex în care, la
modelul iniţial, se adaugă restricţii noi, obţinându-se un şir de
probleme, până se se determină soluţia optimă în  + ori până se
află că problema nu are soluţie.
Tot în  + se caută soluţia optimă la unele probleme la
care răspunsul trebuie ales între „da” şi „nu”. În acest caz
mulţimea soluţiilor este mulţimea {0,1} unde cifra „0” indică
„nu” iar cifra „1” indică „da”.

77
METODA „RAMIFICĂ ŞI MĂRGINEŞTE”

Se consideră o problemă pentru care soluţia optimă se


caută în mulţimea  + .
Mai întâi se rezolvă problema prin algoritmul simplex.
Dacă soluţia optimă căutată în  + conţine numai numere întregi,
atunci aceasta este şi soluţia optimă în  + . Dacă însă unele
valori ale variabilelor sunt numere fracţionate, atunci această
soluţie optimă, obţinută prin algoritmul simplex, nu este soluţia
optimă căutată.
Asupra metodei „Ramifică şi mărgineşte” se pot face
unele observaţii:
Fie, de exempplu, una dintre valorile soluţiei optime din
 + , egală cu 7,26. Partea întreagă a acestui număr este 7. Cum
7, 26 ∈ ( 7,8 ) iar în intervalul deschis ( 7,8 ) nu există nici un
număr întreg, rezultă că soluţia optimă în  + trebuie căutată în
afacra acestui interval. Avem deci două posibilităţi:
a) x ≤ 7 sau
b) x ≥ 8 .
Aceste două relaţii reprezintă, de fapt, două restricţii.
Termenul „Ramifică” se referă la faptul că din problema
iniţială rezultă două probleme noi prin adăugarea la restricţiile
problemei iniţiale a unei dintre cele două restricţii a) sau b).
Aceste două probleme noi se rezolvă tot prin algoritmul simplex.
În continuare se procedează analog şi se obţin, dacă este cazul,
alte ramuri ale celor două probleme noi.
Mărginirea se referă la faptul că valoarea variabilelor care
nu erau numere întregi este mărginită superior (în cazul a) sau
inferior (în cazul b). Toate soluţiile problemelor care au apărut în
ramuri şi care au ca valori numere întregi sunt admisibile sau
fezabile.

78
Soluţia optimă este acea soluţie admisibilă care conferă
funcţiei obiectiv valoarea cea mai mare la problemele de maxim
ori cea mai mică la problemele de minim. Algoritmul se opreşte
atunci când se găseşte soluţia optimă în  + , dacă există.

Exemplu
Să se determine soluţia optimă în numere întregi şi
pozitive pentru problema:
f ( x ) = 6 x1 + 5 x2 = max
2 x1 + 5 x2 ≤ 20

2 x1 + x2 ≤ 6
x1 , x2 ∈  +

Soluţie
Se aplică algoritmul simplex pentru această problemă I şi
se aplică soluţia optimă, în  + :
x1 = 1, 25 , x2 = 3,5 , max f = 25
Însă aceasta nu este soluţia căutată în  + . Prin rotunjirea
valorilor ar rezulta:
a) x1 = 1 , x2 = 3 , max f = 6 ⋅1 + 5 ⋅ 3 = 21 , dar aceasta nu este
soluţia optimă, fie
b) x1 = 1 , x2 = 4 care însă nu poate fi soluţia deoarece nu
verifică prima restricţie: 2 ⋅1 + 5 ⋅ 4 = 22 < 20 , încât soluţia nu este
nici măcar admisibilă.
Din problema I rezultă alte două probleme: Deoarece
x2 = 3,5 ∈ ( 3, 4 ) iar în intervalul deschis ( 3, 4 ) nu există nici un
număr întreg, soluţia trebuie căutată în afara acestui interval.
Există două posibilităţi: x2 ≤ 3 sau x2 ≥ 4 . De aici rezultă
problema II:

79
Problema II
f ( x ) = 6 x1 + 5 x2 = max
2 x1 + 5 x2 ≤ 20

2 x1 + x2 ≤ 6
x ≤ 3
 2
Cu soluţia optimă determinată prin algoiritmul simplex
x1 = 1,5 , x2 = 3 , max f = 24

Problema III
f ( x ) = 6 x1 + 5 x2 = max
2 x1 + 5 x2 ≤ 20

2 x1 + x2 ≤ 6
x ≥ 4
 2
Cu soluţia optimă x1 = 0 , x2 = 4 , max f = 20
Aceasta este o soluţie admisibilă deoarece are
componentele numere întregi dar poate să nu fie soluţia optimă.
Trebuie cercetate anumite ramuri acele problemei II în care
x1 = 1,5 ∈ (1, 2 ) . De aici rezultă că x1 se află în afara intervalului
(1, 2 ) adică x1 ≤ 1 sau x1 ≥ 2 . Rezultă problema IV sau V.

Problema IV
f ( x ) = 6 x1 + 5 x2 = max
2 x1 + 5 x2 ≤ 20
2 x + x ≤ 6
 1 2

 x2 ≤ 3
 x1 ≤ 1
Cu soluţia optimă admisibilă în  + , x1 = 1 , x2 = 3 , max f = 21

80
Problema V
f ( x ) = 6 x1 + 5 x2 = max
2 x1 + 5 x2 ≤ 20
2 x + x ≤ 6
 1 2

 x2 ≤ 3
 x1 ≥ 2
Cu soluţia optimă admisibilă în  + , x1 = 2 , x2 = 2 , max f = 22

Problemele III, IV şi V au soluţii în  + dar cea mai mare


valoare pentruz funcţia obiectiv este în problema V. Rezultă că
soluţia optimă în  + a problemei iniţiale este
x1 = 2 , x2 = 2 , max f = 22
care nu poate fi obţinută prin rotunjirea celei date de algoritmul
simplex în problema iniţială.
Rezolvarea acestei probleme poate fi dată sub forma unui
arbore:

81
Problema IV
x1 = 1
x2 = 3
Problema II x1 ≤ 1
max f = 21
x1 = 1,5
x2 ≤ 3 x2 = 3
Problema I max f = 24 Problema V
x1 = 1, 25 x1 = 2
x1 ≤ 2
x2 = 3,5 x2 = 2
max f = 25 max f = 22
Problema III
x2 ≥ 4 x1 = 0
x2 = 4
max f = 20

Evident că se putea începe cu ramificarea, cu valoarea


primei variabile x1 = 1, 25 ∈ (1, 2 ) . Din problema I se obţin acum
alte două probleme care au respectiv restricţiile x1 ≤ 1 sau x1 ≥ 2 .
Problema IV
x1 = 1
x2 = 3
Problema II x2 ≤ 3
max f = 21
x1 = 1
x1 ≤ 1 x2 = 3, 6
Problema I max f = 24 Problema V
x1 = 1, 25 x1 = 0
x2 ≥ 4
x2 = 3,5 x2 = 4
max f = 25 max f = 22
Problema III
x1 ≥ 2 x1 = 2
x2 = 2
max f = 22

82
Rezultă şi în acest caz că soluţia optimă căutată este cea
de la problema 3.
Pentru problema de minim se procedează similar.
Problema optimizării transportului mai multor mărfuri de
valoare, masă şi volum diferite se evidenţiată prin problema
rucsacului.

Exemplu pe problema rucsacului


Un sportiv doreşte să aleagă produsele ce vor fi introduse
în rusacul său. El are patru tipuri de obiecte ale căror
caracteristici sunt date în tabel

Valoare Bucăţi
Obiect Masa (kg)
(unităţi monetare) disponibile
1 2 8 5
2 4 9 4
3 1 3 7
4 3 7 8

Masa totală a obiectelor din rucsac nu poate depăşi 20 kg.


a) determinaţi numărul obiectelor de fiecare tip care pot fi
încărcate în rucsac astfel încât valoarea totală a obiectelor
să fie maximă;
b) determinaţi numărul obiectelor din fiecare tip care pot fi
încărcate în rucsac dacă nu există restricţii cu privire la
numărul de obiecte disponibile;
c) determinaţi numărul obiectelor din fiecare tip care pot fi
încărcate în rucsac dacă există un singur obiect de fiecare
fel.

Soluţie
Notăm cu xi - numărul de obiecte i de fiecare tip ce vor fi
încărcate în rucsac, i = 1, 2,3, 4 .
a) modelul matematic este:

83
f ( x ) = 8 x1 + 9 x2 + 3 x3 + 7 x4 = max
2 x1 + 4 x2 + 1x3 + 3 x4 ≤ 20
x ≤ 5
 1
 x2 ≤ 4
x ≤ 7
 3
 x4 ≤ 8
xi ∈  + , i = 1, 4
soluţia optimă este: x1 = 5, x2 = 0, x3 = 7, x4 = 1, max f = 68

b) modelul matematic este:


f ( x ) = 8 x1 + 9 x2 + 3 x3 + 7 x4 = max
2 x1 + 4 x2 + 1x3 + 3 x4 ≤ 20
xi ∈  + , i = 1, 4
soluţia optimă este: x1 = 10, x2 = 0, x3 = 0, x4 = 0, max f = 80

c) modelul matematic este:


f ( x ) = 8 x1 + 5 x2 + 3 x3 + 7 x4 = max
2 x1 + 4 x2 + 1x3 + 3 x4 ≤ 20
xi ∈ {0,1}
Sau
f ( x ) = 8 x1 + 9 x2 + 3 x3 + 7 x4 = max
2 x1 + 4 x2 + 1x3 + 3 x4 ≤ 20
x ≤ 1
 1
 x2 ≤ 1
x ≤ 1
 3
 x4 ≤ 1
xi ∈  + , i = 1, 4
Soluţia optimă este x1 = 1, x2 = 1, x3 = 1, x4 = 1, max f = 27

84
Un alt exemplu în care se cere soluţia optimă în numere
întregi nenegative este o problemă în care se cere planul de
producţie a unor produse indivizibile. Se va arăta încă odată că
soluţia optimă în numere întregi nu poate fi obţinută prin
rotunjirea valorilor variabilelor din soluţia optimă obţinută în
 + , cu algoritmul simplex.

Exemplu
O întreprindere poate fabrica patru produse: A, B, C şi D
folosind 3 resurse, conform tabelului:
R1 – materie primă (kg)
R2 – manoperă directă pe maşină (ore)
R3 - manoperă cu finisarea (ore)
Profitul unitar se măsoară în unităţi monetare
Consum specific
Resursa Disponibil
A B C D
R1 10 15 3 5 100
R2 3 2 7 5 90
R3 2 2 2 2 30
Profit unitar 18 22 8 10

a) să se determine planul optim de producţie şi valoarea


maximă a beneficiului total folosind algoritmul simplex;
b) arătaţi că „soluţia optimă” obţinută prin rotunjirea
valorilor variabilelor optime de la a) nu este o soluţie
admisibilă;
c) determinaţi soluţia optimă în numere întregi.
Notăm cu x1, x2, x3, şi x4 numărul de bucăţi din cele 4
produse pe care întreprinderea le fabrică. Avem:
a) f ( x ) = 18 x1 + 22 x2 + 8 x3 + 10 x4 = max
10 x1 + 15 x2 + 3 x3 + 5 x4 ≤ 100

3 x1 + 2 x2 + 7 x3 + 5 x4 ≤ 90
2 x + 2 x + 2 x + 2 x ≤ 30
 1 2 3 4

85
xi ≥ 0, xi ∈  + , i = 1, 4
Prin aplicarea algoritmului simplex rezultă soluţia optimă:
x1 = 7,857 bucăţi; x2 = 0 bucăţi; x3 = 7,143 bucăţi; x4 = 0
bucăţi; max f = 198,575 unităţi monetare

b) Prin rotunjire rezultă:


x1 = 8 bucăţi; x2 = 0 bucăţi; x3 = 7 bucăţi; x4 = 0 bucăţi;
Să verificăm dacă restricţiile sunt verificate:
10 ⋅ 8 + 15 ⋅ 0 + 3 ⋅ 7 + 5 ⋅ 0 = 101 > 100
Această restricţie nu este îndeplinită, deci ceea ce s-a obţinut
prin rotunjire nu reprezintă o soluţie admisibilă şi, prin urmare,
nu este soluţia optimă.

c) Pentru acelaşi model matematic se cere acum


xi ∈  + , i = 1, 2,3, 4 .
Soluţia optimă este
x1 = 7 bucăţi; x2 = 0 bucăţi; x3 = 5 bucăţi; x4 = 3 bucăţi;
max f = 196 unităţi monetare.

Se prezintă în continuare o altă aplicaţie a programării în


numere întregi nenegative:
O întreprindere de transport public de persoane trebuie să
determine numărul maxim de şoferi pe care să îi angajeze.
Şoferii lucrează 5 zile consecutive şi au două zile libere în
fiecare săptămână. Numărul minim al autobuzelor care circulă în
fiecare zi pe un traseu este: luni 10 autobute, marţi 12 autouze,
miercuri 13 autobuze, joi 14 autobuze, vineri 12 autobuze,
sâmbătă 9 autobuze, duminică 8 autobuze. Se cere:
a) determinarea numărului de şoferi care încep lucrul în
fiecare zi a săptâmânii astfel încât numărul total de
şoferi angajaţi să fie minim;
b) determinarea numărului de şoferi care pot fi
redistribuiţi altor activităţi ;

86
c) să se verifice dacă există soluţii optime alternative şi
dacă da, care sunt acestea. Care este cea mai
convenabilă soluţie?
Introducem variabilele de decizii reprezentate de numărul de
şoferi care încep lucrul în fiecare zi a săptămânii:
x1 este numărul de şoferi care încep lucrul luni
x2 este numărul de şoferi care încep lucrul marţi
x3 este numărul de şoferi care încep lucrul miercuri
x4 este numărul de şoferi care încep lucrul joi
x5 este numărul de şoferi care încep lucrul vineri
x6 este numărul de şoferi care încep lucrul sâmbătă
x7 este numărul de şoferi care încep lucrul duminică

a) Modelul matemati se prezintă astfel:


f ( x ) = x1 + x2 + x3 + x4 + x5 + x6 + x7 = min
1) x1 + x4 + x5 + x6 + x7 ≥ 10
2) x1 + x2 + x5 + x6 + x7 ≥ 12
3) x1 + x2 + x3 + x6 + x7 ≥ 13
4) x1 + x2 + x3 + x4 + x7 ≥ 14
5) x1 + x2 + x3 + x4 + x5 ≥ 12
6) x2 + x3 + x4 + x5 + x6 ≥ 9
7) x3 + x4 + x5 + x6 + x7 ≥ 8
xi ∈  + , i = 1, 7
Soluţia optimă este: x1 = 3 şoferi; x2 = 5 şoferi; x3 = 1
şoferi; x4 = 4 şoferi; x5 = 0 şoferi; x6 = 0 şoferi, x7 = 4 şoferi,
adică în ziua de luni încep lucrul 3 şoferi, maţi 5 şoferi etc., iar
numărul total minim de angajaţi este 16.
b) Pentru a determina dacă unii şoferi pot fi distribuiţi
altor activităţi, după asigurarea numărului de şoferi necesari

87
zilnic întreprinderii de transport public de persoane, se verifică
restricţiile:
1) 3+3+0+0+4=10
2) 3+5+0+0+4=12
3) 3+5+1+0+4=13
4) 3+5+1+3+4=16>14
5) 3+5+1+3+0=12
6) 5+1+3+0+0=9
7) 1+3+0+0+4=8
Se constată că numai în ziua de joi există doi şoferi ce pot fi
redistribuiţi altor activităţi.

c) Soluţii alternative
xI = ( 3 5 1 1 2 0 4 ) min f = 16
T

xII = ( 5 3 3 1 2 0 2 ) min f = 16
T

xIII = ( 3 5 1 3 0 2 2 ) min f = 16
T

xIV = ( 3 3 3 1 2 0 4 ) min f = 16
T

În toate soluţiile, în ziua de duminică lucrează doar cei care au început


lucrul miercuri, joi, vineri, sâmbăta şi duminca, dar în ultima soluţie
sunt 10 şoferi, 10 > 8 deci doi pot fi redistribuiţi în alte activităţi. În
concluzie, ultima soluţie optimă este mai puţin convenabilă decât
celelalte.
Există situaţii în care la întrebările puse, există doar răspunsul
„da” sau răspunsul „nu”. În vederea creării unui moidel matematic
având un asemenea răspuns, se vor introduce variabilele de decizie
care pot lua valori numai în mulţimea {0,1} unde cifra „0” indică
„nu” iar cifra „1” indică „da”.

Exemplu
Datorită unei conjuncturi favorabile a pieţei, o
întreprindere de prelucrări mecanice se confruntă la un moment
dat cu o supraîncărcare a capacităţii de producţie, motiv pentru

88
care decide ca operaţiile unor loturi de fabricaţie pentru axe cu
diametre mici (strunjire, frezare, rectificare dantură, cementare)
să fie externalizate către alţi producători. Patru firme
Fi , i = 1, 2,3, 4 pot executa imediat oricare dintre operaţiile
aferente loturilor în cauză Pj , j = 1, 2,3, 4 dar costul de execuţie în
care fiecărei întreprinderi Fi care poate executa lotul de piese Pj
este diferit, conform tabelului:

Tabel: Costul de execuţie ai operaţiilor de către fiecare firmă


P1 P2 P3 P4
F1 10 12 11 12
F2 10 11 10 12
F3 11 12 11 11
F4 10 11 11 12

Să se determine care operaţie va execută de care firmă


astfel încât costul total de execuţie a loturilor de piese să fie
minim. Datorită urgenţei, se impune restricţia ca o singură
întreprindere să execute o singur lot de piese.

Soluţie
Deoarece fiecare firmă poate executa o singură operaţie
(da) iar pe celelalte nu le execută, se introduc variabilele de
decizie în binar:
1, Fi executa lotul de piese Pj
xi , j 
0, Fi nu executa piesa Pj
Pentru formarea modeluluzi matematic este mai simplu să se
introducă necunoscutele în tabel:
P1 P2 P3 P4
F1 x11 x12 x13 x14
F2 x21 x22 x23 x24
F3 x31 x32 x33 x34
F4 x41 x42 x43 x44

89
Modelul matematic este:
Costul total de execuţie:
f ( x ) = 10 x11 + 12 x12 + 11x13 + 12 x14 + 10 x21 + 11x22 + 10 x23 + 12 x24 +
+ 11x31 + 12 x32 + 11x33 + 11x34 + 10 x41 + 11x42 + 11x43 + 12 x44 = min

Restricţiile:
Primele 4 restricţii vor arăta că fiecare firmă trebuie să
execute o anumită operaţie la un lot de piese iar următoarele 4
restricţii indică faptul că toate cele 4 operaţii trebuie executate.
1) x11 + x12 + x13 + x14 = 1
2) x21 + x22 + x23 + x24 = 1
3) x31 + x32 + x33 + x34 = 1
4) x41 + x42 + x43 + x44 = 1
5) x11 + x21 + x31 + x41 = 1
6) x12 + x22 + x32 + x42 = 1
7) x13 + x23 + x33 + x43 = 1
8) x14 + x24 + x34 + x44 = 1

Se caută soluţia în mulţimea xij ∈ {0,1} i,j=1,4 .


Folosind un program informatic, în numere întregi şi
binar, adică în {0,1} determinăm soluţia optimă scrisă pentrru
simplicitate tot în tabel:
P1 P2 P3 P4
F1 1 0 0 0
F2 0 0 1 0
F3 0 0 0 1
F4 0 1 0 0

90
În concluzie firma F1execută operaţia 1, firma F2 execută
operaţia 3, firma F3 execută operaţia 4 iar firma F4 execută
operaţia 2. Costul total minim este:
10 ⋅1 + 10 ⋅1 + 11 ⋅1 + 11 ⋅1 = 42 unităţi monetare.
Astfel de exemple se vor mai întâlni şi în cazul problemelor de
repartiţie.

PROGRAMARE MULTICRITERIALĂ

În cadrul modelelor de programare lineară prezentate


până acum, a existat un singur obiectiv, exprimat printr-o singură
funcţie obiectiv, ce trebuie maximizată sau minimizată.
În unele situaţii este necesară satisfacerea simultană a mai
multor obiective, cum ar fi: utilizarea deplină a forţei de muncă,
încărcarea capacităţilor de producţie, obţinerea unui mase a
profitului indicate de către patronat, toate în condiţiile unui
volum de investiţii limitat. Aceste obiective pot fi atinse în
proporţii diferite întrucât, de multe ori, nu este posibilă
îndeplinirea simultană şi totală a acestora.
Modelul matematic în care se include satisfacerea unui
număr k ≥ 2 de obiective ce trebuie îndeplinite simultan este dat
de programarea multicriterială.
În cadrul programării multicriteriale se pot determina, pe
lângă soluţia optimă şi deviaţionalele (prin lipsă sau adaos) de la
atingerea obiectivelor propuse. Metoda se poate utiliza şi pentru
modelarea problemelor de programare liniară care au conţinut
economic, dar care, aşa cum au fost formulate iniţial, nu au nici
o soluţie.
Diferenţele principale care există între programarea
lineară şi cea multicriterială sunt:
1. în programarea lineară există un singur obiectiv ce trebuie
optimizat; în programarea multicriterială există cel puţin
două obiective ce trebuie realizate simultan;

91
2. în programarea lineară, odatăp cu soluţia optimă (adică
valoarea variabilelor de decizie) se obţine şi valoarea
optimă a funcţiei obiectiv, adică rezultă care este, de
exemplu, valoarea maximă a profitului ori nivelul minim
al costurilor; în cadrul programării multicriteriale există o
evaluare numerică pentru fiecare obiectiv. De exemplu,
directorul are ca prim obiectiv obţinerea unui profit brut
de 2 de milioane unităţi monetare lunar. Acest obiectiv
poate fi realizat sau nu;
3. În programarea multicriterială, odată cu soluţia optimă, se
obţin şi valorile deviaţiilor de la realizarea obiectivelor
propuse, adică se specifică măsura în care obiectivele au
fost realizate. În programarea multicriterială nu se poune
această problemă deoarece valoarea optimă a funcţiei
obiectivc rezultă odată cu soluţia optimă.
Pentru exemplificarea etapelor de constuire a modelului
matematic în programarea multicriterială şi pentru a evidenţia
diferenţele dintre programarea lineară şi programarea
multicriterială se consideră următorul exemplu:
Exemplu
O întreprindere poate fabrica trei produse A, B şi C
folosind trei resurse:
- R1 reprezintă kilograme (kg) de materie primă;
- R2 reprezintă ore de manoperă directă;
- R3 reprezintă unităţi monetare (u.m.) disponibile pentru
achiziţia de materie primă investiţii.
Consumurile specifice şi profiturile unitare (brute) pentru
cele trei produse sunt prezentate în tabelul de mai jos:

A B C
R1 (kg) 3 5 4
R2 (ore) 0,4 0,5 0,3
R3 (u.m.) 0,7 0,5 0,8
Profit 5 4 6

92
Faţă de cele de mai sus mai trebuie satisfăcute şi
următoarele condiţii:
 să se utilizeze cel mult 500 kg de materie primă;
 să se utilizeze cel puţin 42 de ore de manoperă
directă;
 costul materiei prime să nu depăşească 60 de untăţi
monetare.
Se cere:
a) să se determine planul optim de producţie utilizând
modelul de programare lineară şi să de termine profitul
total maxim, utilizând modelul de programare lineară;
b) să se determine planul optim de producţie şi modul de
satisfacere a următoarelor obiective, folosind modelul de
programare multicriterială:
O1: să obţină un profit total brut de cel puţin 500 de
unităţi monetare;
O2: să utilizeze exact 50 de ore de manoperă;
O3: să nu cheltuie mai mult de 55 de unităţi monetare
cu materia primă necesară producţiei.
Se consideră că toate obiectivele au ponderi şi priorităţi
egale;
c) să se determine soluţia optimă dacă produsele sunt
indivizibile
d) să se determine soluţia optimă dacă bugetul alocat
procurării de materii prime este de 55 de unităţi monetare.

Se introduc variabilele de decizie care determină planul de


producţie:
x1 este numărul de produse A care se vor fabrica;
x2 este numărul de produse B care se vor fabrica;
x3 este numărul de produse C care se vor fabrica;

a) Există un singur obiectiv, ca profitul total să fie maxim


şi trei restricţii privind resursele:

93
f ( x ) = 5 x1 + 4 x2 + 6 x3 = max
1) 3 x1 + 5 x2 + 4 x3 ≤ 500

2 ) 0, 4 x1 + 0,5 x2 + 0,3 x3 ≥ 42

3) 0,7x1 + 0,5 x2 + 0,8 x3 ≤ 60
Soluţia optimă şi profitul brut maxim care se obţine este
prezentat în tabel:
Variabile de decizie Cost redus
x1= 0 -0,2
x2=80 0
x3=25 0
max f = 470

Variabile de compensare Preţuri umbră


1) 0 0,1
2) 5,5 0
3) 0 7

În concluzie, produsul A nu se fabrică, din produsul B se


fabrică 80 de bucăţi iar din produsul C se fabrică 25 de bucăţi.
Cu acest plan optim de producţie se obţine profitul (brut) maxim.
max f = 5 ⋅ 0 + 4 ⋅ 80 + 6 ⋅ 25 = 470 unităţi monetare

c) în cazul celor trei obiective există evaluări numerice,


pentru fiecare dintre ele. Patronatul impune realizarea unui profit
brut de 500 de unităţi monetare, mai mare decât rezultă din
soluţia optimă din programarea lineară. Relaţia care exprimă
obiectivul profit este:
5 x1 + 4 x2 + 6 x3 ≥ 500
Apar trei situaţii:
1) se va obţine un profit mai mare de 500 de unităţi
monetare;

94
2) se va obţine un profit de exact 500 de unităţi
monetare;
3) se va obţine un profit mai mic de 500 de unităţi
monetare;
Pentru a pune în evidenţă aceste trei situaţii se introduce o
variabilă, numită variabilă deviaţională, de la obiectivul 1,
adică:
5 x1 + 4 x2 + 6 x3 − 500 = d1

Este clar faptul că d1 > 0 înseamnă că 5 x1 + 4 x2 + 6 x3 − 500 > 0 ,


adică 5 x1 + 4 x2 + 6 x3 > 500 (profit mai mare decât 500 unităţi
monetare). În concluzie, cele trei situaţii sunt:
1) d1 > 0 , profitul obţinut este mai mare ca 500;
2) d1 = 0 , profitul obţinut este egal cu 500;
3) d1 < 0 , profitul obţinut este mai mic decât 500.
În relaţia în care a fost introdusă, variabila deviaţională d1 este o
variabilă care poate avea semn oarecare. Însă în forma standard
se cere ca toate variabilele deviaţionale din program să fie
nenegative. În acest caz al variabilei oarecare se efectuează
substituţia:
d1 = d1+ - d1- , d1+ ≥ 0, d1− ≥ 0

Această substituţie se înlocuieşte cu relaţia care exprimă


obiectivul:
5 x1 + 4 x2 + 6 x3 − 500 = d1+ − d1−

Adică forma din modelul programării multicriteriale este:


5 x1 + 4 x2 + 6 x3 + d1− − d1+ = 500

95
Mărimile d1+ şi d1− din substituţie se numesc tot variabilke
deviaţionale de la obiectivul profit şi apar în situaţiile care dau şi
semnificaţiile acestor variabile.
1) d1+ > 0; d1− = 0 , rezultă d1 > 0 . Profitul este mai mare de
500 de unităţi monetare cu d1+ ;
2) d1+ = 0; d1− = 0 , rezultă d1 = 0 . Profitul este exact de
500 de unităţi monetare;
3) d1+ = 0; d1− > 0 , rezultă d1 < 0 . Profitul este mai mic de
500 de unităţi monetare cu d1− .
În concluzie, d1+ şi d1− sunt variabile deviaţionalede la
obiectivul profit, prin adaos sau prin liupsă. Similar se
procedează cu celelalte două obiective.
Iniţial, pentru cele trei obiective aveam relaţiile:
O1: 5 x1 + 4 x2 + 6 x3 ≥ 500
O2: 0, 4 x1 + 0,5 x2 + 0,3x3 = 500
O3: 0, 7 x1 + 0,5 x2 + 0,8 x3 ≤ 55
Iar prin introducerea unor perechi de variabile deviaţionale şi
transformarea relaţiilor în ecuaţii, acestea devin:
5 x1 + 4 x2 + 6 x3 + d1− − d1+ = 500
 − +
0, 4 x1 + 0,5 x2 + 0,3 x3 + d 2 − d 2 = 50
 − +
0, 7 x1 + 0,5 x2 + 0,8 x3 + d 3 − d 3 = 55
Unde:
d1− arata cu ce valoare nu s-a realizat obiectivul de profit de 500 u.m.
 +
d1 arata cu ce valoare s-a depasit obiectivul de profit de 500 u.m.

96
d 2 − arata cu ce valoare nu s-a realizat obiectivul de manopera de 50 ore
 +
d 2 arata cu ce valoare s-a depasit obiectivul de manopera de 50 ore
 d3− arata cu ce valoare nu s-a realizat obiectivul de buget de 50 ore
 +
 d3 arata cu ce valoare s-a depasit bugetul pentru achitia de materie prima de 55 u.m

Modelul matematic al programării multicriteriale conţine


şi o funcţie obiectiv. Această funcţie obiectiv minimizează suma
variabilelor care împiedică realizarea obiectivelor.
La obiectivul 1 (O1), va intra d1− deoarece depăşirea cu
d1+ a profitului ne este avantajoasă.
La obiectivul 2 (O2) vor intra şi d1− şi d1+ deoarece se cere
ca utilizarea unui număr de exact 50 de ore de manoperă, nici
mai mult, nici mai puţin.
La obiectivul 3 (O3) va intra şi d1+ care arată câte unităţi
monetare trebuie cheltuite în plus cu materia primă faţă de cele
55 unităţi monetare alocate prin buget. Dacă s-ar cheltui mai
puţin de 55 unităţi monetare, cu d1− , această situaţie ar fi
favorabilă. Avem:
min ( d1- + d 2 − + d 2 + + d3 + )
în ipoteza că avem ponderi egale şi priorităţi egale cu 1.
Modelul matematic în programarea multicriterială este
formată din:
1. Funcţia obiectiv:
min ( d1- + d 2 − + d 2 + + d3 + )
2. Relaţiile ce exprimă obiectivele:
O1 : 5 x1 + 4 x2 + 6 x3 + d1− − d1+ = 500
O2 : 0, 4 x1 + 0,5 x2 + 0,3 x3 + d 2 − − d 2 + = 50
O3 : 0, 7 x1 + 0,5 x2 + 0,8 x3 + d 3− − d3+ = 55
3. Restricţia obişnuită:

97
3x1 + 5 x2 + 4 x3 ≤ 500 (kg material)
4. Condiţiile de nenegativitate:
xi ≥ 0, i = 1, 2,3
d1+ ≥ 0, d1− ≥ 0 , i = 1, 2, 3
Soluţia acesteiu probleme este dată de valorile variabilelor de
decizie xi, care dau planul de producţie şi valorile variabilelor
deviaţionale di + şi di − , i = 1, 2,3 care arată modul de satisfacere a
obiectivelor:
x1 = 18,519
x2 = 74,074
x3 = 18,519
 d1+ = 0; d1− = 0 , profitul este de exact 500 unităţi
monetare;
 d 2 + = 0; d 2 − = 0 , s-au realizat exact 50 de ore
manoperă;
 d3− = 0; d3+ = 9,815 , este necesară depăşirea
bugetului pentru cumpărarea de materii prime cu
9,815 unităţi monetare peste cele 55 unităţi
monetare alocate;

c) Dacă produsele sunt indivizibile, avem de aflat soluţia


optimă a variabilelor de decizie x1, x2 şi x3 în numere reale. În
locul condiţiilor 4) avem:
x1 , x2 , x3 ∈  + , di − , di + ∈  +
Soluţia optimă este:

98
 x1 = 18, x 2 = 74, x 3 = 19
 + −
 d1 = 0; d1 = 0 , profitul este de exact 500 unitati monetare
 + −
d 2 = 0; d 2 = 0,1 se folosesc cu 0,1 mai putine ore decat cele 50
 − +
 d 3 = 0; d3 = 9,8 este necesar depasirea bugetului de materii prime cu
 9,8 u.m. fata de cele 55 u.m. bugetate

d) În practică poate apare şi situaţia în care


managementul firmei nu poate suplimenta bugetul pentru materii
prime, astfel că soluţiile optime din cazurile b) şi c) nu pot fi
acceptate. În acest caz se va renunţa la obiectivul 3) care se va
înlocui cu restricţia:
0, 7 x1 + 0,5 x2 + 0,8 x3 ≤ 55
Variabilele deviaţionale d 3− si d3+ nu se mai introduc nici în
funcţia obiectiv. Modelul matematic în acest caz este:
min ( d1- + d 2 − + d 2 + )
O1 : 5 x1 + 4 x2 + 6 x3 + d1− − d1+ = 500
O2 : 0, 4 x1 + 0,5 x2 + 0,3 x3 + d 2 − − d 2 + = 50
0, 7 x1 + 0,5 x2 + 0,8 x3 ≤ 55
3 x1 + 5 x2 + 4 x3 ≤ 500
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0; d1- , d1+ , d 2 − , d 2 + ≥ 0
Soluţia optimă:
 x1 = 0, x 2 = 90, x 3 = 12,5
 + −
 d1 = 0; d1 = 65 , profitul este mai mic de 500 unitati monetare
 + −
 d 2 = 0; d 2 = 1, 25 se folosesc cu 1,25 mai putine ore decat cele 50
Managementul firmei va analiza toiate obiectivele şi
condiţiile de realizare a lor, selectând acea soluţie optimă care îi
convine cel mai mult.

99
MODELUL MATEMATIC

În general, pentru crearea modelului matematic într-o


problemă de programare multicriterială, se consideră
următoarele:
• un număr de n variabile de decizie xi , i = 1, n ;
• un număr de k ≥ 2 obiective O1, O2, ..., Ok pentru care
se cinosc nişte evaluări numerice g1, g2, ... , gk;
• un număr m de restricţii obişnuite.
Iniţial, cele k obiective se exprimă prin:
O1: c11 x1 + c12 x2 + ... + c1n xn (<, =, >) g1

...
O : c x + c x + ... + c x (<, =, >) g
 k k1 1 k 2 2 kn n k

Restricţiile au forma cunoscută:


a11 x1 + a12 x2 + ... + a1n xn (<, =, >)b1

...
a x + c x + ... + c x (<, =, >)b
 m1 1 m 2 2 mn n k

Iar condiţiile de nenegativitate sunt:


xi ≥ 0, i = 1, n
Este posibil ca unele obiective să nu poată fi satisfăcute
aşa cum s-a propus. Pentru obiectivul i, i = 1, k se introduce mai
întâi notaţia:
c11 x1 + c12 x2 + ... + c1n xn − gi = d i , i = 1, k
unde di este o variabilă deviaţională de la obiectivul i ce poate avea
semn oarecare. Din acest motiv se face substituţia:
di = di + - d i - , di + ≥ 0, d i − ≥ 0, i = 1, k
astfel că obiectivul i se exprimă prin:
c11 x1 + c12 x2 + ... + c1n xn − d i − − d i + = g i , i = 1, k
Variabilele nenegative di + şi di − au semnificaţiile:

100
di − arata cu ce cantitate obiectivul nu a fost realizat prin adaos
 +
di arata cu ce cantitate obiectivul nu a fost realizat prin lipsa
Se observă că modelul matematic în programarea
multicriterială pentru exprimarea unui obiectiv conţine două
operaţii:
1) se adaogă o pereche de variabile deviaţionale în
fiecare relaţie ce exprimă un obiectiv, adică:
di - − d i + , i = 1, k ;
2) toate relaţiile ce exprimă obiectivele sunt exprimate
prin egalităţi (sunt ecuaţii).
Cu aceste transformări relaţiile ce exprimă obiectivele pot
fi privite ca restricţii în care variabilele deviaţionale au rolul
variabilelor de compensare.
Pentru modelul matematic mai este necesară formularea
unei funcţii obiectiv. Funcţia obiectiv minimizează suma
variabilelor deviaţionale care deranjează, înmulţite eventual cu
ponderi şi priorităţi. Menţionăm următoarele aspecte asupra
variabilelor deviaţionale care intră în funcţia obiectiv:
• Dacă relaţia iniţială ce exprimă obiectivul i conţine
inegalitatea „ ≤ ” (de exemplu bugetul alocat este ≤ 55 unităţi
monetare), atunci variabila deviaţională care va intra în
funcţia obiectiv este di + (care explimă un buget disponibil
mai mare de 55 u.m.), în timp ce di − este acceptată întrucât
este convenabilă (ea indicând un buget mai mic de 55 u.m.);
• Dacă relaţia iniţială care exprimă obiectivul i are semnul
„=”, atunci în funcţia obiectiv vor intra ambele variabile
deviaţionale di − şi di + . De exemplu, dacă se cere utilizarea
integrală a forşei de muncă, atât folosirea unor persoane în
plus cât şi neutilizarea tuturor celor disponibile n u este
acceptabilă;

101
• Dacă relaţia iniţială care exprimă obiectivul are semnul ” ≥ ”
atunci, în funcţie de obiectiv, va intra numai di − . De exemplu
obiectivul este obţinerea unui profit mai ≥ 10.000 u.m.
Rezultă că, dacă obiectivele au ponderi şi priorităţi egale
(cu 1) atunci funcţia obiectiv care minimizează suma deviaţiilor
care deranjează este:
min  ∑ (d i + + d i− ) 
k

 i =1 
În cazul general obiectivele pot fi caracterizate de ponderi
şi priorităţi, care sunt coeficienţi ai variabilelor deviaţionale din
funcţia obiectiv.
a) Ponderi (weight) Wi , i = 1, k (coeficienţi care exprimă
importanţa relativă a obiectivelor). Obiectivul cel mai
importanţi, în raport cu ceilalţi. Are ponderea cea mai
mare iar obiectivele mai puţin importante au ponderea
mai redusă.
b) Priorităţile Pi , i = 1, k . Aceasta înseamnă că trebuie să
fie satisfăcut mai întâi obiectivul care are prioritatea 1
şi apoi obiectivul care are prioritatea 2, etc.
Ponderile şi priorităţile pot fi definite chiar şi pentru acelaşi
obiectiv i căruia i s-au asociat variabilele deviaţionale
di + (respectiv Wi + şi Pi + ) şi di − (respectiv Wi − şi Pi − ).
În concluzie, forma cea mai generală a modelului
matematic în programarea multicriterială este:
• Funcţia obiectiv:
k
min ∑ ( Pi +Wi + di+ + Pi −Wi − di− )
i =1

• Obiectivele:
c11 x1 + c12 x2 + ... + c1n xn +d1- + d1+ = g1

...
c x + c x + ... + c x +d - + d + = g
 k1 1 k 2 2 kn n k k k

102
• Restricţiile obişnuite:
a11 x1 + a12 x2 + ... + a1n xn (<, =, >)b1

...
a x + c x + ... + c x (<, =, >)b
 m1 1 m 2 2 mn n m

• Condiţii de nenegativitate:
xi ≥ 0, i = 1, n , di + ≥ 0, i = 1, k , di − ≥ 0, i = 1, k
După determinarea soluţiei optime, adică a variabilelor de
decizie şi a variabilelor deviaţionale, care arată modul în care au
fost îndeplinite sau nu obiectivele, urmează interpretarea şi
analiza rezultatelor de către management.
Modelul iniţial poate fi modificat prin introducerea unor
restricţii suplimentare, a ponderilor şi priorităţilor, până ce se
obţine o soluţie optimă care să corespundă cel mai bine situaţiei
analizate de către manageri.
În exemplul următor se va obţine o altă soluţie optimă
folosind imnportnaţa relativă a obiectivelor, adică ponderile.

Exemplu
O firmă fabrică doua produse A şi B utilizând două resurse
R1 şi R2 . Consumurile specifice şi profiturile unitare sunt
prezentate în tabel:
Consumuri specifice
Resurse Disponibil
A B
R1 1 2 40
R2 1 1 30
Profit unitar 45 30

Procesul de producţie trebuie să conducă la realizarea


următoarelor obiective:
O1: să obţină un profit de cel puţin 720 u.m.;
O2: să producă cel puţin 15 bucăţi produse A;

103
O3: să producă cel puţin 15 bucăţi produse B.

a) determinaţi planul optim de producţie şi modul în care


sunt satisfăcute obiectivele dacă ele au priorităţi egale
ponderi egale cu 1;
b) datorită unui contract care prevede livrarea a 15 produse
B zilnic, se consideră că obiectivul 3 este de 5 ori mai
important decât celelalte două, deci are ponderea W3=5,
priorităţile celor 3 obiective rămânând aceleaşi; să se
determine planul optim de producţie şi care este modul de
realizare a obiectivelor?

Rezolvare:
Se introduc mai întâi variabilele de decizii care vor
determina planul de producţie:
x1 reprezintă numărul de produse A care se vor fabrica;
x2 reprezintă numărul de produse B care se vor fabrica.
Iniţial obiectivele au următoare formulare:
O1: 45 x1 + 30 x2 ≥ 720
O2: x1 ≥ 15
O3: x2 ≥ 15
Iar restricţiile sunt:
 x1 + 2 x2 ≤ 40

 x1 + x2 ≤ 30
Condiţiile de nenegativitate
x1 ≥ 0, x2 ≥ 0

a) Modelul matematic pentru modelarea multicriterială în cazul


în care toate obiectivele au ponderile Wi = 1, i = 1, 2,3 şi
Pi = 1, i = 1, 2,3 este:

104
Funcţia obiectiv:
min ( d1− + d 2− + d3− )
Obiectivele:
45 x1 + 30 x2 + d1− − d1+ = 720
x1 + d 2− − d 2+ = 15
x2 + d 3− − d3+ = 15
Iar restricţiile sunt:
 x1 + 2 x2 ≤ 40

 x1 + x2 ≤ 30
Condiţiile de nenegativitate
x1 ≥ 0, x2 ≥ 0, di + ≥ 0, di − ≥ 0, i = 1, 2,3 .
Soluţia optimă a acestei probleme este:
x1 = 15 , adică se vor fabrica 15 bucăţi produse A;
x2 = 12,5 , adică se vor fabrica 12,5 bucăţi produse B;
d1− = 0, d1+ = 330 , obiectivul profit a fost îndeplinit prin
adaos, adică în loc de 720 u.m. se pot obţine
720 + 330 = 1050 u.m.;
d 2− = 0, d 2+ = 0 , deci obiectivul 2 este îndeplinit, se fabrică
exact 15 produse A;
d3− = 2.5, d 3+ = 0 , obiectivul 3 nu este îndeplinit: se vor
produce cu 2.5 produse B mai puţin decât era prevăzut, deci doar
12.5.
Observaţie: Dacă soluţia în numere reale nenegative nu
este satisfăcută deoarece produsele sunt indivizibile, se caută
soluţia în numere întregi nenegative. Aceasta este:
x1 = 15; x2 = 12;
d1− = 0; d1+ = 315;
d 2− = 0; d 2+ = 0;
d3− = 3; d 3+ = 0.

105
b) Modelul matematic în acest caz schimbă doar expresia
funcţiei obiectiv, deoarece în acest caz avem w3 = 5, P3 = 1,
restul ponderilor şi priorităţilor rămânând la fel. Deci:
min ( d1− + d 2− + 5 ⋅ d 3− )
45 x1 + 30 x2 + d1− − d1+ = 720

 x1 +d 2− − d 2+ = 15

 x2 + + d 3− − d3+ = 15
x + 2x ≤ 40
 1 2

 x1 + x2 ≤ 30

x1 ≥ 0, x2 ≥ 0, di + ≥ 0, di − ≥ 0, i = 1, 2,3 .
Soluţia optimă în acest caz este:
x1 = 10 , adică se vor fabrica 10 bucăţi produse A;
x2 = 15 , adică se vor fabrica 15 bucăţi produse B, deci
contractul se poate onora, obiectivul 3 fiint îndeplinit;
d1− = 0, d1+ = 180 , se obţine un profit mai mare cu 180 u.m.
decât cel prevăzut;
d 2− = 5, d 2+ = 0 , deci obiectivul 2 nu este îndeplinit, se
fabrică cu 5 produse A mai puţine decât era prevăzut;
d3− = 0, d 3+ = 0 , obiectivul 3 este îndeplinit.

106
PROBLEME DE TRANSPORT ŞI PROBLEME DE
REPARTIŢIE

Una dintre problemele ce apar frecvent în practică este


problema de transport. Denumirea provine din faptul că este
vorba fie de un transport al unui produs, fie de o distribuire a
unor bunuri şi servicii de la anumite surse ori depozite la anumiţi
destinatari sau centre de consum.
Problema de repartiţie poate fi considerată ca un caz
particular de problemă de transport în care toate catităţile
disponibile aflate la surse ori depozite sunt egale respectiv cu 1
şi toţi destinatarii sau centrele de consum cer câte o singură
unitate din produsul respectiv.

PROBLEME DE TRANSPORT

Un produs care se află în unele depozite (surse, centre de


depozitare) trebuie trensportat la nişte consumatori (destinatari,
centre de desfacere), astfel încât costul total al transportului să
fie minim.
Se presupune că dacă se transportă o singură unitate de
produs la costul c (um) atunci pentru a transporta n unităţi, costul
este nc (um).
Se mai consideră că problema este deterministă, adică
sunt cunoscute toate datele de care depinde transportul.
Se presupun cunoscute următoarele date:
1. Există un număr de m depozite Di, i = 1, m şi în
fiecare depozit se află cantitatea disponibilă de
produs, ai, i = 1, m
2. Există un număr de n centre de desfacere Cj, j = 1, n
iar cantitatea de produs necesară acestor centre este
bj, j = 1, n

107
3. Costul de transport pentru o unitate de produs, de
la fiecare depozit Di la fiecare centru de desfacere
Cj este ci (um), i = 1, n ; j = 1, m .
j

Datele acestea se pot sintetiza în tabelul:


Centre de desfacere
Cantităţi
Depozite (surse) (destinatari)
disponibile
C1 C2 . . . Cn
D1 c11 c12 . . . c1n a1
D2 c21 c22 . . . c2 n a2
. . . . . . . .
. . . . . . . .
. . . . . . . .
Dn cm1 cm 2 . . . cmn am
Cantităţi necesare b
1 b2 . . . bn
(cerere)

Deci în primul depozit D1 se află a1 unităţi de produs, în


D2 se află a2 unităţi de produs etc; iar centrul C1 cere un număr
de b1 unităţi de produs, centrul C2 cere b2 unităţi etc. În plus,
pentru a transporta o unitate de produs de la D1 la C1 costul este
c11 (um), de la D1 la C2 costă c12 (um) etc.
Se cere să se organizeze transportul, adică să se afle ce
cantităţi de produs se vor transporta de la fiecare depozit Di la
fiecare centru Cj astfel încât costul total al trensportului să fie
minim.
Deoarece produsul se poate transporta de la fiecare
depozit Di la fiecare centru Cj, există m ⋅ n necunoscute xij :
xij = cantitatea transportată de la Di la C j , i = 1, m, j = 1, n
Pentru formularea modelului matematic al problemei de
transport, ca problemă de programare liniară este mai comod să
se introducă şi datele cunoscute şi necunoscutele problemei,
într-un tabel unic:

108
Centre de desfacere
Depozite Cantităţi
(destinatari)
(surse) C1 C2 Cn
disponibile
D1 c11
x11 c12
x12 ... c1 n
x1n a1
D2 c21
x21 c22
x22 ... c2 n
x2 n a2

cm1 cm 2
xm1 xm 2
Dm ... cmn
xmn am

Cantităţi
necesare b1 b2 ... bn
(cerere)

În forma standard pentru o problema de transport se cere


ca problema să fie echilibrată, adică să fie îndeplinită condiţia:
cantitatea totală aflată în depozite este egală cu cererea totală
m n

∑ a = ∑b
i =1
i
j =1
j

Această condiţie de echilibrare nu este restrictivă, deşi


este obligatorie. Dacă iniţial, ea nu este satisfăcută, apare una din
următoarele două situaţii:
a) Cantitatea totală disponibilă este mai mică decât cererea
totală:
m n

∑ ai < ∑ b j
i =1 j =1

Pentru a obţine egalitatea (echilibrarea), în membrul stâng


se adună cantitatea am +1 strict pozitivă, adică
m n

∑a
i =1
i + am +1 = ∑ b j
j =1

Faţă de tabelul precedent, trebuie să se adauge o nouă


linie, care va corespunde unui depozit fictiv Dm +1 ; în acest
depozit fictiv se află cantitatea am +1 din produs, dar deoarece

109
Dm +1 nu există, costurile de transport de la Dm +1 la oricare centru
Cj sunt egale cu zero. Această linie are aspectul:

Dm +1 0 xm +11 0 xm +12 ... 0 xm +1n am +1

Dacă a apărut situaţia că disponibilul total este mai mic


decât cererea tortală, aceasta înseamnă că cererea centrelor nu va
putea fi satisfăcută.
Lipsesc tocmai cantităţile xm +1i i = 1, n deoarece acestea se
primesc de la depozitul Dm +1 care nu există.
b) Cantitatea totală disponibilă în depozite este mai mare
decât cererea totală:
m n

∑ a > ∑b
i =1
i
j =1
j

În acest caz se adaugă în membrul drept o cantitate


bn +1 > 0 .
m n

∑ ai > ∑ b j + bn+1
i =1 j =1

Cantitatea bn +1 arată că faţă de tabelul iniţial mai trebuie


adăugată o coloană, care ar corespunde unui centru fictiv Cn +1
care solicită cantitatea bn +1 de produs. Cum centrul Cn +1 este
fictiv, costurile de transport de la depozitele Di la acest centru
fictiv Cn +1 sunt nule. Variabilele de pe această coloană sunt
notate xin +1 , i = 1, m .
Cum oferta este mai mare decât cererea, în unele depozite
Di , i = 1, m vor mai rămâne cantităţi din produs ce nu au unde să
fie transportate, cererea fiind deja satisfăcută. Necunoscutele
xin +1 , i = 1, m arată în care depozit Di a rămas cantitatea de produs
xin +1 .

110
Modelul matematic pentru o problemă de transport
echilibrată, în care:
m n

∑ a = ∑b
i =1
i
j =1
j

se poate formula, cu menţionarea faptului că în acest caz toată


marfa din depozite va fi transportată la centrele de desfacere care
vor avea cererea satisfăcută. Avem:
• Obiectivul, costul total al transportului să fie minim,
exprimat prin funcţia obiectiv:
m n
f ( x ) = c11 x11 + c12 x12 + ... + cmn xmn = ∑∑ cij xij = MIN
i =1 j =1

• Restricţiile problemei:
 Primele m arată că se transportă toată cantitatea de
produs aflată în depozite
 x11 + x12 + ... + x1n = b1

 x21 + x22 + ... + x2 n = b2

...
 xm1 + xm 2 + ... + xmn = bm
 Următoarele n restricţii arată că fiecare centru
primeşte cantitatea necesară de la cele m depozite:
 x11 + x21 + ... + xm1 = b1

 x12 + x22 + ... + xm 2 = b2

...
 x1n + x2 n + ... + xmn = bn
Avem deci un număr de m + n restricţii.
• Condiţiile de nenegativitate
xij ≥ 0 i = 1, m , j = 1, n
Se ştie că o problemă de programare liniară are cel mult
un număr de componente strict pozitive în soluţie egal cu rangul
matricei A al coeficienţilor.

111
Deşi aici numărul de restricţii este m + n , cel puţin una
dintre restricţii este o combinaţie liniară a celorlalte, deci sunt
independente cel mult m + n − 1 .
Rezultă că o soluţie admisibilă conţine cel mult un număr
de m + n − 1 componente strict pozitive.
Se poate arăta că orice problemă de transport admite
soluţie. Rezultă că cele m + n − 1 ecuaţii reprezentate de restricţii
formează totdeauna un sistem compatibil. O astfel de soluţie care
nu este neapărat optimă este, de exemplu:
ai b j
xij = m
(problemă echilibrată)
∑a
i =1
i

Soluţia optimă a unei probleme de transport poate fi aflată


prin una din metodele:
1) Algoritmul simplex, pentru modelul matematic
prezentat;
2) Algoritmi specifici rezolvării problemelor de
transport.
Toate metodele specifice de soluţionare, conţin două
etape principale:
Etapa I Obţinerea unei soluţii admisibile de bază de pornire, care
are cel mult m + n − 1 componente strict pozitive
Etapa a II-a Obţinerea soluţiei optime
În continuare se va prezenta un algoritm specific
determinării soluţiei optime la problemele de transport.

ETAPA I. SOLUŢIA DE PORNIRE

Acest algoritm se bazează pe aflarea unei soluţii de


pornire, aplicarea unui criteriu de optimalitate, aflarea altei
soluţii admisibile, aflarea altei soluţii, etc, până la aflarea soluţiei
optime, aşa cum aveam ca etape şi la algoritmul simplex.

112
Pentru aflarea soluţiei de pornire se procedează în felul
următor:
a) Se determină elementul xij din tabel, prin
 ai , daca ai < b j

xij = min ( ai , b j ) = b j , daca ai > b j

 ai = b j , daca ai = b j
b) Se efectuează următoarele două înlocuiri
ai se inlocuieste cu ai − xij

b j se inlocuieste cu b j − xij
c) Se punctează o linie sau o coloană:
• linia i dacă xij = ai
• coloana j dacă xij = b j
• se punctează sau linia i sau coloana j dacă
xij = ai = b j
Punctele au semnificaţia cifrei 0. Cifra zero nu se
foloseşte decât dacă xij = 0 , adică există o soluţie degenerată cu
mai puţin de m + n − 1 componente strict pozitive.
Elementele soluţiei de pornire xij se pot determina într-o
anumită ordine şi anume:
• Metoda colţului de nord-vest, când se află de
fiecare dată elementul xij situat în tabel în colţul N-
V; apoi după ce se punctează linia şi coloana, se
determină în tabelul rămas, din nou elementul din
colţul N-V, etc.
• Metoda costului minim din tabel.
Se determină mai întâi elementul xij căruia îi corespunde
în tabel costul cij cel mai mic din tabel. În tabelul rămas după
punctare se află, din nou, elementul xij căruia îi corespunde cel
mai mic cost etc.

113
• Metoda costului minim pe linie
• Metoda costului minim pe coloană
La probleme de minim, soluţia de pornire cea mai bună,
în sensul că valoarea costului total ce corespunde acestei soluţii
este mai mică, se obţine aplicând metoda costului minim din
tabel. Dar această soluţie de pornire nu este neapărat soluţia
optimă.
Cele menţionate mai sus pot fi aplicate în următorul caz:
Exemplu
O companie fabrică un anumit produs în patru secţii ale
sale Si , i = 1, 4 . Produsul este transportat în 4 depozite Di , i = 1, 4 .
Costurile de transport pentru o unitate de produs, capacităţile de
producţie ale secţiilor şi capacităţile depozitelor sunt date în
tabel:
D1 D2 D3 D4 Producţie
S1 3 4 2 8 40
S2 3 6 5 7 20
S3 6 5 7 6 35
S4 2 4 5 6 10
Capacitatea 36 18 27 24
Să se determine planul de transport de la secţii la depozite
astfel încât să se obţină un cost total minim.
Soluţie
a) Aflăm soluţia optimă prin programare liniară
• Se verifică echilibrarea:
40 + 20 + 35 + 10 = 36 + 18 + 27 + 24 = 105
• Se introduc variabilele de decizie xij care arată ce
cantităţi vor fi transportate de la sursele Si (care
sunt secţiile) la destinatarii D j (care sunt
depozitele).

114
Deoarece problema este echilibrată, toată marfa de la
secţii va fi transportată în depozite, pentru care se va utiliza
întreaga capacitate.
Variabilele xij precum şi toate datele problemei sunt date
în tabel
D1 D2 D3 D4 Producţie
S1 3 x11 4 x12 2 x13 8 x14 40
S2 3 x21 6 x22 5 x23 7 x24 20
S3 6 x31 5 x32 7 x33 6 x34 35
S4 2 x41 4 x42 5 x43 6 x44 10
Capacitatea 36 18 27 24
Modelul matematic, pentru algoritmul simplex, este:
• Funcţia obiectiv
f ( x ) = 3 x11 + 4 x12 + 2 x13 + 8 x14 + 3 x21 + 6 x22 + 5 x23 + 7 x24 + 6 x31 +
+5 x32 + 7 x33 + 6 x34 + 2 x41 + 4 x42 + 5 x43 + 6 x44 = MIN
• Restricţiile
 x11 + x12 + x13 + x14 = 40

 x21 + x22 + x23 + x24 = 20

 x31 + x32 + x33 + x34 = 35
 x41 + x42 + x43 + x44 = 10
 x11 + x21 + x31 + x41 = 10

 x12 + x22 + x32 + x42 = 18

 x13 + x23 + x33 + x43 = 27
 x14 + x24 + x34 + x44 = 24
Primele patru restricţii arată că din secţia S1 se transportă
toate cele 40 unităţi de produs, la cele 4 depozite etc, iar
următoarele 4 restricţii arată că în depozitul D1 se poate
transporta produsul de la cele 4 secţii Si, i = 1, 4 , pentru a folosi
capacitatea acestui depozit, de 36 unităţi de produs etc. Avem 8
restricţii din care 4 + 4 − 1 = 7 sunt independente, deci soluţia xij
are cel mult 7 componente strict pozitive.

115
• Condiţiile de nenegativitate
xij ≥ 0 , i, j = 1, 4
Soluţia optimă a acestei probleme de transport este:
 x11 = 6 x12 = 7 x13 = 27 x14 = 0
 x = 20 x = 0 x = 0 x = 0
 21 22 23 24

 x31 = 0 x32 = 11 x33 = 0 x34 = 24
 x41 = 10 x42 = 0 x43 = 0 x44 = 0
min f = 379 um
Interpretarea acestei soluţii este:
De la secţia S1 se transportă 6 unităţi de produse la D1 , 7
unităţi de produs la D2 , 27 la D3 şi nimic la D4 . Se mai
transportă 20 de la S 2 la D1 , 11 de la S3 la D2 şi 24 de la S3 la
D4 şi 10 de la S 4 la D1 .
Costul minim total este:
5 ⋅ 6 + 4 ⋅ 7 + 2 ⋅ 27 + 3 ⋅ 20 + 5 ⋅ 11 + 6 ⋅ 24 + 2 ⋅ 10 = 391 um
b) Aplicăm algoritmul specific problemelor de transport
pentru aflarea soluţiei de pornire. Se vor aplica primele două
metode, a colţului de NV şi a costului minim din tabel.
1) Soluţia de pornire prin metoda colţului de N-V
 Se începe cu determinarea lui x11 , aflat în colţul
NV
x11 = min ( 40,36 ) = 36
 Deoarece minimul este pe coloană, se punctează
coloana 1, adică în locul elementelor x21 , x31 şi x41
se pun puncte (care înseamnă 0)
 Se înlocuieşte valoarea 40 cu 40 − 36 = 4 şi valoarea
36 cu 36 − 36 = 0
În tabelul rămas, elementul din colţul de NV este x12 .
Acesta va fi egal cu:
x12 = min ( 4,18 ) = 4

116
Se punctează linia deoarece x12 = 4 (pe linie) şi apoi se
înlocuieşte 4 cu 4 − 4 = 0 şi 18 cu 18 − 4 = 14 .
Se continuă cu elementul din colţul NV din tabelul rămas,
acesta fiind x22 = min (14, 20 ) etc.
Soluţia de pornire prin acest procedeu este:
3 36 4 4 2 i 8 i 40
3 i 6 14 5 6 7 i 20
6 i 5 i 7 21 6 14 35
2 i 4 i 5 i 6 10 10
36 18 27 24
Valoarea costului pentru acest plan de transport este:
3 ⋅ 36 + 4 ⋅ 4 + 6 ⋅ 14 + 5 ⋅ 6 + 7 ⋅ 21 + 6 ⋅ 14 + 6 ⋅ 10 = 529 um
2) Aflăm soluţia optimă prin metoda costului minim
din tabel.
Avem două costuri minime egale cu 2. Se determină mai
întâi elementul x13 = min ( 27, 40 ) = 27 . Se punctează coloana 3, se
înlocuiesc respectiv 40 cu 40 − 27 = 13 şi 27 cu 0. În tabelul
rămas, costul minim este 2, care corespunde elementului x41 .
Avem x41 = min ( 36,10 ) = 10 . Se punctează linia 4, se înlocuiesc
respectiv 10 cu 10 − 10 = 0 şi 36 cu 36 − 10 = 26 . Se continuă,
pentru elementul x11 care are costul 3 în tabelul rămas.
Soluţia de pornire prin metoda costului minim din tabel
este:
3 13 4 i 2 27 8 i 40
3 13 6 i 5 i 7 7 20
6 i 5 18 7 i 6 17 35
2 10 4 i 5 i 6 i 10
36 18 27 24
Această soluţie de pornire, nu neapărat optimă, conduce la
costul total de transport:
3 ⋅ 13 + 2 ⋅ 27 + 3 ⋅ 13 + 7 ⋅ 7 + 5 ⋅18 + 6 ⋅ 17 + 2 ⋅ 20 = 413 um

117
Acest cost este mai mic decât cel furnizat de soluţia de
pornire calculată prin metoda colţului de N-V, deci este o soluţie
„mai bună”, dar nu este optimă.
Metodele „costul minim pe linie” sau „costul minim pe
coloană” de aflare a soluţiilor de pornire se obţin similar.

ETAPA A II-A. DETERMINAREA SOLUŢIEI OPTIME

Dacă se compară cele două soluţii de pornire, se observă


că variabilele au valori diferite şi sunt plasate în locuri diferite.
Să vedem cum se poate obţine o altă soluţie admisibilă,
pornind de la una deja determinată.
Trebuie să avem în vedere că o soluţie are cel mult
m + n − 1 componente strict pozitive (în cazul exemplului sunt 7)
şi că sunt satisfăcute restricţiile, atât pe linie, cât şi pe coloană.
De exemplu, dacă pentru soluţia obţinută prin metoda
costului minim din tabel, am introduce în căsuţa liberă (1,2)
valoarea x2 = 7 atunci am încălca următoarele trei reguli:
• Suma cantităţilor de pe prima linie, > 40
• Suma cantităţilor de pe coloana 2, > 18
• În loc de 4 + 4 − 1 = 7 componente strict pozitive
sunt acum 8.
În concluzie trebuie procedat astfel încât să se păstreze
satisfacerea restricţiilor iar numărul componentelor din soluţie,
strict pozitive să fie cel mult m + n − 1 .
Rezultă că în general, dacă există deja o soluţie X care are
componente xij se va obţine după următoarea regulă:
Fie ( i, j ) o celulă liberă în care se atribuie o valoare strict
pozitivă θ > 0 .
Atunci, pentru o celulă ocupată ( i, j1 ) de pe aceeaşi linie,
în care era xij , va trebui să scădem pe θ , obţinând xij' = xij − θ
1 1 1

118
pentru a putea satisface restricţia de pe linia i, care cerea ca suma
componentelor pe linia i să fie egală cu ai .
Restricţiile trebuie satisfăcute şi pe coloane. Pe coloana j,
din valoarea unei componente xi j > 0 se va scade θ , adică noua
1

soluţie va fi xi' j = xi j − θ ; în fine, din valoarea xi j aflată pe


1 1 1 1

coloana j1 se va aduna θ , adică xi' j = xi j + θ .


1 1 1 1

În cele două figuri care urmează se va prezenta modul de


obţinere a unei soluţii noi, pentru păstrarea satisfacerii
restricţiilor.
Mai trebuie anulată una dintre componente, pentru a
păstra numărul m + n − 1 componente strict pozitive.
( i, j ) ( i, j1 )
xij1

xi1 j xi1 j1

( i1 j ) ( i1 j1 )
Soluţia veche
Soluţia veche se va modifica, după schema:
( i, j )
θ xij1 − θ

xi1 j − θ xi1 j1 + θ

Soluţia nouă

119
S-a plecat dintr-o celulă liberă şi s-au parcurs numai
celule ocupate adică s-a mers pe ciclul celulei libere.
Ciclul unei celule libere ( i, j ) este un drum care pleacă
din celula liberă ( i, j ) şi se intoarce tot la ea, trecând numai prin
celule ocupate şi anume doar câte două pe aceeaşi linie şi câte
două pe aceeaşi coloană.
Ciclul nu este neapărat un dreptunghi. De exemplu, ciclul
celulei libere (1, 2 ) din soluţia de pornire obţinută prin metoda
costului minim din tabel este următorul:
(1,1) (1, 2 )
13

( 2, 4 )
13 7
( 2,1)

18 17
( 3, 2 ) ( 3, 4 )
Ciclul celulei libere (1,2)
Se observă că din celula (1, 2 ) s-a mers în (1,1) ; dar şi
celula (1,3) era ocupată de 27 însă de acolo trebuia mers pe
coloană într-o celulă ocupată, care nu există.
În general pentru soluţia X ( xij ) şi soluţia X ' ( xij' ) avem:
 xij = 0  xij' = θ
  '
 xij1 > 0  xij1 = xij1 − θ
  '
 xi1 j1 > 0  xi1 j1 = xi1 j1 + θ
x > 0  '
 i1 j  xi1 j = xi1 j − θ

120
restul componentelor fiind aceleaşi. În acest moment în X ' există
m + n componente strict pozitive, deci una trebuie să se anuleze.
Pentru a satisface şi condiţia de nenegativitate a
componentelor soluţiei X ' se ia θ = min ( xij , xi j ) . 1 1

Cu această valoare, una dintre componentele xij' sau xi' j 1 1

se anulează.
Rezultă că adoptarea pentru θ a valorii menţionate
reprezintă criteriul de ieşire din bază.
Mai trebuie aflate:
 Căsuţa liberă în care va fi plasată valoarea θ deci
criteriul de intrare în bază
 Criteriul de optimalitate.
Soluţia X ' este mai bună decât soluţia X dacă pentru X ' ,
valoarea funcţiei obiectiv, f ( X ' ) este mai mică decât f ( X ) :
f (X )≥ f (X')
Valorile componentelor care diferă, rezultă din cele două
figuri, deci avem:
m n m n
f ( X ) − f ( X ' ) = ∑∑ cij xij − ∑∑ cij xij' =  cij ⋅ 0 − cij ⋅ θ  +
i =1 j =1 i =1 j =1

( ) ( ) ( )
+ cij1 xij1 − cij1 xij1 − θ  + ci1 j1 xi1 j1 − ci1 j1 xi1 x j + θ  + ci1 j xi1 j − ci1 j xi1 j − θ 

Deci f ( X ) − f ( X ' ) = θ ( −cij + cij − ci j + ci j )


1 1 1 1

Se notează δ ij = −cij + cij − ci j + ci j care reprezintă suma


1 1 1 1

algebrică, cu semn alternant începând cu semnul minus, a


costurilor celulelor din ciclul celulei libere ( i, j ) .
Rezultă f ( X ) − f ( X ' ) = θδ ij
Din această relaţie rezultă mai întâi criteriul de
optimalitate
δ ij ≤ 0 , pentru orice i = 1, m şi orice j = 1, n

121
În acest caz f ( X ) < f ( X ' ) deci X este soluţie optimă.
Dacă însă există şi diferenţe δ ij > 0 , atunci soluţia X ' poate
fi „mai bună” decât X , deci X nu este soluţie optimă.
Această nouă soluţie X ' , va fi cu atât mai bună, cu cât
δ ij > 0 este mai mare.
Alegem celula (k,l), care are cea mai mare valoare
pozitivă pentru δ ij , adică max δ ij = δ kl .
i, j

Valoarea θ calculată din θ = min ( xij , xi j ) se plasează în


1 1

celulele (k,l) şi apoi se modificătoate componentele din ciclul


celulei (k,l), obţinându-se astfel noua soluţie.
Relaţia prcedentă reprezintă criteriul de intrare în bază.
După aflarea soluţiei X ' , algoritmul se repetă, până ce
sunt îndeplinite condiţiile de optimalitate.
Etapele de determinare a soluţiei optime într-o problemă
de transport în care se cere costul minim, sunt:
Etapa 1 Se determină o soluţie de pornire, prin una din cele patru
metode.
Etapa 2 Pentru toate celulele libere se calculează δ ij , ca suma
algebrică a costurilor celulelor din ciclu, cu semn alternant,
începând cu semnul minus.
Apar două situaţii:
a) δ ij ≤ 0 , ∀i, j
Soluţia este optimă, STOP.
b) Există şi δ ij > 0 . Soluţia nu este optimă, se trece la
Etapa 3 Se aplică criteriul de intrare în bază. Se calculează
δ kl = max δ ij adică se alege celula (k,l) căreia îi corespunde cea
mai mare valoare pozitivă pentru δ ij . În această celulă se va plasa
θ > 0 . Această valoare se obţine în
Etapa 4 Se aplică criteriul de ieşire din bază, adică se determină
valoarea lui θ

122
θ = min ( xij , xi j )
1 1

deci cea mai mică valoare pozitivă care anulează una din
componentele soluţiei. Deci una dintre valorile componentelor
soluţiei din ciclul celulei (k,l) se va anula.
Etapa 5 Se modifică valorile componentelor din ciclul celulei
(k,l), conform schemei din „soluţia nouă” şi se obţine astfel o
nouă soluţie X ' .
Algoritmul se repetă începând cu etapa 2, până ce se
obţine soluţia optimă.
Să aplicăm acest algoritm, pentru soluţia de pornire
obţinută prin metoda costului minim din tabel:
Etapa 2 Calculăm δ ij pentru toate celulele libere folosind ciclul
fiecărei celule libere
δ12 = −4 + 3 − 3 + 7 − 6 + 5 = 2
δ14 = −8 + 3 − 3 + 7 = −1
δ 22 = −6 + 7 − 6 + 5 = 0
δ 23 = −5 + 2 − 3 + 3 = −3
δ 31 = −6 + 3 − 7 + 6 = −4
δ 33 = −7 + 2 − 3 + 3 − 7 + 6 = −6
δ 42 = −4 + 2 − 3 + 7 − 6 + 5 = 1
δ 43 = −5 + 2 − 3 + 2 = −4
δ 44 = −6 + 2 − 3 + 7 = 0
Etapa 3 Se determină max ( 2,1) = 2 care corespunde lui δ12 . Deci
θ se va plasa în celula (1,2).
Etapa 4 Se efectuează ciclul celulei (1,2) modificând soluţiile
ocupate din ciclul din figura precedentă

123
(1,1) (1, 2 )
13 − θ θ

( 2, 4 )
13 + θ 7 −θ
(1,3)

18 − θ 17 + θ
( 3, 2 ) ( 3, 4 )
Ciclul căsuţei (1,2) pentru aflarea altei soluţii
Variabila θ > 0 pentru care una din componentele noii
soluţii se anulează, se obţine din:
13 − θ = 0, θ = 13
7 − θ = 0, θ = 7
18 − θ = 0, θ = 18
Avem θ = min (13,7,18 ) = 7
Etapa 5 Se află soluţia nouă şi modificăm valorile soluţiei din
ciclul celulei (1,2) cu θ = 7 iar restul valorilor din soluţia de
pornire rămân aceleaşi: de exemplu x11 = 13 − 7 = 6 , x12 = 6 ,
x24 = 7 − 7 = 0
3 6 4 7 2 27 8 i
3 20 6 i 5 i 7 i
6 i 5 11 7 i 6 24
2 10 4i 5 i i 6
Pentru a vedea dacă aceasta este soluţia optimă se repetă
algoritmul, începând cu etapa 2.
δ13 = −8 + 4 − 5 + 6 = −3
δ 22 = −6 + 4 − 3 + 3 = −2
δ 23 = −5 + 2 − 3 + 3 = −3

124
δ 24 = −2 + 6 − 5 + 4 − 3 + 3 = −2
δ 31 = −6 + 5 − 4 + 3 = −2
δ 33 = −7 + 5 − 4 + 2 = −4
δ 42 = −4 + 2 − 3 + 4 = −1
δ 43 = −5 + 2 − 3 + 2 = −4
δ 44 = −6 + 2 − 3 + 4 − 5 + 6 = −2
Este satisfăcut criteriul de optimalitate, δ ij ≤ 0 ∀i, j
Deci soluţia este optimă.
Costul minim este dat de
3 ⋅ 6 + 4 ⋅ 7 + 2 ⋅ 27 + 3 ⋅ 20 + 5 ⋅ 11 + 6 ⋅ 24 + 2 ⋅ 20 = 379 um
De la S1 se transportă 6 unităţi de produs la D1 , 7 la D2 ,
27 la D3 şi nimic la D4 . De la S2 se transportă 20 unităţi la D1 ;
de la S3 avem 11 la D2 şi 24 la D4 iar de la S 4 se transportă 10
unităţi de produs la S1 , la un cost total minim de 379 um.
Analog se procedează şi în cazul în care problema este
neechilibrată.
Exemplu
Trei maşini M 1 , M 2 şi M 3 pot produce oricare dintre
piesele P1 , P2 şi P3 .
Costurile de produceţie, capacităţile maşinilor şi numărul
de piese necesar de fiecare fel sunt date în tabel.
Piese
Maşini Capacitatea
P1 P2 P3
M1 13 11 12 200
M2 13 15 14 300
M3 10 13 11 200
Necesar 140 100 400
Se cer:
a) Câte piese de fiecare fel va produce fiecare maşină pentru
a realiza producţia necesară la cost minim? Care este costul
minim? Capaciteatea cărei maşini nu este folosită integral?

125
b) Dacă maşina M 2 nu poate executa piesa 3 cu cât creşte
costul de producţie?
c) Dacă se doreşte ca maşinile să fie folosite la capacităţile
maxime, de care piese se vor produce în plus, în ce cantitate?
Care va fi costul minim? Există soluţii optime alternative?
Soluţie
Se verifică în primul rând condiţia de echilibrare
200 + 300 + 200 > 140 + 100 + 400
Problema este neechilibrată deoarece 700 > 640 .
Echilibrarea conduce la 200 + 300 + 200 = 140 + 100 + 400 + 60
Rezultă că la tabelul iniţial se mai adaugă o coloană.
Aceasta corespunde unei piese P4 , fictivă, din care este necesar
să se fabrice 60 de bucăţi. Însă deoarece această piesă P4 nu
există, costurile de fabricaţie, pentru toate cele trei maşini, sunt
nule: c14 = 0 , c24 = 0 , c34 = 0 .
Tabelul astfel completat, în care s-au introdus şi
variabilele de decizie este
P1 P2 P3 P4 Capacitate
M1 13 x11 11 x12 12 13 0
x x14 200
M2 13 x21 15 x22 14 x23 0 x24 300
M3 10 x31 13 x32 11 x33 0 x34 200
Necesar 140 100 400 60
Variabilele de decizie sunt xij :
xij = numarul de piese pe care M i il fabrica din piesa Pj
Variabilele x14 , x24 şi x34 vor arăta căte piese P4 , care nu
există, sunt produse de fiecare dintre cele trei maşini; din acest
fapt va rezulta care dintre maşini nu este folosită la capacitatea
maximă.
a) Aflăm soluţia de pornire prin metoda costului minim din
tabel, care este egal cu 0, deci aflăm mai întâi, de exemplu, x14 .
Se continuă. După aflarea soluţiei de pornire, care are cel mult

126
3 + 4 − 1 = 6 componente strict pozitive, se aplică celelalte etape
ale algoritmului.
Avem
P1 P2 P3 P4
M1 13 i 11 100 12 40 0 60 200
M2 13 i 15 i 14 300 0 i 300
M3 10 140 13 i 11 60 0 i 200
140 100 400 60
Se calculează δ ij :
δ11 = −13 + 12 − 11 + 10 = −2
δ 21 = −13 + 14 − 11 + 10 = 0
δ 23 = −15 + 11 − 12 + 14 = −2
δ 24 = −0 + 14 − 12 + 0 = 2
δ 32 = −13 + 11 + 12 + 11 = −3
δ 24 = −0 + 11 − 12 + 0 = −1
Soluţia nu este optimă. Se plaseză θ în (2,4) deoarece
avem δ 24 = +2 .
Pentru modificarea valorilor din componentele soluţiei
avem ciclul celulei (2,4)
(1,3) (1, 4 )
40 + θ 60 − θ

300 − θ θ

( 2,3) ( 2, 4 )
Ciclul celulei libere (2,4)

127
BIBLIOGRAFIE

1. Mladin, E.C., Ioniţă, C., Pârvu, F. – Metode numerice – Aplicaţii,


Ed.Matrix Rom, Bucureşti, 2006.
2. Cocan, M., Vasilescu, A. – Programarea matematică folosind MS
Excel Solver, Management Scientest, Matlab, Ed.Albastră, Cluj
Napoca, 2001.
3. Năslău, P., Negrea, R., Cădariu, L. – Matematici asistate de
calculator, Ed.Politehnica, Timişoara, 2005.
4. Adam, E., Ebert, R. – Production and operations Management.
Concepts, Models and Behaviour – Fifth Edition, Ed.Teora, 2001.
5. Venkataraman, P. – Applied optimization with Matlab
programming, John Wilez & Sons, 2002.
6. Chong, E., Zak, S. – An introduction to Optimization, Second
Edition, John Wilez Sons, 2001.
7. Rusu, E. – Metode şi tehnici de decizie în management, vol.1,
Casa de editura Venus, 2004.
8. Rusu, E. – Fundamentarea deciziilor în management prin metode
ale cercetării operaţionale, Ed. Junimea,Iaşi, 1997.
9. Rusu, E. – Decizii optime în management prin metode ale
cercetării operaţionale, Ed. Economică, Bucureşti, 2001.
10. Winston, W., L. Operation Research Applications and
Algorithms, Third Edition, Duxbury Press, Belmond, California,
1994
11. Dennis, T., Dennis, B., Microcomputer Models for Management
Decision Making, West Publishing Co., Third Edition, London,
1993
12. Lucey, T., Quantitative Techniques, Fourth Edition, P.D.
Publications, London, 1992

128

You might also like