Sunteți pe pagina 1din 133

MELNIC LUCIA ZĂGAN REMUS

CHIRCOR MIHAEL

CERCETĂRI OPERAŢIONALE
FUNDAMENTAREA DECIZIILOR ÎN
MANAGEMENTUL SISTEMELOR DE PRODUCŢIE

2004
CUPRINS

1. INTRODUCERE
1.1. Scurt istoric al evoluţiei ştiinţei „Cercetare Operaţională” 3
1.2. Teoria Deciziei şi Cercetare Operaţională 4
1.3. Modelarea matematică în Cercetarea Operaţională 5

2. PROGRAMARE LINIARĂ 7
2.1. Probleme de programare liniară 7
2.1.1. Formularea problemei de programare liniară 7
2.1.2. Forme ale problemei de programare liniară 9
2.1.3. Modelul matematic al problemei de programare liniară 12
2.2. Consideraţii generale privind problemele de programare liniară 16
2.2.1. Soluţii şi fundamente ale problemei de programare liniară 16
2.2.2. Baze ale problemei de programare liniară 20
2.2.3. Interpretarea geometrică a problemei de programare liniară 22
2.3. Metoda Simplex 26
2.3.1. Fundamente teoretice în aplicarea metodei Simplex 26
2.3.2. Algoritmul simplex primal 28
2.3.3. Metode de determinare a unei soluţii de bază iniţiale 35
2.3.4. Interpretarea economică a algoritmului simplex primal 39
2.4. Dualitatea în programarea liniară 41
2.4.1. Problema duală. Fundamente teoretice 41
2.4.2. Algoritmul simplex dual 45
2.4.3. Interpretarea economică a dualităţii 49

3. PROGRAMAREA LINIARĂ DE TIP TRANSPORT 53


3.1. Formularea unei probleme de transport 53
3.2. Exemple de probleme de tip transport 55
3.3. Determinarea unei soluţii de baza iniţiale a problemei de transport 57
3.4. Metoda de determinare a soluţiei optime pentru probleme de transport. 59
Metoda potenţialelor.

2
Cercetări operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

4. ELEMENTE DE TEORIA GRAFURILOR


4.1. Fundamente în teoria grafurilor 64
4.1.1. Noţiunea de graf 64
4.1.2. Orientare şi neorientare în graf 64
4.1.3. Drumuri şi circuite în graf 69
4.1.4. Lanţuri şi circuite în graf 70
4.2. Matrici ataşate grafurilor 71
4.2.1. Matricea arcelor (conexiunilor directe) 71
4.2.2. Matricea drumurilor (conexiunilor totale) 73
4.2.3. Descompunerea grafului în componente tari conexe 75
4.3. Drumuri hamiltoniene în graf 78
4.4. Drumuri de valoare optimă în graf 87
4.5. Cuplaje. Probleme de repartiţie (afectare) 93

5. TEHNICA DIAGRAMELOR DE TIP REŢEA 97


5.1. Generalităţi privind modelarea prin reţele 97
5.2. Metoda drumului critic (Critical Path Method - C.P.M.) 99
5.3. Metoda potenţialelor (Metro Potential Method - M.P.M.) 106
5.4. Metoda PERT (Program Evaluation and Review Technique) 108
5.5. Tehnica GERT (Graphical Evaluation and Review Technique) 111

6. ELEMENTE DE TEORIA DECIZIEI 114


6.1. Procesul şi sistemul decizional al întreprinderii 114
6.2. Utilităţi decizionale 117
6.3. Optimizarea deciziilor în condiţii de certitudine 121
6.3.1. Metoda utilităţilor globale 121
6.3.2. Metoda Electre 121
6.3.3. Metoda Ledear-ului 122
6.4. Optimizarea deciziilor în condiţii de risc 123

BIBLIOGRAFIE 131

3
4
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

CAPITOLUL 1
INTRODUCERE
1.1. Scurt istoric al evoluţiei ştiinţei „Cercetare Operaţională”

Cercetarea operaţională ca ştiinţă a apărut către sfârşitul primei jumătăţi a secolului


nostru şi s-a dezvoltat spectaculos în special în ultimii ani, în strânsă legătură cu ştiinţa
organizării şi conducerii, teoria sistemelor, cibernetica, informatica şi analiza sistemelor.
Şcoala clasică are marele merit al abordării unui domeniu nou, considerându-se
pionieră a organizării ştiinţifice (F.W. Taylor-1900, H.L.Gantt-1901, A.Fayol-1915) şi aceasta
pune pentru prima dată problema abordării raţionale a mecanismului funcţionării unei
întreprinderi.
În perioada următoare se lărgeşte considerabil problematica organizării şi conducerii,
iar aspectele informaţional-decizionale (până atunci ignorate) şi aspectele relaţiilor umane dau
un alt sens abordării mecanismului funcţionării întreprinderii.
Cercetare operaţională exista înaintea declanşării celui de al doilea război mondial prin
lucrările elaborate de Erlang (1917) – firele de aşteptare, Harrris (1915) – gestiunea ştiinţifică
a stocurilor, Vorra (1931) – reînnoirea echipamentelor.
Utilizarea cercetării operaţionale în practică era dificil de realizat deoarece din punct
de vedere intelectual exista o anumită aversiune fată de modele şi de caracterul descriptiv al
ştiinţei, iar din punct de vedere material datorită complexităţii mici a organizaţilor şi talia
relativ modestă a întreprinderilor din aceea perioadă, investiţiile în mijloace de calcul eficace,
respectiv a ordinatoarelor nu era justificată.
În ceea ce priveşte procesele de decizie, pentru prima oară se pune în mod riguros şi
pe scară largă problema găsirii unor soluţii optime sau apropiate de cele optime, în marea
diversitate de probleme organizatorice şi de conducere.
Prima aplicaţie a cercetării operaţionale moderne la scară largă o constituie aplicarea
regulilor definite de Sir Blackett în timpul celui de al doilea război mondial cu deosebit succes
în Anglia şi care a debutat în 1937.
Termenul de Cercetare Operaţională (Operational Research)a fost utilizat pentru prima
dată în 1939, fiind legat de contribuţia oamenilor de ştiinţă la utilizarea eficientă a
radiolocatoarelor în sistemul apărării antiaeriene al Angliei.
În S.U.A. pătrunderea ştiinţei cercetării operaţionale (Management Science) în
dezvoltarea problemelor de conducere a industriei se datorează celei de-a doua revoluţii
industriale şi posibilităţilor de comercializare a calculatoarelor electronice.
În prezent, mai mult de jumătate din firmele americane au sau folosesc specialişti în
cercetarea operaţională.
În 1953 s-a format Societatea Americană de Cercetări Operaţionale, iar în 1957 s-a
constituit Federaţia Internaţională a Societăţilor de Cercetări Operaţionale. Au apărut reviste
şi s-au introdus cursuri şi seminarii de cercetare operaţională atât în S.U.A. cât şi în alte ţări
ale lumii.
În practică, întreprinderea poate fi privită ca un sistem ale cărui elemente componente
(oameni, capital, materiale, informaţie) sunt intercorelate prin fluxuri materiale,
informaţionale şi energetice ce au un comportament orientat spre atingerea unor obiective
precise.
Cercetările operaţionale au consacrat în domeniul optimizării deciziei, un mod de
abordare ştiinţific asupra problemelor ce intervin în cadrul unei întreprinderi industriale şi
totodată nu se concepe conducerea şi gestionarea întreprinderii, fără a face apel la metodele
cercetării operaţionale, împreună cu celelalte tehnici moderne ca informatica, cibernetica,
teoria sistemelor, statistica.
Obiectul cercetării operaţionale îl constituie sistemele şi ele îşi propun elaborarea unor
metode de analiza a operaţiilor îndreptate spre un anumit scop, precum şi estimarea obiectivă

3
Introducere

a deciziilor ce pot fi adoptate.


Cercetarea operaţională este un ansamblu de metode care îşi propune, în vederea
pregătirii deciziilor, să determine în mod raţional soluţiile cele mai eficiente.

1.2. Teoria Deciziei şi Cercetare Operaţională

Creşterea productivităţii şi obţinerea rentabilităţii întreprinderii industriale pe termen


lung, într-un mediu dinamic şi într-o continuă schimbare, depinde, într-o mare măsură de
capacitatea managementului întreprinderii de a anticipa schimbarea şi de a adapta decizia
noilor situaţii într-un mod planificat.
Accelerarea evoluţiei tehnologice în industrie, influenţează şi comportamentul
consumatorilor, care se va orienta spre noi concepte şi produse, mai inovate, mai atractive şi
adaptate modului şi ritmului lor de viaţă.
Utilizarea raţională a celor patru tipuri de resurse conduc la flexibilitatea organizaţiei
şi astfel activitatea poate fi planificată în prognoze pentru a releva anumite aspecte
semnificative ale viitorului.
În aceste condiţii, managerul trebuie să adopte decizii, fundamentate ştiinţific şi
performant.
Decizia reprezintă soluţia aleasă, din mai multe variante posibile cu scopul atingerii
unui obiectiv prestabilit în condiţii de eficienţă maximă. Este actul deliberat al unui individ
sau al unui grup de oameni investiţi cu puterea de a alege varianta de concepere/realizare a
unui scop şi de a declanşa acţiuni.
Procesul de decizie porneşte de la un anumit rezultat care trebuie să fie obţinut, iar
decidentul trebuie ca prin prelucrarea diferitelor informaţii să aleagă cea mai bună variantă
pentru atingerea acestuia (fig. 1.1).

Rezultat Obiective Variante Criterii DECIZIE Actiune Rezultat


dorit dorit

Control

Fig.1.1.

Cercetare operaţională alături de Teoria deciziei a absorbit noile dezvoltări în


domeniul activităţii de management industrial şi al sistemelor economice.
Necesitatea modelării în managementul producţiei industriale rezultă din faptul că
efectuarea unor experimente asupra organizaţiilor este foarte greu de realizat, dar experimente
de acest fel (de exemplu modificarea parametrilor funcţionali) se pot face uşor în condiţiile
folosirii unui model.
Utilizarea modelelor este impusă şi de complexitatea sistemelor industriale, care
necesită existenţa unei activităţi desfăşurată astfel încât deciziile să fie în concordanţă cu
evoluţia eficientă a acestora.
Operaţia de investigarea a sistemelor reale prin reprezentări convenţionale se numeşte
modelare. Ea reprezintă mulţimea activităţilor care se extind de la simpla prezentare a
problemei la proceduri abstracte şi raţionale. Ele produc în final premisele cantitative formale
ale dinamicii procesului.
Modelul este o reprezentare izomorfa a realităţii ce oferă o imagine intuitivă dar
riguroasă în sensul structurii logice a fenomenului studiat.
Modelarea ca metodă de fundamentare a deciziilor în activitatea economică oferă
următoarele avantaje:
- reprezintă riguros fenomenele şi legăturile lor la nivelul sistemului;
- permite verificarea prin analogie a teoriei cu practica;

4
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

- înlesneşte descoperirea unor corelaţii între fenomene şi predeterminarea performanţelor


firmei, necesare pentru adoptarea unor decizii raţionale;
- reflectă teorii ale proceselor cuantificabile şi necuantificabile;
- urmăreşte obţinerea unor soluţii optime.
Modelarea utilizează un suport material fizic (de exemplu simulatoarele), o
reprezentare grafică (de exemplu un grafic reţea), un model abstractizat sub forma unui model
matematic. Din impactul între modelele fizice cu dispozitive logice de calcul şi cele
matematice au rezultat modelele de simulare.
În managementul producţiei industrial se aplică toate aceste tipuri de modele, de
exemplu: modelele fizice se pot folosi pentru studiul privind planul general al firmei,
modelele grafice la analiza relaţiilor om – maşină, modelele matematice pentru alocarea
resurselor sau analiza proceselor aleatoare.
Corelaţia teorie-model-realitate reprezintă un aspect logic - privind corespondenţa
dintre teorie şi model – şi un aspect gnoseologic – urmărind corespondenţa dintre model şi
realitate. Modelul intervine între teorie şi obiectul real şi trebuie testat în raport cu realitatea
exprimată ca obiect.
În funcţie de modul în care se ajunge la soluţia optimă există două direcţii principale
de lucru:
• atingerea obiectivului prin deducerea soluţiei optime;
• atingerea aceluiaşi obiectiv prin practici oferite de teoria deciziei
Deducerea soluţiei se caracterizează prin certitudinea rezultatului obţinut pe baza unor
informaţii obiective şi complete. Dificultatea constă în formularea problemei într-un limbaj
matematic adecvat şi în volumul mare al calculelor.
Metoda a doua solicită decidentului să estimeze consecinţele posibile ale acţiunilor
sale pe baza unor informaţii obiective, dar incomplete, introducându-se în rezolvarea
problemei elemente subiective.
Prima direcţie a condus la dezvoltarea unui ansamblu de discipline în cadrul
CERCETĂRII OPERAŢIONALE.
A doua direcţie de lucru a condus la constituirea unei discipline aparte – TEORIA
DECIZIEI.
Între cele două direcţii există raporturi strânse, biunivoce, ceea ce a condus la apariţia unei
ştiinţe multidisciplinare: TEORIA DECIZIEI şi CERCETARE OPERAŢIONALĂ
Teoria deciziei este legată intrinsec de cercetarea operaţională care poate fi considerată
„pregătirea ştiinţifică a deciziilor”.

1.3. Modelarea matematică în cercetarea operaţională

Condiţiile în care se desfăşoară activitatea analizată din cadrul întreprinderii, conduc la


un sistem de relaţii tip ecuaţii şi inecuaţii ce cuprind variabilele problemei şi coeficienţii
tehnico – economici ce o caracterizează. Aceste relaţii reprezintă – restricţiile problemei
matematice.
Obiectivul studiului îl constituie optimizarea unui anumit rezultat dependent de
aceleaşi variabile ce figurează în restricţii. Obiectivul este sub forma unei funcţii ale cărei
valori maxime sau minime le căutăm şi care se numeşte funcţia obiectiv (scop, eficienţă).
Restricţiile problemei şi funcţia obiectiv formează modelul matematic al problemei.
Modelele matematice se preferă pentru capacitatea lor de condensare riguroasă a
esenţialului. Modelele cercetării operaţionale se caracterizează prin căutarea unei soluţii
optime sau apropiate de optim pentru operaţia studiată.
Modelele cercetării operaţionale se bazează pe o mare diversitate de procedee
matematice şi au aplicaţii la nivel macro, dar în special la nivel microeconomic. Ele reprezintă
principalul instrument pentru optimizarea deciziilor în analiza de sistem.

5
Introducere

Decizia obţinută cu ajutorul modelului nu poate fi recomandată nemijlocit pentru


realizare, deoarece modelul face abstracţie de o serie de aspecte ale fenomenului studiat.
Principalele faze ale elaborării unui model matematic într-o problema de organizare –
conducere sunt următoarele:
• Prima fază a modelării este cunoaşterea realităţii în organismul studiat, în scopul
îmbunătăţirii mecanismului informaţional decizional şi descrierea logicii proceselor
decizionale, această fază având un caracter pregătitor;
• A doua fază a modelării constituirea propriu - zisă a modelului–acesta cu ajutorul
unui instrument clasic de modelare.
Elaborarea unui model matematic realmente original reclamă, pe lângă profunda
cunoaştere a realităţii care urmează a fi modelată, o foarte solidă cultură matematică,
imaginaţie şi talent.
Modelelor clasice ale cercetării operaţionale, sunt diverse funcţie de structura
matematica şi logică, şi variază de la modele simple cum sunt cele ale programării liniare, la
modele combinatorice, în probleme de teoria grafelor, analiza drumului critic şi programarea
operativă a producţiei şi până la modele complexe cum sunt cele ale utilităţii sau deciziilor de
grup.
• A treia fază a modelării este confruntarea modelului cu realitatea prin implementarea
rezultatului obţinut şi eventual experimentarea sa.
Există o gamă largă de probleme tehnico – economice care se pretează a fi modelate
matematic cu ajutorul procedeelor cercetării operaţionale, dintre care putem menţiona:
• programarea operativă a producţiei;
• repartizarea raţională a resurselor;
• gestiunea stocurilor;
• eşalonarea în timp a activităţilor unei investiţii.
In contextul celor arătate mai sus trebuie subliniată importanţa metodelor cercetării
operaţionale în fundamentarea şi elaborarea deciziilor.
Sarcina cercetării operaţionale este de a pregăti decizia şi nu de a o adopta .
Conducerea executivă care va lua decizia finală trebuie să ţină seama pe lângă
recomandările cercetării operaţionale şi de o serie de factori ce nu pot fi formalizaţi.
Una din principalele caracteristici ale tuturor metodelor cercetării operaţionale este
faptul că problemele cercetării operaţionale sunt privite, din perspectivă pur teoretică, ca
probleme de matematică pură.
În cele ce urmează vom privi metodele cercetării operaţionale strâns legate de
problemele practice.
În prezent nu se mai poate concepe conducerea unei activităţi tehnico-economice
importante fără a face apel la metodele cercetării operaţionale, bineînţeles împreună cu
celelalte tehnici moderne cum ar fi informatica, analiza de sistem ş.a..

6
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

CAPITOLUL 2
PROGRAMAREA LINIARĂ
2.1. Probleme de programare liniară

Orice activitate industrială se desfăşoară în condiţiile existenţei unor resurse limitate


de materii prime şi materiale, de resurse umane, iar folosirea eficientă, a acestora, conduce la
rezultate optime atât din punct de vedere tehnic cât şi economic.
Modelele de programare matematică şi mai ales modelele de programare liniară,
constituie o clasă specială, atât în teorie cât şi în practica industrială.
Pentru decizii referitoare la structura optimă de producţie, la cantitatea ce urmează a se
produce, la sortimente, abordarea acestora cu modele ale programării matematice conduce la
rezultate optime.
Programarea matematică reprezintă un instrument deosebit de util fundamentării
deciziilor în practica industrială.

2.1.1. Formularea problemei de programare liniară

Principala problemă cu caracter decizional, cu care se confruntă producţia o constituie


determinarea structurii optime de producţie pe termen mediu şi scurt printr-o folosire eficientă
a resurselor.
Condiţiile în care se desfăşoară activitatea de producţie analizată, conduc la un sistem
de relaţii tip ecuaţii şi inecuaţii ce cuprind variabilele problemei şi coeficienţii tehnico –
economici ce o caracterizează .
Modelul matematic de programare liniară se constituie din mulţimea de activităţi
(operaţii){A1, A2, ..Aj,.. An}, (j=1,...,n) pentru producerea unei unităţi din produsul Pj (ca
rezultat al activităţii Aj), mulţimea de resurse disponibile materiale, financiare, de capacităţi
de producţie {b1, b2, ... bm}, (i = 1,...,m) precum şi din relaţiile tehnico-economice dintre
acestea.
În practica industrială, legătura dintre activităţi (operaţii) şi resurse este determinată de
procesul tehnologic de fabricaţie corespunzător realizării produsului.
Elementele aij, (i = 1,...,m; j = 1,...,n) se numesc coeficienţi tehnico-economici, aceştia
fiind constanţi într-un interval de timp determinat şi arată ce cantitate din resursa bi (i =
1,...,m) se consumă pentru producerea unei unităţi din produsul Pj.
Toate aceste legături (restricţii) definite de vectorii coloană a(j) se pot organiza într-o
matrice A cu m linii şi n coloane (2.1); fiecare linie se referă la o resursă bi şi fiecare coloană
se referă la o activitate aj.

§ a11 .........a1n ·
¨ ¸
A ∈ Mm.n; A= ( ai,j ), i = 1,..,m, j= 1,...,n; A = ¨ ¸ (2.1)
¨ a ..........a ¸
© m1 mn ¹

§ b1 ·
¨ ¸
m
¨ b2 ¸
b ∈R ,b= ¨ ¸ (2.2)
.
¨ ¸
¨b ¸
© m¹

Notând cu xj (j = 1,...,n) (2.3) programul activităţii aj într-o perioadă dată şi cu bi


cantităţile disponibile din resursele bi, se pot scrie matematic restricţiile tehnico-economice.
Aceste restricţii reprezintă – restricţiile problemei de programare liniară (2.4).

7
Programare liniară

