Sunteți pe pagina 1din 38

0 UNITATEA

DE STUDIU 4. OPTIMIZAREA PROCESELOR ECONOMICE


UTILIZÂND PROGRAMAREA LINIARĂ

4.1. Obiectivele și competențele unității de studiu


4.2. Conținutul unității de studiu
4.2.1. Construirea modelului economico- matematic pentru o
problemă de optimizare
4.2.2. Terminologie, notații utilizare în programarea liniară. Forme ale unei
probleme de programare liniară
4.2.3. Rezolvarea grafică a problemelor de programare liniară în două variabile
4.2.4. Rezolvarea problemelor de programare liniară în mai mult de două variabile
cu ajutorul programelor specializate
4.2.5. Dualitatea în programarea liniară
4.2.6. Structura mulțimii soluțiilor admisibile ale unei probleme de programare
liniară
4.3. Îndrumar pentru autoverificare

4.1. Obiectivele și competențele unității de studiu

Obiectivele unității de studiu:


q prezentarea conceptelor specifice problemelor de programare liniară;
q prezentarea formei generale a unei probleme de programare liniară și a formelor
speciale;
q scrierea unor modele economico-matematice pentru o serie de situații întâlnite în
practica economică;
q rezolvarea grafică a problemelor de programare liniară în două variabile și
interpretarea rezultatelor;
q rezolvarea problemelor de programare liniară în mai mult de două variabile cu ajutorul
programelor specializate (Excel QM sau QM for Windows) și interpretarea
rezultatelor;
q prezentarea problemei duale și interpretarea sa economică.

Competențele unității de studiu:


q studenții vor putea să definească și să utilizeze în mod corespunzător conceptele
prezentate;
q studenții vor putea scrie modele economico-matematice pentru diferite situații
întâlnire în practica economică;
q studenții vor putea rezolva cu ajutorul metodei grafice probleme de programare liniară
în două variabile;
q studenții vor putea rezolva cu ajutorul metodei grafice probleme de programare liniară
în două variabile și vor putea interpreta rezultatele obținute;
q studenții vor putea rezolva probleme de programare liniară în mai mult de două
variabile cu software specializat (Excel QM sau QM for Windows) ;
q studenții vor putea scrie și interpreta economic problema duală.
Durata medie de studiu individual alocat unității: 6 ore

4.2. Conținutul unității de studiu

4.2.1. Construirea modelului economico- matematic pentru o problemă de


optimizare

În orice problemă de optimizare rezultată din modelarea unui proces economic întâlnim două
categorii de mărimi:
• Mărimi constante: preţuri, profituri, costuri, cantităţi disponibile de resurse etc. Bineînţeles
că şi aceste mărimi se pot schimba de la o perioadă la alta; important este faptul că pe un
interval de timp convenabil ales ele pot fi considerate invariabile!
• Mărimi variabile ca de exemplu: cantităţi de bunuri ce urmează a fi produse într-o anumită
perioadă.
În principiu, mărimile variabile urmează a fi astfel determinate încât să satisfacă un anumit
criteriu de performanţă cum ar fi: maximizarea venitului (a profitului) sau minimizarea costurilor de
producţie.
Orice proces economic se desfăşoară în anumite condiţii limitative ca de exemplu: încadrarea
consumurilor de resurse în disponibilele date sau realizarea unui anumit nivel minimal al profitului.
Identificarea corectă a acestor condiţii determină nemijlocit calitatea modelului şi de aici şi calitatea
soluţiei optime.
În elaborarea modelului matematic pentru o problemă de optimizare practică se recomandă
parcurgerea următoarelor etape:
1. Identificarea mărimilor variabile:acestea vor deveni variabilele de decizie ale modelului;
2. Identificarea condiţiilor limitative ce caracterizează procesul modelat şi formalizarea lor în
relaţii matematice – inegalităţi şi / sau egalităţi – denumite restricţii;
3. Precizarea criteriului de performanţă şi formalizarea lui într-o funcţie de variabilele de
decizie, numită funcţia obiectiv;
4. Precizarea condiţiilor explicite impuse mărimilor variabile, ca de exemplu: să ia numai
valori reale nenegative sau numai valori întregi etc.

Odată modelul construit, problema de optimizare originală capătă urmatoarea „traducere”: Să se


determine valorile variabilelor de decizie care satisfac restricţiile şi condiţiile explicite impuse
variabilelor şi care oferă funcţiei obiectiv valoarea maximă sau minimă, după caz.

În acest context, soluţiile admisibile ale problemei originale se identifică cu acele seturi de valori
numerice acordate variabilelor de decizie care satisfac restricţiile şi condiţiile explicite. Soluţia optimă va
fi acea soluţie admisibilă care oferă funcţiei obiectiv cea mai mare sau cea mai mică valoare, după caz.
4.2.2. Terminologie, notații utilizare în programarea liniară. Forme ale unei
probleme de programare liniară

Ansamblul de relaţii matematice rezultate din parcurgerea etapelor prezentate mai sus şi care
constă în maximizarea sau minimizarea unei funcţii ale cărei variabile trebuie să satisfacă un set de
restricţii şi condiţii explicite poartă numele de problemă de programare matematică.
Dacă funcţia obiectiv şi restricţiile sunt liniare în variabilele de decizie vom avea de a face cu o
problemă de programare liniară sau mai scurt program liniar. Neliniaritatea funcţiei obiectiv sau a
unora dintre restricţii plasează problema de programare în clasa celor neliniare.
În principiu, oricărei probleme de optimizare i se poate asocia o problema de programare
matematică. Problemele de maxim şi de minim apar frecvent în domeniul economic. Astfel, firmele
încearcă să maximizeze profiturile sau să minimizeze costurile. Experţii în planificare macroeconomică
se preocupă de maximizarea bunăstării unei comunităţi economico-sociale. Consumatorii doresc să
cheltuiască venitul lor într-un mod care să le maximizeze satisfacţia (de natură materială dar şi spirituală
etc.)
Programarea liniară se ocupă deci de o clasă specială de probleme de optimizare care apar deseori
în aplicaţiile economice. Aceste probleme constau în maximizarea sau minimizarea unei funcţii liniare,
numită funcţie obiectiv, ale cărei variabile trebuie să satisfacă:
• un sistem de relaţii date sub forma unor ecuaţii şi/sau inecuaţii liniare nestricte, denumite
generic restricţii;
• cerinţa de a lua numai valori numerice nenegative (³0).

Așa cum a fost precizat mai sus, o problemă de programare liniară (PPL) este o problemă de
optimizare în care restricțiile și funcția obiectiv sunt expresii liniare în variabilele problemei.

Notații
Considerăm o PPL cu m restricții și n variabile. Notațiile cu care vom opera sunt:

Cu aceste notații programul (P) poate fi scris astfel:


Exemple de probleme de programare liniară
1) Problema firmei. Considerăm un sistem de producţie, de exemplu o firmă, care produce n
bunuri G1,G2,...,Gn utilizând pentru aceasta m categorii de resurse R1,R2,...,Rm (materii prime, forţă de
muncă, capacităţi de producţie, combustibili şi energie etc.). Adoptăm ipoteza că tehnologia de
transformare a resurselor în bunuri este liniară în sensul că:
• Pentru fiecare bun, consumul dintr-o anumită resursă este direct proporţional cu cantitatea
produsă.
• Consumurile dintr-o resursă sau alta nu se condiţionează reciproc.
Fie atunci aij cantitatea din resursa i utilizată pentru producerea unei unităţi din bunul Gj. Fie deasemeni
bi cantitatea disponibilă din resursa Ri şi cj preţul (sau profitul) unitar al bunului Gj.
• Preţul unui bun nu depinde de cantitatea produsă şi nici de situaţia vânzărilor celorlalte bunuri.
Problema constă în determinarea unui program de fabricaţie care să maximizeze venitul (sau
profitul) firmei.

Să notăm cu xj cantitatea din bunul Gj care urmează a fi produsă. Problema enunţată mai înainte
devine:
Să se găsească valorile numerice x1,x2,...,xn care maximizează funcţia:

f = c1 x1 + c2 x 2 +...+ cn x n
cu satisfacerea restricţiilor:
ì a11 x1 + a12 x 2 + ! + a1n x n £ b1
ïa x +a x +!+ a x £b
ï 21 1 22 2 2n n 2
í
ï !!!!!!
ïîa m1 x1 + a m2 x 2 + ! + a mn x n £ bm
şi a condiţiilor de nenegativitate:
x1 ³ 0 , x 2 ³ 0 , ! x n ³ 0
Observaţie: Ipotezele de liniaritate făcute nu sunt verificate întotdeauna în practică. Raţiunea lor
este dublă:
• conduc la modele matematice în general simple;
• pe baza modelelor liniare se pot formula concluzii calitative şi legităţi economice care îşi menţin
valabilitatea - în anumite limite - şi într-un context neliniar.
2) Problema dietei a devenit o ilustrare clasică a programării liniare, fiind întâlnită în mai toate
textele de specialitate. Ea se ocupă cu hrănirea unei colectivităţi, să zicem un grup de militari, în cel mai
economic mod cu condiţia satisfacerii anumitor cerinţe de nutriţie. Mai concret, este vorba de a prepara
un aliment complex pornind de la n sortimente de hrană F1,F2,...,Fn. Un număr de elemente sau principii
nutritive N1,N2,...,Nm - proteine, glucide, grăsimi calciu,etc. sunt avute în vedere în sensul că alimentul
combinat trebuie să conţină cel puţin b1,b2,...,bm unităţi specifice din fiecare. Să presupunem cunoscute
următoarele:
• cantitatea aij din principiul nutritiv Ni conţinută într-o unitate din tipul de hrană Fj;
• preţul unitar cj al tipului de hrană Fj.

Notăm cu x1,x2,...,xn cantităţile din felurile de hrană F1,F2,...,Fn care trebuie cumpărate în vederea
elaborării dietei. Formal, x1,x2,...,xn vor trebui determinate astfel încât:
• costul f = c1 x1 + c2 x 2 +...+ cn x n al alimentelor cumpărate să fie minim.
• amestecul să conţină principiile nutritive N1,N2,...,Nm în cantităţi cel puţin egale cu b1,b2,...,bm,
adică:
ì a11 x1 + a12 x 2 + ... + a1n x n ³ b1
ï a x + a x + ... + a x ³ b
ïï 21 1 22 2 2n n 2

í................................
ïa x + a x + ... + a x ³ b
ï m1 1 m2 2 mn n m

ïî x1 ³ 0, x 2 ³ 0,..., x n ³ 0

Din nou au fost tacit utilizate ipotezele de liniaritate întâlnite şi în modelul precedent.

4.2.2.1. Soluţii admisibile ale unei probleme de programare liniară

Considerăm o problemă de programare liniară (P) cu m restricţii egalităţi şi/sau inegalităţi


nestricte, n variabile şi cu funcţia obiectiv f. Un ansamblu de n valori numerice care satisfac restricţiile se
va numi Soluţie a programului (P). Dacă în plus sunt verificate şi condiţiile de nenegativitate, ansamblul
se numeşte Soluţie Admisibilă. O soluţie admisibilă care maximizează sau minimizează - după caz -
funcţia obiectiv se va numi Soluţie optimă. Notând cu A mulţimea soluţiilor admisibile, problema (P) se
scrie:

Să se determine x*Î A cu proprietatea: f(x*) = max sau min f ( x )


xÎA

Este posibil ca (P) să aibă soluţii dar nici una din ele să fie admisibilă: A = Æ. Spunem în acest
caz că problema (P) este incompatibilă. Chiar dacă A ¹ Æ, este posibil ca funcţia obiectiv să fie
nemărginită pe A , adică să existe un şir de soluţii admisibile de-a lungul căruia funcţia obiectiv să tindă
spre + ¥ sau -¥, după caz. în această situaţie vom spune că (P) are optim infinit. Dacă (P) are (cel puţin)
o soluţie optimă, zicem că (P) are optim finit.
Deoarece eventualele restricţii inegalităţi sunt nestricte mulţimea A este închisă (în topologia
uzuală a spaţiului Rn), adică o dată cu un şir convergent de puncte conţine şi limita acestuia. Această
proprietate este esenţială pentru existenţa unei soluţii optime a problemei (P)! Conform unui rezultat clasic
al analizei matematice, dacă A este mărginită, atunci f îşi atinge efectiv extremele pe A, şi deci (P) are
optim finit. În consecinţă, dacă (P) are optim infinit, cu siguranţă A este nemărginită. Reciproca nu este în
general adevărată: este posibil ca A să fie nemărginită şi totuşi (P) să aibă optim finit.
4.2.2.2. Forma canonică a unei probleme de programare liniară

O restricţie a unei probleme (P) de programare liniară se zice concordantă dacă este o inegalitate
de tipul "£" când funcţia obiectiv se maximizează şi de tipul "³" când funcţia obiectiv se minimizează. O
restricţie inegalitate care nu este concordantă se va numi neconcordantă. Restricţiile egalităţi nu fac
obiectul acestei clasificări.
Spunem că o problemă de programare liniară este în formă canonică dacă toate restricţiile ei sunt
inegalităţi concordante.
În consecinţă, o problemă în formă canonică de maximizare arată astfel:

ì n
ï å aij x j £ bi i = 1,..., m
j =1 ì Ax £ b
ï ï
í x j ³ 0 j = 1,..., n sau matricial í x ³ 0 unde:
ï ï(max) f = cx
n
ï(max) f = å c j x j î
î j =1