§ x1 ·
¨ ¸
¨x ¸
x∈ R ,x= ¨ 2¸
n
(2.3)
.
¨ ¸
¨x ¸
© n¹

­ a11 x1 + a12 x2 + ... + a1n x n ≤ b1


° a 21 x1 + a 22 x 2 + ... + a 2n x n ≤ b2
°
® (2.4)
° 
°¯ a m1 x1 + a m2 x 2 + ... + a mn x n ≤ bm

Fiecare restricţie (inecuaţie de tipul „ ≤ ”) cuprinde afirmaţia prin care cantitatea


consumată dintr-o resursă nu poate depăşi volumul disponibil din resursa respectivă.
Obiectivul studiului îl constituie optimizarea unui anumit rezultat dependent de
aceleaşi variabile ce figurează în restricţii.
Obiectivul este sub forma unei funcţii ale cărei valori maxime sau minime le căutam şi
care se numeşte funcţia obiectiv (scop, eficienţă).
În practica industrială, ea reprezintă criteriul de performanţă urmărit: maximizarea
beneficiului, maximizarea producţiei marfă, minimizarea costului producţiei, maximizarea
gradului de încărcare al utilajelor sau minimizarea timpului de staţionare al acestora,
maximizarea veniturilor etc.
Variaţia funcţiei obiectiv arată evoluţia volumului activităţilor, prin intermediul
coeficienţilor c j , ce pot fi costuri unitare în cazul problemelor de minim, sau profituri unitare
pentru probleme de maxim (2.5).

§ c1 ·
¨ ¸
¨ c2 ¸
cj ∈R, c ∈ Rn c = ¨ ¸ ; c T = (c1 c 2 ...c j ...c n ) (2.5)
.
¨ ¸
¨c ¸
© n¹

Decizia cu scopul unei eficienţe maxime presupune minimizarea efortului şi


maximizarea rezultatului,
Conceptul de optim se defineşte, în acest caz, ca un program (soluţie) x∈ Rn care
minimizează sau maximizează o funcţie obiectiv şi, în acelaşi timp, satisface toate restricţiile
tehnico-economice.
Presupunând că fiecare coeficient .cj măsoară eficienţa unei unităţi din rezultatul
activităţii Aj, atunci se poate introduce funcţia obiectiv liniară (2.6) :

z = c1⋅x1 + c2⋅x2 + ... + cn⋅xn (2.6)

Sintetizând toate datele de mai sus, obţinem următorul model (2.7, 2.8, 2.9)de
programare liniară.
Relaţiile (2.7), (2.8) şi (2.9) constituie împreună modelul matematic al unei probleme
de programare liniară, având fiecare un rol specific:

1. relaţia (2.7), denumită funcţia obiectiv a problemei, evaluează eficienţa/performanţa


fiecărei soluţii (program) x;

8
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

n (2.7)
min(max) z = ¦ c j x j
x j =1
­n
° ¦ aij ⋅ x j ≤ bi 1≤ i ≤ k
° j n=1 (2.8)
°
® ¦ aij ⋅ x j ≥ bi k +1≤ i ≤ l
° j =1
° xj ≥ 0 1≤ j ≤ n (2.9)
°¯

n
2. relaţiile (2.8) de tipul ¦ aij ⋅ x j ≤ bi reprezintă restricţii ce corelează volumul consumului
j =1
activităţilor cu cel al disponibilului pentru fiecare resursă; iar restricţiile de tipul
n
¦ aij ⋅ x j ≥ bi impun un consum peste limitele minimale, sunt restricţii tehnico-economice
j =1
de tip calitativ;
3. relaţia (2.9) xj ≥ 0 j = 1,...,n, numită condiţia de nenegativitate a variabilelor, asigură
obţinerea unei soluţii realizabile în practica industrială.
Decizia obţinută cu ajutorul modelului nu poate fi recomandată nemijlocit pentru
realizare, deoarece modelul face abstracţie de o serie de aspecte ale fenomenului studiat, cele
ce au la bază o serie de factori ce nu pot fi formalizaţi.
În practica industrială programarea liniară oferă soluţii care pot motiva ştiinţific luarea
unor decizii de natură strategică, tactică sau a unor decizii cu conţinut tehnico – organizatoric.

2.1.2. Forme ale problemei de programare liniară

O problemă de programare liniară este, un caz particular al problemelor de programare


matematică şi, ţinând cont de forma oricărei funcţii liniare, se poate defini forma generală a
problemei de programare liniară.
Funcţia liniară (2.10), notată cu z reprezintă funcţia obiectiv a problemei.
Relaţiile (2.11) reprezintă sistemul de restricţii ale problemei, iar membrul stâng al
fiecărei relaţii aste o funcţie liniară în variabilele x1, x2,…,xn, la fel ca şi funcţia obiectiv.
Problema de programare liniară constă în optimizarea unei funcţii liniare cu restricţii
liniare.

• Forma generală a problemei de programare liniară

­min(max) z = c1 x1 + c 2 x 2 + ... + c n x n (2.10)


° a x + a x + ...a x ≤ (≥ )(= )b
°° 11 1 12 2 1n n 1

® a 21 x1 + a 22 x 2 + ...a 2 x n ≤ (≥ )(= )b2


° ...................................................... (2.11)
°
°¯ a m1 x1 + a m 2 x 2 + ...a mn x n ≤ (≥ )(= )bm

unde: c j ∈ R ( j = 1, n), aij ∈ R (i = 1, m, j = 1, n), bi ∈ R (i = 1, m)


Din analiza mai multor probleme de programare liniara deducem că într-o astfel de
problema pot apare restricţii scrise sub forma de inegalităţi sau egalităţi, iar criteriul de
optimizare ales impune în unele cazuri maximizarea iar în alte cazuri minimizarea funcţiei
obiectiv.

9
Programare liniară

Rezolvarea problemei de programare liniară presupune determinarea valorilor


variabilelor xi, care satisfac restricţiile şi optimizează funcţia obiectiv a problemei.

• Forma standard a problemei de programare liniară

O problema de programare liniară este dată sub formă standard dacă toate restricţiile
sale sunt date sub formă de ecuaţii (egalităţi) şi tuturor variabilelor li se impun condiţii de
nenegativitate.
Problema de programare liniară dată în formă standard se scrie în mod explicit (2.12):

­ n
° max(min) z = ¦ c j x i
° j =1
° n
® ¦ a ij x j = b i 1≤ i≤ m (2.12)
° j = 1
° xj ≥ 0 1≤ j ≤ n
°
¯

Problema de programare liniară în formă standard poate fi scrisă şi sub formă


matricială (2.13) :

­min(max)c T x ­ c, x ∈ R n
° °
® Ax = b , unde ® A ∈ M ( R ) m ,n (2.13)
° x≥0 ° b ∈ Rm
¯ ¯

unde cT reprezintă componentele matricei c transpusă.


Sistemul de restricţii liniare ( Ax=b ) poate fi un sistem compatibil, compatibil unic
determinat sau nedeterminat de m ecuaţii şi n necunoscute. Pentru ca problema de optimizare
să aibă sens, numărul de ecuaţii trebuie să fie mai mic decât numărul de necunoscute
(m<n)(sistem compatibil nedeterminat).

• Forma canonică a problemei de programare liniară

O restricţie a unei probleme de programare liniară se numeşte concordantă


(neconcordantă) dacă pentru o inegalitate de tip “ ≥" (" ≤") funcţia obiectiv este minimizată sau
respectiv pentru o inegalitate de tip " ≤" (" ≥") funcţia obiectiv este maximizată .
O problemă de programare liniară este data sub formă canonică dacă toate restricţiile
sale sunt concordante şi toate variabilele sunt supuse condiţiei de nenegativitate.
Problema de programare liniară dată în formă canonică se scrie în mod explicit (2.14):

­ n
° min(max) z = ¦ c j x i
° j =1
°° n
® ¦ a ij x j ≥ ( ≤ ) b i 1≤ i ≤ m (2.14)
° j =1
° xj ≥ 0 1≤ j ≤ n
°
°¯
Problema de programare liniară în formă canonică poate fi scrisă şi sub formă
matricială (2.15) :

10
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

­min(max)c T x ­C , x ∈ R n
° °
® Ax ≥ (≤)b unde ® A ∈ M m ,n (2.15)
° x≥0 ° b ∈ Rm
¯ ¯

Orice problemă de programare liniară în formă generală poate fi adusă la forma


standard sau canonică cu ajutorul unor transformări elementare efectuate asupra operatorului
aplicat funcţiei obiectiv restricţiilor şi variabilelor:

a) o problemă de minimizare în formă matricială se poate transforma într-o problemă de


maximizare şi invers, schimbând semnul coeficienţilor din funcţia obiectiv, astfel:

max c T x = − min(−c) T x ; min c T x = − max(−c) T x (2.16)

b) o variabilă x arbitrară (variabilă căreia nu i se impune restricţie de semn) se poate înlocui


cu două variabile nenegative x1, x 2 , prin relaţia :

x = x1 − x 2 , unde x1 , x 2 ≥ 0 (2.17)

c) o variabilă x supusă condiţiei de nepozitivitate ( x ≤ 0 ) se transformă într-o variabilă


nenegativă prin substituţia

x1 = − x, unde x1 ≥ 0 (2.18)

d) Restricţiile de tip inecuaţie se transformă în restricţii de tip ecuaţii ţinând cont de


următoarele :

­a T x ≥ b ­a T x − y = b ­a T x ≤ b ­a T x + y = b
® ⇔ ® şi ® ⇔ ® (2.19)
¯ x≥0 ¯ x, y ≥ 0 ¯ x≥0 ¯ x, y ≥ 0
unde y se numeşte variabilă ecart.
Variabilele ecart nu apar în funcţia obiectiv sau astfel spus apar în funcţia obiectiv dar
cu coeficienţi nuli:

e e
c j = 0 (unde c j = coeficienţi ai variabilelor ecart).

e) sensul unei inegalităţi se schimbă prin înmulţirea cu “–1“.

În aplicaţiile practice apar frecvent situaţii în care modelul conţine simultan restricţii
de toate tipurile (concordante, neconcordante, egalităţi), problema fiind dată în formă
generală, iar rezolvarea ei poate fi abordată fără a restrânge generalitate.

Exemplul 2.1

Să se scrie formele echivalente ale problemei de programare liniară:

Problema dată este în forma generală. Pe baza transformărilor echivalente vom


construi formele echivalente ale problemei iniţiale.
Deoarece variabila x3 nu are restricţii de semn, o vom înlocui, cu diferenţa a două variabile

11
Programare liniară

­max(3 x1 − x 2 + 2 x3 )
°
°3 x1 − x 2 = 4 , (1)
°° x1 − 5 x 2 + 2 x3 ≥ −3, ( 2)
®
°− x1 + 4 x3 ≥ 2, ( 3)
° 2 x1 + 3 x 2 − 2 x 3 ≤ 0 , (4 )
°
°¯ x1 , x 2 ≥ 0, x3 , oarecare

pozitive: x3 = x4 – x5. Pentru ca problema să aibă forma standard, toate restricţiile trebuie să
fie egalităţi, de aceea în restricţiile (2), (3) şi (4) vom introduce variabilele de egalizare x6, x7,
x8. Forma standard va fi:

­max(3 x1 − x 2 + 2 x4 − 2 x5 )
°
° 3 x1 − x 2 = 4 ,
°° x1 − 5 x 2 + 2 x4 − 2 x5 − x6 = −3,
®
°− x1 + 4 x4 − 4 x5 − x7 = 2,
° 2 x1 + 3 x 2 − x 4 + x 5 + x 8 = 0 ,
°
°¯ x1 , x 2 ,..., x8 ≥ 0

Forma canonică se obţine transformând restricţia (1) în două inegalităţi şi toate


inegalităţile „ ≥ ” le transformăm în inegalităţi „ ≤ ” deoarece problema este dată de
maximizare. Astfel, x3 trebuie înlocuit cu diferenţa x4 – x5.
Se obţine astfel forma canonică

­max(3 x1 − x 2 + 2 x4 − 2 x5 )
°
° 3 x1 − x 2 ≤ 4 ,
°− 3 x1 + x 2 ≤ −4,
°
®− x1 + 5 x 2 − 2 x4 + 2 x5 ≤ 3,.
°− x − 4 x + 4 x ≤ −2,
° 1 4 5
° 2 x1 + 3 x 2 − x 4 + x 5 ≤ 0 ,
°
¯ x1 , x 2 , x 4 , x 5 ≥ 0

2.1.3. Modelul matematic al problemei de programare liniară

Pentru a înţelege modelul matematic al problemelor de programare liniară sub forma


generală, vom analiza câteva exemple din practica industrială:

• Alocarea optimă a resurselor în producţia industrială


O firmă urmează să producă n tipuri de produse Pj , j = 1, n , folosind m tipuri de
resurse Ri i = 1, m .
Se cunosc coeficienţii tehnologici aij ; cantităţile disponibile bi din resursele Ri ;
profitul unitar cj pentru fiecare produs Pj.
Să se întocmească planul optim de producţie al firmei astfel încât profitul total realizat
să fie maxim.

12
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

Elaborare modelului matematic al problemei

Condiţii generale de desfăşurare a activităţii analizate :

- restricţiile problemei apar din următoarea condiţie:


cantitatea totala din resursa i folosită pentru producerea celor n produse nu poate fi mai mare
decât cantitatea disponibila:

n
¦ aij x j ≤ bi , ∀i = 1, m (2.20)
j =1

- condiţiile de nenegativitate asigură obţinerea unei soluţii realizabile din punctul de


vedere al logicii practice industriale.

xj ≥ 0 , ∀j = 1, n (2.21)

Sistemul de inecuaţii (2.20) şi (2.21) poate avea o infinitate de soluţii, deci putem
organiza procesul de producţie pentru realizarea produsului P într-o infinitate de moduri dar
respectând condiţiile anterioare .
Acest fapt face evidentă imposibilitatea practică a managerului de a compara toate
variantele de plan posibile deci este necesară introducerea unui alt criteriu.
Adoptarea unei variante de plan (în fapt fundamentarea deciziei) se face, preferabil, pe
baza unui criteriu economic (cel mai uzual – maximizarea profitului sau în alte cazuri
minimizarea costurilor). Aplicarea acestui criteriu economic, presupune cunoaşterea profitului
total.
n
Deci : ¦ c j x j reprezintă profitul total pentru produsele Pj
j =1
Funcţia obiectiv (scop, eficienţă) va fi :

n
max f = ¦ c j x j (2.22)
j =1

Deci, modelul de programare liniară ce urmează a fi rezolvat pentru determinarea


planului optim de producţie astfel încât profitul total realizat să fie maxim este:

­ n
° max f = ¦ cjxj
j =1
°
°
® ¦ aij x j ≤ bi (2.23)
°
° xj ≥ 0
°¯

• Problema de transport
Un produs omogen P este stocat în m depozite Di, în cantităţile ai , i = 1, m şi este cerut
de spre a fi transportat la n centre de consum Cj ,în cantităţile bj, j = 1, n . Se cunosc costurile
cij pe unitatea de produs transportată de la centrul Di la centrul Cj . Se cere determinarea unui
plan de transport astfel încât costul total de transport să fie minim.

13
Programare liniară

Elaborarea modelului matematic al problemei

Notaţii : ai = cantitatea din produs care se află în depozitul i;


bj = cantitatea cerută de consumatorul j ( 1<j<n);
xij= cantitatea ce urmează a fi transportată de la depozitul i
la consumatorul j ;
cij= costul unitar al transportului din depozit la consumator.
Cu aceste notaţii se pot exprima următoarele mărimi ce ne ajută să stabilim restricţiile
problemei şi funcţia obiectiv:
• cantitatea transportată de la depozitele Di la toate cele n centre de consum este cantitatea
sa disponibilă:

¦x
j =1
ij = ai , i = 1, m (2.24)

• cantitatea transportată de la toate cele m depozite la consumatorul Cj reprezintă necesarul


acestuia, bj , j = 1, n .

¦x
i =1
ij = bj j = 1, n (2.25)

• pentru scrierea modelului se pleacă de la forma echilibrată a problemei de transport şi


anume cantitatea totală expediată de la cele m depozite este egală cu cantitatea sa
disponibilă:

m n

¦ a = ¦b
i =1
i
j =1
j (2.26)

• variabilele satisfac evident condiţia de nenegativitate :

xij ≥ 0 (2.27)

• funcţia obiectiv este următoarea :

m n
min ¦¦ cij xij (2.28)
i =1 j =1

Se obţine un program liniar, ce se va supune metodelor programării liniare şi poartă


denumirea de program de transport :

­ m n
° min( f ) = ¦ ¦ cij xij
° i =1 j =1
° n
° ¦ xij = ai , i = 1, m
® j =1 (2.29)
° n
° ¦ xij = bi , j = 1, n
° j =1
° x ≥ 0, ∀i = 1, m, j = 1, n
¯ ij

14
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

• Problemă de repartizare a sarcinilor de producţie


Într-un atelier de montaj echipele E j , j = 1, n , pot monta cu randamente diferite,
produsele Pi , i = 1, m . Activitatea atelierului este caracterizată de următoarele date
cunoscute: aij - timpul necesar pentru montajul unei cantităţi de produs Pi de către echipa
E j ; cij - cheltuielile necesare pentru montajul unei unităţi de produs Pi de către echipa E j ; bi
- cantitatea planificată din produsul Pi , i = 1, m ; t j - timpul de lucru disponibil al echipei
E j , j = 1, n .
Să se stabilească o repartizare a produselor, echipelor, din atelierul de montaj astfel
încât cheltuielile totale necesare să fie minime.

Elaborarea modelului matematic al problemei:


Variabilele de decizie (necunoscutele) se notează cu xij şi reprezintă cantitatea din
produsul Pi ce trebuie realizată de echipa Ej.
Funcţia obiectiv este o funcţie de cost, respectiv, cheltuielile celor n echipe, necesare
pentru montajul cantităţilor repartizate din cele m produse; funcţia trebuie minimizată:

m n
min f = ¦ ¦ cij xij (2.30)
i =1 j =1

Cantitatea de produse de fiecare tip planificată trebuie realizată:

¦x
j =1
ij = bi , i = 1, m (2.31)

Oricare echipă poate executa produse în limita fondului de timp disponibil:

¦a x
i =1
ij ij ≤ t j , j = 1, n (2.32)

Variabilele xij se supun condiţiei de nenegativitate:

xij ≥ 0, ∀i = 1, m, j = 1, n (2.33)

Deci, modelul matematic al problemei este:

 m n
 min f = ∑ ∑ cij xij
i =1 j =1

 n x = b , i = 1, m
 j∑ ij i
 =1 (2.34)
m
 ∑ aij xij ≤ t j , j = 1, n
i =1
 xij ≥ 0, ∀i = 1, m, j = 1, n

• Problemă de utilizare a capacităţii utilajelor

15
Programare liniară

O firmă produce n tipuri de produse care pot fi fabricate pe m utilaje care au capacităţi
de producţie limitate pe o anumită perioadă. Se cunosc: procentul aij din capacitatea utilajului
i necesar pentru producerea unei unităţi din produsul j; profitul unitar cj al produsului j = 1, n .
Să se stabilească un program de fabricaţie care să permită utilizarea optimă a
capacităţii disponibile a celor m utilaje.

Elaborarea modelului matematic al problemei:


Variabilele problemei sunt cantităţile de produse fabricate în perioada considerată. Se
notează cu xj, numărul de produse de tipul j = 1, n .
Funcţia obiectiv este profitul total obţinut de firmă pentru cele n tipuri produse; funcţia
trebuie maximizată:

n
max f = ¦ c j x j (2.35)
j =1

Restricţiile de capacitate ale celor m utilaje se exprimă sub forma:

¦a
j =1
ij xij ≤ 1, i = 1, m (2.36)

Variabilele xj se supun condiţiei de nenegativitate:

x j ≥ 0, j = 1, n (2.37)

Atunci, modelul matematic al problemei este:

­ n
°max f = j¦ =1
cjxj
°
°m
® ¦ aij xij ≤ 1, i = 1, m (2.38)
° j =1
° x ≥ 0, j = 1, n
° j
¯

2.2. Consideraţii generale privind problemele de programarea liniară

2.2.1. Soluţii şi fundamente ale problemei de programare liniară

Fie problema de programare liniară dată în formă standard matricial:

­min(max)c T x ­C , x ∈ R n
° °
® Ax = b , unde ® A ∈ M m ,n (2.39)
° x≥0 ° b ∈ Rm
¯ ¯

Sistemul de ecuaţii Ax=b are o infinitate de soluţii, deci trebuie să se găsească în


mulţimea soluţiilor o soluţie ce realizează valoarea optimă (minimă sau maximă ) a funcţiei
obiectiv.

16
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

• Soluţie admisibilă
Un vector x = ( x1 x 2 ... x n ) ∈ R n care satisface restricţiile si condiţia de
nenegativitate se numeşte soluţie admisibilă sau posibilă a problemei de programare liniară.
Mulţimea soluţiilor admisibile, S, este:

{
S = x ∈ R n / Ax = b, x ≥ 0 } (2.40)

Sistemul de ecuaţii, având m ecuaţii şi n necunoscute, cu m<n şi rang A=m are m


necunoscute principale şi n-m necunoscute secundare.
O soluţie de bază se obţine prin anularea celor n-m necunoscute secundare, deci are cel
mult m componente nenule.

• Soluţie admisibilă de bază



Se numeşte soluţie admisibilă de bază pentru sistemul Ax=b, vectorul x , ce satisface
condiţiile :
a) x soluţie a sistemului : Ax=b ;
b) coloanele din A, corespunzătoare componentelor lui x nenule, formează o
mulţime liniar independentă.
În cazul când o soluţie de bază are mai puţin de m componente diferite de zero, atunci
ea se numeşte soluţie degenerată, în caz contrar ea fiind nedegenerată.

• Soluţie optimală
O soluţie admisibilă care face optimă funcţia z=min(max)c T x se numeşte soluţie
optimală.
Este posibil ca problema de programare liniara să aibă soluţie optimă unică, să aibă
mai multe soluţii optime sau să nu admită soluţie optimă.

• Soluţie grafică
Acest tip de soluţie va fi studiat detaliat în paragraful 2.2.3.

Teoremele şi definiţiile care urmează, specifică unele proprietăţi ale soluţiilor


ce justifică clasificarea realizată anterior.

Teorema 2.1 (Teorema fundamentală a programării liniare):


Dacă problema de programare liniară în formă standard admite un program (soluţie
admisibilă), atunci ea are cel puţin un program de bază. Dacă problema are un program
optim, atunci are un program optim de bază.

Demonstraţie:

Fie x∈S un program al următoarei problemei de programare liniară:

­ min c T x
°
® Ax = b . (2.41)
° x ≥ 0
¯

Notăm cu p numărul componentelor nenule ale vectorului x.


Fără a restrânge generalitatea problemei putem presupune că cele p componente
nenule sunt chiar primele componente din cele n ale vectorului x adică:

17
Programare liniară

x = ( x1 , x2 , x3 , …xp , 0, 0 ,0)T (2.42)

• Dacă p = 0, atunci x = 0 deci afirmaţia teoremei este evidentă.


• Dacă p > 0, atunci există două posibilităţi:
- dacă vectorii a1 , a2 , ..ap ∈ A corespunzători celor p componente nenule ale lui x
sunt liniari independenţi, atunci x este program de bază.
- dacă vectorii a1 , a2 , ..ap ∈ A corespunzători celor p componente nenule ale
lui x sunt liniari dependenţi atunci există numerele reale: y1, y2,.. …yp nu toate nule astfel încât
să fie satisfăcută relaţia:

a1y1 + a2y2 +…..+apyp = 0 (2.43)

Relaţia (2.43) se poate scrie sub următoarea formă echivalentă : Ay = 0 cu y ≠0.


Notăm cu y vectorul cu primele p componente nenule şi următoarele componente n-p
nule: y = (y1, y2 , …yp, 0, 0 .0 )T.
Atunci, obţinem: A( x + λy ) = Ax + λAy = b, ( ∀ ) λ ∈ R
Deci, x + λy este soluţia sistemului Ax=b astfel putem determina valori ale lui λ
pentru care x + λy este program pentru problema (2.41), deci este îndeplinită şi condiţia: x +
λy > 0
Notăm: I1 = mulţimea indicilor i , 1< i < p , yi > 0;
I2 = mulţimea indicilor i , 1< i <p , yi < 0.
Fie:

­ x ­ x
° max (− i ), I 1 ≠ Φ ° min (− i ), I 2 ≠ Φ
λ1 = ® i∈I1 yi λ2 = ® i∈I 2 y i (2.44)
° °
¯− ∞ , I1 = Φ ¯+ ∞ , I2 = Φ

Deci pentru oricare λ ∈ [λ1 , λ 2 ] , avem îndeplinită condiţia: x + λy ≥ 0, deci vectorul


x + λy este program.
Rezultă că c T y = 0 ,deoarece în caz contrar alegând pe λ de semn contrar valorii lui
c T y , avem următoarele: c T ( x + λy ) = c T x + λc T y < c T x , ceea ce contrazice faptul că x este
program optim. Prin urmare c T ( x + λy ) = c T x , adică x+ λy este program optim.
Astfel putem alege o valoare λ0 pentru care vectorul x + λ0y să aibă cel mult p-1
componente nenule, deci λ0 ∈ (λ1 + λ 2 ) ( λ1 , λ 2 nu pot fi ambele infinit)
x
În caz particular, λ = λ0 = min ( i ) deci se va obţine programul soluţie x + λ0y cu p-1
yi <0 yi
componente pozitive şi astfel vom avea două cazuri :
• Dacă coloanele corespunzătoare componentelor sunt liniar independente atunci programul
anterior este program de bază.
• Dacă coloanele corespunzătoare componentelor sunt liniar dependente atunci se reia
algoritmul într-un număr finit de paşi, cel mult p până se va ajunge la primul caz şi se
obţine un program optim de bază pentru problema dată.

Definiţia 2.1: Fie V un spaţiu liniar peste corpul R şi x, y doi vectori din V. Mulţimea
vectorilor [x, y ] = {X ∈ V / X = (1 − λ) x + λy,0 ≤ λ ≤ 1 } se numeşte segment al lui V (uneşte
vectorul x cu vectorul y ).
Definiţia 2.2: O mulţime M de vectori din V se numeşte mulţime convexă dacă (∀) x, y
∈ M şi
18
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

(∀) λ ∈[ 0,1] , atunci [ x, y] ⊆ M .


Deci se poate spune că mulţimea M din V este convexă, dacă odată cu doi vectori x, y
∈ M conţine şi segmentul determinat de aceşti vectori.

Definiţia 2.3: Vectorul X ∈ M se numeşte vârf sau punct extrem al mulţimii M dacă nu
există vectorii x, y ∈ M astfel încât {X = (1 − λ ) x + λy,0 ≤ λ ≤ 1 } . În caz contrar X se
numeşte punct interior mulţimii M .

Definiţia 2.4 : Prin combinaţie liniară convexă a vectorilor x1 ,x2 …,xm ∈ M se


înţelege o expresie de forma λ1x1 + λ2x2 + …+ λmxm cu λ ∈[ 0,1 ] şi λ1 + λ2 + …+ λm = 1
Concluzie: Orice punct interior X al unei mulţimi convexe M se poate exprima ca o
combinaţie liniară convexă de un număr finit de puncte extreme.

Teorema 2.2: Mulţimea soluţiilor admisibile ale unei probleme de programare liniară
este o mulţime convexă .

Demonstraţie :
Fie mulţimea soluţiilor admisibile dată de relaţia (2.40).
Fie două soluţii: x1 , x2 ∈ S. Atunci pentru λ ∈ [0,1] avem

x = λx1 +(1- λ)x2 ≥0 (2.45)

Înlocuind relaţia (2.45) în relaţia (2.40) obţinem :

Ax= A[λx1 +( 1- λ)x2]=λAx1 + (1- λ) Ax2 = λb + (1- λ)b = λb+ b - λb = b,

deci mulţimea soluţiilor problemei de programare liniară este o mulţime convexă.

Teorema 2.3: Orice soluţie admisibilă de bază a unei probleme de programare liniară
este vârf sau punct de extrem al mulţimii soluţiilor admisibile.

Demonstraţie.
Presupunem că soluţia admisibilă de bază x are forma
x=(x1 x2 … xm 0 …0T.
Aceasta înseamnă că xi ≥ 0 (i = 1, m), vectorii p1, p2, …,pm sunt liniar independenţi şi
x satisface sistemul de restricţii, deci

x1P1 + x2P2 +… + xmpm +0pm+1 + … + 0pn = p0 (2.46)

Trebuie arătat că x este vârf al mulţimii S a soluţiilor admisibile.


Presupunem prin absurd că x nu este vârf, ci punct interior, adică există doi vectori
x' , x' '∈ S astfel încât: x = λx'+(1 − λ )x' ' , λ ∈ (0,1)
Scris pe componente:

x1 = λx1' + (1 − λ )x1' , x 2 = λx 2' + (1 − λ )x 2'' ,……., x m = λx m' + (1 − λ )x m'' ,.….…, 0 = λx n' + (1 − λ )x n''

(
Însă λ ∈ (0,1) , deci 1 − λ > 0 , iar xi' ≥ 0 i = 1, n şi xi'' ≥ 0 ) (i = 1, n) deoarece
x' , x' '∈ S , astfel că, din cele n – m relaţii se obţin:
x m' +1 = 0  x n' = 0 ; x m'' +1 = 0  x n'' = 0 şi deci vectorii x' , x' ' au formele:

19
Programare liniară

(
x' = x1' x 2'  x m' 0  0 )
T
, (
x' ' = x1'' x 2''  x m'' 0  0 )
T
(2.47)

Exprimăm faptul că x' , x' '∈ S verifică restricţiile

x1' p1 + x 2' p 2 +  + x m' p m = p0 (2.48)


x1'' p1 + x 2'' p2 +  + x m'' p m = p0 (2.49)

Însă vectorii pi ,…,pm sunt liniari independenţi. Rezultă:

x1' = x1'' , x 2' = x 2'' , x m' = x m'' adică x' = x' ' (2.50)

Aceasta înseamnă că nu există vectorii x' , x' '∈ S astfel ca x = λx'+(1 − λ )x' ' λ ∈ (0,1)
prin urmare x este vârf sau punct de extrem în S.

Teorema 2.4: Funcţia obiectiv a unei probleme de programare liniară ia valoare


optimă într-un punct extrem a mulţimii convexe M a tuturor soluţiilor admisibile ale
problemei de programare liniară.

Demonstraţie:
Presupunem că se cere ca funcţia obiectiv să fie minimizată.
~
Notam cu M = { xi , i ∈ I } mulţimea punctelor extremale ale lui M şi fie x1 punct
extrem pentru care c T x1 = min{c T xi } = z1
i∈I
Presupunem prin absurd că această afirmaţie nu este adevărată, atunci există x0
{ ~
}
∈ M − M astfel încât : c T x0 = z0 < z1, deoarece x0 nu este punct extrem atunci :

x0 = ¦λ x
i∈I
i i , λI ≥ 0 , ¦λ
i∈I
i =1 (2.51)

Dar z0 = c T x0 = ¦ λ i c T ' xi > ¦ λ i c T x1 = cT x1 = z1, ceea ce este o contradicţie. Deci


i∈I i∈I
x1 este un program minimal pentru problema de programare liniară.

Consecinţă :
Dacă funcţia obiectiv ia aceeaşi valoare optimă în mai multe puncte extremale, atunci
orice combinaţie liniară convexă a acestora este soluţie optimă a problemei de programare
liniară.

2.2.2. Baze ale problemei de programare liniară

Fie problema de programare liniară în forma standard (2.13), în care matricea A are m
linii şi n coloane, iar rang A = m < n. Ecuaţiile ce compun sistemul liniar Ax = b sunt liniar
independente, iar sistemul are o infinitate de soluţii.
Astfel, în matricea A există cel puţin un grup de m coloane liniar independente, care
formează o bază a spaţiului Rm.
Definiţiile ce urmează reprezintă fundamente ce stau la baza rezolvării modelelor de
programare liniară.

Definiţia 2.5 Se numeşte bază a problemei de programare liniară în formă standard un grup
de m coloane liniar independente.

20
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

Problema (2.13) are un număr finit de baze şi anume C nm .


Fie B o bază formată cu m coloane, ale matricei A. Matricea A se poate scrie
partiţionat sub forma:

[ ] [ ]
A = [B, S ] , cu B = a (i ) i∈I , S = a ( j ) j∈ J (2.52)

unde prin I şi J s-au notat mulţimile de indici corespunzători coloanelor din baza B şi,
respectiv, a celorlalte coloane:

{
I = i = 1, n a (i ) ∈ B } (2.53)
J = {1,2,..., n}/ I

Partiţionarea vectorului x al variabilelor problemei este următoarea:

ªxB º
x = « S » , cu x B = [xi ]i∈I , xS = x j [ ] j∈J
(2.54)
¬x ¼

iar partiţionarea vectorul c al coeficienţilor funcţiei obiectiv este:

ªc B º
c = « S » , cu c B = [ci ]i∈I , cS = c j [ ] j∈J
(2.55)
¬c ¼

În raport cu baza B aleasă, variabilele xi (i ∈ I ) se vor numi variabile de bază, iar


x j ( j ∈ J ) variabile secundare.
Sistemul de ecuaţii Ax = b se poate scrie după partiţionare sub forma:

ª B
º
[B, S ]⋅ « x S » = b ⇔ Bx B + Sx S =b (2.56)
¬x ¼

Matricea B fiind o bază a spaţiului Rm este inversabilă. Astfel prin înmulţirea relaţiei
(2.56) la stânga cu B-1 se obţine forma explicită a sistemului de ecuaţii:

x B = B −1b − B −1 Sx S (2.57)

Notăm cu:

B
x = B −1b (2.58)
y Bj = B −1a ( j ) , j = 1, n (2.59)

Înlocuind relaţiile (2.58) şi (2.59) în relaţia (2.57) obţinem:

B
x B = x − ¦ y Bj x Bj (2.60)
j∈J

Scrisă pe componente relaţia (2.60) devine:

21
Programare liniară

B
xiB = x i − ¦ y ijB x Bj , i ∈ I (2.61)
j∈J

Definiţia 2.6. Soluţia de bază corespunzătoare bazei B este:

ª Bº
x B = «x » ∈ Rn (2.62)
¬« 0 ¼»

O soluţie de bază este o soluţie admisibilă (program) a unei probleme de programare


B
liniară dacă x ≥ 0 .

Definiţia 2.7 Baza B care satisface condiţia

B −1b ≥ 0 (2.63)

se numeşte bază primal admisibilă.

Ţinând seama de relaţiile (2.54) şi (2.55), funcţia obiectiv a problemei de programare


liniară, z = c T x , poate fi exprimată prin:

[ ' ªx º
]
B
( )
z = c B c S ⋅ « S » = c TB x B + c ST x S = c TB B −1b − B −1 Sx S + c TS x S
¬x ¼
(
z = c B B b − c TB ' B −1 S − c ST ' x S
T −1
) (2.64)

Notăm cu:

B B
z = c TB x (2.65)
z Bj = c TB y Bj , j = 1, n (2.66)

Înlocuind relaţiile (2.65) şi (2.66) în relaţia (2.64) obţinem:

B
z = z − ¦ z iB − c j x Bj ( ) (2.67)
j∈J

B
Definiţia 2.7. Constanta z din relaţia (2.67) reprezintă valoarea funcţiei obiectiv în soluţia
asociată bazei B.

Diferentele z Bj − c j ( j ∈ J ) se mai numesc costuri reduse şi au rolul esenţial în


caracterizarea optimalităţii unei soluţii admisibile de bază a unei probleme de programare
liniară.

2.2.3. Interpretarea geometrică a problemei de programare liniară

O interpretare geometrică a unei probleme de programare liniara se poate obţine


simplu în cazul când problema are două variabile (spaţiu R2) şi se prezintă sub forma
canonică.
22
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

Fie modelul de programare liniară (2.11) exprimat în funcţie de două variabile de


decizie x1 şi x2.
1) Restricţiile unui astfel de model pot fi exprimate prin
a) egalităţi : a11 x1 + a12 x 2 = b1

a12 x1 + a 22 x 2 ≥ b2
b) inegalităţi : sau (2.68)
a 21 x1 + a 22 x 2 ≤ b2

2) Condiţii de nenegativitate : x1 ≥ 0, x 2 ≥ 0 (2.69)

3) Funcţia obiectiv (2.10) poate fi: min(max) z = c1 x1 + c 2 x 2 (2.70)

Realizând o analiză din punct de vedere grafic putem observă următoarele :


• egalitatea a11 x1 + a12 x 2 = b1 , reprezintă o dreapta. Mulţimea soluţiilor ( x1 x 2 ) , aparţine
acestei drepte (d), iar această dreaptă (curbă de nivel), împarte planul (0 x1 x 2 ) în două
semiplane.
• inegalitatea a11 x1 + a12 x 2 < b1 , - mulţimea soluţiilor fiind reprezentată în acest caz printr-o
arie, dreapta împarte planul (0 x1 x 2 ) în doua semiplane ce au o arie comună şi în final
un punct comun.
Pentru aflarea soluţiei optime, dacă ea există, trebuie aflată mai întâi mulţimea
soluţiilor admisibile S – mulţime ce satisface sistemul de restricţii şi condiţiile de
nenegativitate.
În reprezentarea grafică acesta va fi o mulţime convexă, reprezentată printr-un
domeniu, numit admisibil.

Exemplul 2.2 Să se rezolve problema de programare liniară

­ z = max(2 x1 + x 2 )
°2 x − x ≥ −2
° 1 2
®
° 1x − 2 x 2 ≤2
°¯ x1 + x 2 ≤ 5
x1 ≥ 0 , x 2 ≥ 0

Pentru determinarea domeniului admisibil se procedează în modul următor: se află


domeniul care satisface cele trei restricţii şi condiţiile x1 ≥ 0, x 2 ≥ 0 .
Se figurează dreptele:

(d1) 2x1- x2 = -2, trece prin A1(-1,0), B1(0,2)


(d2) x1- 2x2 = 2, trece prin A2(2,0), B2(0,-1)
(d3) x1+ x2 = 5, trece prin A3(5,0), B3(0,5)

şi apoi se ia, în cadranul întâi intersecţia domeniilor ce reprezintă soluţiile, respectiv, ale celor
trei inecuaţii, fig. 2.1.
Prin intersecţia celor trei semiplane s-a obţinut domeniul admisibil, ce este o mulţime
convexă. Coordonatele oricărui punct din acest domeniu satisfac toate restricţiile şi condiţiile
de nenegativitate ale problemei. Conform teoremei 2.4, dacă funcţia obiectiv îşi atinge
valoarea maximă, atunci z ia valoarea maximă într-un vârf ( punct extrem al mulţimii
convexe). Acestea sunt vârfurile poligonului, notate cu: O, A, B, C, D.

23
Programare liniară

Coordonatele acestor puncte se află uşor astfel:

x2
d1

C(1,4)

d2

(D
)
D(0,2)

B (4,1)
d3

0 A(2,0) x1

Fig.2.1

­ x − 2 x2 = 2
B ∈ (d 2 )  (d 3 )® 1 B(4,1)
¯ x1 + x2 = 5
­ 2 x − 2 x 2 = −2
C ∈ (d 1 )  (d 3 )® 1 C (1,4 )
¯ x1 + x 2 = 5

Aflarea soluţiei optime se bazează pe faptul că funcţia obiectiv, având două variabile se
poate reprezenta printr-o dreaptă (D).

(D): c1x1 + c2x2 = z

Adusă la forma y = mx + n unde m este panta, iar n ordonata la origine, rezultă:

c1 z
(D): x 2 = − x1 +
c2 c1

c1
care reprezintă o mulţime de drepte paralele între ele, având panta constantă m = −
c2
z
şi ordonata la origine variabilă, n = .
c1
În problemele de maxim vom alege poziţia care are ordonata la origine astfel ca ea să
furnizeze valoarea maximă pentru z.
Analog pentru problemele de minim.

Pentru exemplul de mai sus rezultă:


(D) : x2 = -2x1 + z ; se alege acea dreaptă ce trece prin unul din vârfuri, ce are m = -2
şi ordonata n = z = max
Ea este figurată punctat în figura 2.1. Ordonata la origine maximă corespunde punctului
B deci