é a11 a12 ! a1n ù é b1 ù é x1 ù


êa a 22 ! a 2n ú êb ú êx ú
A=ê ú b=ê ú x=ê ú c = [c1 ! cn ]
21 2 2
c2
ê " " ! " ú ê"ú ê"ú
ê ú ê ú ê ú
ëa m1 a m2 ! a mn û ëbm û ëx n û

O problemă în formă canonică de minimizare se va scrie:

ì n
ï å aij x j ³ bi
j =1 ì Ax ³ b
ï ï
í xj ³ 0 Û í x³0
ï ï(min) f = cx
n
ï(min) f = å c j x j î
î j =1

De exemplu, problema firmei (1.1, exemplul 1)) este o formă canonică de maximizare în timp ce
problema dietei (1.1, exemplul 2)) este o formă canonică de minimizare.

Orice problemă de programare liniară se poate pune sub o formă canonică de maximizare sau
minimizare, fără modificarea mulţimii soluţiilor admisibile, observând că:
• o egalitate se poate înlocui cu două inegalităţi de sens contrar;
• o restricţie neconcordantă devine concordantă prin înmulţire cu -1;
• putem schimba sensul optimizării funcţiei obiectiv, graţie formulei generale:

min f ( x ) = - max [ - f ( x )] (1.3.1)


xÎA xÎA

În consecinţă, putem face anumite raţionamente teoretice pe o formă canonică (ca de exemplu în teoria
dualităţii liniare), fără ca prin aceasta să restrângem generalitatea.
Exemplul 1.3.1
ì(max) f = 2 x1 - 3x 2 + 4 x 3 ì(min)( - f ) = -2 x1 + 3x 2 - 4 x 3
ï x - 3x + 5x = 3 ï x 1 - 3x 2 + 5 x 3 ³ 3
ïï 1 2 3 ï
Þ ï - x 1 + 3x 2 - 5 x 3 ³ - 3
í 3 x1 + x 2 ³ 5 í
ï 2x + ï 3x 1 + x 2 ³ 5
x 3 £ 10
ï 1
ï - 2 x1 - x 3 ³ -10
ïî x1 ³ 0, x 2 ³ 0, x 3 ³ 0 ï
î x1 ³ 0, x 2 ³ 0, x 3 ³ 0
Programul (P) Forma canonică de minimizare a programului (P)

4.2.2.3. Forma standard a unei probleme de programare liniară

Spunem că o problemă de programare liniară este în formă standard dacă toate restricţiile ei sunt
egalităţi. Importanţa acestei forme particulare rezultă din faptul că metoda de rezolvare a problemelor de
programare liniară care va fi expusă mai departe cere ca problema să fie în această prezentare.
În consecinţă, o problemă (P) care are şi restricţii inegalităţi va fi înlocuită - în vederea rezolvării
ei - cu o alta în care toate restricţiile sunt egalităţi. Noua problemă, numită forma standard a problemei
(P) şi notată (FSP), se construieşte astfel:
• O restricţie inegalitate din problema originală (P) de tipul "£" (respectiv de tipul "³") se
transformă în egalitate prin adăugarea (respectiv prin scăderea) unei variabile nenegative din membrul
său stâng. Aceste variabile se numesc variabile de abatere sau de ecart.
• Restricţiile egalităţi nu se modifică.
• Noile variabile introduse nu apar în funcţia obiectiv a problemei originale (alternativ, spunem
că ele apar cu coeficienţi nuli)

Exemplul 1.4.1
ì(max) f = 7 x1 + 9 x 2 + 8 x 3 ì(max) f = 7 x1 + 9 x 2 + 8 x 3
ï 5x + 2 x - x ³ 4 ï
ïï 1 2 3 ï 5 x1 + 2 x 2 - x 3 - x 4 =4
( P ) í 3 x1 + x 2 + x 3 = 5 Þ ï
( FSP )í 3x1 + x 2 + x 3 =5
ï x1 + 2 x 2 + 3 x 3 £ 9 ï x 1 + 2 x 2 + 3x 3 + x5 = 9
ï ï
ïî x1 ³ 0, x 2 ³ 0, x 3 ³ 0 ïî x j ³ 0, j = 1,...,5

Problema care apare în acest context este aceea de a explica modul în care se obţine soluţia optimă
a problemei (P) dacă se cunoaşte soluţia optimă a formei sale standard (FSP). Se poate arăta uşor că între
mulţimile de soluţii admisibile AP , ale problemei (P) şi AFSP, ale problemei (FSP), există o corespondenţă
bijectivă care conservă soluţiile optime. Vom arăta cum funcţionează această corespondenţă pe exemplul
precedent.
Notând-o cu F, aceasta corespondenţă va asocia unei soluţii admisibile x = ( x1 , x 2 , x 3 ) a
problemei (P) vectorul:
F( x ) = ( x1 , x 2 , x 3 , 5x1 + 2 x 2 - x 3 - 4, 9 - x1 - 2 x 2 - 3x 3 )

care prin construcţie se dovedeşte a fi o soluţie admisibilă a problemei (FSP). Reciproc, unei soluţii
admisibile x~ = ( x~1 , x~2 , x~3 , x~4 , x~5 ) a problemei (FSP) corespondenţa inversă F-1 îi asociază vectorul
( x~1 , x~2 , x~3 ) care satisface în mod clar restricţiile problemei originale (P). Dacă x este soluţia optimă a
problemei (P) atunci F( x ) este soluţia optimă a problemei (FSP) şi reciproc, dacă cunoaştem soluţia
optimă x~ a problemei (FSP) , F -1 ( x~) reprezintă soluţia optimă a problemei (P).
În problemele concrete, variabilele de abatere au interpretări economice precise aşa că în analiza
soluţiei optime valorile lor vor fi luate în considerare laolaltă cu valorile variabilelor originale. Astfel, în
problema firmei (1.1, exemplul1)) variabilele de abatere xn+1, xn+2, ..., xn+m definite prin:
n
x n +i = bi - å aij x j i = 1,..., m
j =1

reprezintă cantităţi de resurse neconsumate şi prin urmare cunoaşterea valorilor lor în soluţia optimă oferă
indicaţii utile în analiza modului în care sunt utilizate resursele firmei: materii prime, capacităţi de
producţie, forţă de muncă, etc.
În problema dietei (1.1,exemplul 2)) variabilele de abatere:
n
x n +i = å aij x j - bi i = 1,..., m
j =1

reprezintă cantităţile de principii nutritive cu care sunt depăşite nivelele minimale specificate în reţetă.

4.2.3. Rezolvarea grafică a problemelor de programare liniară

Să considerăm problema:
ì(max) f = 3x1 + 4 x 2
ï - 3x + 4 x £ 12
ïï 1 2

í x1 + x 2 £ 6
ï - 2x + x £ 2
ï 1 2

ïî x1 ³ 0 , x 2 ³ 0

Identificăm x1, x2 cu abscisa, respectiv ordonata unui punct din planul raportat la un sistem
ortogonal de axe. Este cunoscut faptul că mulţimea punctelor din plan ale căror coordonate satisfac prima
restricţie coincide cu unul din semiplanele determinate de dreapta d1 de ecuaţie -3x1+4x2 = 12. Mai precis,
este vorba de semiplanul care conţine originea (0,0), deoarece coordonatele acesteia satisfac evident prima
restricţie.
În mod analog, următoarele restricţii sunt verificate în semiplanele determinate de dreapta d2 de
ecuaţie x1+x2 = 6 şi respectiv d3 de ecuaţie -2x1+x2 = 2 şi care conţin originea. În fine, condiţia x1 ³ 0 are
loc în semiplanul “din dreapta” axei verticale, în timp ce condiţia x2 ³ 0 are loc “deasupra” axei orizontale.
Soluţiile admisibile ale problemei se identifică cu punctele comune celor cinci semiplane. Acestea
formează interiorul şi frontiera poligonului OABCD din figura 1.5.1.
Funcţia obiectiv determină - pentru f variabil - o mulţime de drepte paralele care intersectează sau
nu mulţimea A. Astfel punctele situate pe dreapta 3x1+4x2=12 reprezintă diferite combinaţii ale mărimilor
x1, x2 care dau funcţiei obiectiv f aceeaşi valoare 12. Întrucât această dreaptă taie A, rezultă că problema
are soluţii admisibile - chiar o infinitate - care oferă funcţiei obiectiv valoarea 12. Dreapta 3x1+4x2=24 nu
mai taie A şi deci nici o soluţie admisibilă a problemei nu este capabilă să asigure funcţiei obiectiv valoarea
24.
Conchidem că maximul funcţiei f este “undeva” între 12 şi 24. Se observă uşor că acest maxim
se atinge în vârful C al frontierei lui A. Punctul C este intersecţia dreptelor d1 şi d2 şi deci coordonatele
sale, care reprezintă soluţia optimă a problemei, se determină rezolvând sistemul format din ecuaţiile celor
două drepte. Se găseşte x1* = 127 , x 2* = 307 maximul lui f fiind 22 27 . Soluţia optimă satisface cu egalitate
primele două restricţii şi cu inegalitate strictă pe ceea de a treia.
x2 f=24

f=

f=12 B

d1 A
A

d2
x1
O D
d3
Figura 1.5.1

În mod asemănător se arată că dacă funcţia de maximizat ar fi fost f = - x1+x2 atunci optimul ar fi
fost atins în vârful B de coordonate x1=4/5, x2=18/5 .
Examinând acest exemplu putem trage următoarele concluzii:
1. Mulţimea A este convexă, adică o dată cu două puncte conţine şi segmentul care le uneşte. O
consecinţă intuitivă a acestei proprietăţi este că soluţia optimă, dacă există, se găseşte “undeva” pe
frontiera lui A .
2. Frontiera lui A este un contur poligonal cu un număr finit de vârfuri şi o soluţie optimă se
găseşte neapărat într-unul din ele.
Aceste concluzii, care se confirmă pe orice altă problemă în două sau trei variabile (mulţimea
soluţiilor admisibile putând fi “vizualizată“ în planul R2 sau spaţiul R3) au constituit sursa întregii teorii a
programării liniare.

4.2.4. Rezolvarea problemelor de programare liniară cu ajutorul Excel QM

Să considerăm următorul exemplu:

O firmă poate produce cinci tipuri de produse G1, G2, G3, G4 și G5 utilizând patru categorii de
materii prime R1, R2, R3 și R4. Consumurile specifice din materiile prime pentru realizarea produselor,
profiturile unitare precum și disponibilul din fiecare materie primă de-a lungul perioadei analizate sunt
date în tabelul de mai jos:

Produs Disponibil
G1 G2 G3 G4 G5
R1 5 2 5 1 0 1000
R2 4 3 4 1 0 700
Materia primă
R3 4 1 1 2 0 800
R4 1 2 0 2 1 200
Profit unitar (u.m./buc.) 50 30 100 60 10

Presupunem că firma dispune de capacitate de producție pentru a produce orice cantitate de produs
dorește din cele cinci tipuri și întreaga cantitate produsă poate fi vândută pe piață.

Se doreşte determinarea cantităților optime ce urmează a fi fabricate de către firmă astfel încât
profitul total obținut din vânzarea acestora să fie maxim.
i) Scrieți un model liniar corespunzător situației economice descrise;
ii) Determinați cantitățile optime în care trebuie produse P1, P2, P3, P4 și P5 utilizând un software
specializat în rezolvarea problemelor de programare liniară (de ex. QM for Windows sau Excel
QM).

Soluție:

i) Pentru scrierea modelului matematic urmăm pașii indicați în secțiunea 4.2.1:

1. Identificarea mărimilor variabile: notăm cu xj, j= 1,...5 cantitatea din bunul Gj care urmează
a fi produsă.
2. Restricții privind încadrarea în cantitățile disponibile de materii prime

5x! + 2x" + 5x# + x$ ≤ 1000


4x! + 3x" + 4x# + x$ ≤ 700
4x! + x" + x# + 2x$ ≤ 800
x! + 2x" + + 2x$ + x% ≤ 200

3. Criteriul de performanţă (funcția obiectiv)

(max) f = 50x! + 300x" +30x# + 60x$ + 40x%

4. Precizarea condiţiilor explicite impuse mărimilor variabil (condiţii de nenegativitate)

x& ≥ 0, j = 1, . . . ,5

ii) Să rezolvăm acest exercițiu cu ajutorul Excel QM.


În acest scop, deschidem aplicația Excel și din bara de sus selectăm Excel QM. Din meniul din
stânga sus apasăm pe Alphabetical, selectăm Linear Programming.
În fereastra care se deschide introducem titlul „Determinarea cantităților optime” și specificăm
următoarele: numărul de restricții, în cazul nostru „4”, numărul de variabile, în cazul nostru „5” și alegem
una din cele două opțiuni pentru funcția obiectiv în funcție de ceea ce se urmărește (maximizare sau
minimizare).

Figura 1.6
Apăsăm pe butonul OK și ni se deschide o foaie de Excel cu un tabel în care vom introduce pe
prima linie valorile coeficienților lui xj din funcția obiectiv (c) iar pe următoarele linii valorile din matricea
A. Odată introduse aceste valori apăsăm butonul Run Excel's Solver iar rezultatele vor fi redate în tabelul
Results.

Figura 1.7