x1 = 4 şi x2 = 1 z = 2*4 +1*1 = 9 = max

Deoarece panta dreptei (D) este m = -2 = tg α, rezultă că unghiul α = 116,560.

24
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

Exemplul 2.3.
Pentru fabricarea a două produse P1 şi P2, o firmă dispune de patru tipuri de resurse Ri
( )
1,4 . Cantităţile de resurse Ri folosite pentru fabricarea fiecărei unităţi din produsele P1 şi P2,
în unităţi convenţionale (tone etc) sunt date în tabelul 2.1.
Se mai cunosc cantităţile disponibile ale firmei din fiecare resursă Ri i = 1,4 şi ( )
beneficiile pentru fiecare unitate din cele două produse.
Să se determine planul de producţie astfel ca beneficiul total să fie maxim.

Tabelul 2.1
Resurse R1 R1 Disponibil
R1 2 2 12
R2 1 2 8
R3 4 0 16
R4 0 4 12
Beneficiu 2 um 3 um

Introducând variabilele de decizie: x1 = numărul de unităţi din produsul P1 şi x2 =


numărul de unităţi din produsul P2 , rezultă următorul model matematic de P.L.:

­2 x1 + 2 x 2 ≤ 12
°x + 2x ≤ 8
° 1 2
® x1 ≥ 0, x 2 ≥ 0, z = 2 x1 + 3 x 2 = max
4
° 1 x ≤ 16
°¯4 x 2 ≤ 12

Soluţia grafică (2.2) se obţine determinând domeniul admisibil:

­(d 1 )2 x1 + 2 x 2 = 12
°(d )x + 2 x = 8
° 2 1 2
®
( )
° d 3 4 x1 = 16
°¯(d 4 )4 x 2 = 12
(D) 2x1 + 3x2 = z

Se observă că dreptele (d1 ) , (d 2 ) şi (d 3 ) sunt concurente în punctul B(4,2), iar


C ∈ (d 2 )  (d 3 ) are coordonatele C(2,3).

x2

d3
(D

C(2,3) d4
)

D(0,3)

B(4,2)

d1 d2

0 A(4,0) x1

Fig.2.2

25
Programare liniară

Soluţia optimă a problemei este:

x1 = 4; x2 = 2 f(x) = 14 = max

Verificăm soluţia în restricţiile problemei.

Rezultă că resursele R1, R2 şi R3 sunt resurse rare, utilizate în întregime în timp ce


resursa R4 nu a fost în întregime utilizată.
Cantitatea din resursa R4, ce rămâne disponibilă poate fi determinată şi ulterior folosită
cunoscând preţul umbră (dual).
Această analiză urmează a fi detaliată în subcapitolul 2.4.

2.3. Metoda Simplex

Metoda Simplex sau “ metoda îmbunătăţirilor succesive “ evită cercetarea exhaustivă


a tuturor soluţiilor de bază ale unei probleme de programare liniară, construind succesiv
soluţii realizabile de bază din ce în ce mai bune ale modelului până când este obţinută o
soluţie de bază optimă. Prin soluţie „mai bună” înţelegând soluţia ce dă funcţiei de eficienţă
(obiectiv) o valoare mai mică, respectiv mai mare decât cele precedente după cum funcţia de
eficienţă este de minim sau de maxim.
Deci acest algoritm este o metodă de examinare sistematică a programelor de bază ce
dă funcţiei de eficienţă o valoare optimă.
Această metodă pune în evidenţă cazul în care problema admite un optim infinit sau
mulţimea programelor este vidă.

2.3.1. Fundamente teoretice în aplicarea metodei Simplex

Prezentarea metodei simplex se realizează pe un model de programare liniară dat în


formă standard şi în care funcţia obiectiv este o funcţie de minimizare.

­min c T x ­C , x ∈ R n
° °
® Ax = b , unde ® A ∈ M m ,n (2.71)
° x≥0 ° b ∈ Rm
¯ ¯

B
Fie B o bază primal admisibilă extrasă din matricea A şi x = B −1b o soluţie de bază
iniţială a problemei de programare liniară.
Pentru ordonarea şi facilitarea calculelor se utilizează în aplicarea practică a
algoritmului tabele ce poartă denumirea de tabele simplex.
Aceste tabele sunt tabele simple ce au m+1 linii şi n+1 coloane şi cuprind coeficienţii
numerici al problemei (2.71) corespunzători bazei primal admisibile B (tab 2.2).
Tabelul conţine în prima coloană, variabilele de bază (V.B.), în coloana a doua
valoarea variabilelor de bază (V.V.B), iar în următoarele n coloane vectorii y Bj , j = 1, n .
Pe ultima linie a tabelului se trece valoarea funcţiei obiectiv pentru baza B notată cu
B
z şi diferenţele z Bj − c j , j = 1, n .
Acestui tabel se ataşează o linie deasupra variabilelor x j şi o coloană la stânga
coloanei V.B cu coeficienţii corespunzători funcţiei obiectiv c j , j = 1, n .

26
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

Tabelul 2.2
cl ... ck ... cj ... cn

CB V.B. V.V.B xl ... xk ... xj ... xn

c1 x1B x1B yB ... ... ... yB


yB yB
11 1k 1j 1n

ci yB ... yB ... yB ...


xiB xiB ik ij yB
i1
in

cl xlB xlB yB ... yB ...


... yB
l1 lk yB ln
lj

cm x mB xmB yB ... yB ... yB ... yB


m1 mk mj mn

zB z 1B - c 1 ... z Bk - c k ... z B - c j ... z B - c


n
j n

Tabelul simplex se ataşează fiecărei baze B din algoritm şi are ca fundamente


rezultatele teoretice ce sunt prezentate în continuare.

Teorema 2.5 Criteriu de optimalitate


Fie B o bază primal admisibilă pentru probleme de programare liniară (2.71). Dacă
B
z Bj − c j ≤ 0 , oricare ar fi j ∈ J , atunci programul de bază asociat bazei B, x = B −1b este o
soluţie optimă a problemei de programare liniară considerată.

Teorema 2.6 Criteriu de infinitudine a soluţiilor


Fie B o bază primal admisibilă pentru probleme de programare liniară (2.71). Dacă
există indicele k∈ J astfel încât z kB − ck ≥ 0 şi yikB ≤ 0 , oricare ar fi i ∈ I atunci problema
are un optim infinit.

Teorema 2.7 Criteriu de îmbunătăţire a soluţiilor


Fie B o bază primal admisibilă pentru probleme de programare
liniară 2.71. Fie k∈ J astfel încât z kB − ck > 0 (2.72) şi I + = i∈I / yikB > 0 ≠ Φ . Pentru { }
indicele i ∈ I + determinat cu relaţia:

B B
xi xl
min = (2.73)
i∈ I + yikB ylkB

~
B B
se obţine un nou program de bază x cel puţin la fel de bun ca x , corespunzător unei noi
~ (l )
baze B care are aceleaşi coloane ca şi B, cu excepţia coloanei a ce se înlocuieşte cu
(k )
coloana a .

Observaţii:
~
 Baza B este primal admisibilă şi verifică toate teoremele anterioare.
 Relaţia (2.73) reprezintă criteriul de ieşire din bază şi ne arată indicele l ∈ I + , al
coloanei a (l ) ce urmează să părăsească baza B.

27
Programare liniară

 În cazul în care există mai mulţi indici k ∈ J pentru care se îndeplinesc (2.72) şi (2.73)
atunci se pot construi mai multe baze primal admisibile şi fiecare dintre acestea modifică
valoarea funcţiei obiectiv.
Pentru a obţine mai repede optimul căutat este indicat a alege acel
indice pentru care se verifică relaţia.

B B
B xl xl
max (( z j − c j ) B ) = ( z kB − c ) (2.74)
j∈ J ylk ylkB k

În practică utilizându-se pentru evitarea calculelor următorul criteriu:

B B
max ( z j − c j ) = z k − ck (2.75)
j∈ J

 Relaţia 2.75 reprezintă criteriul de intrare în bază şi ne arată indicele


k ∈ J al coloanei a (k ) ce urmează să intre în baza B.
 Elementul ylk din tabelul simplex poartă denumirea de pivot.
~
Pentru calculul elementelor tabelului simplex asociat bazei B în raport cu elementele
tabelului simplex asociat bazei B se utilizează formulele de schimbare a bazei în cadrul unei
operaţii numită pivotare gaussină.
În practică formulele de schimbare a bazei se echivalează cu următoarele reguli de
transformare a tabelelor simplex :
 Elementele situate pe linia pivotului se împart la valoarea pivotului ;
 Elementele situate pe coloana pivotului devin zero cu excepţia
pivotului ce va avea valoarea unu ;
 Celelalte elemente ale tabelului simplex se transformă după regula
dreptunghiului. Se consideră dreptunghiul imaginar a cărui diagonală este determinată de
~
elementul yijB şi pivotul yijB (fig. 2.3) ; noua valoare yijB se obţine împărţind la pivot diferenţa
dintre produsul yijB ylkB şi yljB yikB după formula :

~ yijB ylkB − yljB yikB


yijB = (2.76)
ylkB

elementul de
transformat
y B
ij y ikB

y ijB y ikB

pivotul
Fig.2.3

2.3.2. Algoritmul simplex primal.

Rezultatele teoretice obţinute anterior permit enunţarea algoritmului simplex. Acest


algoritm pentru rezolvarea problemelor de programare liniară date în formă standard (2.13)
este diferit în raport cu tipul funcţiei obiectiv, respectiv, probleme de minimizare sau
maximizare.

28
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

Algoritmul simplex primal pentru probleme de minimizare

• Pasul 1 : Se determină o baza B primal admisibilă.


B B
• Pasul 2 : Se determină următoarele elemente : x , z , z B B
j −c j, y j
• Pasul 3 : Se analizează toate diferenţele z Bj − c j :
B
 Dacă toate diferenţele z Bj − c j ≤ 0 , ∀j = 1, n atunci programul x este optim.

{
 Dacă există cel puţin un indice j∈ J + , J + = j ∈ J / z Bj − c j > 0 } astfel încât

z Bj − c j > 0 se trece la pasul 4.


 Pasul 4 Se determină indicele k ∈ J + cu criteriul de intrare în bază
z kB − ck = max ( z Bj − c j )
j∈ J +

 Dacă y kB ≤ 0 atunci problema are un optim infinit.


 Dacă (∃)k ∈ J + pentru care y kB > 0 se trece la pasul 5.
 Pasul 5: Se determină indicele l ∈ I cu criteriul de ieşire din bază:
§ xB · xB
¨ i ¸ l
min ¨ B ¸ = B
i∈ I
© yij ¹ ylk
y B >0
ik
(l ) (k )
• Pasul 6 : Se înlocuieşte în baza iniţială B vectorul a cu vectorul a ,
~
obţinându-se astfel o nouă bază B , iar pivotul corespunzător este y lk .
~
Mărimile tabelului simplex corespunzător noii baze B , se vor determina cu ajutorul
unei reguli denumită regula dreptunghiului (pivotare în jurul elementului y lk ), după care se
trece la Pasul 2.

Algoritmul simplex primal pentru probleme de maximizare

Acest algoritm are paşii 1,2,5,6 identici cu algoritmul pentru probleme de minimizare.
• Pasul 3 : Se analizează toate diferenţele z Bj − c j :
B
 Dacă toate diferenţele z Bj − c j ≥ 0 , ∀j = 1, n atunci programul x este optim.

{
 Dacă există cel puţin un indice j ∈ J − , J − = j ∈ J / z Bj − c j < 0 } astfel încât

z Bj − c j < 0 se trece la pasul 4.


 Pasul 4 Se determină indicele k ∈ J + cu criteriul de intrare în bază
z kB − ck = min ( z Bj − c j )
j∈ J −

 Dacă y kB ≤ 0 atunci problema are un optim infinit.


 Dacă (∃)k ∈ J + pentru care y kB > 0 se trece la Pasul 5.
Algoritmul simplex poate fi exprimat sintetic sub următoarea schemă logică ( fig.2.4).

29
Programare liniară

START

Construieste
tabel simplex
initial

Exista
valori pozitive (negative) pe Nu Indica
linia diferentelor? solutia optima STOP

Da

Determina
coloana pivotului

Exista Nu Indica
valori pozitive in coloana solutia optima STOP
pivotului?

Da

Determina
linia pivotului

Calculeaza un nou
tabel simplex

Fig.2.4

Exemplul 2.4 . Să se rezolve următoarea problemă de programare liniară:

­ x1 − x 2 ≤ 4,
°3 x − x ≤ 18,
°° 1 2

®− x1 + 2 x 2 ≤ 6,
°x , x ≥ 0
° 1 2
°¯max (2 x1 + x 2 ).

Pentru a aplica algoritmul simplex, vom aduce mai întâi problema la forma standard. În acest
scop introducem variabilele ecart x3, x4 şi x5:

­ x1 − x 2 + x3 = 4,
°3 x − x + x = 18,
°° 1 2 4


® 1 x + 2 x 2 + x5 = 6,
° x , x ,..., x ≤ 0
° 1 2 6

°¯max(2 x1 + x 2 ).
Iteraţia 1
Pasul 1 Fie B o bază admisibilă a problemei formată din coloanele matricii A şi anume a3, a4
şi a5:
§1 0 0·
¨ ¸
3 4 5
(
B = a , a , a = ¨0 1 0 ¸ )
¨0 0 1¸
© ¹
Pasul 2 Baza B este matricea – unitate, astfel vom calcula următoarele elemente:
B
B −1 = B = I şi x = B −1b = b = [4 18 6] ;

30
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

y Bj = B −1 a j = a j , elementele matricii A.
B
z Bj − c j = c ' ⋅ B −1a j − c j = (0 0 0 ) ⋅ a j − c j = −c j = −(2 1 0 0 0)
B
z = c B ⋅ B −1b = 0.

Cunoscând toate aceste date, putem forma tabelul simplex iniţial ( tab.2.3).
{ }
Pasul 3. Deoarece există j ∈ J − , J − = j ∈ J / z Bj − c j < 0 astfel încât z Bj − c j < 0 , baza
iniţială nu este optimă.
Pasul 4 Se determină indicele k ∈ J + cu criteriul de intrare în bază
z kB − ck = min ( z Bj − c j ) =min ( − 2,−1 )=-2. Deci indicele k = 1, astfel variabila x1 va intra
j∈ J −
~
în noua bază B şi (∃)k ∈ J + pentru care y kB > 0 .
Pasul 5: Se determina indicele l ∈ I cu criteriul de ieşire din bază
§ xB · xB
¨ i ¸ l ­ 4 18 ½ 4
min ¨ B ¸ = B = min ® , ¾ = ,
¯1 3 ¿ 1
i∈ I
© yij ¹ ylk
y B >0
ik
deci indicele l = 3. Variabila x3 va părăsi baza B. Pivotul este y31= 1
Pasul 6: Se înlocuieşte în baza iniţială B variabila x3 cu variabila x1 obţinându-se astfel o noua
~
baza B ceea ce însemnă că se vor transforma toate mărimile următorului tabel simplex cu
regula dreptunghiului.

Interaţia 2 Se realizează un pivotaj în jurul elementului y42 (tab.2.3).

Interaţia 3. Se realizează un pivotaj în jurul elementului y53 (tab.2.3).

Interaţia 4 Deoarece z j − c j ≥ 0 pentru toţi j, baza actuală este optimă. Deci programul optim
42 36 14
al problemei noastre este x1 = , x2 = , x3 = , x 4 = 0 , x5 = 0 ( x 4 şi x5 au valoarea
5 5 5
0, deoarece sunt variabile secundare).

Interpretare geometrică.

Pentru problema examinată mai sus se poate da o interpretare geometrică simplă în


spaţiu R2.
În planul x1Ox2, mulţimea punctelor (x1, x2) care satisfac restricţia x1 − x 2 ≤ 4
constituie unul din semiplanele determinate de dreapta (d 1 ) : x1 − x 2 = 4 , şi anume
semiplanul care conţine originea.
Celelalte două restricţii determină analog alte două semiplane.
Mulţimea programelor problemei va fi formată din mulţimea punctelor din primul
cadran (x1 ≥ 0, x 2 ≥ 0 ) care se află la intersecţia celor trei semiplane.
Această mulţime este poligonul OABCD (fig. 2.5).
Funcţia obiectiv este max(2x1 +x2). Ecuaţia 2x1 +x2 = z reprezintă o familie de drepte
paralele între ele.
În figura 2.4 sunt reprezentate punctat câteva din aceste drepte. Pentru z=z2, funcţia
obiectiv ia valori mai mari decât pentru z = z1, iar pentru z = z3 valori şi mai mari.

31
Programare liniară

Tabelul 2.3

2 1 0 0 0

C B
V.B. V.V.B xl x2 x3 x4 x5

0 x3 4 1 -1 1 0 0

0 x4 18 3 -1 0 1 0

0 x5 6 -1 2 0 0 1

0 -2 -1 0 0 0
2 1 0 0 0
CB V.B. V.V.B xl x2 x3 x4 x5

2 x1 4 1 -1 1 0 0

0 x4 6 0 2 -3 1 0

0 x5 10 0 1
1 1 0

8 0 -3 2 0 0
2 1 0 0 0
CB V.B. V.V.B xl x2 x3 x4 x5

2 x1 7 1 0 -1/2 1/2 0

1 x2 3 0 1 -3/2 1/2 0

0 x5 7 0 0 5/2 -1/2 1

17 0 0 -5/2 -3/2 0

2 1 0 0 0
C B
V.B. V.V.B xl x2 x3 x4 x5

2 x1 42/5 1 0 0 2/5 1/5

1 x2 36/5 0 1 0 1/5 3/5


0 x3 14/5 0 0 1 -2/5 2/5

24 0 0 0 1 1

x2
 42 36 
C ,
 5 5

(d2)

B(7,3)
D (0,3)
(d1)

O (0,0) A(4,0) x1

Fig.2.5

Însă, după cum se vede din figură, nu există nici un program care să dea funcţiei
obiectiv valoarea z3 (dreapta 2x1 +x2 =z3 nu intersectează poligonul OABCD – domeniul
soluţiilor).
Cea mai mare valoare pe care o poate lua z pentru punctele din poligonul OABCD se
obţine atunci când dreapta 2x1 +x2 = z trece prin punctul C. Valoarea lui z în acest caz este 2.
42/5 + 36/5 = 24.

32
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

Când am aplicat algoritmul simplex, drept bază iniţială am luat baza B = (a3, a4, a5).
Variabilele x1 şi x2 sunt variabile secundare, deci au valoarea 0; reiese că ne-am găsit în
vârful O (0,0) al poligonului OABCD, iar valoarea funcţiei obiectiv era z = 0. În continuare,
variabila x1 intră în bază şi am obţinut programul x1 = 4, x2 = 0.
Geometric aceasta înseamnă că din vârful O ne-am deplasat până în vârful A (4,0) de-a
lungul muchiei OA. În continuare, din vârful A am ajuns în vârful B, mergând pe muchia AB
(variabila x3 a păstrat tot valoarea 0, deci ne găseam pe dreapta d1). De aici am ajuns în vârful
optim C, urmând muchia BC.
Valoarea funcţiei obiectiv a crescut de la 0 la 8, apoi la 17 (în vârful B) şi, în sfârşit, la
valoarea maximă 24.
Acest lucru este valabil şi în cazul general: fiecărei baze admisibile a problemei adusă
la forma standard îi corespunde un vârf al domeniului soluţiilor.
Concluzie: Fiecare iteraţie simplex reprezintă o deplasare de la un vârf al domeniului
soluţiilor, pe o muchie, până la un vârf, care conferă funcţiei obiectiv o valoare „mai bună”.

Exemplul 2.5.
O companie produce trei tipuri de produse A, B, C. Fiecare dintre aceste produse
trebuie prelucrate tehnologic aceeaşi maşină unealtă, timp de 2 ore, 3 ore respectiv 1 oră.
Maşina unealtă este disponibilă pentru perioada analizată, 400 ore.
Pentru produsele A şi C se folosesc componente speciale, câte o bucată pentru fiecare
produs, firma având un stoc disponibil pe perioada analizată de 150 de unităţi din aceste
componente. Tot pentru produsele A şi C se utilizează un aliaj special: pentru o unitate din
produsul A se utilizează 2 kg de aliaj special, iar pentru o unitate din produsul C, 4 kg. Stocul
disponibil este de 200 kg din acest aliaj special.
Studiul de piaţă pentru produsul B arată că se pot vinde pe perioada analizată cel mult
50 de unităţi din acest produs.
Beneficiul unitar al produselor A, B şi C este respectiv: 8 um (unităţi monetare), 5 um,
10 um.
Compania doreşte să stabilească planul de producţie care maximizează beneficiul total
pe perioada analizată.

Elaborarea modelului matematic


Notăm x1 = numărul de produse A
x2 = numărul de produse B
x3 = numărul de produse C
unde x1, x2, x3 pentru modelul analizat reprezintă variabilele de decizie.
­2 x1 + 3 x 2 + x3 ≤ 400
° x + x ≤ 150
° 1 3
®
° 1 4 x3 ≤ 200
2 x +
°¯ x 2 ≤ 50
x1 ≥ 0 , x 2 ≥ 0 , x3 ≥ 0
z = max(8 x1 + 5 x 2 + 10 x3 )
Se observă că problema nu are formă standard.
Introducem variabilele de compensare x4, x5, x6, x7 şi înlocuim max(z)=min(-z),
dorind să aplicăm algoritmul simplex pentru probleme de minim.
Calculele efectuate sunt grupate în tabelele simplex reunite în tabelul 2.4.
Soluţia optimă este: x = (100, 50, 0, 50, 50, 0, 0), iar funcţia obiectiv este min (f)= -
1050, deci max(z) = 1050
Interpretarea soluţiei:
Variabilele de decizie au valorile : x1 = 100, x2 = 50, x3 = 0

33
Programare liniară

­2 x1 + 3 x 2 + x3 + x 4 = 400
° x + x + x = 150
° 1 3 5
®
2
° 1 x + 4 x 3 + x6 = 200
°¯ x 2 + x7 = 50
xi ≥ 0 (i = 1,7)
f = min(−8 x1 − 5 x 2 − 10 x3 )
Matricea coeficienţilor tehnico - economici este:
ª2 3 1 1 0 0 0º
«1 0 1 0 1 0 0 »
A=« »
«2 0 4 0 0 1 0»
« »
¬0 1 0 0 0 0 1 ¼
Se vor fabrica 100 unităţi din produsul A, 50 unităţi din produsul B, zero unităţi din
produsul C.
Se va obţine beneficiul maxim, egal cu 1050 unităţi monetare.
Semnificaţia variabilelor de compensare rezultă din modul cum au fost introduse.
Verificând restricţiile iniţiale ale problemei cu soluţia optimă x1 = 100, x2 = 50, x3 = 0 şi
comparând cu sistemul de restricţii în care s-au introdus variabilele de compensare, rezultă:
- orele de lucru pe maşină nu s-au folosit integral, rămânând disponibile x4 = 50 ore;
- componentele nu s-au folosit integral, rămânând x5 = 50 unităţi.
- stocul de aliaj după efectuarea prelucrărilor este nul x6 = 0
- este satisfăcută condiţia de vânzare pentru B, x7 = 0.
Tabelul 2.4

-8 -5 -10 0 0 0 0

C B
V.B. V.V.B xl x2 x3 x4 x5 x6 x7

0 x4 400 2 3 1 1 0 0 0

0 x5 150 1 0 1 0 1 0 0

0 x6 200 2 0 4 0 0 1 0
0 x7 50 0 1 0 0 0 0 1
0 8 5 10 0 0 0 0
-8 -5 -10 0 0 0 0
CB V.B. V.V.B xl x2 x3 x4 x5 x6 x7

0 x4 350 3/2 3 0 1 0 -1/4 0


0 x5 100 1/2 0 1
0 0 -1/4 0
-10 x3 50 1/2 0 1 0 0 1/4 0
0 x7 50 0 1 0 0 0 1
0
-500 3 5 0 0 0 5/2 0
-8 -5 -10 0 0 0 0
CB V.B. V.V.B xl x2 x3 x4 x5 x6 x7
0 x4 200 3/2 0 1 0
0 -1/4 -3
0 x5 100 1/2 0 0 0 1 1/4 0
-10 x3 50 1/2 0 1 0 0 1/4 0
-5 x2 50 0 1 0 0 0 0 1
-750 3 0 0 0 0 5/2 -5
-8 -5 -10 0 0 0 0

C B
V.B. V.V.B xl x2 x3 x4 x5 x6 x7

0 x4 50 0 0 -3 1 0 -1 -3
0 x5 50 0 0 -1 0 1 -1/2 0
-8 x1 100 2 0 0 0
1 0 1/2
-5 x2 50 0 1 0 0 0 0 1
-1050 0 0 -6 0 0 -4 -5

34
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

2.3.3. Metode de determinarea unei soluţii de bază iniţiale

Algoritmul simplex necesită, pentru pornire, ca problema să fie dată în forma standard
şi să aibă o soluţie admisibilă de bază.
Prima dintre condiţii se realizează folosind transformări utilizate în programarea
liniară.
Pentru cea de-a doua condiţie alegerea la întâmplare a unei baze formată din m vectori
ai matricei A, conduce la soluţii de bază nerealizabile cu care algoritmul simplex nu poate
începe.
Găsirea unei baze pur şi simplu prin încercări repetate nu este indicată, această căutare
putând dura foarte mult.
Rezolvarea problemei pleacă de la observaţia că singura bază pentru care calculul de
mai sus se poate face imediat este matricea unitate, caz în care soluţia de bază
corespunzătoare este chiar vectorul termenilor liberi.
Aceasta presupune ca problema să aibă toţi termenii liberi mai mari sau egali cu 0 şi în
matricea A să existe toate coloanele matricei unitate.
În acest sens plecăm de la observaţia că existenţa unui vector din matricea unitate este
echivalentă cu existenţa unei variabile care apare doar în ecuaţia corespunzătoare lui 1 din
acel vector, cu coeficientul 1. Acest lucru poate fi obţinut în două moduri:
1) Alegem o nouă funcţie obiectiv care să-şi atingă extremul printre soluţiile
pozitive chiar pentru y = 0 şi în momentul când am obţinut soluţia respectivă pornim cu
aceasta ca soluţie iniţială algoritmul simplex pentru fosta problemă (Metoda celor două
faze).
2) Adăugăm la vechea funcţie obiectiv noi variabile y cu coeficienţi aleşi astfel
încât aportul variabilelor la valoarea funcţiei să fie contrar scopului dorit (infinit pozitiv
într-o problemă de minim şi infinit negativ într-o problemă de maxim) (Metoda
coeficienţilor de penalizare)
Vom detalia în continuare cele două metode:

Metoda celor două faze


Fie dată problema de programare liniară la forma standard de maxim:

­max c T' ⋅ x
°
® A⋅ x = b (2.77)
° x≥0
¯
în care am aranjat deja ca toţi termenii liberi să fie pozitivi .

Faza 1
Constă în rezolvarea unei probleme de programare liniară auxiliară, asociată problemei
iniţiale. Astfel construim problema:

­ f ( x a ) = min( x ma +1 + x ma + 2 + ... + x ma + n )
°
® Ax + I m x a = b (2.78)
° x ,xa ≥ 0
¯

unde xa sunt variabilele artificiale ce se introduc în restricţiile problemei atât cât sunt
necesare în scopul formării bazei unitare; Im matricea unitate de ordin m.
Rezolvăm cu algoritmul simplex această problemă, pornind rezolvarea de la baza
matrice unitate, putem ajunge la două situaţii:

35
Programare liniară

1. minimul funcţiei f este strict pozitiv, aceasta fiind echivalent cu faptul că egalitatea Ax +
Imxa = b se poate obţine doar pentru Imxa > 0 sau altfel spus Ax > b pentru orice x ≥ 0, deci
sistemul Ax = b nu are soluţii admisibile şi în concluzie problema iniţială nu are soluţie.
2. minimul funcţiei f este 0, în acest caz, soluţia optimă obţinută verifică Ax = b, fiind în
concluzie o soluţie admisibilă de bază a primei probleme.

Faza 2
Începând de la soluţia găsită la Faza 1 se rezolvă problema iniţială cu algoritmul
simplex. Se îndepărtează din tabelul simplex toate elementele corespunzătoare variabilelor
artificiale (cu excepţia celor care rămân în bază), introducând coeficienţii funcţiei obiectiv din
problema iniţială.
Dezavantajul metodei constă în faptul că tabelul simplex final de la faza 1 trebuie
modificat pentru a se obţine tabelul simplex iniţial de la faza 2, eliminându-se coloanele
corespunzătoare lui y şi totodată nu vom avea în tabelele simplex ale problemei iniţiale
inversa bazei (se găsea în dreptul coloanelor matricei unitate din prima fază) necesară în
anumite variante ale algoritmului simplex.

Metoda coeficienţilor de penalizare


Fie problema de programare liniară la forma standard de minimizare:
­min c T x
°
® A⋅ x = b (2.79)
° x≥0
¯

în care toţi termenii liberi sunt pozitivi şi matricea A nu conţine nici un vector coloană unitar.
Construim problema:

­ f = max(c T x − My)
°
® A⋅ x + y = b (2.80)
° x, y ≥ 0
¯

în care M este o constantă presupusă foarte mare (mai mare decât orice constantă care
ar putea apare în rezolvarea problemei).
Rezolvăm problema cu algoritmul simplex pornind rezolvarea de la baza matrice
unitate, putând ajunge la trei situaţii:
1) problema are optim infinit, în acest caz, problema iniţială are optim infinit ( nu
prezintă interes din punct de vedere tehnico-economic).
2) problema are optim finit şi în soluţia de bază avem cel puţin o variabilă din
vectorul y. În acest caz problema iniţială nu are soluţii admisibile.
3) problema are optim finit şi în soluţia de bază nu avem nici o variabilă din
vectorul y. În acest caz problema iniţială are optim finit, soluţia optimă şi maximul
funcţiei fiind aceleaşi cu cele ale problemei modificate.
Se remarcă faptul că variabilele y nu au aceeaşi semnificaţie economică ca celelalte
variabile, ele fiind introduse doar ca un artificiu de calcul pentru a putea porni algoritmul
simplex.

Observaţii :
• Dacă matricea restricţiilor conţine vectori unitari, atunci numărul variabilelor
artificiale introduse este egal cu m, numărul vectorilor unitari, indiferent de tipul
funcţiei obiectiv.

36
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

• Dacă la aplicarea algoritmului simplex, o variabilă artificială iese din bază ea nu


va mai intra niciodată, ceea ce arată eliminarea din calculele ulterioare.

Exemplu 2.6
Un atelier de prelucrări mecanice fabrică două produse P1 şi P2.
Din structura de dezagregarea produselor se deduce că pentru realizarea produsului P1
sunt necesare 3 componente de tip A şi un component de tip B, iar pentru realizarea
produsului P2 sunt necesare 1 component de tip A şi 4 componente de tip B.
Atelierul dispune în stoc de 10 componente de tip A. Contractele cu furnizorii
pentru componentele de tip B, arată că se poate realiza aprovizionarea cu acesta în cantitate de
cel puţin două componente B.
Beneficiul unitar pentru produsele P1 şi P2 sunt de 2 um, respectiv de 3um.
Se doreşte să se stabilească planul de producţie care să maximizeze beneficiul total.

Modelul matematic este următorul:

f = max(2 x1 + 3 x 2 )
­3 x1 + x 2 ≤ 10
°
® x1 + 4 x 2 ≥ 2
° x ,x ≥ 0
¯ 1 2
unde x1 , x 2 , reprezintă numărul de produse de tip P1 respectiv P2.
Forma standard a problemei va fi:
(max ) f = 2 x1 + 3 x2
­3 x1 + x 2 + x3 = 10
°
® x1 + 4 x 2 − x 4 = 2
° x ,x ,x ,x ≥ 0
¯ 1 2 3 4

În matricea A vom introduce variabila x5 cu coeficientul 1 în a doua ecuaţie şi


împreună cu coeficienţii variabilei x3 în final vom avea de rezolvat problema prin cele două
metode:
Metoda celor două faze Metoda coeficienţilor de
penalizare
min( x5 ) max(2 x1 + 3 x 2 − Mx 5 )
­ 3 x1 + x2 + x3 = 10 ­ 3 x1 + x 2 + x3 = 10
° °
® x1 + 4 x2 − x4 + x5 = 2 ® x1 + 4 x 2 − x 4 + x 5 = 2
° x ,x ,x ,x ,x ≥ 0 ° x ,x ,x ,x ,x ≥ 0
¯ 1 2 3 4 5 ¯ 1 2 3 4 5

Aplicând Metoda celor două faze vom obţine succesiv tabele:

0 0 0 0 1
cB xB xB x1 x2 x3 x4 x5
0 x3 10 3 1 1 0 0
1 x5 2 1 4 0 -1 1
2 1 4 0 -1 0
0 0 0 0 1
cB xB xB x1 x2 x3 x4 x5
0 x3 19/2 11/4 0 1 1/4 -1/4
0 x2 1/2 1/4 1 0 -1/4 1/4
0 0 0 0 0 -1

37
Programare liniară

Am obţinut optimul egal cu 0 în soluţia de bază (x3,x2) care va fi soluţia iniţială pentru
algoritmul simplex aplicat problemei iniţiale în a doua fază.
Eliminăm din tabel coloana lui x5, înlocuim valorile coeficienţilor funcţiei obiectiv şi
deci şi valoarea acesteia, valorile z Bj − c j şi rezolvăm problema în continuare, plecând de la
baza primal admisibilă determinată, cu algoritmul simplex primal, obţinând tabelele de mai
jos:
2 3 0 0
cB xB xB x1 x2 x3 x4
0 x3 19/2 11/4 0 1 1/4
3 x2 1/2 1/4 1 0 -1/4
3/2 -5/4 0 0 -3/4
2 3 0 0
cB xB xB x1 x2 x3 x4
0 x3 4 0 -11 1 3
2 x1 2 1 4 0 -1
4 0 5 0 -2
2 3 0 0
cB xB xB x1 x2 x3 x4
0 x4 4/3 0 -11/3 1/3 1
2 x1 10/3 1 1/3 1/3 0
20/3 0 -7/3 2/3 0
2 3 0 0
cB xB xB x1 x2 x3 x4
0 x4 38 11 0 4 1
3 x2 10 3 1 1 0
30 7 0 3 0

Soluţia optimă a primei probleme este deci x1 = 0 şi x2 = 10 care dă un maxim al funcţiei


egal cu 30.
Aplicând Metoda coeficienţilor de penalizare vom obţine succesiv următoarele tabele:

2 3 0 0 -M
cB xB xB x1 x2 x3 X4 x5
0 x3 10 3 1 1 0 0
-M x5 2 1 4 0 -1 1
-2M -M -4M 0 M -M
-M-2 -4M-3 0 M 0
2 3 0 0 -M
cB xB xB x1 x2 x3 x4 x5
0 x3 19/2 11/4 0 1 ¼ -1/4
3 x2 1/2 1/4 1 0 -1/4 1/4
3/2 -5/4 0 0 -3/4 M+3/4
2 3 0 0 -M
cB xB xB x1 x2 x3 x4 x5
0 x3 4 0 -11 1 3 -3
2 x1 2 1 4 0 -1 1
4 0 5 0 -2 2+M
2 3 0 0 -M
cB xB xB x1 x2 x3 x4 x5
0 x4 4/3 0 -11/3 1/3 1 -1
2 x1 10/3 10/3 1 1/3 0 0
20/3 0 -7/3 2/3 0 M
2 3 0 0 -M
cB xB xB x1 x2 x3 x4 x5
0 x4 38 11 0 4 1 -1
3 x2 10 3 1 1 0 0
30 7 0 3 0 M

38
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

2.3.4. Interpretarea a algoritmului simplex primal

Se consideră problema de optimizare a activităţii unei firme producătoare. Aceasta


realizează n produse , cu un profit unitar cj , j = 1, n . Firma utilizează mai multe resurse prime
Ri , i = 1, m , disponibile în cantităţile limitate bi. Consumurile specifice de resurse pentru
fiecare produs sunt aij , i = 1, m , j = 1, n .
Obiectivul firmei este obţinerea unui profit total maxim, cu restricţiile ce provin din
consumul integral al resurselor disponibile .
Modelul de optimizare a activităţii firmei este reprezentat de problema de programare
liniară în forma standard :

­(max) z = c T x
°
® Ax = b (2.81)
° x≥0
¯

în care xj , j = 1, n , este cantitatea din produsul j ce urmează a fi fabricată.


Consumarea (utilizarea) integrală a resurselor nu este strictă, deoarece în lista
operaţiilor productive se poate include un număr de operaţii fictive (corespunzătoare
variabilelor ecart) ale căror valori să reprezinte cantitatea din resurse neconsumată.
În soluţia de bază a algoritmului simplex numărul componentelor nenule nu depăşeşte
numărul restricţiilor.
De aceea, în orice soluţie optimă a problemei, numărul produselor ce urmează a fi
fabricate nu depăşeşte numărul resurselor folosite .
Coloanele a(j) din baza B ce corespund operaţiilor j le vom numi operaţii de bază,
celelalte fiind operaţii secundare.
Programul optim prevede obţinerea, numai prin operaţiile de bază, a produselor, astfel
încât să fie consumate integral resursele disponibile.
O posibilitate de a obţine un program mai bun constă în identificarea unor operaţii
secundare care să înlocuiască o parte din operaţiile de bază curente. Pentru acesta este necesar
un criteriu de comparare a operaţiilor secundare cu cele de bază .
În ipoteza că baza B=[a(1), a(2), …..,a(m)], din relaţia (2.59)

yBj=B-1a(j) , j = 1, n (2.82)

deducem :

A(j)= ByBj , j = 1, n (2.83)

care se poate scrie

A( j ) = y1Bj A(1) + y 2Bj A( 2 ) + ... + y mj


B ( m)
A (2.84)

Relaţia de mai sus are următoarea semnificaţie din punct de vedere tehnico-economic,
fabricarea unei unităţi de produs j este echivalentă cu fabricarea cantităţilor y1B, j , y 2Bj ,..., y mj
B

din produsele operaţiilor de bază. Ca urmare, pentru fabricarea unei unităţi din produsul j este
necesar a diminua producţia operaţiilor de bază cu cantităţile y1Bj , y 2Bj ,..., y mj
B
.

39
Programare liniară

Aportul produsului j la creşterea profitului firmei poate fi comparat cu aportul valoric


al cantităţilor y1B, j , y 2Bj ,..., y mj
B
.
În consecinţă, dacă:

z Bj − c j = c1 y1Bj + c2 y 2Bj + ... + c m y mj


B
−cj ≥0 (2.85)

fabricarea produsului j nu este rentabilă întrucât nu conduce la o majorarea valorii (profitului)


producţiei curente.
Dacă pentru toate operaţiile secundare avem

z Bj − c j ≥ 0 , j = 1, n (2.86)

atunci programul de fabricaţie curent este optim. Acesta este, criteriul de optimalitate al
algoritmului simplex.
Dacă z Bj − c j < 0 , atunci activitatea secundară j conduce la o majorare a profitului
realizabil prin programul curent, egală cu − ( z Bj − c j ) .
Dintre operaţiile secundare j ∈ J rentabile în raport cu operaţiile de bază se va alege
acea operaţie k care asigură cea mai mare viteză de creştere a valorii curente a producţiei (
interpretarea criteriului de intrare în bază).
O altă problemă care se mai pune este stabilirea cantităţii din produsul j care se poate
realiza în condiţiile date.
Fabricarea unei cantităţi θ din acest produs implică diminuarea producţiei din
produsele operaţiilor de bază astfel:

x1 = x1B − θy1Bk , x 2 = x 2B − θy 2Bk ,..., x m = x mB − θy mk


B
(2.87)

Evident, desfăşurarea unei activităţi la un nivel negativ este lipsită de sens economic.
Astfel este necesar ca :

xi = xiB − θyikB ≥ 0 , i = 1, m (2.88)

de unde obţinem condiţia:

xiB
θ ≤ θ 0 = min (2.89)
i yikB
y B >0
ik