Din tabel identificăm soluția optimă a acestei probleme care presupune producerea a 150 de u.c.
din G3 (𝑥#∗ = 150) și a 100 u.c. din G4 (𝑥$∗ = 100), pentru restul produselor cantitatea optimă fiind 0
(𝑥!∗ = 𝑥"∗ = 𝑥%∗ = 0). Profitul maxim obținut va fi de 21000 u.m.

4.2.5. Dualitatea în programarea liniară

În principiu, oricărei probleme de programare liniară i se asociază o alta, numită duala sa şi în


esenţă teoria dualităţii constă în studiul relaţiilor dintre cele două probleme. Fireşte, construcţia problemei
duale depinde nemijlocit de structura problemei iniţiale denumită şi problema primală. Întotdeauna sensul
optimizării în cele două probleme este diferit: dacă în primală funcţia obiectiv se maximizează
(minimizează) în duală funcţia obiectiv se minimizează (maximizează). Studiul şi interpretarea economică
a problemei duale aduc informaţii suplimentare în analiza proceselor economice şi în fundamentarea
deciziilor.

4.2.5.1. Reguli de construire a problemei duale

Pentru a conferi construcţiei problemei duale maxima generalitate vom slăbi condiţia de
nenegativitate impusă tuturor variabilelor, admiţând că unele din ele nu pot lua decât valori nepozitive
(£ 0) în timp ce altele pot lua orice valoare reală.
Cu această observaţie duala unei probleme de programare liniară cu m restricţii şi n variabile se
construieşte după următoarele reguli:
1) Dacă în primală funcţia obiectiv se maximizează (respectiv se minimizează) în problema duală
funcţia obiectiv se minimizează (respectiv se maximizează).
2) Restricţiei de rang i , i=1,...,m din primală îi corespunde în duală o variabilă ui; dacă restricţia
primală este o inegalitate concordantă (respectiv neconcordantă, respectiv o egalitate) variabila duală
asociată este nenegativă (³ 0), ( respectiv nepozitivă (£ 0), respectiv fără restricţie de semn).
3) Variabilei xj , j=1,...,n din problema primală îi corespunde în duală restricţia de rang j.
Membrul stâng al acestei restricţii este o combinaţie liniară a variabilelor duale ui realizată cu coeficienţii
variabilei xj din toate restricţiile primalei (aceştia sunt aij, i=1,...,m). Termenul său liber este coeficientul
cj al lui xj din funcţia obiectiv primală. În fine, dacă variabila primală xj este nenegativă (respectiv
nepozitivă, respectiv fără restricţie de semn) restricţia duală asociată va fi o inegalitate concordantă
(respectiv neconcordantă, respectiv o egalitate).
4) Coeficienţii funcţiei obiectiv ai problemei duale sunt termenii liberi bi ai restricţiilor problemei
primale.

Exemplul 2.1.1

Problema primală Problema duală

ì3x1 - 2 x 2 + x 3 + 4 x 4 - x5 £ 6 u1 ³ 0 ü
ï2 x + 2 x 3 + 5x 4 + x5 = 9 u2 f . r . s. ï
ï 1 ï
ï x1 + 6 x 2 + x 3 + 2 x 4 ³3 u3 £ 0 ï
ï ï
ïï x1 ³ 0 3u1 + 2u2 + u3 ³ 8 ïï
í x2 ³ 0 -2u1 + 6u3 ³ 3 ý
ï x 3 f . r . s. u1 + 2u2 + u3 = 1 ï
ï ï
ï x 4 f . r . s. 4u1 + 5u2 + 2u3 = 5 ï
ï x5 £ 0 - u1 + u2 £7 ï
ï ï
ïîmax f = 8 x1 + 3x 2 + x 3 + 5x 4 + 7 x5 min g (u) = 6u1 + 9u2 + 3u3 ïþ

Observaţii:

1) Problema duală are atâtea variabile (respectiv restricţii) câte restricţii (respectiv variabile) are
problema primală.
2) Regulile 1) - 4) pun în evidenţă următoarele corespondenţe de termeni prin trecere la duală:

min « max
(restricţie) concordantă « (variabilă) nenegativă
(restricţie) neconcordantă « (variabilă) nepozitivă
(restricţie) egalitate « (variabilă) fără restricţie de semn
termen liber al unei restricţii « coeficient al funcţiei obiectiv

3) Din construcţia de mai sus rezultă următoarea concluzie:

Duala dualei este problema primală.

Spunem că dualitatea în programarea liniară are un caracter involutiv.

În consecinţă, fiind dată o problemă de programare liniară (P) şi duala sa (Q), vom vorbi despre
cuplul de probleme în dualitate (P,Q), fără a mai specifica în mod expres care din probleme este primala
şi care duala.

4.2.5.2. Dualele unor forme particulare de probleme de programare liniară


1) Duala unei forme canonice de maximizare este o formă canonică de minimizare şi reciproc.
ìa11 x1 + a12 x 2 +!+ a1n x n £ b1 u1 ³ 0 ü
ïa x + a x +!+ a x £ b u2 ³ 0 ï
ï 21 1 22 2 2n n 2 ï
ï.............................................. . .......... ï
ï ï
ïïa m1 x1 + a m2 x 2 +!+ a mn x n £ bm um ³ 0 ïï
í x1 ³ 0 a11u1 + a 21u2 +! + a m1um ³ c1 ý
ï x2 ³ 0 a12 u1 + a 22 u2 +! + a m2 um ³ c2 ï
ï ï
ï " .............................................ï
ï xn ³ 0 a1n u1 + a 2 n u2 +!+ a mn um ³ cn ï
ï ï
ïîmax f = c1 x1 + c2 x 2 +!+ cn x n min g = b1u1 + b2 u2 +!+bm um ïþ

Cu notaţiile matriciale introduse în (1.3) la care se adaugă: u = [u1 , u2 ,..., um ] , cuplul format din cele două
probleme de mai sus devine:
ì Ax £ b ìuA ³ c
ï ï
( P) í x ³ 0 (Q) íu ³ 0
ïmax f ( x ) = cx ïmin g (u) = ub
î î
2) Conservarea formei de prezentare se pierde atunci când se consideră duala unei probleme în
formă standard.
ìå n
ü
a x = bi i = 1,..., m « ui f . r . s. i = 1,..., m ï
ï j =1 ij j
ï ï
ï m ï
í xj ³ 0 j = 1,..., n « å aij ui ³ c j j = 1,.., n ý
ï i =1
ï
ïmax f = å c x n m
min g = å bi ui ï
ïî j =1
j j
i =1 ïþ
sau matricial:
ì Ax = b ìuA ³ c
ï ï
( P) í x ³ 0 ( Q )íu Î R m ( f . r. s. )
ïmax f ( x ) = cx ïmin g( u) = ub
î î
(f.r.s.º fără restricţie de semn!)
În mod analog se construieşte duala formei standard în care funcţia obiectiv se minimizează:
ì Ax = b ìuA £ c
ï ï
( P) í x ³ 0 ( Q )íu f . r. s.
ïmin f ( x ) = cx ïmax g( u) = ub
î î

Observaţie: De reţinut este faptul că dualele a două probleme de programare liniară echivalente
sunt ele însele echivalente adică au aceeaşi mulţime de soluţii admisibile şi aceleaşi soluţii optime.

4.2.5.3. Teoreme de dualitate

Cu notaţiile matriciale din (2.2) să considerăm cuplul de probleme în dualitate în formă canonică:
ì(max) f ( x ) = cx ì(min) g( u) = ub
ï ï
( P )í Ax £ b ( Q )í uA ³ c
ï x³0 ï u³0
î î
Teorema 2.3.1 Fie x = [ x1 , x 2 ,..., x n ] o soluţie admisibilă a problemei (P) şi u = [u1 , u2 ,..., um ]
T

o soluţie admisibilă a problemei (Q). Atunci:


1) f ( x ) £ g (u )
2) Dacă f ( x ) = g (u ) atunci x este o soluţie optimă a problemei (P) iar u este o soluţie optimă
a problemei (Q).

Demonstraţie: 1) Prin ipoteză Ax £ b , x ³ 0 şi uA ³ c , u ³ 0 .Deducem că uAx £ ub şi


uAx ³ cx (nenegativitatea vectorilor x şi u este esenţială!) de unde:
f ( x ) = cx £ uAx £ ub = g (u )
2) Dacă f ( x ) = g (u ) şi dacă x nu ar fi soluţie optimă a problemei (P) ar exista o
soluţie admisibilă x' mai bună, adică f ( x ') > f ( x ) .Rezultă inegalitatea f ( x ') > g (u )
contrară celor demonstrate la punctul precedent. !

Clasificarea cuplurilor de probleme de programare liniară în dualitate este făcută de următoarea


teoremă:

Teorema 2.3.2 (Teorema fundamentală a dualităţii) Pentru un cuplu de probleme în dualitate


una şi numai una din următoarele situaţii este posibilă:
1) Ambele probleme au soluţii admisibile; atunci ambele au soluţii optime şi valorile optime ale
funcţiilor obiectiv coincid: f ( x ) = g (u ) .
2) Numai una din probleme are soluţii admisibile, iar cealaltă nu are; atunci problema
compatibilă are optim infinit.
3) Nici una din probleme nu are soluţii admisibile.

Simetria teoremei 2.3.2 nu constituie totuşi un răspuns pentru reciproca teoremei 2.3.1 Specificăm
acest lucru în mod expres pentru că în programarea neliniară el nu are loc.

Teorema 2.3.3 Dacă una din problemele unui cuplu de probleme în dualitate are soluţie optimă
atunci şi cealaltă are şi valorile optime ale funcţiilor obiectiv coincid.

Nu dăm demonstraţia teoremei 2.3.2 deoarece pregătirile necesare depăşesc cadrul impus acestui
curs. Vom demonstra însă teorema 2.3.3 după ce vom prezenta metoda generală de rezolvare a
problemelor de programare liniară.

Teorema 2.3.4 (Teorema ecarturilor complementare - TEC) Fie (P,Q) un cuplu de probleme
canonice în dualitate:
ì Ax £ b ìuA ³ c
ï ï
( P)í x ³ 0 Q íu ³ 0
ïmax f ( x) = cx ïmin g (u) = ub
î î
Un cuplu de soluţii admisibile ( x , u ) este un cuplu de soluţii optime dacă şi numai dacă:
ì(uA - c) x = 0
í (2.3.1)
îu (b - Ax ) = 0
Demonstraţie: Să presupunem relaţiile (2.3.1) verificate de cuplul ( x , u ):
uAx - cx = 0 ü
ý Þ cx = ub Þ ( x , u ) este un cuplu de soluţii optime în virtutea teoremei
ub - uAx = 0þ
2.3.1.Reciproc, să presupunem că ( x , u ) constituie un cuplu de soluţii optime. Atunci
cx = ub ,în virtutea teoremei fundamentale a dualităţii şi prin urmare:
(uA - c) x + u (b - Ax ) = 0
Deoarece x , u sunt soluţii admisibile avem: (uA - c) x ³ 0, u (b - Ax ) ³ 0 şi deci
(uA - c) x = 0, u (b - Ax ) = 0 relaţii care arată că x , u verifică (2.3.1).!

În notaţiile secţiunii (2.2) relaţiile matriciale (2.3.1) se pot scrie:


å æçè å aij ui - c j ö÷ø x j = 0
n m

j =1 i =1

m æ n ö
å ui ç bi - å aij x j ÷ = 0
i =1 è j =1 ø
Aceste relaţii sunt echivalente cu:
æç å m
a u - c j ö÷ x j = 0 j = 1,..., n
è i =1 ij i ø
æ n ö
ui ç bi - å aij x j ÷ = 0 i = 1,..., m
è j =1 ø
x = [ x1 , x 2 ,..., x n ] şi
T
Verificarea acestor egalităţi de către un cuplu de soluţii admisibile
u = [u1 , u2 ,! , um ] reprezintă deci o condiţie necesară şi suficientă de optimalitate.

Pe lângă formularea precedentă, teorema 2.3.4. mai are următoarea interpretare:

Cuplul ( x , u ) de soluţii admisibile este un cuplu de soluţii optime dacă şi numai dacă verifică seturile de
implicaţii:
ì x >0 Þ å
m
= ì u >0 Þ
n
aij x j = bi
ï j a ij u i c j ï i å
i =1 j =1
ín ím
ï å a ij ui < bi Þ ui = 0 ï å aij ui > c j Þ xj = 0
î j =1 îi =1
Observaţie. Deşi prezentată pe un cuplu de probleme canonice, teorema 2.3.4. este valabilă pentru
orice cuplu de probleme în dualitate. Astfel pentru cuplul:
ìmax f = cx ìmin g = ub
ï ï
í Ax = b í uA ³ c
ï x³0 ï u f . r . s.
î î
ele se reduc la: (uA - c) x = 0 Û æç å aij ui - c j ö÷ u j = 0 j = 1,..., n.
m

è i =1 ø
Şi mai concret, considerăm cuplul din:

Exemplul 2.3.1
ìmin f = 5x1 - 2 x 2 - x 3 ì max g = 6u1 + 12u2 + 4u3
ï ï
ïï6 x1 + 2 x 2 - 3x 3 £ 6 ïï 6u1 + u2 + 2u3 £ 5
( P )í x1 + 3x 2 + 2 x 3 = 12 ( Q )í 2u1 + 3u2 - u3 £ -2
ï2 x - x + 4 x ³ 4 ï- 3u + 2u + 4u £ -1
ï 1 2 3
ï 1 2 3

ïî x1 , x 2 , x 3 ³ 0 ïîu1 £ 0, u2 f . r. s., u3 ³ 0
Conform TEC, condiţia necesară şi suficientă pentru ca două soluţii admisibile ale celor două probleme:
x = ( x1 , x 2 , x 3 ) T şi u = (u1 , u2 , u3 )
să fie optime este satisfacerea relaţiilor:
( 5 - 6u1 - u2 - 2u3 ) x1 = 0 (1)
( -2 - 2u1 - 3u2 + u3 ) x 2 = 0 ( 2)
( -1 + 3u1 - 2u2 - 4u3 ) x 3 = 0 (3)
( 6 - 6 x1 - 2 x 2 + 3x 3 )u1 = 0 ( 4)
( 2 x1 - x 2 + 4 x 3 - 4 ) u 3 = 0 (5)
O consecinţă importantă a TEC este faptul că rezolvarea unei probleme de programare liniară este
echivalentă cu rezolvarea dualei sale în sensul că dacă se cunoaşte soluţia optimă a uneia din ele putem
deduce relativ simplu soluţia optimă a celeilalte. Pentru ilustrare vom determina soluţia optimă a
problemei (P) din exemplul precedent ştiind că duala (Q) are soluţia optimă u* de componente:
u1* = 0 , u2* = - 149 , u3* = 141 .
Înlocuind u* în (1) - (5) se constată că relaţiile (2),(3),(4) sunt satisfăcute de orice valori numerice
acordate variabilelor x1 , x2 , x3. În schimb din (1) şi (5) obţinem relaţiile: x1=0 şi 2x1 - x2 + 4x3 - 4 = 0 care
împreună cu restricţia egalitate din (P) constituie un sistem liniar:
ì x1 = 0
ï
í2 x1 - x 2 + 4 x 3 = 4
ï x + 3x + 2 x = 12
î 1 2 3
Rezolvând sistemul, obţinem soluţia optimă a problemei (P):
x1* = 0 , x 2* = 207 , x 3* = 127 f max = f ( x * ) = - 527 = g (u * ) = g min
Echivalenţa amintită mai înainte este folositoare în rezolvarea efectivă a problemelor de
programare liniară ştiut fiind că efortul de calcul este relativ mai mic dacă numărul restricţiilor este mai
mic. în consecinţă, pentru o problemă cu multe restricţii şi un număr restrâns de variabile, va fi mai comod
să rezolvăm duala sa.

4.2.5.4. Interpretarea economică a dualităţii

Reluăm problema firmei din secţiunea 1.1 exemplul 1). Considerăm o întreprindere care produce
bunurile G1,G2,...,Gm la preţurile c1,c2,...,cn folosind pentru aceasta mai multe resurse R1,R2,...,Rm
disponibile în cantităţile limitate b1,b2,...,bm. Consumurile specifice de resurse pentru unul sau altul din
bunurile realizabile de către firmă sunt specificate în matricea:
é a11 a12 ! a1n ù
ê a 21 a 22 ! a 2 n ú
A=ê ú
ê" " ! " ú
êëa m1 a m2 ! a mn úû
Obiectivul firmei este maximizarea veniturilor rezultate din vânzarea bunurilor produse. în
ipotezele de liniaritate uzuale, programul liniar pentru determinarea combinaţiei optime de bunuri este:
ì(max) f ( x ) = c1 x1 + c2 x 2 +!+ cn x n
ï a x + a x +!+ a x £ b
ï 11 1 12 2 1n n 1

ï a 21 x1 + a 22 x 2 +!+ a 2 n x n £ b2
(P) í
ï ............................................
ï a m1 x1 + a m2 x 2 +!+ a mn x n £ bm
ï
î x1 ³ 0, x 2 ³ 0,! , x n ³ 0
Să notăm cu x* = ( x1* , x 2* ,..., x n* ) combinaţia de bunuri care aduce firmei venitul maxim:
V * = max f = f ( x*) = c1 x1* + c2 x 2* +...+ cn x n*
Dacă admitem că singura posibilitate a firmei de a obţine venitul V* constă în transformarea resurselor
disponibile în bunuri conform programului x* şi vânzarea acestora este natural să ne întrebăm care este
contribuţia fiecărei resurse în parte la formarea acestui venit.
La baza discuţiei vom pune aceleaşi ipoteze de liniaritate care ne-au condus la modelul matematic
(P) şi anume:
• contribuţia unei resurse la venitul maxim al firmei este - până la o anumită limită - direct
proporţională cu cantitatea disponibilă;
• nivelul contribuţiei unei resurse nu este condiţionat de celelalte resurse , ci numai de cantitatea
în care ea se află disponibilă.

Să notăm atunci cu u1* , u2* ,..., um* aportul unei unităţi din resursa R1, din resursa R2, ş.a.m.d. la
formarea venitului maxim V*. În virtutea ipotezelor de liniaritate amintite putem scrie:

V * = b1u1* + b2 u2* +...+bm um* (2.4.1)


Producerea unei unităţi din bunul Gj necesită a1j unităţi din resursa R1, a2j unităţi din resursa R2,
....., amj unităţi din resursa Rm.
Partea din venitul maxim V* corespunzătoare acestor cantităţi este:

a1 j u1* + a 2 j u2* +...+ a mj um*

Această mărime trebuie să acopere preţul pe care firma îl încasează prin vânzare de vreme ce ea nu are
alte resurse de formare a venitului în afara transformării resurselor în bunuri. Se conchide că sistemul
u* = (u1* , u2* ,..., um* ) trebuie să satisfacă relaţiile:
ìa11 u1* + a 21 u2* +...+ a m1 um* ³ c1
ï
ïa12 u1 + a 22 u2 +...+ a m2 um ³ c 2
* * *

í (2.4.2)
ï ..........................
ïa u * + a u * +...+ a u * ³ c
î 1n 1 2n 2 mn m n
şi de asemenea condiţiile de nenegativitate:
u1* ³ 0, u2* ³ 0,..., um* ³ 0 (2.4.3)
Sunt suficiente relaţiile (2.4.1) - (2.4.3) pentru determinarea efectivă a valorilor u1* , u2* ,..., um* ? Teoria
dualităţii dă un răspuns afirmativ pe baza următoarelor observaţii:
1) Relaţiile (2.4.2) şi (2.4.3) arată că u* = (u1* , u2* ,..., um* ) constituie o soluţie admisibilă a dualei
(Q) asociată problemei (P):
ì (min) g( x ) = b1 u1 + b2 u2 +...+ bm um
ï a u + a u +...+ a u ³ c
ï 11 1 21 2 m1 m 1

ï a12 u1 + a 22 u2 +...+ a m2 um ³ c 2
( Q )í
ï. ..................................
ï a1n u1 + a 2 n un +...+ a mn um ³ c n
ï
î u1 ³ 0, u2 ³ 0,..., um ³ 0
2) Relaţia (2.4.1) rescrisă în forma f(x*) = g(u*), coroborată cu teorema de dualitate 2.3.1, ne arată
că u* este chiar soluţia optimă a problemei duale Q.

Astfel, am găsit un conţinut economic coerent variabilelor duale u1, u2,..., um din problema duală
(Q). Ele reprezintă nişte valori băneşti asociate la câte o unitate din fiecare resursă disponibilă a firmei
şi exprimă aportul unitar al fiecărei resurse la formarea venitului maxim. Strict dimensional, variabilele
u1, u2,..., um au semnificaţia unor preţuri ataşate resurselor. Totuşi aceste preţuri nu au nimic comun cu
valoarea intrinsecă a resurselor ci - aşa cum a rezultat din interpretarea dată - reflectă numai măsura
participării lor la formarea venitului maxim. Tocmai pentru a preveni identificarea lor cu preţurile reale
ale resurselor, în literatura de specialitate, aceste entităţi au fost denumite preţuri umbră (shadow prices).
A rezultat de asemenea şi o modalitate de calcul a acestor mărimi: se rezolvă problema duală (Q).

Teoria dualităţii arată că venitul maxim V* al firmei - privit ca funcţie de cantităţile disponibile de
resurse - depinde liniar de aceste disponibile prin intermediul preţurilor duale optime - vezi relaţia (2.4.1)
În consecinţă :
¶V *
= ui* i = 1,..., m (2.4.4)
¶ bi
Prin urmare preţurile duale optime ne arată cu cât se modifică venitul maxim V* al firmei la o
variaţie cu o unitate a disponibilului unei resurse.

Este important de reţinut faptul că aceste concluzii rămân valabile numai în situaţia în care
componentele vectorului b variază între anumite limite! În cazul general, atunci când se iau în considerare
toate valorile posibile ale lui b, adică b Î R+m , funcţia V*(b) este subaditivă şi pozitiv omogenă. Aceasta
înseamnă:
V * ( b + b' ) £ V * ( b) + V * ( b' ) ( " ) b, b' Î R+m
V * ( tb) = tV * ( b) ( " ) t ³ 0 , b Î R+m
Reamintim că în baza TEC soluţiile optime x*, u* al problemelor (P) şi (Q) satisfac relaţiile:
x *j > 0 Þ a1 j u1* + a 2 j u2* +...+ a mj um* = c j (2.4.5)
ai1 x1* + ai 2 x 2* +...+ ain x n* < bi Þ ui* = 0 (2.4.5')
ui* > 0 Þ ai1 x1* + ai 2 x 2* +...+ ain x n* = bi (2.4.6)
a1 j u1* + a 2 j u2* +...+ a mj um* > c j Þ x *j = 0 (2.4.6')

• (2.4.5) arată că dacă bunul Gj intră în combinaţia optimă atunci preţul său este egal cu partea din venitul
maxim al firmei corespunzătoare resurselor încorporate într-o unitate din el.
• (2.4.5') arată că dacă o resursă nu este prevăzută a se consuma în întregime - spunem că este
excedentară - preţul său dual este 0. Această concluzie reprezintă versiunea liniară a legii
cererii şi ofertei - preţul unei mărfi pentru care oferta este mai mare decât cererea trebuie să
scadă.
• (2.4.6) arată că o resursă cu preţ dual semnificativ trebuie consumată în întregime; creşterea cu o unitate
a disponibilului aducând o creştere a venitului maxim conform (2.4.4).
• (2.4.6') arată că dacă pentru un bun valoarea resurselor încorporate într-o unitate - valoare măsurată în
preţurile duale optime - depăşeşte preţul său atunci acesta nu intră în combinaţia optimală.
m
Diferenţa å aij u *j - c j reprezintă pierderea potenţială de venit pe care firma o va înregistra
i =1
dacă totuşi decide realizarea unei unităţi din bunul j.
Condiţiile (2.4.5), (2.4.5'), (2.4.6), (2.4.6') date de TEC se mai numesc şi condiţii de echilibru de
unde şi numele de preţuri de echilibru dat uneori preţurilor duale optime.

4.2.6. Structura mulţimii soluţiilor admisibile ale unei probleme de programare


liniară
În această secţiune ne vom opri asupra principalelor proprietăţi geometrice pe care le posedă
mulţimea soluţiilor unui sistem de ecuaţii şi inecuaţii liniare. Aceste proprietăţi sunt determinante în
înţelegerea mecanismului metodei simplex de rezolvare a programelor liniare.
Parcurgerea acestei secţiuni necesită câteva rudimente de calcul matricial şi algebră liniară.
Vectorii cu care se va opera vor fi subînţeleşi, după caz, fie linii fie coloane. De regulă, scrierea în text a
unui vector se va face în linie ca de exemplu v = ( a1 , a 2 ,..., a m ) ; dacă este necesar ca v să fie considerat
vector coloană se va folosi operatorul de transpunere: v = ( a1 , a 2 ,..., a m ) T.

4.2.6.1. Câteva elemente de analiză convexă liniară

Fiind date două puncte x , yÎR n mulţimea:


[ x , y] = {z = (1 - a ) x + a y , 0 £ a £ 1}
se numeşte segment (închis) cu extremităţile x şi y. Se ştie că în R2 sau în R3 acest concept se suprapune
peste conceptul geometric uzual. Pentru a = 0 , respectiv a = 1 , avem z º x , respectiv z º y . Punctele
z = (1 - a ) x + ay corespunzătoare valorilor a Î( 0 ,1 ) se numesc puncte interioare ale
1 1
segmentului [ x , y] . Pentru a =
găsim z = ( x + y ) º mijlocul segmentului [ x , y] .
2 2
O mulţime X Í R se zice convexă dacă o dată cu două puncte conţine şi segmentul care le
n

uneşte.

Formal :
X convexă Û (") x , y Î X ,(") a Î[0,1] , z = (1 - a ) x + a y Î X

Se verifică imediat că intersecţia mai multor mulţimi convexe este o mulţime convexă.
Fie a = ( a1 , a 2 ,..., a n ) un vector nenul şi b un scalar. Este uşor de văzut că mulţimea:
{ }
S = x = ( x1 , x 2 ,..., x n ) T ax £ b Û a1 x1 + a 2 x 2 +...+ a n x n £ b
este convexă. Ea se numeşte semispaţiu, în timp ce mulţimea:

{
H = x = ( x1 , x 2 ,..., x n ) T ax = b Û a1 x1 + a 2 x 2 +...+ a n x n = b }
se numeşte hiperplan. Este clar că şi H este o mulţime convexă ca intersecţie a semispaţiului S de mai
sus, cu semispaţiul:
{
S ' = x Î R n ax ³ b Û ( - a ) x £ -b Û - a1 x1 - a 2 x 2 -...- a n x n £ -b }
O intersecţie finită de semispaţii se numeşte mulţime poliedrală. Evident, o mulţime poliedrală
este convexă, reciproca nefiind în general adevărată.
În figura 3.1.1 sunt prezentate câteva mulţimi convexe şi neconvexe în plan. Este clar că mulţimile
a) şi b) nu sunt convexe. Discul c) este o mulţime convexă dar nu este poliedrală, fiind în fapt intersecţia
infinită a tuturor semispaţiilor care conţin discul şi sunt mărginite de tangentele la circumferinţă. Poligonul
convex d) este intersecţia a 4 semispaţii aşa cum se arată în fig.3.1.2

a) poligon concav b) coroană circulară c) disc