Presupunem că valoarea θ 0 se obţine pentru indicele 1. Atunci:

xB
xl = xlB − θ 0 ylkB = xlB − l ylkB = 0 (2.90)
ylkB

Ca urmare, operaţia l nu va mai fi folosită, iar în locul ei se va utiliza operaţia k, care


asigură creşterea maximă a valorii curente a producţiei şi, implicit, maximizează profitului
firmei.

40
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

Aceasta este interpretarea a criteriului de ieşire din bază al algoritmului simplex.


Cazul optimului infinit, ca soluţie a problemei de programare liniară, nu este
semnificativ din punct de vedere economic.

2.4. Dualitatea în programarea liniară

2.4.1. Problema duală. Fundamente teoretice.

Problema duală
Dualitatea în programarea liniară ocupă un rol important atât din punct de vedere
teoretic cât şi din punct de vedere practic. Pe teoremele de dualitatea se bazează mulţi
algoritmi de rezolvare a problemelor de programare liniară.
Fie problema de programare liniara dată sub forma generală numită problema
primală :

­ a11 x1 + a12 x 2 + a13 x3 ≥ b1


°a x + a x + a x = b
°° 21 1 22 2 31 3 2
® a31 x1 + a32 x 2 + a33 x3 ≤ b3 problema primală (2.91)
° x ≥ 0 ; x arbitrar ; x ≤ 0
° 1 2 3
(
°¯ min c1 x1 + c2 x 2 + c3 x3 )
Numim problemă duală a problemei de programare liniara următoarea problema de
programare liniara:

(
­ max b ′u + b ′u + b ′u
° ′ 1 1′ 2 2 ′ 3 3
)
° a11 u1 + a 21 u 2 + a31 u 3 ≤ c1
° ′
®a12 u1 + a 22′u 2 + a32′u 3 = c2 problema duală (2.92)
° ′ ′ ′
° a13 u1 + a 23 u 2 + a33 u 3 ≥ c3
°¯ u1 ≥ 0 ; u 2 arbitrar ; u 3 ≤ 0

Observăm că duala problemei dualei este chiar problema primală. Datorită legăturii
strânse ce se stabileşte între aceste probleme care sunt duale una celeilalte, vom spune ca
problema (2.91) şi problema (2.92) formează un cuplu de probleme duale.
Problema duală se obţine din problema primală folosind următoarele transformări :

- Termenii liberi din problema primală devin coeficienţi ai funcţiei obiectiv din
problema duală.
- Coeficienţii funcţiei obiectiv din problema primală devin termeni liberi în
problema duală.
- O problemă de maximizare primală devine problemă de minimizare duală.
- Matricea coeficienţilor din problema duală este transpusa matricei coeficienţilor
din problema primală
- Variabilele duale corespunzătoare unor restricţii concordante din problema primală
sunt nenegative, iar cele corespunzătoare unor restricţii primale neconcordante
sunt nepozitive.
- Variabilele primale negative le corespund în problema duală restricţii concordante,
iar variabilelor primale pozitive le corespund în problema duală restricţii
neconcordante.

41
Programare liniară

- Variabilele duale corespunzătoare restricţiilor primale care sunt ecuaţii, pot fi de


semn oarecare.
- Variabilelor primale oarecare le corespund restricţii duale care sunt ecuaţii.

Exemplul 2.7 Determinaţi duala problemei de programare liniară:

f = max(2x1 – 5x2 + 4x3)


­ x1 − x2 + 4 x3 ≥ 7
° x − 5x + 3x = 6
° 2 1 3
®
° x1 + 2 x3 ≤ 3
°¯− x3 + 2 x1 − 5x2 ≥ 8
x1 ≤ 0, x2 oarecare, x3 ≥ 0

Conform regulilor de mai sus vom avea:


− duala este de minim deoarece primala este de maxim;
− variabilele dualei vor fi:
u1 corespunzătoare restricţiei: x1 – x2 + 4x3 ≥ 7
u2 corespunzătoare restricţiei: x2 – 5x1 + 3x3 = 6
u3 corespunzătoare restricţiei: x1 + 2x3 ≤ 3
u4 corespunzătoare restricţiei: –x3 + 2x1 - 5x2 ≥ 8

− funcţia obiectiv a dualei va fi produsul dintre termenii liberi ai restricţiilor primalei cu


variabilele corespunzătoare din duală:
g = 7u1 + 6u2 + 3u3 + 8u4
− duala va avea 3 restricţii, câte variabile are primala, ele obţinându-se astfel:
Prima restricţie (asociată variabilei x1)
- termenul stâng al restricţiei se obţine înmulţind coeficienţii variabilei x1 din cele 4
restricţii ale primalei cu variabilele corespunzătoare acestora din duală: u1 –5u2 + u3 + 2u4
- termenul liber al restricţiei va fi coeficientul lui x1 din funcţia obiectiv a primalei,
adică b1 = c1 = 2
- deoarece variabila corespunzătoare acestei restricţii, x1, este negativă, restricţia va fi
neconcordantă şi deoarece duala este problemă de minim rezultă că va fi cu ≤.
În concluzie, prima restricţie va fi: u1 –5u2 + u3 + 2u4 ≤ 2
Analog se vor determina şi celelalte două restricţii:
-u1 + u2 - 5u4 = -5
4u1 + 3u2 + 2u3 - u4 ≥ 4
− restricţiile de semn ale variabilelor dualei vor fi:
 u1 ≤ 0, deoarece restricţia corespunzătoare este neconcordantă;
 u2 oarecare, deoarece restricţia corespunzătoare este egalitate;
 u3 ≥ 0, deoarece restricţia corespunzătoare este concordantă;
 u4 ≤ 0, deoarece restricţia corespunzătoare este neconcordantă.
În final, problema duală este:

(min) 7u1 + 6u2 + 3u3 + 8u4


­ u1 − 5u 2 + u 3 + 2u 4 ≤ 4
°
® − u1 + u 2 − 5u 4 = −5
°4u + 3u + 2u − u ≥ 4
¯ 1 2 3 4
u1 ≤ 0, u2 oarecare, u3 ≥ 0, u4 ≥ 0

42
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

Exemplul 2.8

Să se scrie duala problemei de programare liniară dată în formă canonică:


­max (3 x1 + 2 x 2 + 5 x3 + x 4 )
° x − x + 3 x + x ≤ 15
°° 1 2 3 4

®2 x1 − x3 − x 4 ≤ 5
° x + 2 x − x ≤ 10
° 2 3 4

¯° x1 ,..., x 4 ≥ 0

Se construieşte tabelul cu datele problemei iniţiale:


max
min 3 2 5 1

u1 1 -1 3 1 15
u2 2 0 -1 -1 5
u3 0 1 2 -1 10
x1 x2 x3 x4

Aşadar, problema duală este:

­min (15u1 + 5u 2 + 10u 3 )


°u + u ≥
° 1 2 3
°°− u1 + u 3 ≥ 2
®
°3u1 − u 2 + 2u 3 ≥ 5
°u1 − u 2 − u 3 ≥ 1
°
°¯u1 , u 2 , x3 ≥ 0

Fundamente teoretice
Fără a restrânge din generalitate ne vom ocupa în continuare de cuplul de probleme
duale (2.91) - (2.92), prima fiind considerată problema primală, iar cea de-a doua, problema
duală.
Se notează

{
P = x ∈ R n Ax = b, x ≥ 0 } (2.93)
{ m T
D = u ∈ R A u ≤ c, u ≥ 0 } 2.94)
Mulţimile soluţiilor admisibile (sau programelor) ale problemei primale (2.91),
respectiv, duale (2.92).
Teorema 2.8. Dacă x ∈ P şi u ∈ D , atunci c T x ≥ b T u .

Teorema 2.9. Fie x * ∈ P , u * ∈ D şi c T x * ≥ b T u * . Atunci x* nu este soluţie optimă a


problemei primale, iar u* este soluţie optimă a problemei duale

Propoziţia 2.1. Dacă L este o matrice antisimetrică (LT = -L), atunci sistemul de inegalităţi
liniare

43
Programare liniară

­l ⋅ t ≥ 0
® (2.95)
¯t ≥ 0

are cel puţin o soluţie t astfel încât

L ⋅t > 0 (2.96)

Teorema 2.10. (Teorema fundamentală a dualităţii) Fie cuplul de probleme duale (2.91) -
(2.92). Atunci una şi numai una din următoarele situaţii este posibilă :
a) Ambele probleme au soluţii admisibile. În acest caz, ambele probleme au soluţii
optime şi valori optime ale funcţiilor obiectiv sunt egale.
b) Una din probleme are soluţii admisibile, iar cealaltă nu are (este incompatibilă). În
acest caz, problema compatibilă are optim infinit.
c) Nici una dintre probleme nu are soluţii admisibile.

Teorema 2.11. (Teorema ecarturilor complementare). Fie cuplul de probleme duale canonice
(2.91) - (2.92). Atunci x ∈ P şi u ∈ D sunt soluţii optime pentru cele două probleme dacă şi
numai dacă:

( )
­°u T A x − b = 0
(2.97)
® T
(
°̄u c − AT u = 0 )
Exemplul 2.9
Într-un atelier mecanic se produc două de tipuri de piese P1, P2.
Timpii unitari de prelucrarea celor două piese pe cele două maşini unelte M1, M2,
profitul unitar şi disponibilul de timp al maşinilor unelte sunt date în tabelul de mai jos:

P1 P2 Disponibil
resurse
M1 4 3 16sp
M2 1 2 6sp
Profit 3um 7um
unitar

Modelul matematic pentru problema dată este:

­ f = max(3 x1 + 7 x 2 )
°4 x + 3 x ≤ 16
° 1 2
®
° x1 + 2 x 2 ≤ 6
°¯ x1 , x 2 ≥ 0

Mulţimea soluţiilor admisibile ale problemei (primale) este reprezentată în fig. 2.6.
* *
Problema admite soluţia optimă x1 = 0 , x 2 = 3 , pentru fiecare funcţia obiectiv are
valoarea f max = 21 .

44
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

x2

d1

C(0,3)

B(14/5,8/5)

d2

0 A(4,0) x1

Fig.2.6
Problema duală este:
­ g = min(16 u 1 + 6 u 2 )
°4u + u ≥ 3
° 1 2
®
°3u 1 + 2u 2 ≥ 7
°¯u 1 , u 2 ≥ 0

Mulţimea soluţiilor admisibile ale problemei duale este reprezentată în fig.2.7.

u2

d2
d1

0 A(0,3/4) B(0,7/2) u1

Fig.2.7

* *
Problema admite soluţia optimă u 1 = 0 , u 2 = 7 / 2 .Valoarea funcţiei obiectiv este
g min = 21 , evident aceeaşi ca şi în cazul problemei primale.
Din cele arătate se constată că prin rezolvarea uneia dintre cele două probleme duale
se poate determina şi soluţia celeilalte. Tabelul simplex final corespunzător uneia dintre
probleme conţine componentele soluţiilor optime ale ambelor probleme.
Aceste rezultate teoretice se utilizează în practica industrială în cazul când planul de
producţie conţine o varietate mare de produse ce se fabrică în aceleaşi condiţii tehnico
economice.

2.4.2. Algoritmul simplex dual

Fie problema de programare liniară în forma standard

­min c T x
°
® Ax = b (2.98)
°x ≥ 0
¯
unde x, c ∈ R , b ∈ R m , A ∈ M m×n , cu rang A = m < n.
n

45
Programare liniară

Duala acestei probleme este :

­max b T u
°° '
®A u ≤ c (2.99)
°u arbitrar
°¯

Definiţia 2.9 O bază B formată cu m coloane liniar independente a lui A se numeşte dual
admisibilă dacă sunt satisfăcute condiţiile

z Bj − c j ≤ 0, j = 1, n (2.100)

Propoziţia 2.2. Dacă B este o bază dual admisibilă, atunci

u BT = c TB B −1 (2.101)

este o soluţie a problemei duale (2.98).

Teorema 2.12. (Teorema de optimalitate). Fie B o bază dual admisibilă pentru problema
{ B
}
primală (2.98). Fie mulţimea I _ = i ∈ I x i < 0 I_=∅, atunci soluţia de bază asociată bazei
B
B, x = B −1b , este o soluţie optimă a problemei (2.98).

Teorema 2.13. (Teorema de incompatibilitate a problemei primale). Fie B o bază dual


admisibilă pentru problema primală (2.92), iar I_≠∅, Deci există i ∈ I _ astfel încât
y ijB ≥ 0, ∀j ∈ J , atunci problema (2.92) nu are soluţii.

Teorema 2.14. (Teorema de îmbunătăţire a soluţiei) Fie B o bază dual admisibilă pentru
problema primală (4.29), iar I_≠∅. Dacă pentru orice i ∈ I _ există j ∈ J astfel încât
y ijB < 0 , şi dacă se alege l ∈ I _ arbitrar, iar k ∈ J astfel încât să fie satisfăcută condiţia :

­° z Bj − c j ½° z kB − c k
min ® B ¾= (2.102)
j
B
y <0
°̄ y lj °¿ y lkB
lj

atunci matricea B’ obţinută din B prin înlocuirea coloanei A(l) cu coloana A(k) este o bază
dual admisibilă, iar programul dual asociat uB’ este cel puţin la fel de bun ca programul uB

Algoritmul simplex dual

Pentru problema primală de minimizare sau maximizare este:

Pasul 1. Se determină o bază dual admisibilă iniţială B.

B B
Pasul 2. Se calculează x , z , y Bj , z Bj , − c j , j = 1, n .

46
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

Pasul 3. Se determină mulţimea


{
I _ = i ∈ I xi < 0
B
}
B
Dacă I_≠∅, atunci STOP : x este program optim al problemei; astfel se trece la pasul
următor.

Pasul 4. Se determină indicele k ∈ I _ cu criteriul de ieşire din bază

{}
min x i = x l
i∈I _
B B

Dacă y ijB ≥ 0, j = 1, n , atunci STOP : problema nu are soluţii; astfel se determină indicele
k ∈ J cu criteriul de intrare în bază:

­° z Bj − c j ½° z B − c
¾=
k k
min ® B B
j
yljB <0
°̄ y lj °¿ y lk

Pasul 5. Fie baza B’ obţinută din B prin înlocuirea coloanei A(l) cu coloana A(k).
Se trece la Pasul 2, înlocuind peste tot baza B cu baza B’.

Algoritmul simplex dual poate fi exprimat sintetic sub forma schemei logice din
fig.2.8

START

Construieste
tabel simplex
initial

Exista Nu
variabile de baza cu valori Indica STOP
negative ? solutia optima

Da
Determina
linia pivotului

Exista Nu
valori negative in linia Nu exista STOP
pivotului? solutii

Da
Determina
coloana pivotului

Calculeaza un nou
tabel simplex

Fig.2.8

47
Programare liniară

Exemplul 2.10

Să se rezolve problema de programare liniară:

­max(− 3 x1 − 2 x 2 )
° x − 2 x + 3x ≥ 4
° 1 2 3
®
2
° 1 x + x 2 − x 3 ≥ 2
°¯ x1 , x 2 , x3 ≥ 0

Se aduce problema la forma standard prin introducerea variabilelor de compensare x4, x5 şi se


înmulţesc cu –1 cele două restricţii:

­max(− 3x1 − 2 x 2 )
°− x + 2 x − 3 x + x = −4
° 1 2 3 4
®
°− 2 x1 − x 2 + x3 + x5 = −2
°¯ x1 ,..., x5 ≥ 0

Baza iniţială B este matricea unitate formată cu coloanele A(4), A(5) . Tabelul simplex asociat
are ca variabile de bază pe x4 şi x5:

-3 -2 0 0 0
cB V.B. V.V.B. x1 x2 x3 x4 x5
0 x4 -4 -1 2 -1 1 0
0 x5 -2 -2 -1 1 0 1
0 3 2 0 0 0

Baza iniţială este dual admisibilă deoarece z Bj − c j ≥ 0 . Se poate aplica deci


algoritmul simplex dual. Soluţia asociată bazei B admisibilă întrucât: x1 = x 2 = x 3 = 0 ,
x 4 = −4 , x 5 = −2 .
Mulţimea I _ = {4,5} . Conform criteriului de ieşire din bază avem:
{}
min x i = min{− 4,−2} = −4 = x 4 ; se obţine l = 4 , deci din bază va ieşi vectorul A(4).
i∈I _
B B

Conform criteriului de intrare în bază avem:

­° z Bj − c j ½° ­ 3 0 ½ zB − c
min ® ¾ = min ® , ¾ =0= 3 B 3 ;
°¿ y4B jj<0 ¯ − 1 − 1 ¿
B
j
y4B j < 0
°̄ y 4 j y43

se obţine k = 3, deci în bază va intra vectorul corespunzător variabilei x3.


Noul tabel simplex este:
-3 -2 0 0 0
cB V.B. V.V.B. x1 x2 x3 x4 x5
0 x4 4 1 -2 1 -1 0
0 x5 -6 -3 1 0 1 1
0 3 2 0 0 0

48
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

Soluţia nu este optimă întrucât x 5 = −6 . Din bază va ieşi vectorul corespunzător


variabilei x3=5 şi va intra vectorul corespunzător variabilei x1. Se obţine tabelul simplex :

-3 -2 0 0 0
cB V.B. V.V.B. x1 x2 x3 x4 x5
0 x4 2 0 -5/3 1 -2/3 1/3
-3 x 5 2 1 -1/3 0 -1/3 -1/3
0 0 3 0 1 1

2.4.3 Interpretarea economică a dualităţii

Introducerea dualităţii este motivată din mai multe puncte de vedere:

Teoretic. Una din problemele centrale ale programării matematice este caracterizarea
situaţiilor în care există optimul unei probleme şi găsirea unor metode prin care să
recunoaştem optimalitatea unei soluţii.
Teorema fundamentală a dualităţii şi teorema ecarturilor complementare reprezintă
rezultate chiar în acest sens, în care se foloseşte dualitatea.
Practic. Putem rezolva o problemă rezolvând problema duală a acesteia sau cunoscând soluţia
dualei.
În unele cazuri, rezolvarea dualei este mult mai uşoară decât rezolvarea primalei, de
exemplu când numărul de restricţii al primalei este mai mare decât numărul de variabile al
acesteia sau când primala necesită mai multe variabile suplimentare decât duala.
Economic. În cele mai multe probleme economice, a căror rezolvare se face printr-un model
de programare liniară, soluţia dualei aduce o serie de informaţii suplimentare despre problema
studiată.
Semnificaţia economică a soluţiei dualei depinde de specificul problemei şi trebuie găsită de
la caz la caz.
Având în vedere că max[f(x)] = min [g(u)], rezultă că, dacă, cantitatea disponibilă din
resursa Ri creşte cu o unitate, atunci valoarea funcţiei obiectiv creşte cu ui, deci ui măsoară
creşterea valorii funcţiei obiectiv determinată de creşterea cu o unitate a cantităţii disponibile
bi.
Aceste evaluări obţinute dintr-un program optim au fost denumite în literatura de
specialitate "preţuri umbră"(„shadow price”).
Preţul umbră ui arată cu cât se modifică funcţia obiectiv a problemei duale, atunci când
termenul liber al restricţiei Ri se "relaxează" cu o unitate. A "relaxa" are semnificaţia de a
spori cantitatea disponibilă bi a unei resurse deficitare sau, pentru restricţiile de tip calitativ cu
n
limită inferioară impusă ( ¦ a ij x j ≥ bi), de a reduce nivelul termenului liber bi.
j=1
Este evident că, dacă o resursă nu este utilizată în întregime pentru satisfacerea
n
programului optimal xB ( ¦ a ij x j < bi), atunci ui = 0 iar funcţia obiectiv nu este afectată de
j=1
sporire a cantităţii disponibile bi.
Preţurile umbră (preţuri duale) aduc informaţii suplimentare pentru analiza eficienţei
economice a resurselor şi a diferiţilor indicatori economici sau tehnici care apar în restricţiile
unei probleme de programare liniară.
Pe baza lor se pot fundamenta deciziile privind alocarea judicioasă a resurselor, se pot
stabili măsuri de stimulare a consumului raţional al resurselor, se determină cât mai corect
nivelul minim şi maxim al diferiţilor indicatori tehnici şi economici de care depinde structura
planului optim.
49
Programare liniară