d) poligon convex e) mulţime poliedrală nemărginită

Notă: Toate mulţimile specificate sunt presupuse, închise adică îşi conţin frontierele.

Figura 3.1.1
S3
S2
S1

S4

Figura 3.1.2

Din cele de mai sus rezultă că orice mulţime poliedrală în R n se identifică cu mulţimea soluţiilor
unui sistem de ecuaţii şi/sau inecuaţii liniare în n variabile. În particular:
Mulţimea AP a soluţiilor admisibile ale unui program liniar (P) este o mulţime convexă,
poliedrală şi închisă. Frontiera sa se compune din toate punctele ale căror coordonate satisfac cu
egalitate cel puţin una din restricţii.
Se numeşte vârf al unei mulţimi convexe X Í R n un punct v Î X cu proprietatea că nu există un
segment [x,y] Ì X care să conţină pe v ca punct interior. În R 2 sau R 3 regăsim conceptul geometric uzual.
O mulţime poliedrală are întotdeauna un număr finit de vârfuri (posibil nici unul); de exemplu,
poligonul d) din fig. 3.1.1 are patru vârfuri în timp ce un semispaţiu nu are vârfuri. Discul c) are o infinitate
de vârfuri: orice punct de pe circumferinţă are această calitate.
Mulţimile d) şi e) din fig.3.1.1 sunt amândouă poliedrale dar e) este nemărginită. Pentru a
caracteriza această proprietate avem nevoie de un nou concept, cel de rază extremă. Pentru a nu depăşi
cadrul orar al cursului vom lăsa la latitudinea cititorului aprofundarea conceptului utilizând ca suport
bibliografic www.asecib.ase.ro – Cursuri on-line – 9. Nica V. şi colectiv, Cercetări Operaţionale I.

Teorema centrală a programării liniare

Să considerăm acum un program liniar (P) în care funcţia obiectiv se maximizează şi să ne situăm
în cazul în care programul (P) este compatibil adică mulţimea soluţiilor sale admisibile AP este nevidă.
Am văzut că AP este o mulţime poliedrală şi convexă având un număr finit de vârfuri v 1 , v 2 ,....., v p . Aşa
cum va rezulta din secţiunea 4.1, AP are cel puţin un vârf, adică p ³ 1 . Vom enunţa acum teorema
centrală a programării liniare.

TEOREMA1). Dacă programul (P) are optim finit, atunci o soluţie optimă se găseşte într-unul
din vârfurile mulţimii soluţiilor admisibile AP .
Importanţa acestei teoreme este covârşitoare: ea reduce problema găsirii unei soluţii optime x *
din mulţimea, în general infinită, AP a tuturor soluţiilor admisibile ale programului (P), la identificarea
acestei soluţii în mulţimea finită a vârfurilor lui AP.

Recapitulând modul în care diferitele proprietăţi discutate au fost implicate în obţinerea acestui
rezultat fundamental să reţinem că:

1)
NOTĂ: Pentru demonstraţiile Teoremelor şi Lemelor din acest capitol, vezi www.asecib.ase.ro – Cursuri on-line
– 9. Nica V. şi colectiv, Cercetări Operaţionale I.
• Convexitatea mulţimii soluţiilor admisibile AP situează soluţiile optime, dacă acestea există, pe
frontiera lui AP;
• Deoarece AP este poliedrală, iar funcţia obiectiv este liniară, cel puţin una din soluţiile optime
este un vârf al lui AP.

Teorema furnizează următorul procedeu "naiv" de rezolvare a unui program liniar (P):
• se "generează" lista (finită) a vârfurilor mulţimii AP;
• prin înlocuire succesivă în funcţia obiectiv se reţine vârful care oferă acesteia valoarea maximă
(sau minimă, după caz).

Procedeul ridică la rândul său următoarele probleme principiale:


1) Cum recunoaştem compatibilitatea programului (P) ?
2) Cum "calculăm" un vârf al mulţimii AP sau mai corect spus cum se caracterizează "algebric" un
vârf ?
3) Pentru obţinerea soluţiei optime este necesar să generăm toate vârfurile mulţimii AP? întrebarea
este serioasă deoarece şi pentru programe liniare de dimensiuni reduse (adică cu un număr relativ mic de
restricţii şi variabile) numărul vârfurilor este foarte mare.
4) Chiar dacă reuşim, prin enumerarea explicită a tuturor vârfurilor, să găsim pe acela care
maximizează funcţia obiectiv, aceasta nu înseamnă obligatoriu că am rezolvat programul dat! Este posibil
ca programul respectiv să aibă optim infinit! Cum se recunoaşte acest fapt?
Vom răspunde progresiv la toate chestiunile menţionate în secţiunile următoare.

4.2.6.2. Corespondenţa AP ~ AFSP

Considerăm o problemă de programare liniară (P) care conţine cel puţin o restricţie inegalitate şi
fie (FSP) forma sa standard (vezi secţiunea 1.4) Pentru simplificarea notaţiilor, vom presupune că (P) este
în formă canonică de maximizare:
ìmax f = cx
ï
( P) í Ax £ b
ï x³0
î
unde:
é a11 a12 ! a1n ù é b1 ù é x1 ù
êa a 22 ! a 2 n ú ê b2 ú êx ú
A= ê 21 ú b= ê ú x=ê ú
2

ê " " " ú ê " ú ê "ú (3.3.1)


ê ú ê ú ê ú
ëa m1 a m2 ! a mn û ëbm û ëxn û
c = [c1 c2 ! c n ]

ştim din secţiunea 1.3 că orice program liniar poate fi scris în această formă. Forma standard a programului
(P) va fi:
é y1 ù
ìmax f = cx êy ú
ï
( FSP )í Ax + y = b în care: y = ê ú este vectorul variabilelor de abatere.
2

ïx ³ 0 , y ³ 0 ê ! ú
î ê ú
ë ym û
Între mulţimile de soluţii admisibile AP Ì Rn şi AFSP Ì Rn+m există o corespondenţă bijectivă F(x) = (x,
y), unde y = b - Ax, a cărei inversă este proiecţia F -1(x,y) = x. Am remarcat deja în secţiunea 1.4 că prin
corespondenţa F, soluţiile optime ale celor două probleme se corespund. în fapt, F are următoarea
proprietate mai generală.
Teorema 3.3.1 Dacă x este un vârf al mulţimii AP atunci F(x) = (x, y) cu y = b - Ax este un vârf
al mulţimii AFSP . Reciproc, dacă (x, y) este un vârf al mulţimii AFSP atunci F-1(x,y) = x este un vârf al
mulţimii AP .

În baza acestei teoreme precum şi a teoremei centrale a programării liniare (secţiunea 3.2), pentru a rezolva
problema (P) este suficient să căutăm soluţia optimă a formei sale standard (FSP) printre vârfurile mulţimii
AFSP .

Vom vedea în secţiunea următoare cum se caracterizează “algebric” vârfurile mulţimii soluţiilor
admisibile ale unui program liniar în formă standard. Tot acolo vom arăta că dacă un program (P) este
compatibil atunci AP are cel puţin un vârf şi în orice caz un număr finit de asemenea elemente. Pe baza
acestor rezultate, vom putea descrie în paragraful 4 o metodă efectivă de rezolvare a unei probleme de
programare liniară.

4.2.6.3. Soluţii de bază ale unui program liniar

Să considerăm acum un program liniar (P) în formă standard:


ìmax f = cx
ï
( P )í Ax = b
ï x³0
î
în care masivele A,b,c,x au semnificaţiile din (3.3.1). Vom pune în evidenţă coloanele matricii A:
A = [A1 , A2 , … , An ]

Definiţie: Soluţia x = ( x1 , x 2 ,..., x n )T a problemei în formă standard (P), nu neapărat admisibilă,


se numeşte soluţie de bază dacă mulţimea coloanelor Ai corespunzătoare componentelor x i ¹ 0 este liniar
independentă.

Fie I( x ) mulţimea indicilor i Î {1, 2,…, m} cu proprietatea că x i ¹ 0.

Lema 1 Dacă x şi x ¢ sunt soluţii de bază ale programului (P) şi I( x ¢ ) Í I( x ) atunci x = x ¢ (şi
deci I( x ) = I( x ¢ )).

Demonstraţie: Este clar că x i = x i¢ = 0 pentru indicii iÏ I( x ). Atunci egalităţile:


å x i A i = å x i¢A i = b
i ÎI ( x ) i ÎI ( x ¢ )

implică:
å ( x i - x i¢ ) A i = 0
i ÎI ( x )

de unde rezultă x i = x i¢ pentru toţi iÎ I( x ), deoarece prin ipoteză coloanele Ai , iÎ I( x )


sunt liniar independente. !

Lema 2 Fie x = ( x1 , x 2 ,..., x n )T o soluţie admisibilă a problemei (P) care nu este soluţie de bază.
Atunci există un vector yÎ Rn şi un interval [ l , l ]Ì Rn È {-¥ , +¥} astfel încât:
1) Ay = 0;
2) [ l , l ] conţine pe 0 şi nu se reduce la acest punct; l şi l nu sunt simultan infinite;
3) pentru orice l Î[ l , l ] vectorul x(l) = x + ly este o soluţie admisibilă a problemei (P);
4) Dacă de exemplu, l este finit şi x ¢ = x( l ) atunci I( x ¢ ) Í I( x ) dar êI( x ¢ ) ê£ êI( x ) ê- 1
adică x ¢ are mai puţine componente nenule decât x .
Demonstraţie: Din ipoteză rezultă că mulţimea coloanelor Ai , iÎ I( x ) este liniar
independentă. Există prin urmare scalarii yi , iÎ I( x ) nu toţi nuli astfel încât:
å yi Ai = 0
iÎI ( x )

Punând yi = 0 pentru iÏ I( x ) obţinem un vector y = (y1 ,y2 ,…,yn) Î Rn cu proprietatea că:


n
å yi Ai = 0 Û Ay = 0
i =1
Afirmaţia 1) este demonstrată.
Pentru orice l Î R vectorul x(l) = x + ly este o soluţie a problemei (P) deoarece
Ax(l) = A x + lAy =b.
Impunând condiţia de admisibilitate x(l)³ 0 obţinem pentru l intervalul de valori permise [
l , l ] în care:
ì ì xi ü ì ì xi ü
ï max íî- y i ýþ ï min íî- y i ýþ
l = íiÎI ( x ), yi >0 l = íiÎI ( x ), yi <0
ï- ¥ daca toti y £ 0 ï+ ¥ daca toti y ³ 0
î i î i
Avem l < 0 < l şi deoarece y ¹ 0, cel puţin una din extremităţile l , l este finită. Astfel
şi afirmaţiile 2) , 3) sunt probate.
Să presupunem, în final că l este finit. Atunci va exista un indice rÎ I( x ) astfel
x
că: yr < 0 şi l = - r y .Dacă x ¢ = x( l ) este clar că I( x ¢ ) Í I( x ) şi cum
r
x r¢ = x r + l y r = 0 iar x r > 0 urmează că êI( x ¢ ) ê< êI( x ) êşi ultima afirmaţie este dovedită.
!

Teorema 3.4.1 O soluţie admisibilă x = ( x1 , x 2 ,..., x n )T a problemei (P) este un vârf al mulţimii
AP dacă şi numai dacă x este o soluţie de bază.

Demonstraţie: Să presupunem că x este vârf dar nu este soluţie de bază. Conform lemei 2
există y Î Rn cu Ay = 0 şi intervalul [ l , l ] care conţine pe 0 şi nu se reduce la acesta,
astfel încât x(l) = x + ly să fie o soluţie a programului (P) oricare ar fi l Î [ l , l ]. Alegem
e > 0 suficient de mic astfel încât [-e ,+e ] Ì [ l , l ] şi punem: x1 = x -ey, x2 = x +ey .
Atunci x1,x2Î AP , x1¹ x2 şi x = 12 ( x 1 + x 2 ) în contradicţie cu ipoteza că x este vârf al
mulţimii AP .
Pentru reciprocă să presupunem că x este o soluţie de bază fără a fi vârf. Atunci
există x1,x2Î AP, x1¹ x2 şi aÎ (0,1) astfel încât x = (1-a )x1 + ax2. Pentru iÏI( x ) avem
(1 - a ) x 1i + ax 2i = 0 şi cum x 1i ³ 0 , x 2i ³ 0 rezultă x 1i = x 2i = 0 . în consecinţă, I(x1) Í I( x ),
I(x2) Í I( x ) şi în virtutea lemei 1 rezultă x1 = x2 = x , în contradicţie cu ipoteza făcută. !

Teorema 3.4.2 Dacă programul în formă standard (P) este compatibil atunci mulţimea soluţiilor
sale admisibile AP are cel puţin o soluţie de bază, deci un vârf.

Demonstraţie Fie x = ( x1 , x 2 ,..., x n ) T o soluţie admisibilă a problemei (P). Vom proceda


prin inducţie după numărul k al componentelor x i > 0 .Dacă k = 0 atunci x = (0,0,...,0) este
o soluţie de bază întrucât o mulţime vidă de vectori este, prin convenţie,liniar independentă.
Dacă k > 0 există două situaţii de examinat:
1) Coloanele Ai, i Î I( x ) sunt liniar independente. Atunci x este o soluţie de bază.
2) Coloanele Ai, i Î I( x ) sunt liniar dependente. Conform lemei 2 va exista o soluţie
admisibilă x ¢ cu I( x ¢ ) Ì I( x ) dar cu mai puţine componente nenule decât x . Repetând
raţionamentul, este clar că într-un număr finit de paşi se ajunge la situaţia 1) adică la o soluţie
de bază. !

Consecinţă Mulţimea AP a soluţiilor admisibile ale unui program liniar compatibil are cel puţin
un vârf.

Demonstraţie: Să presupunem că (P) nu este în formă standard, altminteri avem teorema


3.4.2. Fie (FSP) forma standard a programului (P). Deoarece avem corespondenţa bijectivă
F: AP @ AFSP deducem că AFSP ¹ Æ pentru că prin ipoteză AP ¹ Æ. Prin teorema 3.4.2
mulţimea AFSP are cel puţin un vârf; acesta, prin proiecţia F-1 va fi un vârf al mulţimii AP
, graţie teoremei 3.3.1. !

Având în vedere caracterizarea algebrică a vârfurilor dată în teorema 3.4.1, teorema centrală a
programării liniare poate fi formulată şi în următorii termeni.

Teorema 3.4.3 Dacă un program liniar în formă standard are optim finit, cel puţin una din
soluţiile sale optime este o soluţie de bază.

Mai rămâne de arătat că mulţimea soluţiilor admisibile ale unui program liniar are un număr finit
de vârfuri. În virtutea teoremelor 3.3.1 şi 3.4.1, aceasta revine la a arăta că un program liniar în formă
standard (P) are un număr finit de soluţii admisibile de bază. Faptul rezultă nemijlocit din aceea că numărul
sistemelor liniar independente ce pot fi extrase dintr-o mulţime finită de vectori este finit. Vom preciza
acest lucru sub forma unei teoreme în secţiunea următoare, în care vom introduce un concept uşor diferit
de cel de soluţie de bază, acela de soluţie asociată unei baze a programului (P). Noul concept are avantajul
de a fi mai uşor de manipulat în practică.

4.2.6.4. Baze ale unui program liniar în formă standard. Soluţia asociată unei baze

În notaţiile secţiunii precedente facem ipoteza:


rangA = m < n (3.5.1)
Ipoteza ne asigură că ecuaţiile ce compun sistemul liniar Ax = b al restricţiilor sunt independente
şi că acest sistem are o infinitate de soluţii. Să notăm că ipoteza nu implică în mod necesar şi existenţa
soluţiilor admisibile (adică cu toate componentele nenegative) pentru sistemul considerat. După cum vom
vedea în secţiunea 4.6 ipoteza făcută nu este deloc restrictivă.

Deoarece rangA = m, în matricea A va exista cel puţin un grup de m coloane liniar independente,
constituind deci o bază a spaţiului Rm. Un asemenea grup se va numi bază a programului (P) şi numărul
n!
acestora este finit , nedepăşind Cnm = .
m !( n - m )!
Fie B o bază a programului (P), I mulţimea indicilor coloanelor din B şi J mulţimea indicilor
coloanelor din A care nu sunt în B. Renumerotând convenabil variabilele programului vom scrie matricea
A în forma:
A = [B , S] cu B = [Ai]i Î I , S = [Aj]j Î J

Partiţionăm corespunzător vectorul (coloană) x al variabilelor:


éx B ù
x=ê Sú
ëx û
[ ]
cu x B = [ x i ] iÎI , x S = x j
j ÎJ

ca şi vectorul (linie) al coeficienţilor funcţiei obiectiv:


c = [cB,cS] cu cB = [ci]i Î I , cS = [cj]j Î J

în raport cu baza B aleasă, variabilele xi , i Î I se vor numi variabile bazice, iar toate celelalte nebazice
sau secundare.
Scriem sistemul Ax = b în forma:
éx B ù
[ B, S ]ê S ú = b Û Bx B + Sx S = b
êë x úû
Deoarece B este o bază a spaţiului Rm, B (ca matrice!) este nesingulară deci inversabilă. Înmulţind
la stânga cu B-1 obţinem:
x B + Sx S = b cu S = B -1 S = a ij[ ] iÎI , j ÎJ
, b = B -1 b = [ bi ] iÎI (3.5.2)