Soluţia optimă obţinută prin utilizarea datelor iniţiale poate constitui un punct de
plecare pentru analiza economică privind alocarea eficientă a resurselor.
Pentru problemele în care se cere maximizarea funcţiei f(x), indicatorii zj reprezintă
costul unitar de fabricaţie al produsului j, rezultat din evaluarea coeficienţilor aij prin preţurile
umbră ataşate restricţii1or.
Rezultă că, prin calcularea diferenţei zj-cj, se compară acest cost unitar cu coeficientul
cj (preţ unitar, beneficiu unitar etc.) din funcţia obiectiv.
Dacă există diferenţe negative (zj-cj < 0) înseamnă că, la activităţile respective, preţul
umbră al produsului j (costul unitar de fabricaţie exprimat în indicatori ui) este mai mic decât
venitul realizat şi de aceea activitatea aj este eficientă.
Aşa se explică faptul că va intra în bază vectorul a(k) ce corespunde diferenţei (zj-cj)
minime.
În momentul în care toate diferenţele sunt pozitive (zj-cj ≥ 0) rezultă că nu mai există
activităţi eficiente şi prin urmare soluţia de bază analizată este optimă.
În cazul problemelor de minim, indicatorii zj se pot interpreta ca venituri, exprimate în
preţurile umbră ale restricţiilor, ce se obţin prin realizarea unei unităţi din produsul j.
Prin urmare, dacă există diferenţe pozitive (zj-cj > 0), activităţile aj corespunzătoare
sunt eficiente, deoarece se realizează un venit unitar mai mare decât costul unitar de fabricaţie
(zj > cj).
De aceea, va intra în bază activitatea ak, corespunzătoare diferenţei maxime, iar soluţia
de bază se consideră optimă atunci când toate diferenţele (zj-cj) sunt nepozitive .

Exemplul 2.11
O firmă fabrică trei tipuri de produse P1, P2, P3, utilizând patru tipuri de resurse R1, R2,
R3, R4.
Procesul tehnologic de realizare a celor trei produse, timpul disponibil al fiecărei
resurse, cererea minimă şi maximă din fiecare produs conform studiului de marketing, precum
şi profitul unitar sunt date în tabelul 2.5.

Tabelul 2.5
Produs Cerere Timp de prelucrare pe unitatea de Profitul
produs unitar
min max R1 R2 R3 R4 um/buc
SN 400 FU32 RU320 Banc de
control
P1 20 200 0.10 0.06 0.18 0.13 10
P2 0 100 0.12 0.05 0 0.10 12
P3 70 180 0.15 0.09 0.07 0.08 15
Timp disponibil pe resursă 36 30 37 38 -

Să se determine programul de producţie astfel încât să se asigure satisfacerea cererii cu


un profit total maxim.

Notă m cu x1, x2 x3 variabilele de decizie ce reprezintă cantităţile din produsele P1, P2


respectiv P3 ce trebuie fabricate astfel încât să se atingă obiectivul propus.
Modelul matematic liniar al problemei cuprinde restricţiile problemei, ce provin din
limitarea disponibilităţii resurselor şi a cererii produselor pe piaţă, funcţia obiectiv ce
maximizează profitul total şi condiţiile de nenegativitate care sunt evidente din punct de
vedere economic.

Modelul matematic al problemei este următorul:

50
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

­ f = max(10 x1 + 12 x 2 + 15 x3 )
° 0.1x + 0.12 x + 0.15 x ≤ 36
° 1 2 3
°0.06 x1 + 0.05 x 2 + 0.09 x3 ≤ 30
°
° 0.18 x1 + 0.07 x 2 ≤ 37
°
® 0.13 x1 + 0.1x 2 + 0.08 x3 ≤ 38
° 20 ≤ x1 ≤ 200
°
° 0 ≤ x 2 ≤ 100
° 70 ≤ x3 ≤ 180
°
¯° x1 , x 2 , x 3 ≥ 0

Programul de producţie este dat de variabilele de decizie şi este următorul:

­ x1 = 135
° x 2 = 100
°
®
° x3 = 70
°¯ F .O. = 3.600u.m

Din produsul P1 se produc 135 unităţi, din produsul P2 se produc 100 unităţi, din
produsul P3 se produc 70 unităţi. În aceste condiţii valoarea funcţiei obiectiv este de 3.600
unităţi monetare.
Variabilele de compensare (ecart) arată utilizarea resurselor astfel:
• x4 = 0, Y1 = 100 - preţ umbră
0.1 ⋅ 135 + 0.12 ⋅ 100 + 0.15 ⋅ 70 = 36 = 36
Prima restricţie este satisfăcută cu semnul „=” ceea ce înseamnă că resursa R1 este
utilizată în totalitate, deci R2 este o resursă rară – resursă a cărei lipsă / indisponibil ar limita
sau modifica.
În acelaşi timp dacă în prima restricţie mărim timpul disponibil cu o unitate (din 36u.t.
la 37u.t.), valoarea F.O. se modifică în sens pozitiv tocmai cu valoarea preţului umbră, deci
profitul va fi de 3.700 u.m.
• x5 = 10.6 Y2 = 0 - preţ umbră
0.06 ⋅ 135 + 0.05 ⋅ 100 + 0.09 ⋅ 70 = 19.4 < 30 cu 10.6 u.t.
A doua restricţie este satisfăcută cu semnul „<”, deci din resursa R2 rămâne un timp
disponibil de 10.6 u.t. care nu este utilizat în procesul de producţie, astfel resursa R2 nu este o
resursă rară însă lipsa ei poate limita producţia, preţul ei umbră fiind nul.
• x6 = 5.7 Y3 = 0 - preţ umbră
0.18 ⋅ 135 + 0.07 ⋅ 100 = 31.3 < 37 cu 5.7 u.t.
A treia restricţie este satisfăcută cu semnul „<”, deci din resursa R3 rămâne un timp
disponibil de 5.7 u.t. care nu este utilizat în procesul de producţie, astfel resursa R3 nu este o
resursă rară însă lipsa ei poate limita producţia, preţul ei umbră fiind nul.
• x7 = 4.85 Y4 = 0 - preţ umbră
0.13 ⋅ 135 + 0.1 ⋅ 100 + 0.08 ⋅ 70 = 33.15 < 38 cu 4.85 u.t.
A patra restricţie este satisfăcută cu semnul „<”, deci din resursa R4 rămâne un timp
disponibil de 4.85 u.t. care nu este utilizat în procesul de producţie, astfel resursa R4 nu este o
resursă rară însă lipsa ei poate limita producţia, preţul ei umbră fiind nul.
• x8 = 65 Y5 = 0 - preţ umbră
1 ⋅ 135 = 135 < 200 cu 65 unităţi de produs P1.

51
Programare liniară

Restricţia cinci este satisfăcută cu semnul „<”, deci din produsul P1 rămân nevândute o
cantitate de 65 unităţi de produs (u.p), astfel P1 nu este o resursă rară deci are preţul umbră
nul.
• x9 = 115 Y6 = 0 - preţ umbră
1 ⋅ 135 = 135 > 20 cu 115 unităţi de produs P1.
Restricţia şase este satisfăcută cu semnul „>”, deci produsul P1 are o cerere maximă de
115 u.p., astfel P1 nu este o resursă rară deci are preţul umbră nul.
• x10 = 0 Y7 = 0 - preţ umbră
1 ⋅ 100 = 100 = 100
Restricţia şapte este satisfăcută cu semnul „=” ceea ce arată că produsul P2 este vândut
în totalitate – deci este o resursa rară, deci preţul umbră ar trebui să fie nenul. El totuşi este
nul, lucru uşor de explicat din teorema ecarturilor complementare: condiţia necesară şi
suficientă ca două soluţii admisibile X,Y să fie soluţii optime respectiv la problema primală şi
duală este să fie simultan satisfăcute relaţiile:
­Y T ( P0 − AX ) = 0
® T
¯ (Y A − C ) X = 0
Pentru ca un produs să fie zero este necesar ca un termen sa fie zero sau ambii egali cu
zero. Prin creşterea cu o unitate a restricţiei în loc de 100 să avem 101 valoarea funcţiei
obiectiv rămâne aceeaşi F.O.=3.600u.m.
• x11 = 110 Y8 = 0 - preţ umbră
1 ⋅ 70 = 70 < 180 cu 110 unităţi de produs P3
Restricţia opt este satisfăcută cu semnul „<”, deci din produsul P3 rămân nevândute o
cantitate de 110 unităţi de produs (u.p), astfel P3 nu este o resursă rară deci are preţul umbră
nul.
• x12 = 0 Y9 = 0 - preţ umbră
1 ⋅ 70 = 70 = 70
Restricţia şapte este satisfăcută cu semnul „=” ceea ce arată că produsul P3 este vândut
în totalitate şi cererea maximă este corectă – deci este o resursa rară, deci preţul umbră ar
trebui să fie nenul.
El totuşi este nul, lucru uşor de explicat din teorema ecarturilor complementare. Prin
creşterea cu o unitate a restricţiei în loc de 70 să avem 71 valoarea funcţiei obiectiv rămâne
aceeaşi F.O.=3.600u.m.

În concluzie acelaşi plan de producţie se putea face, cu acelaşi profit şi dacă restricţiile
problemei erau următoarele:

­ f = max(10 x1 + 12 x 2 + 15 x3 )
° 0.1x + 0.12 x + 0.15 x ≤ 36
° 1 2 3
°0.06 x1 + 0.05 x 2 + 0.09 x3 ≤ 19.4
°
° 0.18 x1 + 0.07 x 2 ≤ 31.3
°
® 0.13 x1 + 0.1x 2 + 0.08 x3 ≤ 33.15
° 115 ≤ x1 ≤ 135
°
° 0 ≤ x 2 ≤ 100
° 65 ≤ x3 ≤ 70
°
°¯ x1 , x 2 , x 3 ≥ 0

52
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

CAPITOLUL 3
PROGRAMAREA LINIARĂ DE TIP TRANSPORT
3.1. Formularea unei probleme de transport

Se consideră că un produs este disponibil în m centre producătoare (fabrici, depozite)


notate cu Pi (i = 1,…m ). Acest produs trebuie transportat la n centre consumatoare (de
desfacere, destinatari), notaţi cu C j ( j = 1, … m ) .
Transportul se poate efectua de la orice Pi la orice C j ( j = 1, … m ) , iar costul unitar
de transport este ci j . Acest cost depinde de distantele respective, de mijloacele de transport
folosite şi altele, ceea ce se presupune cunoscut.
Se cunosc de asemenea şi cantităţile disponibile, aflate în cele m centre producătoare,
notate cu a i cu (i = 1, … m ) şi cantităţile necesare în cele n centre consumatoare, notate b j cu
( j = 1,… n ) .
Se notează cu xi j , cantitatea transportată în condiţiile de mai sus iar datele problemei
de transport sunt sintetizate conform tabelului 3.1 ce este prezentat mai jos:

Tabelul 3.1
Pi
C1 C2  Cj  Cn ai
Cj
P1 c11 c12  c1 j  c1n a1
P2 c21 c22  c2 j  c2 n a2
       
Pi ci1 ci 2  cij  cin ai
       
Pm cm1 cm 2  cmj  cmn am
bj b1 b2  b j  bn

Caracteristicile unei probleme de transport clasice sunt:

- fiecare centru producător aprovizionează cel puţin un centru consumator şi fiecare centru
consumator este aprovizionată de la cel puţin un centru producător;
- pot exista perechi producător - consumator între care nu se poate face transfer;
- nu există limitări în ceea ce priveşte cantitatea transportată pe fiecare rută;
- fiecărei rute i s-a asociat un cost care nu depinde de sensul de parcurgere.
Obiectivul problemei de transport este găsirea cantităţilor care trebuie transportate pe
fiecare rută astfel încât să se asigure necesarul fiecărui centru consumator, în limitele
cantităţilor aflate în centru producător, şi aceasta cu costuri minime.

Teorema 3.1 : O problemă de transport echilibrată admite întotdeauna programe (soluţii);


orice program este mărginit dacă valorile sale a i , b j sunt mărginite (finite ).
Numim model matematic echilibrat, dacă cantitatea disponibila totală este egală cu
cererea totală.
Modelul matematic de mai sus se poate înlocui cu un model echivalent în care toate
restricţiile sunt ecuaţii.

In forma sa matematică modelul problemei de transport se poate scrie ca în relaţia 3.1.

53
Programare liniară de tip transport

­ § m n −1 ·
° min ¨ ¦¦ ci j xi j ¸
¨ ¸
° © i =1 j =1 ¹
° n −1 _____

°° ¦ xi j ≤ a i , i ∈ 1, m
® m j =1 (3.1)
_______
°
° i =1¦ xi j ≥ b j , j ∈ 1, n − 1
° m, n −1
°¦ a i > ¦ b j , a i ≥ 0 , b j ≥ 0
°¯ i =1 j =1

Astfel în urma acestor transformări se va obţine următorul model matematic echilibrat (3.2):

­ § m n −1 ·
° min¨¨ ¦¦ ci j xi j ¸¸
° © i =1 j =1 ¹
° n −1 _____
° ¦ xi j = a i , i ∈ 1, m
® j =1 (3.2)
°m _______
°¦ xi j = b j , j ∈ 1, n − 1
° i =1
°¯ xi j ≥ 0

Orice problemă poate fi transformată într-o problemă de tipul (3.2). Acest caz este
foarte rar în practică, însă el este cel mai simplu din punct de vedere matematic şi astfel va fi
ales pentru formalizarea problemei.
O astfel de problemă se numeşte problemă de transport echilibrată.
In practică pot exista următoarele cazuri:
m n
- Dacă ¦ ai < ¦ b j , se poate adăuga un depozit fictiv Pm+1 care are un disponibil
i =1 j =1

a m +1 , astfel încât costurile de transport de la depozitul Pm+1 la centrele C j sunt


nule.
m n
- Daca ¦ ai > ¦ b j , se poate adăuga un centru fictiv C n +1 ce necesita bn +1 unităţi,
i =1 j =1
astfel încât costurile să fie nule.
Numărul total de restricţii este de m+n şi sunt o combinaţie liniară de celelalte, deci
numărul celor independente este de m+n-1.
Orice problema de transport admite soluţii admisibile, adică sistemul de ecuaţii este
compatibil. O astfel de problema are soluţia următoare :

ai b j
xi j = n
(3.3)
¦a
i =1
i

Aplicarea algoritmului simplex este dificilă în acest caz datorită numărului foarte mare
de necunoscute şi a determinării soluţie admisibile de bază.

Într-o problemă de transport nu poate apărea decât varianta de optim finit, existând
întotdeauna soluţii admisibile, iar minimul –∞ nu este posibil, ţinând cont că avem de
minimizat o funcţie liniară cu toţi coeficienţii pozitivi pe o mulţime de soluţii cu toate
componentele pozitive.

54
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

Algoritmul specific problemelor de transport au următoarele etape:


1. Se determină o soluţie admisibila de baza de pornire X, prin folosirea uneia din
următoarele metode : coltului N-V, metoda costului minimal, metoda costului minim pe
linie, metoda costului minim pe coloană.
2. Determinarea soluţiei optime pornind de la soluţia X.

3.2. Exemple de probleme de tip transport

Probleme de transport cu capacităţi limitate

Se consideră o problemă de tip transport în care există limitări ale capacităţilor de


transport pe anumite rute. Se notează cu α ij > 0 capacitatea maximă ce poate fi transportată
pe ruta de la centru producător i la centrul consumator j.
Modelul matematic al acestei probleme, cu păstrarea semnificaţiilor notaţiilor
cunoscute, este următoarea:

­ m n
° min( ¦ ¦ cij xij )
i =1 j =1
°
° n x = a , i = 1, m
° j¦ ij i
® =1 (3.4)
°m
° ¦ xij = b j , j = 1, n
°i =1
°0 ≤ xij ≤ α ij , i = 1, m, j = 1, n
¯

Condiţiile necesare şi suficiente de existenţa a soluţiilor pentru problema (3.4) sunt:

­m n

°¦ ai = ¦ b j
° i =1 j =1

°° n

®¦ α ij ≥ ai , i = 1, m (3.5)
° j =1
° n
°¦ α ij ≥ b j , j = 1, n
°¯ j =1

Acestei probleme i se poate asocia un tabel de forma celui de la problema de transport,


în care se specifică şi capacităţile maxime de transport α ij , i = 1, m, j = 1, n .

Tabelul 3.2
Pi / Cj Cl ... Cj ... Cn ai

P1 c1l ... c1j ... c1n


al
α1l x1l α1j x1j α1n x1n
... ... ... ... ... ... ...
Pi cil ... cij cin
ai
αil xil αij xij αin xin
... ... ... ... ... ... ...
cml ... cmj ... cmn
Pm am
αml xml αmj xmj αmn xmn
bj bl ... bj ... bn

55
Programare liniară de tip transport

Probleme de transport cu centre intermediare

În practica industrială există cazuri în care transportul direct de la un centru producător


la un centru consumator nu este economic.
Ca urmare, el poate trece prin mai multe centre intermediare, de tranzit, o astfel de
problemă numindu-se problemă de transport cu centre intermediare sau problemă de
transfer.
Se consideră p centre intermediare şi se notează cu β k , k = 1, p , capacităţile acestora.
Modelul matematic al acestei probleme are forma:

 m p
' '
p n
'' ''
 min( ∑ ∑ c ik x ik + ∑ ∑ c kj x kj )
i =1 k =1 k =1 j =1

 p
 k∑ xik' = ai , i = 1, m
=1
m
 ∑ x ' = β , k = 1, p
 ik k
i =1 (3.6)
 n ''
 ∑ x kj = β k , k = 1, p
 j =1
 n ''
 k∑ x kj = b j , j = 1, n
 =1
 xik' , x kj'' ≥ 0, i = 1, m, k = 1, p, j = 1, n

unde:
xik' - reprezintă cantitatea ce urmează a fi transportată de la centrul producător i la centrul
intermediar k ;
cik' - costul unitar de transport dintre centrele i şi k ;
x kj'' - cantitatea ce urmează a fi transportată de la centrul k la centrul consumator j ;
c kj'' - costul unitar de transport dintre centrele k şi j.
Condiţia necesară şi suficientă de existenţă a soluţiilor pentru problema (3.6) este:

m p n

¦a = ¦β
i =1
i
k =1
k = ¦bj
j =1
(3.7)

Având în vedere faptul că fiecare intermediar este atât centru destinaţie cât şi centru
sursă, se pot considera următoarele două probleme de transport:

­ m p
' '
°min(i¦ ¦ cik xik )
=1 k =1
° p
° ¦ x ' = a , i = 1, m
° ik i
®k =1 (3.8)
°m '
° ¦ xik = β k , k = 1, p
° i =1
°¯ xik' ≥ 0, i = 1, m, k = 1, p

56
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

şi
­ p n
'' ''
° min( ¦ ¦ c kj x kj )
k =1 j =1
°
° n x '' = β , k = 1, p
° j¦ kj k
® =1 (3.9)
° p ''
° ¦ x kj = b j , j = 1, n
° k =1
° x kj'' ≥ 0, k = 1, p, j = 1, n
¯

( ) ( )
' ''
Se poate arăta că x ik şi x kj reprezintă o soluţie optimă a problemei de transport cu
centre intermediare (3.6) dacă şi numai dacă x ik ( ) este o soluţie optimă a problemei de
'

( )''
transport (3.8), iar x kj este o soluţie a problemei de transport (3.9).
În consecinţă, rezolvarea problemei (3.6) este echivalentă cu rezolvarea celor două
probleme (3.8) şi (3.9).

Probleme de repartiţie

Într-un atelier mecanic există m utilaje, care au disponibilul de timp a i , i = 1, m .


Pe acestea se vor prelucra n tipuri de piese, în cantităţile b j , i = 1, n .
Se cunosc randamentul orar, rij , şi cheltuielile de producţie, cij , la utilajul i ale piesei
j. Se pune problema de a determina o repartiţie a sarcinilor, respectiv a timpului în care
utilajul i prelucrează piesele de tip j astfel încât cheltuielile totale de producţie sa fie minime.
Se notează cu xij numărul de ore în care utilajul i prelucrează piesele de tip j.
Modelul matematic al problemei este de forma (3.10):

 m n
 min( ∑ ∑ cij xij )
i =1 j =1

 n x ≤ a , i = 1, m
 j∑ ij i
 =1 (3.10)
m
 ∑ rij xij = b j , j = 1, n
 i =1
 xij ≥ 0, i = 1, m, j = 1, n

3.3. Determinarea unei soluţii de baza iniţiale a problemei de transport.

Soluţia admisibile de baza iniţiale, care are cel mult (m+n-1) componente nenule, este
o soluţie nedegenerată. Dacă numărul soluţiilor este mai mic decât (m+n-1) soluţia este
degenerată.

Metoda colţului Nord-Vest (NV)

Această metodă se mai numeşte Metoda diagonalei principale sau Metoda lui
Dantzing.
Metodă nu ţine cont de costurile de transport cij şi numai de cantităţile disponibile în
centrele producătoare şi cererea centrelor consumatoare.

57
Programare liniară de tip transport

Etapele metodei:

• Se alege x11 = min (a1b1 ) ( (1,1) fiind colţul stânga sus – NV). Sunt posibile următoarele
cazuri:
1) min(a1 , b1 ) = a1 Ÿ x11 = a1 , iar x1 j = 0, j = 1, n . Necesarul centrului C1 devine b1 − a1 .
2) min(a1 , b1 ) = b1 Ÿ x11 = b1 , iar xi1 = 0, i = 1, m . Disponibilul centrului P1 devine a1 − b1 .
3) a1 = b1 Ÿ x11 = a1 = b1 , iar x1 j = 0, j = 1, n şi xi1 = 0, i = 1, m .

• Se elimină de sus în jos sau de la stânga la dreapta prima linie respectiv prima coloană din
tabel. Următoarele componente strict pozitive ale soluţiei de bază iniţiale se determină în mod
analog, considerând colţul NV rămas după eliminarea anterioară.

Exemplul 3.1 :
Pentru problema de transport ale cărei date sunt centralizate în tabelul 3.3 să se
determine soluţia de bază iniţială utilizând metoda lui Dantzing.

Tabelul 3.3
Q1 Q2 Q3 Q4
P1 7 8 5 3 11
P2 2 4 5 9 11
P3 6 3 1 2 8
5 9 9 7 30

Notăm cu xij cantităţile ce urmează a fi transportate în condiţiile indicate în tabelul iniţial.


Pasul 1 Problema dată poate fi scrisă ca în tabelul 3.4.
min(a1 , b1 ) = b1 Ÿ x11 = min(11,5) = 5 , iar xi1 = 0, i = 1, m şi a1' = a1 − b1 = 11 − 5 = 6
(tab.3.5)

x11 x12 x13 x14 11 5 x12 x13 x14 6


x 21 x 22 x 23 x 24 11 0 x 22 x 23 x 24 11
x 31 x32 x33 x 34 8 0 x 32 x33 x 34 8
5 9 9 7 0 9 9 7
tabelul 3.4 tabelul 3.5

Pasul 2 Calculăm: min(a1 , b2 ) = a1 Ÿ x12 = min(6 ,9 ) = 6 , iar x1 j = 0, i = 1, m şi


b2' = b2 − a1 = 9 − 6 = 3 (tab.3.6)
Pasul 3 Calculăm: min(a 2 , b2 ) = b2 Ÿ x 22 = min(11,3) = 3 , iar xi 2 = 0, i = 1, m şi
a 2' = a 2 − b2 = 11 − 3 = 8 (tab.3.7)

5 6 0 0 0 5 6 0 0 0
0 x 22 x 23 x 24 11 0 3 x 23 x 24 8
0 x 32 x33 x 34 8 0 0 x33 x34 8
0 3 9 7 0 0 9 7

58
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

tabelul 3.6 tabelul 3.7


Pasul 4 Calculăm: min(a 2 , b3 ) = a 2 Ÿ x 23 = min(8,9) = 8 , iar x 2 j = 0, i = 1, m şi
b2'' = b3 − a 2 = 9 − 8 = 1 (tab.3.8)
Pasul 3 Calculăm: min(a3 , b3 ) = b3 Ÿ x33 = min(8,1) = 1 , iar xi 3 = 0, i = 1, m şi
a3' = a3 − b3 = 8 − 1 = 7 (tab.3.9)

5 6 0 0 0 5 6 0 0 0
0 3 8 0 0 0 3 8 0 0
0 0 x33 x34 8 0 0 1 7 0
0 0 1 7 0 0 0 0
tabelul 3.8 tabelul 3.9

Soluţia admisibila de baza X este data de tabelul 3.9 .


Dacă notăm cu V(X) valoarea funcţiei de optimizat a problemei date, pentru soluţia
admisibilă X, avem:
V(X) = 7*6 + 8*6 + 3*4 + 8*5 + 1*1 + 7*2 =150

Metoda costului minimal

Metodă ţine cont atât de costurile de transport cij cât şi de cantităţile disponibile în
centrele producătoare şi cererea centrelor consumatoare.

• ( )
Se alege clk = min cij . Se determină x lk = min(al , bk ) Sunt posibile următoarele cazuri:
1) min(al , bk ) = al Ÿ x lk = al , iar xlj = 0, j = 1, n . Necesarul centrului Cj devine bk − al .
2) min(al , bk ) = bk Ÿ x lk = bk , iar xik = 0, i = 1, m . Disponibilul centrului Pi devine al − bk .
3) al = bk Ÿ x lk = al = bk , iar xlj = 0, j = 1, n şi xik = 0, i = 1, m .

• Se elimină de sus în jos sau de la stânga la dreapta linia respectiv coloană din tabel.
Se determină în mod analog, considerând variabila de cost minim din subtabelul rămas după
eliminarea anterioară.
Dacă sunt mai multe costuri minime egale, atunci se ia în considerare mai întâi variabile care
ia valoare maximă.

3.4. Metoda de determinare a soluţiei optime pentru probleme de transport.


Metoda potenţialelor.

Generalităţi
Rezolvarea problemei de transport prin metoda simplex este, în general, puţin
eficientă. Câteva dintre motive sunt următoarele:
- numărul mare de variabile, egal cu m, n
- absenţa unei baze iniţiale. Varianta de rezolvare prin considerarea unor variabile
auxiliare pentru fiecare linie şi coloană şi aplicarea metodei celor două faze este
laborioasă;
- apariţia frecventă a cazurilor de degenerare datorită numărului mare de elemente
ale matricei coeficienţilor A egale cu 0 şi 1 .
Metoda potenţialelor reprezintă o metodă specială de testare şi îmbunătăţire a soluţiei unei
probleme de transport.

59
Programare liniară de tip transport

Procesul de îmbunătăţire a unei soluţii constă în a trece de la o soluţie la o alta mai


bună. Pentru aceasta se recurge la problema duală a problemei de transport şi anume :

­ §m n ·
° max¨ ¦ ai u i + ¦ b j v j ¸
° ¨ ¸
° © i =1 j =1 ¹
®u i + v j ≤ cij , i = 1, m, j = 1, n (3.11)
°
° ui arbitrar , i = 1, m
° v j arbitrar , j = 1, n
¯

Conform teoremei ecarturilor complementare aplicată cuplului de probleme duale,


rezultă că soluţia de bază x ij a problemei primale şi soluţia (u i , v j ) a problemei duale sunt
optime dacă şi numai dacă satisfac condiţiile:

(cij − u i − v j ) ⋅ x ij = 0, i = 1, m, j = 1, n ) (3.12)

Pentru ca relaţia de mai sus să fie satisfăcută este suficient ca (u i , v j ) să fie soluţii ale
sistemului

ui + v j = cij , ∀(i, j ) ∈ J (3.13)

în care s-a notat mulţimea de indici J = {(i, j ) xij este variabila de bază }.
Propoziţia 3.1 Sistemul de ecuaţii are o infinitate de soluţii. Dacă (ui0 , v 0j ) este o soluţie
particulară şi k o constantă oarecare, atunci orice soluţie a sistemului este de forma:

­°u i = ui0 + k , i = 1, m
® 0 (3.14)
°̄v j = v j − k , j = 1, n
Pentru rezolvarea sistemului se poate fixa arbitrar una dintre necunoscute, fără a
influenţa optimalitatea soluţie problemei de transport; de obicei se alege ui = 0 .
Observaţie. Rezolvarea sistemului se poate efectua direct pe tabelul de rezolvare al
problemei. Valorile variabilelor ui şi v j se înscriu la marginile tabelului ; din acest motiv ele
se mai numesc şi valori marginale .
Algoritmul metodei potenţialelor

Pasul 1. Se determină o soluţie de bază iniţială ( x ij ) .

Pasul 2. Se calculează valorile variabilelor duale ui şi v j ca soluţii ale sistemului de ecuaţii


u i + v j = cij , ∀(i, j ) ∈ J

Pasul 3. Se calculează valorile


δ ij = ui + v j − cij , ∀(i, j ) ∉ J
Dacă δ ij ≤ 0, ∀(i, j ) ∉ J , atunci STOP: soluţia ( x ij ) este optimă; în caz contrar se trece la
pasul 4

60
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

Pasul 4. Se calculează cu criteriu de intrare în bază δ ij = max{δ ij ∀(i, j ) ∉ J }


Variabila xlk ce va intra în bază .
Se construieşte pentru căsuţa (l, k) un ciclu care porneşte din căsuţa (l, k), care trece
numai prin căsuţe (i, j) ocupate cu valori x ij > 0 , cu treceri alternative pe linii şi coloane, şi
care revine la căsuţa (l, k).
Se adoptă un sens oarecare de parcurgere al acestui ciclu şi se numerotează căsuţele
sale începând cu căsuţa (l, k).

Pasul 5. Se calculează criteriul de ieşire din bază θ = x st = min{x ij (i, j ) este căsuţă de rang
par în ciclu }şi se determină variabila x st va ieşi din bază.

Pasul 6. Se determină o nouă soluţie de bază admisibilă (~ xij ) cu ajutorul formulelor de


schimbare a bazei
­ x ij − θ , (i, j ) are rang par in ciclu
~ °
xij = ® x ij + θ , (i, j ) are rang impar in ciclu
° x ij , (i, j ) nu apartine ciclului
¯
Se revine la pasul 2 cu noua soluţie de bază obţinută.

Observaţii :
1) Soluţia iniţială de bază obţinută la pasul 1 al algoritmului depinde de metoda folosită
pentru determinarea ei. Aceasta nu influenţează, soluţia optimă a problemei, ci
eventual numărul de iteraţii pentru obţinerea soluţiei optime.

2) Alegerea sensului de parcurgere al ciclului în cadrul pasului 4 al algoritmului este


arbitrară.

3) Tabelele ce se vor construi la aplicarea algoritmului vor fi formate din căsuţe (i, j) ce
pot avea una din configuraţiile

cij
cij δ ij
+(-) xij xij=0

Prima indică o căsuţă corespunzătoare unei valori de bază ( xij > 0 ), iar cea de-a doua
o căsuţă corespunzătoare unei valori nebazice ( xij = 0 ) , pentru care se calculează valoarea
δ ij .
Simbolurile + sau – apar dacă căsuţa face parte din ciclul construit la pasul 4 al
algoritmului. Simbolul + indică o căsuţă de rang impar , iar simbolul – indică o căsuţă de rang
par.

Exemplul 3.2
Fie date trei fabrici producătoare (P1, P2, P3) ale aceluiaşi produs, care trebuie să
aprovizioneze cu acest produs patru consumatori (C1, C2, C3, C4). În tabelul 3.10 sunt date
cantităţile disponibile în centrele producătoare (ai), cantităţile necesare în centrele
consumatoare (bj) şi costurile pe unitatea de transport.
Să se determine planul optim de transport în condiţiile costurilor minime.

61
Programare liniară de tip transport

Tabelul 3.10
Pi / Cj C1 C2 C3 C4 ai
P1 8 7 3 6 19
P2 4 6 7 3 20
P3 3 4 2 5 16
bj 15 12 14 14 55
3 4
Problema de transport este echilibrată deoarece ¦ ai = ¦ b j = 55 , iar pentru
i =1 j =1
rezolvarea ei se va aplica metoda potenţialelor si pentru determinarea soluţiei de bază se va
aplica metoda costului minim din tabel.

Iteraţia 1.
Pasul 1. Prin metoda costului minimal se determină soluţia de bază iniţială iar calculele sunt
prezentate în tabelul 3.11:
Tabelul 3.11
7 12 0 0 19 12
6 0 0 14 20 6 0
2 0 14 0 16 2 0
15 12 14 14
13 0 0
7
0

Se obţine următoarea soluţie de bază iniţială :


x11 = 7, x12 = 12, x 21 = 6, x 24 = 14, x 31 = 2, x 33 = 14.
Valoarea funcţiei obiectiv corespunzătoare acestei soluţii iniţiale este :
z = 8 ⋅ 7 + 7 ⋅ 12 + 4 ⋅ 6 + 3 ⋅ 14 + 2 ⋅ 14 = 240 .
Soluţia de bază iniţială este înscrisă în tabelul 3.12 alături de costurile unitare de
transport date iniţial:
Tabelul 3.12
8 7 3 6
7 12 0 0
4 6 7 3
6 0 0 14
3 4 2 5
2 0 14 0

Pasul2. Se rezolvă sistemul:


ui + v j = cij , (i, j ) ∈ J , unde J = {(1,1), (1,2), (2,1), (2,4), (3,1), (3,3)}, pornind de la u1 = 0
Tabelul 3.13
v1=8 v2=7 v3=7 v4=7
u1=0 8 7 3 4 6 1
7 12 0 0
u2=-4 4 6 -3 7 -4 3
6 0 0 14
u3=-5 3 4 -2 2 5 -3
2 0 14 0

Pasul 3. Valorile δ ij = ui + v j − cij , (i, j ) ∉ J sunt scrise în tabelul 3.13.


Deoarece δ ij ≤ 0, ∀(i, j ) ∉ J rezultă că soluţia nu este optimă.

62
Cercetări Operaţionale- Fundamentarea deciziilor în managementul sistemelor de producţie

{ }
Pasul 4. Se calculează δ lk = max δ ij / (∀)(i, j ) ∉ J = δ 13 = 4 Ÿ variabila x13 va intra în bază
Se construieşte ciclul : (1,3), (1,1), (3,1), (3,3), (1,3) care este indicat în tabelul 3.13.
Pasul 5. Se determină
{ }
θ = x st = min xij / (i, j )este casuta de ordin par = min{7,14} = x11 = 7 Ÿ variabila x11 va
ieşi din bază.
Pasul 6. Se modifică valorile căsuţelor din ciclul de mai sus:
x13 = 0 + 7 = 7, x11 = 7 − 7 = 0, x 31 = 2 + 7 = 9, x 33 = 14 − 7 = 7 .
Noua soluţie de bază admisibilă este înscrisă in tabelul 3.14

Tabelul 3.14
v1=4 v2=7 v3=3 v4=3
u1=0 8 -4 7 3 6 -3
7 12 7 0
u2=0 4 6 1 7 -4 3
6 0 0 14
u3=-1 3 4 2 2 5 -3
9 0 7 0

Valoarea funcţiei obiectiv devine : z = 7 ⋅ 12 + 3 ⋅ 7 + 4 ⋅ 6 + 3 ⋅ 14 + 3 ⋅ 9 + 2 ⋅ 7 = 212


Iteraţia a 2
Pasul 2. Se rezolvă ui + v j = cij , (i, j ) ∈ J , unde J = {(1,2), (1,3), (2,1), (2,4), (3,1), (3,3)}, iar
soluţia este indicată în tabelul 3.14.
Pasul 3. Se calculează valorile δ ij = ui + v j − cij , (i, j ) ∉ J
Deoarece δ ij ≤ 0, ∀(i, j ) ∉ J , soluţia nu este optimă (tab.3.14).
Pasul 4. δ lk = δ 23 = 2 Ÿ variabila x32 va intra în bază .
Se construieşte ciclul
(3,2), (3,3), (1,3), (1,2), (3,2) (tab.3.14)
Pasul 5 . θ = min{7,12} = x 33 = 7 Ÿ x33 va ieşi din bază .
Pasul 6. Se modifică valorile căsuţelor din ciclul de mai sus :
x 32 = 0 + 7 = 7, x 33 = 7 − 7 = 0, x13 = 7 + 7 = 14, x12 = 12 − 7 = 5 (tab.3.15)
Valoarea funcţiei obiectiv devine : z = 7 ⋅ 5 + 3 ⋅ 14 + 4 ⋅ 6 + 3 ⋅ 14 + 3 ⋅ 9 + 4 ⋅ 7 = 198

Iteraţia 3 .
Rezultatele sunt consemnate în tabelul 3.15, deoarece δ ij < 0, ∀(i, j ) ∉ J rezultă că
soluţia este optimă .

Tabelul 3.15
v1=6 v2=7 v3=3 v4=5
u1=0 8 -2 7 3 6 -1
0 5 14 0
u2=-2 4 6 -1 7 -6 3
6 0 0 14
u3=-3 3 4 2 -2 5 -3
9 7 0 0

S-a obţinut soluţia optimă a problemei de transport :


* * * * *
x 12 = 5, x 13 = 14, x 24 = 14, x 31 = 9, x 32 = 7.
Căreia îi corespunde costul total al transportului minim z*=198

63
Elemente de teoria grafurilor

CAPITOLUL 4
ELEMENTE DE TEORIA GRAFURILOR
4.1. Fundamente în teoria grafurilor

Teoria grafurilor s-a constituit ca un capitol de sine stătător în cadrul cercetărilor


operaţionale, datorită multiplelor avantaje pe care le oferă activităţii de planificare şi analiza
tehnico - economică.
Cu ajutorul grafurilor se surprind şi se analizează în detaliu legăturile dintre
componentele sistemului tehnico - economic, iar elaborarea modelului este mult mai uşoară.

4.1.1. Noţiunea de graf

Prin definiţie un graf este o pereche (X, U ) unde mulţimea X este numită mulţimea
nodurilor (sau vârfurilor) iar mulţimea U este mulţimea muchiilor.

Notaţii utilizate :

X = mulţime finită şi diferită de mulţimea vidă de orice natură.


X = ®x1, x2, …..xn¾ - unde xi = elemente numite vârfuri sau noduri
X poate fi infinită, dar numărabilă.

U = submulţime nevidă a produsului cartezian X x X


U= ®( xi,xj ) / ( xi,xj) ≠ ( xj , xi ) ¾ - unde ( xi , xj) = pereche ordonată de vârfuri numită arc.
Arcul u este orientat de la nodul xi, numit extremitatea iniţială, la nodul xj, numit extremitatea
finală.
A ( xj , xj ) se numeşte buclă.
G =( X ,U) = graf orientat (digraf)

U = mulţime de de arce neorientate care reprezintă perechi ordonate de vârfuri din X


U = ®( xi,xj ) / ( xi,xj)=( xj , xi ) ¾ - ( xi,xj) este un arc neorientat numit muchie
G =( X , U ) = graf neorientat
In practică un graf neorientat se poate înlocui cu un graf orientat astfel: fiecarei muchii
( xi,xj) ∈ U îi corespund două arce de semne contrare (x1 , x2) şi (x2 , x1).
In cazul în care se asociază arcelor grafului o valoare sau o funcţie valoare v : U → R
sau v : U → R unde v( xi,xj) ∈ R  funcţia valoare ataşată arcelor.
G ( X, U, v ) = se numeşte graf valuat ( evaluat, ponderat )

4.1.2. Orientare şi neorientare în graf

Cazul grafurilor orientate

Prin următorul exemplu vom pune în evidenţă un graf orientat:


„În practica industrială pentru realizarea unei lucrări de investiţii sunt necesare o serie
de activităţi distincte: alegerea amplasamentului, întocmirea proiectului, avizarea acestuia,
aprobarea lui, contractarea utilajelor tehnologice, organizarea şantierului ş.a. Aceste activităţi
sunt condiţionate între ele şi execuţia fiecărei activităţi nu poate fi începută înainte de
terminarea altor activităţi. Există şi activităţi care se execută în paralel. Pentru realizarea
modelului de graf corespunzător proiectului de investiţii se stabilesc condiţionările între
activităţi. Nodul reprezintă momentul în care se termină o activitate şi începe o alta.

64