Va fi util să punem în evidenţă coloanele matricii `S:

[ ]
S = B -1 A j jÎJ [
= B -1 A j ] jÎJ [ ]
= Aj jÎJ
cu
A j = B -1 A j = a ij [ ] iÎI
(3.5.3)

Utilizăm (3.5.2) pentru a elimina din expresia funcţiei obiectiv variabilele bazice:
éx B ù
f = [ c B , c S ]ê S ú = c B x B + c S x S = c B ( b - Sx S ) + c S x S =
êë x úû
= c b - ( c S - c S )x S = f - c S x S
B B
(3.5.4)

unde:
f = c B b ( = c B B -1 b ) = å c i bi (3.5.5)
iÎI
şi:
c S = c B S - c S ( = c B B -1 S - c S ) = c j [ ] j ÎJ
în care:
c j = c B A j - c j ( = c B B -1 A j - c j ) = å c i a ij - c j (3.5.6)
iÎI
Astfel, în raport cu baza B, programul (P) poate fi adus la următoarea formă echivalentă, conform
(3.5.2) şi (3.5.4):
ìmax f = f - å c j x j
ìmax f = f - c S x S ï j ÎJ
ï ï
( PB )í x + Sx = b
B S
Û íx i + å a ij x j = bi i Î I (3.5.7)
ï ï j ÎJ

î x ³ 0 ,x ³ 0
B S
ïîx i ³ 0 , i Î I ; x j ³ 0 , j Î J

(PB) se numeşte forma explicită a programului (P) în raport cu baza B. Comparând (PB) cu (P)
constatăm că efectul înmulţirii cu B -1 a sistemului Ax = b este explicitarea variabilelor bazice xi , i Î I în
funcţie de cele nebazice xj , j Î J.

Luând în (PB):
xS = 0 Û xj = 0 , j Î J (3.5.8)
obţinem:
xB = b Û x i = bi i Î I (3.5.9)
Vectorul:
éb ù ¬ x B
x=ê ú (3.5.10)
0
ë û ¬ x S

este evident o soluţie a programului (P), numită soluţia asociată bazei B. Vom spune că B este o bază
admisibilă dacă soluţia asociată (3.5.10) este admisibilă, ceea ce revine la a spune că bi ³ 0 , i Î I .

Prin construcţie, soluţia asociată unei baze a programului (P) este o soluţie de bază în sensul
definiţiei din secţiunea precedentă. Reciproca nu este în general adevărată. Astfel, dacă x =
( x1 , x 2 ,..., x n ) T este o soluţie de bază a programului (P), numărul componentelor nenule este £ m. Dacă
acest număr este exact m atunci x este soluţia asociată bazei formate din coloanele matricii A
corespunzătoare celor m componente nenule. Spunem în acest caz că x este o soluţie de bază
nedegenerată. Dacă numărul componentelor nenule este < m, coloanele corespunzătoare acestor
componente pot fi completate până la o bază în mai multe moduri, astfel că x se asociază la mai multe
baze! Dacă se întâmplă aşa spunem că x este o soluţie degenerată.

Deoarece (P) are un număr finit de baze, el va avea şi un număr finit de soluţii asociate acestor
baze şi de aici un număr finit de soluţii de bază.

În baza relaţiilor (3.5.8), (3.5.9) constanta f din (3.5.5) reprezintă valoarea funcţiei obiectiv a
programului (P) în soluţia (3.5.10) asociată bazei B. Componentele c j , j Î J (definite în (3.5.6)) ale
vectorului c S din (3.5.4) vor juca un rol esenţial în caracterizarea optimalităţii unei soluţii admisibile de
bază. Ele se numesc costuri reduse (notate Dj în alte materiale de specialitate) şi sunt întotdeauna asociate
variabilelor nebazice. Coeficienţii numerici ai formei explicite (3.5.7) se trec într-un tabel (TB) al cărui
format este indicat în tabelul 3.5.1. Tabelul (TB) se numeşte tabelul simplex asociat bazei B. Coloana “B”
conţine vectorii bazei B, coloana “CB” conţine Coeficienţii din funcţia obiectiv ai variabilelor Bazice iar
în coloana “VVB” apar Valorile Variabilelor Bazice. În ultima linie a tabelului, numită şi linia test, apar
valoarea f a funcţiei obiectiv în soluţia asociată bazei B precum şi costurile reduse c j , j Î J
corespunzătoare coloanelor nebazice. Formula (3.5.5) arată că f este produsul scalar al coloanelor “CB”
şi “VVB” în timp ce relaţia (3.5.6) arată că c j se obţine din produsul scalar al coloanelor “CB” şi “Aj”
scăzând costul cj scris deasupra coloanei “Aj”.
Tabelul 3.5.1
ci cr cj ck
CB B VVB ! Ai ! Ar ! Aj ! Ak !
" " " " " " "
ci A i
`bi ! 1 ! 0 ! `aij ! `aik ! (TB)
" " " " " " "
cr Ar `br ! 0 ! 1 ! `arj ! `ark !
" " " " " " "
f f ! * ! * ! c j ! ck !

Extindem definiţia costului redus şi la coloanele “Ai” , iÎ I : c i = c i - c i = 0 . Aceste costuri


reduse au fost notate în linia test cu asteriscuri (*) spre a le deosebi de eventualele costuri reduse nule c j
, j Î J care, după cum vom vedea în secţiunea 4.2, indică - “la optim” - prezenţa mai multor soluţii optime
de bază.

!! Metoda simplex de rezolvare a programelor liniare de optimizare va fi prezentată în cadrul


cursului de Cercetări Operaționale din anul 3!!
Exemplul 4.2.1 Considerăm programul:

ì max f = 2 x1 + x 2
ï
( P) íx1 - x 2 £ 4 ; 3x1 - x 2 £ 18 ; - x1 + 2 x 2 £ 6
ï x1 ³ 0 , x 2 ³ 0
î

a cărui mulţime de soluţii admisibile AP este vizualizată în figura 4.2.1.


x2

S3: x1=42/5, x2=36/5

S2: x1=7, x2=3


AP
S1: x1=4, x2=0
x1

S0: x1=0, x2=0

Figura 4.2.1

Aducem (P) la forma standard adăugând variabilele de abatere x3, x4, x5:

ì max f = 2 x1 + x 2
ï
ï x1 - x 2 + x 3 = 4
ï
( FSP) í 3x1 - x 2 + x4 = 18
ï- x + 2 x + x5 = 6
ï 1 2
ïî x j ³ 0 , j = 1,...,5

Se observă că matricea A a coeficienţilor formei standard (FSP) conţine baza unitară E = [


A ,A ,A5] (deci FSP este chiar forma bună a lui P pentru aplicarea algoritmului Simplex Primal) a cărei
3 4

soluţie asociată:
1 = 0 , x2 = 0 , x3 = 4 , x4 = 18 , x5 = 6

este admisibilă.

Exemplul 4.3.1 Considerăm următorul program împreună cu forma sa standard:


ì(max) f = 2 x1 + 3x 2 ì(max) f = 2x1 + 3x 2
ï ï
ï 2 x1 + x 2 ³ 40 ï 2x1 + x 2 - x 3 = 40
ï ï
( P )í x1 + 3x 2 ³ 30 Þ ( FSP )í x1 + 3x 2 - x4 = 30
ï x + x £ 30 ï x + x + x 5 = 30
ï 1 2
ï 1 2

ï
î x1 ³ 0 , x 2 ³ 0 ïî x j ³ 0 , j = 1,...,5
Se constată că (FSP) nu este în forma bună neconţinând decât un singur vector al matricii unitare
de ordinul 3. Vom creea o asemenea matrice introducând în primele două restricţii variabilele artificiale
x6 şi x7. Obţinem programul:
ì(max) f = 2 x1 + 3x 2 - Mx 6 - Mx 7
ï
ï 2 x1 + x 2 - x 3 + x6 = 40
ï
( FBP )í x1 + 3x 2 - x4 + x 7 = 30 , M >> 0
ï x + x + x5 = 30
ï 1 2

ïî x j ³ 0 , j = 1,...,7
Putem aplica algoritmul simplex programului (FBP) plecând de la baza unitară E = [A6, A7, A5]
şi de la soluţia asociată acesteia:
x1 = x2 = x3 =x4 = 0 x5 = 30 , x6 = 40 , x7 = 30

După trei iteraţii (vezi tabelele 4.3.1 - 4.3.4) se obţine soluţia optimă a programului (FBP) în care
variabilele artificiale x6 , x7 au valoarea zero. Ignorând aceste valori se obţine soluţia optimă a formei
standard (FSP) şi implicit soluţia optimă a programului original (P):

x1* = 10 , x 2* = 20 f max = 80

variabilele de abatere având valorile: x 3* = 0 , x 4* = 40 , x 5* = 0.


x2

S3: x1=10 , x2=20

S1: x1=0 , x2=10


AP
S0: x1=0 , x2=0
x1
S2: x1=18 , x2=4

Figura 4.3.1

4.3. Îndrumar pentru autoverificare

4.3.1. Sinteza unității de studiu 3

În elaborarea modelului matematic pentru o problemă de optimizare practică se


recomandă parcurgerea următoarelor etape:
1. Identificarea mărimilor variabile: acestea vor deveni variabilele de decizie ale modelului;
2. Identificarea condiţiilor limitative ce caracterizează procesul modelat şi formalizarea lor
în relaţii matematice – inegalităţi şi / sau egalităţi – denumite restricţii;
3. Precizarea criteriului de performanţă şi formalizarea lui într-o funcţie de variabilele de
decizie, numită funcţia obiectiv;
4. Precizarea condiţiilor explicite impuse mărimilor variabile, ca de exemplu: să ia numai
valori reale nenegative sau numai valori întregi etc.

Odată modelul construit, problema de optimizare originală capătă urmatoarea „traducere”: Să se


determine valorile variabilelor de decizie care satisfac restricţiile şi condiţiile explicite impuse
variabilelor şi care oferă funcţiei obiectiv valoarea maximă sau minimă, după caz.
Aceste probleme constau în maximizarea sau minimizarea unei funcţii liniare, numită funcţie obiectiv, ale
cărei variabile trebuie să satisfacă:
• un sistem de relaţii date sub forma unor ecuaţii şi/sau inecuaţii liniare nestricte, denumite
generic restricţii;
• cerinţa de a lua numai valori numerice nenegative (³0).

Așa cum a fost precizat mai sus, o problemă de programare liniară (PPL) este o problemă de
optimizare în care restricțiile și funcția obiectiv sunt expresii liniare în variabilele problemei. Exemple
clasice de PPL sunt: problema firmei și problema dietei.
Considerăm o problemă de programare liniară (P) cu m restricţii egalităţi şi/sau inegalităţi
nestricte, n variabile şi cu funcţia obiectiv f. Un ansamblu de n valori numerice care satisfac restricţiile se
va numi Soluţie a programului (P). Dacă în plus sunt verificate şi condiţiile de nenegativitate, ansamblul
se numeşte Soluţie admisibilă. O soluţie admisibilă care maximizează sau minimizează - după caz -
funcţia obiectiv se va numi Soluţie optimă. Notând cu A mulţimea soluţiilor admisibile, problema (P) se
scrie:
Să se determine x*Î A cu proprietatea: f(x*) = max sau min f ( x )
xÎA
Este posibil ca (P) să aibă soluţii dar nici una din ele să fie admisibilă: A = Æ. Spunem în acest
caz că problema (P) este incompatibilă. Chiar dacă A ¹ Æ, este posibil ca funcţia obiectiv să fie
nemărginită pe A , adică să existe un şir de soluţii admisibile de-a lungul căruia funcţia obiectiv să tindă
spre + ¥ sau -¥, după caz. în această situaţie vom spune că (P) are optim infinit. Dacă (P) are (cel puţin)
o soluţie optimă, zicem că (P) are optim finit.
Problemele de programare liniară în două variabile pot fi rezolvate cu ajutorul metodei grafice.
Pentru probleme cu mai mult de două variabile vom folosi software specializat (metoda Simplex este
prezentată în cadrul unui curs avansat).
Oricărei probleme de programare liniară i se asociază o alta, numită duala sa. Construcţia
problemei duale depinde nemijlocit de structura problemei iniţiale denumită şi problema primală. Studiul
şi interpretarea economică a problemei duale aduc informaţii suplimentare în analiza proceselor
economice şi în fundamentarea deciziilor.
Duala unei probleme de programare liniară cu m restricţii şi n variabile se construieşte după
următoarele reguli:
min « max
(restricţie) concordantă « (variabilă) nenegativă
(restricţie) neconcordantă « (variabilă) nepozitivă
(restricţie) egalitate « (variabilă) fără restricţie de semn
termen liber al unei restricţii « coeficient al funcţiei obiectiv

Teorema fundamentală a dualităţii: Pentru un cuplu de probleme în dualitate una şi numai una
din următoarele situaţii este posibilă:
1) Ambele probleme au soluţii admisibile; atunci ambele au soluţii optime şi valorile
optime ale funcţiilor obiectiv coincid: f ( x ) = g (u ) .
2) Numai una din probleme are soluţii admisibile, iar cealaltă nu are; atunci problema
compatibilă are optim infinit.
3) Nici una din probleme nu are soluţii admisibile.
Teorema ecarturilor complementare - TEC Fie (P,Q) un cuplu de probleme canonice în
dualitate:
ì Ax £ b ìuA ³ c
ï ï
( P)í x ³ 0 Q íu ³ 0
ïmax f ( x) = cx ïmin g (u) = ub
î î
Un cuplu de soluţii admisibile ( x , u ) este un cuplu de soluţii optime dacă şi numai dacă:
ì(uA - c) x = 0
í
îu (b - Ax ) = 0

O consecinţă importantă a TEC este faptul că rezolvarea unei probleme de programare liniară este
echivalentă cu rezolvarea dualei sale în sensul că dacă se cunoaşte soluţia optimă a uneia din ele putem
deduce relativ simplu soluţia optimă a celeilalte
Variabile duale u1, u2,..., um din problema duală (Q) reprezintă nişte valori băneşti asociate la câte
o unitate din fiecare resursă disponibilă a firmei şi exprimă aportul unitar al fiecărei resurse la formarea
venitului maxim. Strict dimensional, variabilele u1, u2,..., um au semnificaţia unor preţuri ataşate resurselor
ce reflectă măsura participării lor la formarea venitului maxim. Tocmai pentru a preveni identificarea lor
cu preţurile reale ale resurselor, în literatura de specialitate, aceste entităţi au fost denumite preţuri umbră
(shadow prices). A rezultat de asemenea şi o modalitate de calcul a acestor mărimi: se rezolvă problema
duală (Q). Prin urmare preţurile duale optime ne arată cu cât se modifică venitul maxim V* al firmei la
o variaţie cu o unitate a disponibilului unei resurse.

4.3.2. Concepte și termeni de reținut

Probleme de optimizare Soluții vs. soluții admisibile vs. soluții


optime
Probleme de programare liniară Problemă incompatibilă
Funcție obiectiv Optim infinit
Restricții vs. condiții explicite Domeniu admisibil
Forma canonică vs. forma standard Duala vs. primala
Variabile ecart Prețuri umbră
Restricții concordante/ neconcordante

4.3.3. Probleme de rezolvat

Exercițiul 1 (Temă):

4.3.3.1. Exemple de modelare economico matematică din practica economică

În această secţiune se dau câteva exemple de elaborare a modelelor matematice pentru o serie de
situaţii din practica economică. Din motive evidente, situaţiile analizate au fost mult simplificate
rămânând totuşi plauzibile. În completare, pentru modelele construite s-au indicat şi soluţiile optime,
interpretate în contextul situaţiilor originale modelate.
Cititorul este invitat să rezolve singur (fie manual fie cu ajutorul unui utilitar) modelele prezentate
ca şi problemele propuse, bineînţeles atunci când va avea la dispoziţie şi metoda de soluţionare. Succes!

Exemplul 1. Pentru asigurarea activităţii curente de producţie, o firmă are nevoie de anumite cantităţi din
trei repere. În principiu, firma are posibilitatea de a fabrica aceste repere cu mijloace proprii dar
conducerea este de părere că resursele disponibile nu sunt suficiente pentru producerea cantităţilor
necesare astfel că se pune problema achiziţionării unora de pe piaţă, cel puţin în parte. În procesul de
fabricaţie al reperelor la firmă sunt implicate două utilaje, fiecare cu un număr limitat de ore disponibile
de funcţionare. Datele concrete ale situaţiei sunt indicate în tabelul 1.1:
Consumuri unitare de timp Cost intern de Cost de achiziţie Cantitatea
Repere de prelucrare (u.t./reper) producţie de pe piaţă necesară de
M1 M2 (u.m./reper) (u.m./reper) repere (bucăţi)
R1 2 5 25 31 200
R2 3 4 44 47 100
R3 6 1 19 23 150
Timp disponibil
1200 1000
(u.t.)

Tabelul 1.1

Conducerea firmei este interesată în a stabili cât să producă şi cât să cumpere de pe piaţă astfel
încât totalul cheltuielilor să fie minim. Scrieţi un program liniar care să răspundă acestui obiectiv.

Modelul matematic

I) Identificarea mărimilor variabile. Vom nota:


xi º cantitarea (în bucăţi) din reperul Ri produsă în cadrul firmei, i = 1,2,3

II) Identificarea condiţiilor limitative şi formalizarea lor în restricţii.


- încadrarea necesarului de timp de prelucrare în fondurile de timp disponibil ale utilajelor M1 şi M2:
2 x1 + 3x 2 + 6 x3 £ 1200 (1)

5 x1 + 4 x 2 + x3 £ 1000 (2)
- cantităţile produse nu trebuie să depăşească comenzile:
x1 £ 200 (3)
x2 £ 100 (4)

x3 £ 150 (5)

Observaţie: un calcul simplu arată că fondurile de timp disponibil ale celor două utilaje nu sunt
suficiente pentru producerea reperelor cerute:
2 × 200 + 3 × 100 + 6 × 150 = 1600 > 1200
5 × 200 + 4 × 100 + 1 × 150 = 1550 > 1000
astfel că unele repere vor fi cumpărate de pe piaţă la un preţ mai mare.

III) Identificarea criteriului de performanţă şi formalizarea lui în funcţia obiectiv

Costul Costul producerii unor Costul achiziţionării restului


= + =
total repere în cadrul firmei de repere de pe piaţă

= 25 x1 + 44 x 2 + 19 x3 + 31(200 - x1 ) + 47(100 - x 2 ) + 23(150 - x3 ) =


= 14350 - 6 x1 - 3x 2 - 4 x3 ® min
Însă, minimizarea expresiei 14350 - 6 x1 - 3 x 2 - 4 x3 este echivalentă cu maximizarea “scăzătorului”
6 x1 + 3x 2 + 4 x3 pentru că “descăzutul” este o constantă. În consecinţă vom lua ca funcţie obiectiv:

f = 6 x1 + 3x 2 + 4 x3 ® max (6)

IV) Condiţii explicite impuse variabilelor:


x1 ³ 0 , x 2 ³ 0 , x3 ³ 0 (7)

Observaţie: normal ar fi să impunem şi condiţia “ x1 , x 2 , x3 întregi” dar nu o facem deoarece s-ar complica
rezolvarea. Este posibil ca în soluţia optimă x1 , x 2 , x3 să aibe valori întregi şi dacă nu se întâmplă acest
lucru putem recurge la rotunjiri. Soluţia rezultată din rotunjire poate să nu mai fie optimă dar abaterea de
la optim este economic neglijabilă.
Reunind (1) – (7) obţinem programul liniar:

ì(max) f = 6 x1 + 3 x 2 + 4 x3
ï 2 x + 3 x + 6 x £ 1200
ï 1 2 3

ï 5 x1 + 4 x 2 + x3 £ 1000
ï
( P) í x1 £ 200
ï x2 £ 100
ï
ï x3 £ 150
ï
î x1 , x 2 , x3 ³ 0

Rezolvarea acestuia a condus la soluţia optimă:

x1* = 171 , x 2* = 0 , x3* = 143 (max) f = 1598


Interpretarea soluţiei:

-Din reperul R1, 171 bucăţi se produc în cadrul firmei, restul de 29 bucăţi se cumpără.
Cost: 25×171 + 31×29 = 4275 + 899 = 5174u.m.
- Reperul R2 se cumpără în totalitate de pe piaţă.
Cost: 47×100 = 4700u.m.
- Din reperul R3, 143 bucăţi se produc în firmă şi celelalte 7 bucăţi se cumpără:
Cost: 19×143 + 23×7 = 2717 + 161 = 2878u.m.

Costul total 5174 + 4700 + 2878 = 12752 = 14350- 1598

Exemplul 2. O bancă asigură clienţilor săi patru tipuri de credit cu următoarele dobânzi anuale:

Tip credit Dobânda anuală


1 12%
2 20%
3 20%
4 10%

Tabel 1.2
Banca dispune de 250 milioane euro şi în stabilirea cotelor pe care le va repartiza fiecărui tip de credit ea
va trebui să ţină seama de următoarele condiţii:

a) Tipul 1 trebuie să reprezinte cel puţin 55% din totalul creditelor de tipurile 1 şi 2 şi cel puţin
25% din totalul creditelor acordate (în milioane euro);
b) Tipul 2 nu trebuie să depăşească 25% din totalul creditelor acordate;
c) Dobânda medie a tuturor creditelor acordate nu trebuie să depăşească 15%.
Cum va trebui să procedeze banca pentru a-şi maximiza venitul din dobânzile la creditele acordate?

Modelul matematic

I) Identificarea mărimilor variabile. Vom nota xi º volumul creditelor de tipul i acordate, i =1,2,3,4
(în milioane euro)

II) Formalizarea criteriului de performanţă în funcţia obiectiv. Venitul băncii, din dobânzile la
creditele acordate are expresia

f = 0,14 x1 + 0,20 x 2 + 0,20 x3 + 0,10 x 4 ® max (1)

III) Formalizarea condiţiilor limitative în restricţii

- totalul creditelor este plafonat la 250 milioane euro:

x1 + x 2 + x3 + x 4 £ 250 (2)

- formalizarea condiţiei a):

x1 ³ 0,55( x1 + x 2 ) Û - 0,45 x1 + 0,55 x 2 £ 0 (3)


x1 ³ 0,25( x1 + x 2 + x3 + x 4 ) Û - 0,75 x1 + 0,25 x 2 + 0,25 x3 + 0,25 x 4 £ 0 (4)

- formalizarea condiţiei b):

x 2 £ 0,25( x1 + x 2 + x3 + x 4 ) Û - 0,25 x1 + 0,75 x 2 - 0,25 x3 - 0,25 x 4 £ 0 (5)

- formalizarea condiţiei c):

0,14 x1 + 0,20 x 2 + 0,20 x3 + 0,10 x 4


£ 0,15 Û - 0,01x1 + 0,05 x 2 + 0,05 x3 - 0,05 x 4 £ 0 (6)
x1 + x 2 + x3 + x 4

IV) Condiţii explicite impuse variabilelor:

xi ³ 0 i = 1,..,4 (eventual întregi dacă nu se admit fracţiuni de milion!) (7)

Reunind (1) – (7) şi operând simplificări evidente se obţine modelul liniar:


ì(max) f = 7 x1 + 10 x 2 + 10 x3 + 5 x 4
ï x + x + x + x £ 250
ï 1 2 3 4

ïï - 9 x1 + 11x 2 £ 0
í
ï - 3 x1 + x 2 + x3 + x 4 £ 0
ï - x1 + 5 x 2 + 5 x3 - 5 x 4 £ 0
ï
ïî x1 , x 2 , x3 ³ 0

Pentru rezolvare s-a folosit un utilitar care a produs soluţia „întreagă” redată în :

Tip credit Volum (milioane euro)


1 65
2 51
3 48
4 86
Total 250

Tabelul 1.3

Tipul 1 reprezintă 56% din totalul creditelor de tipurile 1 şi 2 şi 26% din totalul tuturor creditelor. Tipul 2
reprezintă numai 20,4% din total credite. În fine, dobânda medie la creditele acordate este de 15%. Venitul
din dobânzi al băncii se ridică la 37,5 milioane euro.

Exemplul 3. GODAC este o mică firmă specializată în comercializarea cărnii şi a produselor din carne.
Printre alte produse se oferă clienţilor carne tocată în amestec din carne slabă de vită şi carne de porc.
Un kg de carne de vită pentru tocat conţine 80% carne şi 20% grăsime şi se vinde cu 24lei/kg.
Kilogramul de carne de porc conţine 68% carne şi 32% grăsime şi se vinde cu 18 lei. În ce proporţie
vor fi amestecate carnea de vită şi carnea de porc astfel încât:
- procentul de grăsime în amestec să nu depăşească 25%;
- preţul unui kg de carne tocată în amestec să fie cât mai mic.
Se va presupune că toate costurile legate de tocare şi amestecare (omogenizare) sunt neglijabile sau au
fost deja incluse în preţurile constituenţilor.

Modelul matematic

I) Identificarea mărimilor variabile. Întrebarea din enunţ „în ce proporţie vor fi amestecate cele două
sortimente de carne astfel încât..” conduce la notaţiile:

x1 º fracţia dintr-un kilogram de amestec reprezentată de carnea de vită;


x2 º fracţia dintr-un kilogram de amestec reprezentată de carnea de porc;

II) Formalizarea condiţiilor limitative în restricţii. Din definiţia variabilelor modelului rezultă
egalitatea:
x1 + x 2 = 1 (1)
Limitarea procentului de grăsime din amestec conduce la inegalitatea:

0,20 x1 + 0,32 x 2 £ 0,25 (2)

III) Formalizarea criteriului de performanţă în funcţia obiectiv. Preţul unui kg de amestec are
expresia:
f = 24 x1 + 18 x 2 ® min (3)
IV) Condiţii explicite impuse variabilelor.
x1 ³ 0 , x 2 ³ 0 (4)
(desigur, x1 şi x2 trebuie să fie subunitare dar această limitare este asigurată prin (1) şi (4))

Eliminăm variabila x2 : x2 = 1- x1.


(2) Þ 0,20 x1 + 0,32(1 - x1 ) £ 0,25 Þ 0,12 x1 ³ 0,07 Þ x1 ³ 0,07 = 0,583
0,12
(3) Þ f = 24 x1 + 18(1 - x1 ) = 18 + 6 x1
(4) Þ x1 ³ 0 , 1 - x1 ³ 0 Þ 0 £ x1 £ 1

Programul (1) – (4) se reduce la programul într-o singură variabilă:

ì(min) f = 18 + 6 x1 Û min 6 x1
í
î0,583 £ x1 £ 1
cu soluţia x1* = 0,583 (min) f = 21,50 . Prin urmare amestecul cel mai iefin ar costa 21,50 lei/kg şi ar
contine 58,3% carne de vită şi restul carne de porc.

Exercițiul 3 (rezolvat):

O mică firmă produce bunurile alimentare G1, G2, G3 folosind trei materii prime agricole de bază R1, R2, R3.
Necesarul de resurse, în kg, pentru realizarea unui kilogram din fiecare din bunurile G1, G2, G3 sunt indicate în
tabelul 1.4.

Bunuri G1 G2 G3 Pentru ziua următoare există în stoc 45 kg din R1, 30 kg din R2 şi 20 kg din
Resurse R3.Profiturile sunt de 7, 9, 12 unităţi monetare pe kilogramul din G1, G2,
R1 2 4 5 respectiv G3. Firma livrează bunul G1 în cutii de ½ kg, bunul G2 în cutii de 1 kg
şi bunul G3 în cutii de 2 kg iar desfacerea este asigurată pentru tot ceeace se
R2 1 3 2
produce.
R3 2 1 1
Tabelul 1.4
1) Scrieţi un program liniar pentru determinarea programului de activitate al
firmei în ziua următoare având ca obiectiv maximizarea profitului.
2) Cum se modifică programul iniţial dacă din bunul G1 nu trebuie să se facă mai mult de zece cutii?
3) Cum se modifică programul iniţial dacă din bunul G1 se pot face cel mult zece cutii iar din G2 cel puţin
trei?
4) Deoarece resursele R1, R2, R3 sunt foarte perisabile firma este interesată în a le valorifica cât mai bine.
Cum se poate modela acest deziderat?

1) Modelul matematic

I) Identificarea mărimilor variabile. Fără îndoială, mărimile variabile ale acestei situaţii sunt “ce se va produce”
în ziua următoare din G1,G2,G3 cu resursele existente în stoc. Consumurile de resurse sunt calculate la kg de produs
finit însă forma finală de prezentare a bunurilor este “în cutii”, astfel că în evaluarea producţiei ce urmeză a fi
realizate bunurile vor fi măsurate în cutii. În consecinţă, variabilele modelului vor fi:

xi = numărul de cutii conţinând bunul Gi ce urmează a fi produse din resursele existente.


II) Identificarea condiţiilor limitative şi formalizarea lor în restricţii. Având în vedere notaţiile introduse,
1
bunurile G1,G2,G3 vor fi produse atunci în cantităţile (în kg) x1 , x 2 respectiv 2 x3 kg. Încadrarea consumurilor
2
de resurse în stocurile disponibile conduce la restricţiile:
1
2 × x1 + 4 × x 2 + 5 × 2 x3 £ 45 (1)
2
1
1 × x1 + 3 × x 2 + 2 × 2 x3 £ 30 (2)
2
1
2 × x1 + 1 × x 2 + 1 × 2 x3 £ 20 (3)
2

III) Identificarea criteriului de performanţă şi formalizarea lui în funcţia obiectiv. Se urmăreşte maximizarea
1
profitului a cărui expresie este 7 × x1 + 9 × x 2 + 12 × 2 x3 u.m.
2

IV) Condiţii explicite impuse variabilelor modelului. Condiţiile de nenegativitate sunt evidente:

x1 ³ 0 , x 2 ³ 0 , x3 ³ 0

la care se adaugă condiţia


x1 , x 2 , x3 întregi

deoarece produsele finale sunt măsurate în unităţi indivizibile (nu se poate produce o “fracţie” dintr-o cutie…) În
final se obţine programul liniar:

ì(max) f = 3,5 x1 + 9 x 2 + 24 x3
ï x + 4 x + 10 x £ 45
ïï 1 2 3

( P1 ) í0,5 x1 + 3 x 2 + 4 x3 £ 30
ï x + x + 2 x £ 20
ï 1 2 3

ïî x1 , x 2 , x3 ³ 0 (intregi)

2) La modelul (P1) se adaugă restricţia x1 £ 10 obţinându-se programul (P2)


3) La modelul (P1) se adaugă restricţiile x1 £ 10, x 2 ³ 3 obţinându-se programul (P3)
4) În notaţiile modelului (P1) cantităţile de resurse neconsumate au expresiile:

resursa R1: 45 - ( x1 + 4 x 2 + 10 x3 ) ³ 0
resursa R2: 30 - (0,5 x1 + 3 x 2 + 4 x3 ) ³ 0
resursa R3: 20 - ( x1 + x 2 + 2 x3 ) ³ 0

Valorificarea celor trei resurse este cu atât mai bună cu cât diferenţele de mai sus sunt mai mici. Vom realiza acest
lucru minimizând cea mai mare dintre diferenţe:

ì (min) y
ïunde
ï
í
ï y = max{45 - ( x1 + 4 x 2 + 10 x3 ),30 - (0,5 x1 + 3 x 2 + 4 x3 ),20 - ( x1 + x 2 + 2 x3 )}
ïî si x1 , x 2 , x3 satisfac toate relatiile modelului (P)
Pentru a transforma noul model într-un program liniar uzual înlocuim relaţia de definiţie a variabilei y cu
inegalităţile:

45 - ( x1 + 4 x 2 + 10 x3 ) £ y
30 - (0,5 x1 + 3x 2 + 4 x3 ) £ y
20 - ( x1 + x 2 + 2 x3 ) £ y

Tot din relaţia de definiţie a lui y rezultă că dacă x1 , x 2 , x3 sunt întregi atunci y este sau un număr întreg sau un
număr cu partea fracţionară 0,5; în consecinţă, numărul z = 2y va fi cu siguranţă întreg. Înlocuind mai sus y = z
2
obţinem programul liniar:

ì(min)0,5 z
ï x + 4 x + 10 x £ 45
ï 1 2 3

ï0,5 x1 + 3 x 2 + 4 x3 £ 30
ï
ï x1 + x 2 + 2 x3 £ 20
( P4 ) í
ï x1 + 4 x 2 + 10 x3 + 0,5 z ³ 45
ï0,5 x1 + 3 x 2 + 4 x3 + 0,5 z ³ 30
ï
ï x1 + x 2 + 2 x3 + 0,5 z ³ 20
ï x , x , x , z ³ 0 (intregi)
î 1 2 3

Analiza comparativă a soluţiilor optime. În tabelul 1.5 sunt prezentate soluţiile optime întregi ale
modelelor P1 – P4.
Cel mai mare profit care s-ar obţine din resursele date este de 121 u.m.; această valoare poate fi luată ca
punct de referinţă. Soluţia corespunzătoare are unele inconveniente: nu produce bunul G2 şi aproape o treime din
resursa R2 nu se consumă. Încercarea de diversificare a producţiei – vezi soluţiile modelelor (P2) şi (P3) - reduce
profitul cu câteva procente şi duce la creşterea cantităţilor de resurse neutilizate. Ultima “propunere” de plan de
activitate asigură o utilizare aproape totală a resurselor disponibile iar profitul aferent este foarte aproape de nivelul
maxim posibil. Totuşi ea nu prevede producerea bunului G3 şi acest lucru s-ar putea să conteze în decizia finală,
decizie care va trebui să ţină seama şi de cererea pentru acest bun.

Programul optim de activitate


Resurse consumate
Cantitatea de produs – în cutii şi kg –
(în kg şi % din stocurile disponibile) Profit
Model din:
G1 G2 G3 R1 R2 R3
Cutii kg Cutii kg Cutii kg kg % kg % kg % u.m. %
P1 14 7 - - 3 6 44 97,8 19 63,3 20 100 121 100
P2 10 5 1 1 3 6 44 97,8 20 66,7 17 85 116 95,9
P3 9 4,5 4 4 2 4 45 100 24,5 81,7 17 80 115,5 85
P4 12 6 8 8 - - 44 97,8 30 100 20 100 114 94,2

Tabelul 1.5

Întrebări de control și teme de dezbatere

1. Ce este o problemă de programare liniară și de ce este important să studiem acest tip de


probleme?
2. Care sunt etapele necesare atunci când dorim să scriem un model matematic?
3. Ce este problema fimei? Dați exemple.
4. Ce este problema dietei? Dați exemple.
5. Considerați cazul unei brutării ce produce mai multe tipuri de produse de panificație
utilizând câteva tipuri de resurse disponibile în cantități limitate. Scrieți un model
matematic și rezolvați-l utilizând un software specializat.
6. Explicați cum construim problema duală și de ce este important să analizăm cuplurile
de probleme în dualitate.

4.3.4. Bibliografie obligatorie

1. Ciobanu, Gh, Nica, V, Mustață Fl., Mărăcine, V., Cercetări Operaționale cu aplicații în
economie. Teoria grafurilor și Analiza drumului critic, Editura MATRIX ROM, București,
1996;
2. http://www.asecib.ase.ro/cursuri_online.htm, cursurile numărul: 1- Bazele Cercetării
Operaționale, București, Romania, Eugen Țigănescu, Dorin Mitruț, 1 bis- ID Cercetări
Operaționale, Vasile Nica, 9- Cercetări Operaționale I, Vasile Nica, Floare Mustață, Gheorghe
Ciobanu, Virginia Mărăcine.

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