You are on page 1of 136

Cuprins

1. Modelarea matematic. Rolul ei n cercetarea operaional ....................... 3


2. Programarea liniar .............................................................................................. 10
3. Elemente de teoria grafurilor ........................................................................... 43
4. Teoria oronanrii ................................................................................................ 81
5. Gestiunea stocurilor ............................................................................................. 110

Bazele cercetrii operaionale

MODELAREA MATEMATIC
ROLUL EI N CERCETAREA OPERAIONAL

Cercetarea operaional i disciplinele nrudite

Cercetarea operaional este una din disciplinele care a aprut ctre sfritul primei jumti
a secolului nostru i s-a dezvoltat spectaculos n special n ultimii ani, n strns legtur cu o serie
de alte discipline ale organizrii i conducerii, cum ar fi cibernetica, informatica sau analiza
sistemelor.
Pentru a avea o imagine de ansamblu asupra obiectului cercetrii operaionale aplicate n
economie, considerm, deci, util s examinm succint cum au aprut i au evoluat disciplinele
organizrii i conducerii precum i legturile pe care le prezint ntre ele.
Concepia "organizrii tiinifice", conturat ctre sfritul secolului al 19-lea i nceputurile
celui actual, consider unitatea productiv ca un mecanism, n care oamenii, ajutai de maini,
lucreaz ntr-un determinism aproape total, pe baza unor dispoziii acionnd ierarhic, conform unor
competene riguros definite.
Principalii reprezentani ai nceputurilor organizrii tiinifice, care formeaz aa-numita
coal clasic", stabilesc pentru prima oar o serie de principii ale conducerii tiinifice. Printre
acestea figureaz binecunoscutul (i nc actualul) principiu al excepiei, principiul specializrii
organizaionale, principiul definirii riguroase a sarcinilor, principiul organizrii ierarhice (Staff and
Line) .a.
ntre conceptele utilizate de coala clasic nu figureaz informaia i nici decizia:
conducerea "mecanismului" economico-social revine (n ultim instan prin parcurgerea treptelor
piramidei ierarhice), ntotdeauna, unui centru unic de decizie, pentru care informaiile sunt
presupuse, aprioric, disponibile complet i instantaneu, fr nici un fel de restricie (de timp, de
spaiu, de tehnic a transmiterii i nmagazinrii etc.).
Cu toat perspectiva sa limitat, coala clasic are marele merit al deselenirii unui domeniu
virgin. Pionierii organizrii tiinifice (Taylor, Gantt, Fayol) i ceilali reprezentani ai colii clasice
pun pentru prima oar problema abordrii raionale a mecanismului funcionrii unei ntreprinderi.
O mare parte din ideile colii clasice au fost criticate de reprezentanii diferitelor coli care
s-au dezvoltat ulterior n tiinele organizrii, dnd natere, dup cum vom arta n continuare, unor
teorii din ce n ce mai abstracte i mai complexe. Merit s artm c n deceniul al aselea, ca o
reacie mpotriva excesului de teoretizare, s-a dezvoltat o aa-numit coal neoclasic, avnd drept
obiectiv rentoarcerea la practic.
n deceniile care urmeaz dup apariia i dezvoltarea colii clasice, problemele
informaional-decizionale i afirm prezena din ce n ce mai acut, pe msura creterii
dimensiunilor i complexitii organizaiilor social-economice i i caut rezolvri empirice de cele
mai multe ori nu la nivelul necesitilor. Se stabilesc adesea circuite informaionale paralele i
supraabundente (redundante) iar n afara fluxurilor oficiale (formale) de date, se dezvolt o
circulaie neformal, uneori mai eficient, dar cu caracter strict local. n procesele de decizie
continu s prevaleze rutina, bunul sim, talentul sau chiar improvizaia.
n perioada urmtoare primului rzboi mondial au putut fi constatate, ca urmare a acestor
rezolvri empirice, diferene considerabile, din punctul de vedere al competitivitii, ntre uniti
economice cu structuri organizatorice i dotri tehnice identice sau similare. Analizele efectuate au
condus la o prim includere n perimetrul cercetrii privind problemele organizrii i conducerii a
aspectelor informaional-decizionale, pn atunci ignorate i totodat i a aspectelor relaiilor
umane. Se lrgete considerabil problematica organizrii i conducerii i ncep s circule cu din ce
n ce mai mult autoritate denumirile de management (ca activitate practic) i management science
(tiina conducerii).
Aceast perioad este dominat de "coala comportamentului" care pune n centrul preocu-
prilor sale observaia minuioas a comportamentului oamenilor n timpul procesului motivaiilor
1
3
Modelarea matematic i rolul ei n cercetarea operaional
care determin coeziunea grupurilor.
Diferenele substaniale ntre coala comportamentului i coala clasic se refer n special
la aspecte ca: descentralizarea deciziilor, promovarea ncrederii ntre membrii unui grup (i
neglijarea autoritii) cu accentul pus pe responsabilitate (i nu pe control)
1
.
ncepnd din deceniul al cincilea al secolului nostru
2
, se produce un fenomen care
promoveaz informaia i decizia printre elementele eseniale ale epocii n care trim.
La acest fenomen contribuie n primul rnd creterea extraordinar a complexitii
structurale i funcionale, a organizaiilor economice. Procesele de comasare-integrare, apariia
structurilor organizaionale cu activiti productive pe arii geografice foarte mari (i, de asemenea,
cu multiple probleme legate de desfacerea produselor), ridicarea nivelului de tehnicitate a
instalaiilor i corespunztor o specializare accentuat a profesiunilor - sunt numai cteva din
aspectele acestei complexiti a unitilor productive moderne.
Ca o consecin a acestei stri de fapt apare o extraordinar cretere a cantitii de informaii
deinute i manipulate n unitile productive, accentuat i de formularea unor condiii mult mai
severe n ceea ce privete calitatea informaiei (pertinena i operativitatea acesteia). Alturi de
producia de bunuri apare o producie de informaii din ce n ce mai nsemnat, informaia devine
chiar un produs sau marf ce se poate negocia, ajungnd, alturi de servicii, obiectiv al unor
organizaii specializate.
n ceea ce privete procesele de decizie, pentru prima oar se pune n mod riguros i pe scar
larg problema gsirii unor soluii optime sau apropiate de cele optime, n marea diversitate de
probleme organizatorice i de conducere.
Se poate considera c toate aceste schimbri au condus la o veritabil revoluie
informaional-decizional n domeniul organizri i conducerii i, ca o consecin, la apariia
managementului tiinific modern.
Principalele discipline privind conducerea, care au aprut n aceast etap sunt: cercetarea
operaional, cibernetica, informatica, psihosociologia organizrii i teoria general a sistemelor.
Cercetarea operaional, care poate fi definit succint ca disciplin a optimizrii
deciziilor cu ajutorul modelrii matematice, a aprut n perioada celui de-al doilea rzboi mondial.
Considerat de unii ca reprezentnd coala matematic n disciplinele organizrii i
conducerii, cercetarea operaional se caracterizeaz n primul rnd prin procesul de elaborare a
modelelor, de regul matematizate, care descriu procesele economice pentru care urmeaz a se lua
decizii ct mai avantajoase. Avnd n vedere importana modelrii n cercetarea operaional, i vom
consacra n ntregime paragraful urmtor.
Cibernetica este tiina care se ocup cu conducerea i reglarea sistemelor complexe.
Printre ncercrile cele mai caracteristice de perfecionare a metodelor folosite n ultimele
decenii n tiinele organizrii i conducerii, alturi de ntrebuinarea masiv a procedeelor
matematice i a calculatoarelor electronice, se afl i utilizarea concepiei sistemico-cibernetice.
Poate fi definit ca sistem orice seciune a realitii n care se identific un ansamblu de
fenomene, obiecte, procese, concepte, fiine sau grupuri interconectate printr-o mulime de relaii
reciproce, precum i cu mediul nconjurtor i care acioneaz n comun n vederea realizrii unor
obiective bine definite. Mulimea elementelor i a relaiilor dintre acestea, precum i a relaiilor
ntre componente i ansamblu formeaz structura sistemului. Mulimea caracteristicilor unui sistem,
la un moment dat, determin starea sa.
Pentru analiza comportamentului sistemelor, n ansamblul lor, s-a propus conceptul de "cutie
neagr" care reprezint sistemul privit ca un tot, fcnd abstracie de procesele sale interne. Cutia
neagr primete impulsuri din partea mediului nconjurtor (intrrile" n sistem) i, prelucrnd
aceste impulsuri, le transform n aciuni asupra mediului ("ieirile") din sistem.
Sistemele se pot clasifica: dup natura lor (sisteme naturale - cum sunt organismele vii i

1
Printre reprezentanii "colii comportamentului" pot fi citai Mayo, Abraham Zalesnick i D. G. Peltz.
2
2
Desigur, referirea la un moment n timp nu poate fi dect pur orientativ; aici am avut n vedere apariia
primei generaii de calculatoare electronice, a primelor lucrri de cibernetic i a primelor echipe de cercetare
operaional.
4
Bazele cercetrii operaionale
sisteme elaborate - tehnice, economice, conceptuale), dup modul de funcionare (deschise - n care
ieirile nu influeneaz intrrile, i nchise, n care are loc influena intrrilor de ctre ieiri) i dup
comportament (deterministe sau probabilistice
1
).
Mecanismul transformrii intrrilor n ieiri poate fi descris cu ajutorul funciilor de transfer,
care au diverse forme, particulare, dup natura sistemului.
Sistemul devine cibernetic
2
atunci cnd apare reglarea (conexiunea invers, feedback-ul),
adic o intervenie asupra intrrilor n scopul meninerii ieirilor la nivelul unor parametri-obiectiv
dorii.
Se nelege c expresia analitic a funciilor de transfer i a mecanismului reglrii conduce la
forme matematice foarte diverse i de cele mai multe ori foarte complexe.
Ansamblul economiei poate fi privit ca un sistem ale crui elemente componente
(organizaiile social-economice de diferite mrimi) sunt intercorelate prin fluxuri materiale i
informaionale i au un comportament orientat spre atingerea unor obiective precise. La rndul lor,
organizaiile, care sunt elemente componente ale sistemului-ansamblu, pot fi considerate sisteme,
diviziunea putndu-se continua pn la identificarea unor componente elementare indivizibile.
Scopul cercetrii cibernetico-sistemice aplicat la realitatea social-economic l constituie
surprinderea comportamentului sistemelor, una din cile de descriere a acestui comportament fiind
gsirea expresiei funciilor de transfer i a mecanismului reglrii.
Adoptarea perspectivei cibernetico-economice n tiinele social-economice reprezint un
ctig teoretic remarcabil i este foarte probabil ca, n urmtorii ani, s asistm la nchegarea unei
teorii cibernetico-sistemice complete i unitare aplicat la realitatea social-economic pe scar
larg.
Informatica poate fi definit ca disciplina prelucrrii datelor cu ajutorul echipamentelor
automate de prelucrare.
Principalele probleme care pot fi considerate ca aparinnd informaticii sunt: culegerea
datelor, pregtirea datelor, codificarea acestora, transmiterea lor, prelucrarea datelor pe
echipamente, stocarea i conservarea lor.
Problema dezvoltrii explozive a informaticii i a rolului ei n economie, administraie,
cercetare spaial, strategie militar, tiin, nvmnt etc, este bine cunoscut i de nespecialiti.
Vom arta numai c, de la cteva calculatoare electronice i puini specialiti n informatic, n
1945, s-a ajuns azi, pe plan mondial, la milioane de calculatoare i specialiti.
Psihosociologia organizrii a aprut ca o nou orientare n disciplinele conducerii n jurul
anului 1950.
St. March, F. Simon i ali reprezentani ai aa-numitei "coli psihosociologice" abordeaz,
n principal, problema influenei factorilor psihologici i sociologici n compartimentul decizional.
Luarea deciziilor, n concepia acestei coli, nu este funcie numai de criterii raionale ci i de modul
de percepere a stimulilor, depinznd de poziia decidentului i de relaiile cu ceilali membri ai
grupului.
Cu alte cuvinte, orict s-ar face apel, n organizarea i conducerea organismelor economice,
la metode i echipamente de mare finee i tehnicitate, n ultim instan oamenii sunt cei de care
depinde funcionarea eficient a sistemului, de aceea, trebuie studiate reaciile individuale i relaiile
dintre indivizii din sistem.
Teoria general a sistemelor (TGS), strns legat de cibernetic, propune o perspectiv
care s sintetizeze ideile viabile ale diferitelor orientri n tiinele organizrii i conducerii.
Iat cteva din ideile de baz ale teoriei generale a sistemelor, dup "Industrial Dynamics" a
lui J. Forrester:

a) orice sistem este alctuit din elemente (pri) interdependente, acionnd n comun n

1
Sistemele deterministe au o comportare previzibil, n timp ce sistemele probabilistice au o comportare aleatoare.
3
2
Apariia i dezvoltarea ciberneticii (ncepnd din deceniul al 5-lea al secolului nostru) este legat de numele unor
savani celebri ca Norbert Wiener, Claude Shannon, Ross Ashby etc.
5
Modelarea matematic i rolul ei n cercetarea operaional
virtutea unui scop;
b) ansamblul legturilor ntre elementele sistemului, precum i al legturilor cu ntregul,
formeaz structura sistemului S;
c) complexitatea sistemelor depinde mai mult de structura sistemului dect de natura prilor
sale;
d) dou sisteme cu structuri parial identice se numesc homomorfe (sistemul mai simplu va
constitui un model al sistemului homomorf mai complex);
e) dou sisteme homomorfe vor avea un comportament asemntor, de unde rezult
posibilitatea de studiu a proprietilor sistemelor reale prin simulare;
f) structura (static) unui sistem preexist comportamentului su (dinamicii sistemului);
g) micrile ntr-un sistem se realizeaz prin fluxuri presupuse concrete i continue;
h) ntr-un organism economic toate categoriile de micri pot fi grupate n urmtoarele tipuri
de fluxuri interconectate; 1) fluxuri materiale; 2) fluxuri de comenzi; 3) fluxuri bneti; 4)
fluxuri umane; 5) fluxuri de echipamente i 6) fluxuri informaionale;
i) fluxul informaional are un rol central n funcionarea sistemelor;
j) procesele decizionale sunt considerate i ele ca avnd un rol central n mecanismul
sistemelor; ele sunt presupuse a fi discontinue;
k) reglarea este un element caracteristic al funcionrii sistemelor;
l) procesele care au loc n sistemele economice sunt, de regul, neliniare.

Pe baza acestor premise, Forrester construiete un procedeu de descriere a
comportamentului unei ntreprinderi, care utilizeaz metode cibernetice, informatice,
psihosociologice, precum i procedee de modelare matematic. De asemenea, sunt folosite analogii
fizice i tehnice (de exemplu, fluxurile sunt examinate n sens hidraulic) iar simularea este utilizat
ca un procedeu de baz n descrierea comportamentului sistemelor.
n linii mari n "Industrial Dynamics" se urmrete nelegerea strii unui sistem cu ajutorul
unor ecuaii care descriu n timp intrrile, transformrile i ieirile din sistem, pentru cele ase tipuri
de fluxuri amintite mai sus. (E vorba deci de gsirea funciilor de reacie ale sistemului.) Pe baza
acestei descrieri matematice se pot face simulri pe calculator, cu ajutorul crora se prevede
evoluia sistemului.
Ideile i procedeele TGS, impresionante prin complexitatea lor, sunt n curs de sedimentare
metodologic i experimentare practic.
Marea majoritate a propoziiilor enumerate mai sus i care stau la baza teoriei lui Forrester
se regsesc explicit sau implicit i la baza metodologiilor practice de analiz sistemic. Conceptele
de flux informaional i proces decizional sunt dominante i n analiza sistemic la fel ca n TGS, iar
urmrirea mecanismului transformrii intrrilor n ieiri constituie obiectul principal al analizei de
sistem la fel ca i al TGS. Procedeul folosit de analiza sistemic nu mai este ns matematic, ci
bazat pe descrierea explicit, calitativ, a proceselor informaional-decizionale. n plus, n practica
analizei de sistem, odat cu proiectarea proceselor informaionale i n special a celor decizionale,
se urmrete mbuntirea lor, deci se au n vedere criterii de optim. n aciunea aceasta de
proiectare eficient a procesului informaional-decizional, analiza sistemic face din plin apel la
procedeele cercetrii operaionale i la tehnicile informaticii. n ceea ce privete folosirea metodelor
psihosociologice, n analiza de sistem exist ncercri recente n acest sens.

Rolul modelrii n cercetarea operaional

Conceptul de "model", att de mult folosit n tiina modern, este relativ nou, dar metoda
modelrii este tot att de veche pe ct sunt preocuprile oamenilor pentru cunoaterea tiinific
3
.
Putem considera c modelul este o reprezentare izomorf a realitii, care, oferind o imagine
intuitiv i totui riguroas, n sensul structurii logice, a fenomenului studiat, faciliteaz

4
3
Oamenii de tiin din toate timpurile au folosit "modele" n cele mai diverse domenii ale cunoaterii
tiinifice. Pn de curnd ns ei utilizau modelarea fr a folosi termenul respectiv.
6
Bazele cercetrii operaionale
descoperirea unor legturi i legiti imposibil sau foarte greu de gsit pe alte ci.
n elaborarea modelelor economico-matematice, teoria economic are un rol deosebit de
important ntruct ea formuleaz categoriile, conceptele i legile obiective ale realitii economice.
Numai sprijinindu-se pe teoria economic modelele matematice pot reprezenta fidel fenomenele
economice.
Modelul, ca instrument al cunoaterii tiinifice, este folosit n foarte numeroase discipline
teoretice i practice. Fr pretenia de a face o clasificare riguroas a tipurilor de modele, vom arata
c ele pot fi: modele verbal-descriptive - folosite n toate disciplinele nematematizate, modele
matematice, modele fizice analogice (de tipul machetelor statice sau dinamice), modele grafice etc.
n tiinele economice, n special n disciplinele organizrii i conducerii, modelele sunt
utilizate n toat diversitatea de tipuri care exist. n ultimele decenii ns, se contureaz din ce n ce
mai mult tendina utilizrii cu precdere, n aceste discipline, a modelelor de tip matematic, datorit
n special capacitii acestora de a condensa riguros esenialul, ct i posibilitii lor de a fi
programate cu ajutorul calculatoarelor electronice, alctuind mpreun un instrument de investigaie
tiinific de o putere necunoscut pn n prezent, o prodigioas "prelungire" a inteligenei umane.
O sistematizare metodologic a modelelor matematice ntrebuinate n disciplinele
organizrii i conducerii social-economice ar fi riscant, avnd n vedere mutaiile continue i
spectaculoase care au loc n aceste discipline i, n plus, ar avea un caracter pur scolastic, fr
utilitate teoretic sau practic real. De aceea, ne vom limita, n continuare, s enumerm
principalele tipuri de modele matematice cunoscute n acest domeniu.
Dup ntinderea domeniului studiat, modelele care descriu realitatea economic pot fi:
macroeconomice - cele care se refer la economia naional, la ramur (subramur) sau la economia
unui teritoriu mare (un jude, o anumit zon industrial, agricol etc.) i microeconomice - la nivel
de ntreprindere, uzin, trust, combinat etc.
Modelele cibernetico-economice urmresc s studieze relaia dintre intrri i ieiri ntr-un
organism economic, cu evidenierea fenomenelor de reglare care determin buna funcionare a
sistemului. Majoritatea modelelor cibernetico-economice sunt macroeconomice.
Modelele econometrice descriu comportamentul organismelor economice cu ajutorul unor
sisteme de ecuaii n care elementele numerice sunt determinate statistic. i aceste modele sunt, de
obicei, macroeconomice.
Modelele de simulare ncearc s stabileasc modul de funcionare al unor organisme macro
sau microeconomice prin acordarea unor combinaii de valori ntmpltoare variabilelor
independente care descriu procesele. Prin "citirea" valorilor pe care le capt n felul acesta
variabilele dependente, se obin mrimi semnificative n procesul studiat.
Modelele sistemice au drept obiectiv surprinderea ansamblului aspectelor dintr-un organism
economic (de exemplu, n modelele Forrester se consider c prin identificarea celor ase fluxuri
caracteristice se poate cunoate comportarea sistemului ca un tot).
Modelele cercetrii operaionale se caracterizeaz prin cutarea unei soluii optime sau
apropiat de optim, pentru fenomenul studiat. Modelele cercetrii operaionale se bazeaz pe o mare
diversitate de procedee matematice i au aplicaii la nivel macro, dar n special la nivel
microeconomic. Ele reprezint principalul instrument pentru optimizarea deciziilor n analiza de
sistem.
Tipologia de mai sus este foarte relativ, ntre grupele menionate existnd frecvente
asemnri i ntreptrunderi. Astfel, modelele econometrice sunt adesea de tip cibernetic, simularea
se utilizeaz n mai toate tipurile de modele matematice, modelele cercetrii operaionale pot fi
folosite n descrierea sistemic a unui organism etc.
Vom examinm, n continuare, procedeele practice de elaborare i utilizare a modelelor
matematice n disciplinele organizrii i conducerii.
n primul rnd trebuie subliniat faptul c activitatea de modelare, pentru a fi eficient,
trebuie desfurat ntotdeauna n cadrul analizei de sistem, i anume ca un moment al etapei de
proiectare a noului sistem. O serie de operaii care se desfoar n cadrul analizei de sistem
naintea acestui moment au un caracter pregtitor pentru efectuarea modelrii, iar altele, ulterioare
5
7
Modelarea matematic i rolul ei n cercetarea operaional
ei, sunt necesare pentru aplicarea n practic a modelelor elaborate.
Vom arta n continuare care sunt principalele faze ale elaborrii unui model matematic
ntr-o problem de organizare-conducere social-economic, avnd grij s evideniem cum se
mpletesc aceste faze cu alte operaii ale analizei de sistem.
Prima faz a modelrii, care are un caracter pregtitor, este cunoaterea realitii n
organismul studiat, n scopul mbuntirii mecanismului informaional-decizional. Descrierea
logicii proceselor decizionale, alturi de considerarea obiectivelor viitorului sistem, sunt
principalele elemente ale cunoaterii realitii necesare modelrii.
A doua faz a modelrii o reprezint construirea propriu-zis a modelului. Aceast
operaie, n marea majoritate a cazurilor din practic, const n aplicarea unui instrument clasic de
modelare ales din gama extrem de variat pe care ne-o pune la dispoziie teoria cercetrii
operaionale. n astfel de situaii, abilitatea analistului const n stabilirea corespondenei dintre
realitate i instrumentul de modelare cunoscut din literatura de specialitate. Exist i cazuri cnd nu
se poate stabili o astfel de coresponden, analistul fiind obligat s elaboreze modele noi. Acestea
pot fi de dou feluri: a) combinaii de modele clasice, din domeniul teoriei i b) modele noi
propriu-zise. n primul caz, totul se reduce la buna cunoatere a realitii i a teoriei, la care trebuie
adugat o doz de abilitate n combinarea metodelor. n cazul al doilea, este vorba despre creaie
original. Elaborarea unui model matematic realmente original reclam, pe lng profunda
cunoatere a realitii care urmeaz a fi modelat, o foarte solid cultur matematic, imaginaie i
talent. Dup cum va rezulta din parcurgerea n prezentul curs a modelelor clasice ale cercetrii
operaionale, exist o mare diversitate n structura, matematica i logica modelelor, de la modele
foarte simple, neaxiomatizate, cum sunt cele din programarea liniar, la modele combinatorice, n
probleme de teoria grafelor, analiza drumului critic i programarea operativ a produciei i pn la
modele de mare finee, prezentate axiomatizat, cum sunt cele ale utilitii sau deciziilor de grup.
Evident, elaborarea n forma axiomatizat a unui model reprezint un stadiu superior n procesul
modelrii care, ns, nu poate fi totdeauna atins n practic.
Un model axiomatizat (sistem axiomatic) cuprinde:

- axiomele sistemului, reprezentnd propoziii exprimate n form matematic, de regul
foarte puine, care conin unele adevruri de mare generalitate privind fenomenul care se
modeleaz, att de generale, nct toate constatrile concrete i particulare vor putea fi
deduse din cele generale;
- reguli de inferen, reprezentnd prescripii riguroase, singurele admise n sistem, prin
care se trece de la axiome la teoreme, sau de la teoreme deja demonstrate, la altele noi;
- teoreme, adic propoziii mai mult sau mai puin particulare, exprimate matematic, deduse
prin reguli de inferen din aproape n aproape din axiome i care exprim proprieti ale
fenomenului modelat.

Cnd n procesul de modelare axiomatic se expliciteaz limitativ conceptele care urmeaz a
fi utilizate, adic se d de la nceput o list a noiunilor i operaiilor matematice admise n sistem,
se obine o form superioar de sistem axiomatic numit sistem formal.
Sistemele formale sunt nc foarte puin utilizate n tiin i cu att mai puin n disciplinele
organizrii i conducerii economice.
Axiomatizarea i, n ultima analiz, formalizarea, reprezint viitorul n modelarea
matematic, datorit rigorii excepionale pe care o introduc, diminurii considerabile a elementelor
de intuiie i arbitrar, care, dei mult mai puine dect n modelele nematematizate, sunt nc
prezente n modelarea matematic axiomatizat.
A treia faz a modelrii este confruntarea modelului cu realitatea i eventual
experimentarea sa. Aceast faz se realizeaz n cadrul implementrii sistemului, care poate fi
considerat a patra i ultima faz a modelrii.
n ncheierea acestui paragraf, s examinm cteva caracteristici ale instrumentelor de
modelare matematic pe care ni le pune la dispoziie cercetarea operaional.
6
8
Bazele cercetrii operaionale
Una din principalele caracteristici ale tuturor metodelor cercetrii operaionale este faptul c
unele probleme ale cercetrii operaionale pot fi privite, din perspectiv pur teoretic, ca probleme
de matematic pur. Evident, nu aceasta va fi perspectiva pe care o vom adopta n cele ce urmeaz,
ntruct vom privi metodele cercetrii operaionale strns legate de problemele practice.
Din punct de vedere istoric, unele dintre problemele cercetrii operaionale s-au ivit, ce e
drept, n special sub aspect pur matematic, cu mult nainte de a fi aprut activitatea organizat i
denumirea de cercetare operaional. Astfel, unele noiuni de teoria grafelor se cunosc de mai bine
de un secol, teoria ateptrii i are originea n unele lucrri ale lui Erlang din deceniul al 2-lea al
secolului nostru, iar teoria stocurilor apare ctre anul 1930. Ca disciplin de sine stttoare,
cercetarea operaional a aprut ns n timpul celui de-al doilea rzboi mondial, prin nfiinarea
unor echipe complexe (matematicieni, ingineri, economiti, biologi, psihologi .a.) nsrcinate cu
optimizarea deciziilor privind unele aciuni pregtitoare operaiilor militare. Dup rzboi, echipele
astfel formate s-au reprofilat rapid pentru activiti panice. Dezvoltndu-se spectaculos n ultimele
trei decenii, preocuprile teoretice i n special practice, n domeniul cercetrii operaionale, au
ajuns s antreneze astzi pe plan mondial sute de mii de specialiti.
n prezent nu se mai poate concepe conducerea unei activiti tehnico-economice importante
fr a face apel la metodele cercetrii operaionale, bineneles mpreun cu celelalte tehnici
moderne cum ar fi informatica, analiza de sistem .a..


7
9
Bazele cercetrii operaionale

PROGRAMAREA LINIAR

Prezentare general

Mulimea sistemelor economice concrete i multitudinea problemelor conducerii acestora au
creat o diversitate de reprezentri economico-matematice, denumite modele.
Varietatea acestora este determinat, n principal, de structura "obiectului" analizat, de
scopul cercetrii precum i de informaia disponibil.
Modelele de programare matematic i mai ales subclasa acestora modelele de programare
liniar ocup un loc deosebit de important, att n teoria ct i n practica economic. Teoria
economic a beneficiat de aportul abordrii interdisciplinare care a permis aprofundarea analizei
eficienei maximale a sistemelor complexe, a permis descoperirea unor concepte noi ale optimului
economic, a perfecionat metodele de cercetare i cunoatere iar practica economic s-a mbogit
cu un instrument deosebit de util analizei economice i fundamentrii deciziilor.
Structura modelului general de programare liniar se constituie n primul rnd prin mulimea
de activiti {A
1
, A
2
, ... A
n
} care compun sistemul economic analizat, mulimea de resurse utilizate
{R
1
, R
2
, ... R
m
} precum i prin relaiile tehnico-economice dintre acestea. Legtura dintre activiti
i resurse este determinat de tehnologia de fabricaie corespunztoare fiecrei activiti A
j

(j=1,...,n) i poate fi caracterizat numeric prin vectorul coloan a
(j)
de componente (a
1j
, a
2j
, ... a
mj
).
Elementele {a
ij
, i = 1,...,m; j = 1,...,n} se numesc coeficieni tehnici sau coeficieni de consum
specific i arat ce cantitate din resursa R
i
se consum pentru producerea unei uniti din produsul
(serviciul) P
j
(ca rezultat al activitii A
j
). Toate "tehnologiile" de fabricaie definite de vectorii
coloan a
(j)
se pot organiza ntr-o matrice A cu m linii i n coloane; fiecare linie se refer la o
resurs R
i
(i = 1,...,m) i fiecare coloan se refer la o activitate A
j
(j = 1,...,n).
Notnd cu x
j
(j = 1,...,n) rezultatul activitii A
j
ntr-o perioad dat i cu b
i
(i = 1,...,m)
cantitile disponibile din resursele R
i
(i = 1,...,m), se pot scrie matematic urmtoarele restricii
tehnico-economice:
(1)
a
m n mn 2 m2 1 m1
2 n 2n 2 22 1 21
1 n 1n 2 12 1 11
b x a ... x a x a
b x a ... x a x
b x a ... x a x a
+ + +
+ + +
+ + +
L L L L L L L L L L L L
sau Ax b

unde A = ; x = i b =
|
|
|
.
|

\
|
mn m2 m1
2n 22 21
1n 12 11
a a a
a a a
a a a
L
M O M M
L
L
|
|
|
.
|

\
|
n
2
1
x
x
x
M
|
|
|
.
|

\
|
n
2
1
b
b
b
M

Fiecare inecuaie/restricie ncorporeaz dou afirmaii:

a. cantitatea consumat dintr-o resurs nu poate depi volumul disponibil (propoziie de
logic economic)
b. consumul total R
ij
din resursa R
i
pentru efectuarea activitii A
j
este proporional cu
intensitatea acesteia, adic cu x
j
, deci R
ij
()
= a
ij
x
j
(ipotez simplificatoare)


()
De aici rezult posibilitatea s calculm coeficienii a
ij
pe baza informaiilor disponibile privind cantitile consumate
R
ij
i nivelul x
j
: a
ij
=
j
x
ij
R
; i = 1,...,m; j = 1,...,n
21
10
Programarea liniar
Sistemul de restricii (1) realizeaz legtura dintre resurse i activiti prin intermediul celor
m restricii liniare.
Modelul problemei de programare liniar conine restricii de tipul (1) precum i un criteriu
de "performan" care s permit evaluarea eficienei fiecrei activiti. n funcie de scopul urmrit,
putem alege drept criteriu de eficien un indicator care msoar efortul, unul care msoar
rezultatul sau un indicator exprimat ca raport ntre rezultat i efort (sau efort pe rezultat).
Este evident c eficiena maxim nseamn minimizarea efortului i maximizarea
rezultatului, iar conceptul de optim se definete, n acest caz, ca un program x R
n
care minimizeaz
sau maximizeaz o funcie obiectiv i, n acelai timp, satisface toate restriciile tehnico-economice.
Presupunnd c fiecare component a vectorului linie c = (c
1
, c
2
, ..., c
n
) msoar eficiena
unei uniti din rezultatul activitii A
j
, atunci se poate introduce funcia liniar:
f(x) = c
1
x
1
+ c
2
x
2
+ ... + c
n
x
n

care evalueaz performana oricrui program x.
Sintetiznd, obinem urmtorul program de programare liniar:

( ) | |

=
=
n 1, j 0 x
I k b x a
I i b x a
x optim
j
2
n
1 j
k j kj
1
n
1 j
i j ij
f
x

(1)
(2)
unde I
1
I
2
= {1,2,...,m}
(3)

Relaiile (1), (2) i (3) constituie mpreun modelul general al unei probleme de programare
liniar, avnd fiecare un rol specific:
1. relaia (1), unde f(x) = este denumit funcia obiectiv de eficien a problemei,
evalueaz eficiena/performana fiecrei variante de program x;

=

n
1 j
j j
c x
2. relaiile (2) de tipul reprezint restricii de tip resurse; iar restriciile de
tipul se refer la restricii tehnico-economice de tip calitativ (i ca urmare
indicatorul b

=

n
1 j
i j ij
b x a

=

n
1 j
k j kj
b x a
k
este limita inferioar impus "reetei optime";
3. relaia (3) x
j
0 j = 1,...,n, numit condiia de nenegativitate a variabilelor, asigur
obinerea unei soluii realizabile din punctul de vedere al logicii economice.
Dup cum s-a artat la nceput, structura concret a unei aplicaii n economie este
determinat n primul rnd de obiectivul urmrit.
Astfel, n cazul problemei determinrii structurii sortimentale optime a produciei, se
cunosc cantitile disponibile (cantitile de care se poate face rost pe perioada analizat) din fiecare
materie prim {b
i
, i =1,...,m}, coeficienii tehnologici {a
ij
, i = 1,...,m, j = 1,...,n} (a
ij
reprezint
cantitatea din materia prim i necesar fabricrii unei uniti din produsul de tipul j), cantitile
maxime {
j
x , j = 1,...,n} i minime {
j
x , j = 1,...,n} ce pot fi produse din fiecare sortiment n
perioada analizat i profiturile unitare {p
j
, j = 1,...,n} ale fiecrui tip de produs. Se cere gsirea
acelor cantiti x
j
care trebuie fabricate din fiecare tip de produs astfel nct s se obin profitul
maxim, n condiiile nedepirii disponibilurilor din fiecare resurs.
22
11
Bazele cercetrii operaionale
Pentru simplificarea modelului, se presupune c preul unui bun nu depinde de cantitatea
produs din acesta sau din celelalte, consumul din fiecare materie prim este direct proporional cu
cantitatea produs i, pentru fiecare bun, consumurile dintr-o resurs sau alta nu se condiioneaz
reciproc.
Problema matematic echivalent este:

( )

=
=
= + + +
+ + +
=
n 1,..., j 0 x
n 1,..., j x x x
m 1,..., i b x a ... x a x a
x p ... x p x p max
j
j j j
i n in 2 i2 1 i1
n n 2 2 1 1
n 1, j x
j


n unele probleme, n loc de profiturile p
j
se cunosc veniturile unitare v
j
sau costurile unitare
c
j
sau alt criteriu de eficien, scopul fiind maximizarea venitului, minimizarea costurilor respectiv
optimul indicatorului de eficien respectiv, sau toate la un loc. De asemenea pot lipsi condiiile de
limitare a produciei sau pot exista i alte condiii.
La o problem de programare operativ a produciei restriciile se refer la o serie de
maini (utilaje) cu care se execut produsele dorite, b
i
fiind disponibilul de timp al utilajului i pe
perioada analizat iar a
ij
timpul necesar prelucrrii unui produs de tipul j pe utilajul i, scopul fiind
maximizarea produciei.
Ca urmare, modelul are forma:

( )

=
= + + +
+ + +
=
n 1,..., i 0 x
m 1,..., i b x a ... x a x a
x ... x x max
j
i n in 2 i2 1 i1
n 2 1
n) 1,..., j ( x
j


Dac se dorete obinerea unui meniu (reete furajere), care s asigure necesarurile {b
i
, i =
1,...,m} dintr-un numr de m substane eseniale organismului, avnd la dispoziie un numr de n
alimente, cunoscndu-se cantitile {a
ij
, i = 1,...,m, j = 1,...,n} din fiecare substan pe care le
conine o unitate de msur din fiecare aliment i costurile {c
j
, j = 1,...,n} unei uniti de msur din
fiecare aliment, putem scrie modelul:

( )

=
= + + +
+ + +
=
n 1,..., j 0 x
m 1,..., i b x a ... x a x a
x c ... x c x c min
j
i n in 2 i2 1 i1
n n 2 2 1 1
n) 1,..., j (
j
x


Variabilele x
j
reprezint, n acest caz, cantitatea din fiecare aliment ce va intra n meniu iar
f(x) =

este costul total al reetei definit de vectorul x.


=

n
1 j
j j
c x
23
12
Programarea liniar

Vom ncheia exemplificarea cu prezentarea modelului amestecului optim de produse
petroliere. Presupunem c o rafinrie dispune de n tipuri de benzine, prin amestecarea acestora
urmnd s obin o benzin cu m caracteristici impuse i la un pre minim posibil. O serie de
caracteristici trebuie s fie ndeplinite cu o limit inferioar (de exemplu cifra octanic), altele cu o
limit superioar (de exemplu densitatea sau temperatura de fierbere) i altele cu egalitate (de
exemplu cantitatea necesar), aceste limite fiindb , i = 1,...,m
1
i
1
, , i = 1,...,m
2
i
b
2
respectiv , i =
1,...,m
3
i
b
3
cu m
1
+ m
2
+ m
3
= m. De asemenea, trebuie inut cont de cantitile disponibile din fiecare
benzin D
i
, i = 1,...,n. Se cunosc caracteristicile fiecrei benzine disponibile, date ntr-o matrice A
M
mn
, unde a
ij
este valoarea caracteristicii i pentru benzina j i preurile unitare ale fiecrei benzine,
notate p
j
, j = 1,...,n. Dac notm cu x
j
, j = 1,...,n, cantitile din fiecare benzin care vor forma
amestecul optim, atunci avem de rezolvat problema:

=
=
+ + = =
+ + =
=
|
|
.
|

\
|

=
=
=
=
n 1,..., j 0 x
n 1,..., j D x
m 1,..., m m i b x a
m m 1,..., m i b x a
m 1,..., i b x a
p min
j
j j
2 1
n
1 j
3
i j ij
2 1 1
n
1 j
2
i j ij
1
n
1 j
1
i j ij
n
1 j
j j
x
j
x




Programarea matematic

Se observ c toate aceste probleme, cu toate c reprezint situaii economice total diferite,
sunt aplicaii n sfera activitii economice ale urmtoarei probleme de optimizare:

( ) ( ) ( )
( )
3 . 1
2 . 1
1 . 1
x ,..., x , x
n 1,..., i b x ,..., x , x
x ,..., x , x min sau max
n
n 2 1
i n 2 1
n 2 1


=
R
g
f
i


n care funciile f,g
i
: R
n
R pot avea orice form i proprieti (liniare, convexe, continui,
difereniabile etc) iar poate fi orice submulime a lui R
n
(continu sau discret, mrginit sau
nemrginit, convex sau neconvex, finit sau infinit etc) i n care dorim s gsim minimul sau
maximul funciei f n variabilele x
i
care ndeplinesc restriciile 1.2 i 1.3. O astfel de problem se
numete problem de programare matematic.
Funcia (1.1) se numete funcia obiectiv a problemei de optimizare. n aplicaiile
economice, ea reprezint criteriul de performan urmrit: maximizarea beneficiului, maximizarea
produciei marf, minimizarea costului produciei, maximizarea gradului de ncrcare al utilajelor
sau minimizarea timpului de staionare al acestora, maximizarea veniturilor etc.
Inegalitile (1.2), n care g
i
sunt funcii de n variabile iar b
i
sunt constante, se numesc
restricii ale problemei de optimizare. Ele traduc n limbaj matematic condiiile de natur economic
sau tehnologic n care se desfoar procesul economic modelat, cum ar fi: nedepirea stocurilor
disponibile de resurse (materii prime, capaciti de producie, for de munc, fonduri bneti, timp
etc), ndeplinirea sau depirea unor indicatori economici (producia fizic, net) etc.
24
13
Bazele cercetrii operaionale
Condiiile (1.3), impuse "direct" variabilelor, depind de natura problemei studiate. De cele
mai multe ori, este mulimea vectorilor x = (x
l
,...,x
n
) R
n
cu toate componentele nenegative i
acest fapt se justific prin aceea c, n general, x
i
reprezint "nivelele" unor activiti de producie,
nivele care nu pot fi negative. n unele probleme de optimizare, cum ar fi cele de croire sau
ordonanare, variabilele desemneaz mrimi indivizibile i deci nu pot lua dect valori ntregi.
Mulimea va fi format n acest caz din vectori x cu toate componentele ntregi i nenegative. n
alte probleme, ca de pild cele de afectare, portofoliu etc, variabilele nu pot lua dect valorile 0 sau
1 (variabile bivalente) i ca atare va fi format din vectorii x = (x
1
, ,x
n
) cu toate componentele
0 sau 1. Caracteristic acestor tipuri de probleme este faptul c devine o submulime discret din
R
n
, de unde i numele generic de probleme de optimizare discret dat acestora.
O soluie a unei astfel de probleme are deci trei proprieti:

P1. verific restriciile 1.2
P2. verific restriciile "directe" 1.3
P3. optimizeaz funcia obiectiv pe mulimea vectorilor care ndeplinesc condiiile P1. i P2.

n teoria programrii matematice se folosesc, pentru claritatea i simplitatea expunerii,
urmtoarele noiuni:

soluie a problemei de optimizare =
un vector x R
n
care verific restriciile 1.2
soluie admisibil a problemei de optimizare =
un vector x R
n
care verific restriciile 1.2 i 1.3
o soluie care verific restriciile 1.3
soluie optim a problemei de optimizare =
un vector x R
n
care verific restriciile 1.2 i
1.3 i optimizeaz funcia obiectiv pe mulimea
tuturor vectorilor cu aceast proprietate
o soluie care verific restriciile 1.3 i
optimizeaz funcia obiectiv pe mulimea
tuturor soluiilor cu aceast proprietate
o soluie admisibil care optimizeaz
funcia obiectiv pe mulimea soluiilor
admisibile

Izvort din studiul problemelor extremale ale analizei matematice clasice, programarea
matematic a cunoscut n ultimele decenii o dezvoltare spectaculoas, explicabil numai n parte
prin progresele nregistrate n matematic. ntr-adevr, aceast dezvoltare a fost puternic stimulat
de creterea vertiginoas a complexitii activitilor economice, care a furnizat probleme cu
structuri din ce n ce mai complicate, ca i de rapida perfecionare a mijloacelor automate de calcul,
singurele capabile s testeze eficiena practic a metodelor teoretice elaborate. La rndul ei,
programarea matematic, prin rezultatele ei, a adus un considerabil aport la perfecionarea
metodelor de conducere n economie i a impulsionat cercetrile - n plan teoretic - privind
modelarea sistemelor economice complexe, studiul i interpretarea legilor i proceselor economice.
n ceea ce privete rezolvarea acestor probleme, este evident c varietatea extrem a acestora
face imposibil gsirea unui algoritm practic care s le poat rezolva pe toate, dar putem gsi (sau
ne putem atepta s gsim), pentru fiecare caz particular, un algoritm de rezolvare care s-i trag
eficacitatea tocmai din folosirea tuturor particularitilor cazului respectiv. n prezent exist sute de
algoritmi de rezolvare, cercetarea problemei evolund din ce n ce mai mult spre testarea i
mbuntirea acestora dect spre gsirea unora noi.
25
14
Programarea liniar

Problema de programare liniar

Definiia 1. Dac ntr-o problem de programare matematic funcia obiectiv f i funciile
g
i
, din restriciile 1.2, sunt funcii liniare atunci problema se numete problem de programare
liniar. O problem de programare liniar este, deci, un caz particular al problemelor de programare
matematic i, innd cont de forma oricrei funcii liniare, rezult c forma general a oricrei
probleme de programare liniar este:
( )

+ + +
+ + + =
oarecare
0
0
x ,..., x , x
n 1,..., i b x a ... x a x a
x c ... x c x c min max
n 2 1
i n in 2 i2 1 i1
n n 2 2 1 1
f


unde c
j
(coeficienii funciei obiectiv), a
ij
(coeficienii restriciilor) i b
i
(termenii liberi) sunt
constate reale.



Forma conic i forma standard a unei probleme de programare liniar

Cu toate c problema de programare liniar este cea mai simpl dintre problemele de
programare matematic, ea este nc destul de complicat, prin faptul c orice restricie poate avea
trei forme diferite iar obiectivul poate fi minimizarea sau maximizarea funciei f. Este puin probabil
c exist un algoritm i simplu i aplicabil la toate cazurile.
Din acest motiv este mult mai simplu s gsim o anumit form (ct mai simpl) cu
proprietatea c pentru orice problem P, exist o alta problem P' de aceast form, echivalent cu
problema iniial P (spunem c dou probleme sunt echivalente dac exist un izomorfism ntre
mulimile soluiilor celor dou probleme i un homeomorfism ntre funciile lor obiectiv) i s
dispunem de un algoritm care s rezolve problemele de aceast form i de o regul prin care s
gsim soluia problemei iniiale P din soluia problemei P', gsit cu acest algoritm.
n acest sens (dar i din cauza frecvenei apariiei lor n practic) s-au evideniat dou forme
ale problemelor de programare liniar, forma canonic i forma standard.

Definiia 2. Spunem c o problem este la forma canonic dac are una din urmtoarele
dou forme:

Forma canonic de minim Forma canonic de maxim

( )

= + + +
+ + + =
0 x ,..., x , x
n 1,..., i b x a ... x a x a
x c ... x c x c min
n 2 1
i n in 2 i2 1 i1
n n 2 2 1 1
f


( )

= + + +
+ + + =
0 x ,..., x , x
n 1,..., i b x a ... x a x a
x c ... x c x c max
n 2 1
i n in 2 i2 1 i1
n n 2 2 1 1
f


Aceast form este cel mai des ntlnit n practic (vezi problema determinrii structurii
sortimentale optime a produciei sau problema dietei) i, n plus, restriciile economice sunt n
general inegaliti i foarte rar egaliti. De asemenea, aceast form este invariant la anumite
transformri (vezi problema dual) i asigur existena soluiei (orice problem la aceast form,
care are termenii liberi i coeficienii restriciilor pozitivi, are soluie).
26
15
Bazele cercetrii operaionale

Definiia 3. Spunem c o problem este la forma standard dac are forma:

( ) ( )

= = + + +
+ + + =
0 x ,..., x , x
n 1,..., i b x a ... x a x a
x c ... x c x c max sau min
n 2 1
i n in 2 i2 1 i1
n n 2 2 1 1
f


Aceast form, dei nenatural din punct de vedere economic, este cea care se preteaz cel
mai bine la rezolvarea cu metodele algebrei clasice.

Propoziie. Pentru orice problem de programare liniar P exist o problem la forma
canonic PFC i o problem la forma standard PFS echivalente cu P.

Demonstraie. ntr-adevr:

a) orice problem de maxim poate fi transformat n una de minim i reciproc folosind relaia:

max f(x) = min f(x)

b) orice restricie de tipul "" poate fi transformat ntr-o restricie de forma "" i reciproc
folosind relaia:


c) orice restricie inegalitate poate fi transformat n egalitate, prin introducerea unei variabile
suplimentare nenegative i folosind relaiile:

i

= +
0 x
x

=
0 x
x
Toate variabilele introduse pentru transformarea inegalitilor n egaliti se numesc variabile de
abatere sau variabile de compensare.

d) orice restricie egalitate poate fi transformat n restricii inegalitate, folosind relaia:

=




e) orice variabil cu restricie de semn negativ (x 0) poate fi nlocuit cu o variabil cu restricie
de semn pozitiv (y 0), folosind relaia:

x 0

=
0 y
y - x

f) orice variabil fr restricie de semn poate fi nlocuit cu dou variabile cu restricie de semn
pozitiv, folosind relaia:

x oarecare

=
0 z
0 y
z - y x

Se demonstreaz fr un efort matematic deosebit c dac P' se obine din P folosind doar
27
16
Programarea liniar
transformrile de mai sus (numite i transformri elementare) atunci P i P' sunt dou probleme
echivalente i ntre soluiile lor optime exist o bijecie.
Din cele de mai sus rezult cum poate fi adus orice problem de programare liniar la
forma standard (sau canonic) i cum se obine soluia problemei iniiale din soluia problemei la
forma standard (sau canonic).

Exemplu: Problemei P de mai jos i corespunde problema la forma standard PFS alturat:

P PFS

(min) f = 3x
1
2x
2
+ 4x
3


+ +

+ +
+ +
0 x oarecare, x , 0 x
31 x 5 x 30 x 3
21 x 14 x 7 x 7
9 x 6 x 36 x 19
16 x 15 x 13 x 9
3 2 1
3 2 1
3 2 1
3 2 1
3 2 1


(max) g = +3a
1
+ 2y
2
2z
2
4x
3

= + + +
= + +
= + +
= + + +
0 x , x , x , x , x , z , y , a
31 x x 5 z 30 y 30 a 3
21 x x 14 z 7 y 7 a 7
9 x x 6 z 36 y 36 a 19
16 x x 15 z 13 y 13 a 9
7 6 5 4 3 2 2 1
7 3 2 2 1
6 3 2 2 1
5 3 2 2 1
4 3 2 2 1


Problema PFS are o singur soluie optim:
a
1
= 3, y
2
=
3
4
, z
2
= 0, x
3
= 0, x
4
=
3
77
, x
5
= 0, x
6
=
3
154
, x
7
= 0
care d un maxim al funciei g egal cu
3
35
.
Acestei soluii i corespunde singura soluie optim pentru P:
x
1
= -3, x
2
=
3
4
, x
3
= 0
care d un minim al funciei f, egal cu
3
35
.


Rezolvarea problemei de programare liniar.

Analiza problemei

Fie o problem P despre care presupunem (fr a restrnge generalitatea) c a fost adus la
forma standard. De asemenea presupunem (tot fr a restrnge generalitatea) c variabilele
problemei au fost numerotate i denumite x
j
cu j = 1,...,n (n = numrul de necunoscute), coeficienii
variabilelor din funcia obiectiv f cu c
j
(c
j
= coeficientul variabilei x
j
), c n ecuaii variabilele apar
n ordinea indicilor, ecuaiile fiind numerotate de la 1 la m (m = numrul de ecuaii) i c am notat
cu b
i
termenul liber al ecuaiei i i cu a
ij
coeficientul variabilei j din ecuaia i. n acest caz putem
aeza variabilele problemei ntr-un vector cu n componente, coeficienii funciei obiectiv ntr-un
vector cu n componente, termenii liberi ntr-un vector cu m componente, coeficienii variabilelor
din ecuaii ntr-o matrice cu m linii i n coloane i vom avea:

x =

, c =

, b =

, A =
|
|
|
.
|

\
|
n
2
1
x
x
x
M
|
|
|
.
|

\
|
n
2
1
c
c
c
M
|
|
|
.
|

\
|
n
2
1
b
b
b
M
|
|
|
.
|

\
|
mn m2 m1
2n 22 21
1n 12 11
a a a
a a a
a a a
L
M O M M
L
L

(vom nota cu x
T
, c
T
i b
T
transpuii acestor vectori i cu A
T
transpusa matricei A).
Alegerea aezrii ca vectori coloan a fost fcut din raiuni de uurin a calculelor i a
28
17
Bazele cercetrii operaionale
memorrii acestora. Dup aceste notaii, problema poate fi scris mult mai simplu:

( )

=
=
0 x
b x A
x c min
T
f
sau
( )

=
=
0 x
b x A
x c max
T
f


Se tie c un sistem de forma Ax = b are soluie doar dac rang(A) = rang( A), unde A este
matricea extins obinut adugnd matricei A vectorul b, n acest caz sistemul devenind echivalent
cu sistemul obinut prin eliminarea restriciilor care nu corespund minorului principal (dac sistemul
nu are soluie atunci evident nici problema nu are soluii, caz care este total neinteresant).
Presupunem c au fost eliminate aceste restricii. Dac rang A = n atunci sistemul are o
singur soluie care, dac este admisibil, este i soluia optim cutat, altfel problema nu are
soluie. Este evident c i acest caz este la fel de neinteresant ca primul.
Presupunem deci n continuare c:

rang(A) = m < n

Rezolvarea sistemului Ax = b se poate face ntr-un mod simplu (cel puin teoretic) folosind
algebra matricial astfel:
mprim coloanele matricei A n dou submatrici: minorul principal (notat cu B, care
este o matrice ptratic de dimensiune m i va fi numit baz a sistemului) i restul
coloanelor (notat cu S, care este o matrice cu m linii i n m coloane);
mprim variabilele problemei n doi vectori: vectorul variabilelor principale
(corespunztoare coloanelor bazei) i vectorul variabilelor secundare (notat cu x
S
).
Fcnd eventual o renumerotare, pentru uurina expunerii i fiind evident c nu se
restrnge generalitatea problemei, presupunem c variabilele principale sunt chiar
primele m (aceast presupunere va fi fcut de cte ori va fi posibil, fr a mai specifica
acest lucru).
aducem succesiv sistemul la forma de mai jos:

Ax = b (BS) = b Bx
|
.
|

\
|
S
B
x
x
B
+ Sx
S
= b Bx
B
= b Sx
S
x
B
= B
-1
b B
-1
Sx
S
soluia sistemului va fi submulimea lui R
n
:

D
B
= {x = {x
B
,x
S
} / x
S
R
n-m
oarecare, x
B
= B
-1
b B
-1
Sx
S
}

Orice alegere a lui x
S
d o soluie. Dintre toate alegerile posibile este remarcabil (prin
simplitatea ei) soluia x
S
= 0, care duce la soluia particular:
x
B
=


|
|
|
|
.
|

\
|

0
0
0
b B
1
M
n m zerouri
numit soluia de baz asociat bazei B. Deci x
B
este x
B
= B
-1
b la care se adaug n-m
zerouri. Cu toate acestea, vor fi ambele numite soluie de baz, rezultnd din context de care
este vorba.

Observaie: Este evident c fiecrui minor principal al sistemului (= minor de
dimensiune m = baz) i corespunde o unic soluie de baz. O soluie de baz care are toate
componentele nenule strict pozitive se va numi soluie de baz admisibil iar o soluie
29
18
Programarea liniar
optim care este de baz se va numi soluie optim de baz. Se observ c o soluie de baz
are cel mult m componente diferite de 0. Din cauza importanei lor n rezolvarea problemei,
vom evidenia soluiile de baz care au mai puin dect m componente nenule, numite soluii
degenerate i pe cele care au fix m elemente nenule, numite soluii nedegenerate.
D
B
este izomorf cu R
n
, adic are tot attea elemente cte puncte sunt ntr-un spaiu cu
n
_

_
m dimensiuni. "Alegndu-le" din acestea doar pe cele cu toate elementele pozitive,
gsim mulimea n care vom "cuta" vectorul (vectorii) care d (dau) extremul lui f.

Rezolvarea problemei poate duce la urmtoarele rezultate:
R1. Sistemul Ax = b nu are soluii sau nu are soluii admisibile. n acest caz problema nu
are soluie.
R2. Imaginea funciei obiectiv pe mulimea soluiilor admisibile este nemrginit (la +
ntr-o problem de maxim sau la - ntr-o problem de minim). n acest caz spunem
c problema are optim infinit.
R3. Imaginea funciei obiectiv pe mulimea soluiilor admisibile este mrginit. n acest
caz problema are cel puin o soluie i spunem c problema are optim finit.
Greutatea gsirii soluiei problemei const n imensitatea numrului de soluiilor posibile ale
sistemului i n respectarea condiiei de nenegativitate a celor printre care cutm extremul dorit al
funciei f. Este natural ca primele ncercri n rezolvare s caute n primul rnd o limitare ct mai
puternic a locului n care cutm. Pe baza unor reprezentri geometrice ale problemei au fost
descoperite urmtoarele proprieti ale problemei, care poart denumirea de teoreme fundamentale
ale programrii liniare:

Teorema 1. Dac problema de programare liniar are soluii admisibile atunci are i soluii
de baz admisibile.

Teorema 2. Dac problema de programare liniar are soluii optime atunci are i soluii
optime de baz.

Teorema 3. Mulimea soluiilor admisibile (optime) este nchis i convex. Dac este i
mrginit atunci punctele extremale ale acesteia sunt chiar soluiile admisibile
(optime) de baz ale problemei.

Cele dou teoreme realizeaz efectiv trecerea ctre o problem rezolvabil pe calculator.
ntr-adevr, deoarece o baz este un minor de ordinul m al matricii A i unei baze i corespunde o
unic soluie de baz rezult c sunt cel mult C soluii de baz, adic un numr finit. n acest
moment s-ar prea c nu avem dect s lsm calculatorul s calculeze toate soluiile de baz i
valorile funciei obiectiv n cele admisibile gsind-o prin comparare pe cea care d minimul sau
maximul funciei printre acestea. Totui, aceast variant se dovedete nepractic la o analiz mai
atent, innd cont de urmtoarele observaii:
m
n
1. faptul c numrul soluiilor de baz este finit ne asigur doar c problema se va termina
cndva, ceea ce, din punct de vedere economic, este evident nemulumitor. Noi dorim ca
problema s fie rezolvat n timp util, adic repede. Rezolvnd problema ca mai sus vom
avea, pentru o problem cu 50 variabile i 20 restricii, de calculat, listat i comparat
soluii de baz, adic n jur de 10
20
50
C
20
. Presupunnd c suntem dotai cu un
supercalculator care ar termina un miliard de baze pe secund, rezolvarea ar dura 3000
ani. De altfel, o problem ca cea de sus este foarte mic n comparaie cu problemele
"serioase" ce au peste 1000 de variabile i 100 de restricii. n plus, un calculator ca cel
de sus nu exist nc, deci n nici un caz nu e disponibil ntreprinderilor obinuite.
2. Cu algoritmul de mai sus vom gsi cea mai bun soluie dintre soluiile admisibile de
baz, fr ns s tim dac problema admite, de fapt, optim (ar putea s aib optim
30
19
Bazele cercetrii operaionale
infinit).
3. Nu vom ti dac un minor de mm este baz dect dup ce-i vom calcula determinantul
i nu vom ti dac soluia de baz corespunztoare este admisibil dect dup ce o vom
calcula.
4. Soluia optim, odat gsit, nu va fi recunoscut ca atare dect dup ce vom calcula
toate celelalte soluii de baz, chiar dac ea a aprut chiar la nceputul calculelor.

n concluzie, pentru a fi eficient, un algoritm ar trebui s aib urmtoarele proprieti:

a) s dispun de un criteriu de recunoatere a faptului c problema nu are soluii admisibile;
b) s dispun de un criteriu de recunoatere a faptului c problema are optim infinit;
c) s dispun de un criteriu de recunoatere dac o soluie este optim sau nu;
d) s treac de la o soluie de baz admisibil la una cel puin la fel de bun (o soluie x este
mai bun dect o soluie y dac f(x) > f(y) ntr-o problem de maxim i f(x) < f(y) ntr-o
problem de minim;
e) s treac de la o soluie la cea mai bun dintre soluiile cel puin la fel de bune posibile
ca succesoare;
f) s nu revin la o soluie deja analizat;
g) s efectueze un numr de iteraii comparabil polinomial cu dimensiunea problemei.
h) s nu introduc erori de rotunjire (sau nu prea mari);
i) s fie ct mai simplu de implementat;

Condiiile de mai sus reprezint de fapt un algoritm ideal. La nceputurile cercetrii
operaionale era suficient, de fapt, i un algoritm care s ndeplineasc mcar condiiile b), c), d), e)
i h). Acest algoritm a fost dat de G.B. Dantzig, n 1947, care la numit algoritmul simplex. El
rmne i n zilele noastre cel mai eficient algoritm n ceea ce privete viteza de lucru, simplitatea i
implementarea pe calculator, pentru problemele care apar efectiv n practica economic.
Totui, el nu ndeplinea condiiile a), f) i g).
Condiia a) este relativ uor de ndeplinit i ea este acoperit prin introducerea unei faze
iniiale suplimentare la algoritmul simplex, rezultnd algoritmul simplex n dou faze.
Condiia f) a fost pus n momentul n care s-a observat c, n condiiile existenei soluiilor
degenerate, se poate ajunge n situaia cnd, de la o soluie dat, nu se poate ajunge dect la una la
fel de bun i tot aa, astfel nct, dac nu se iau msuri de evitare, se poate ajunge la o soluie care
a mai fost, fenomen numit ciclare. Astfel de exemple a fost efectiv gsite, unul fiind exemplul lui
Beale prezentat mai jos:

( )

=
= +
= + +
= + +
+ =
7 ,..., 1 i , 0 x
1 x x
0 3x x
2
1
12x x
2
1
x
0 9x x 8x x
4
1
x
x 6 x
2
1
x 20 x
4
3
max
i
6 3
7 6 5 4 2
7 6 5 4 1
7 6 5 4
f


Se observ imediat baza admisibil B
0
= (a
1
,a
2
,a
3
), de la care, aplicnd algoritmul sub forma
clasic, se vor obine succesiv bazele admisibile B
1
= (a
4
,a
2
,a
3
), B
2
= (a
4
,a
5
,a
3
), B
3
= (a
6
,a
5
,a
3
), B
4
=
(a
6
,a
7
,a
3
), B
5
= (a
6
,a
2
,a
3
), B
6
= (a
4
,a
2
,a
3
) ... . Cititorul poate verifica uor c toate aceste baze au ca
soluie de baz soluia (0,0,1,0,0,0,0) i valoarea funciei 0, dar nu ndeplinesc condiia de optim. Pe
de alt parte se vede c B
6
= B
1
i deci algoritmul va repeta la infinit aceast succesiune de baze,
31
20
Programarea liniar
neatingnd niciodat valoarea maxim
4
7
, corespunztoare soluiei (
4
3
,0,0,1,0,1,0).
Aceast situaie este ngrijortoare nu att din considerente practice imediate (nc nu a fost
gsit o problem din practic la care s apar acest fenomen, toate exemplele existente fiind
artificial construite, ca i cel de mai sus) ct din faptul c un algoritm implementat pe calculator s-ar
putea s fie pus n faa unei astfel de probleme, situaie n care n-am putea rezolva problema nici pe
calculator, nici manual, ea fiind prea mare. Situaia a fost depit prin diferite tehnici suplimentare
adugate celei de trecere la o soluie cel puin la fel de bun (insuficient, cum s-a vzut), cea mai
cunoscut fiind cea care folosete ordonarea lexicografic a soluiilor, care va fi prezentat i n
aceast carte.
n fine, referitor la condiia g), a durat mult timp pn s-a demonstrat c algoritmul, sub
aceast form, nu este n timp polinomial, un exemplu fiind clasa de probleme de mai jos, gsit
de Klee i Minty n 1972, n care algoritmul trebuie s analizeze 2
n
baze (n = numrul de
necunoscute) pn la gsirea celei optime.

( )

=
= +
|
|
.
|

\
|


=
=
n 1,..., j 0 x
n 1,..., i 100 x x 10 2
x 10 max
j
1 - i
i
1 - i
1 j
j
j - i
n
1 j
j
j - n
f


Pentru o astfel de problem, la 100 de variabile, algoritmul va avea 2
100
10
30
iteraii, i
chiar la o vitez de un miliard iteraii pe secund (mult peste puterea unui calculator actual) va
termina n 10
13
ani.
Nu se tie nc dac exist sau nu o alt modalitate de trecere de la o baz la alta, folosind
tabelele simplex, prin care algoritmul s devin n timp polinomial. Au fost ns gsii algoritmi
care nu folosesc tabelele simplex, primul fiind algoritmul de punct interior al lui Karmakar, despre
care s-a demonstrat c lucreaz n timp polinomial.
n ceea ce privete erorile de rotunjire, inevitabile cnd se fac calculele pe un calculator,
algoritmul se comport ntr-adevr foarte ru, orice eroare propagndu-se imediat la tot tabelul cu
efecte foarte mari. Acest lucru poate fi ns depit aplicnd o variant a algoritmului, numit
varianta revizuit a algoritmului simplex.
Toate punctele slabe ale algoritmului, amintite mai sus, nu au nmormntat ns algoritmul
simplex, deoarece folosirea acestuia aduce informaii mult mai ample dect gsirea soluiei propriu-
zise, este mult mai maleabil n cazul modificrilor ulterioare ale datelor problemei (vezi analiza
senzitivitii soluiei la datele problemei), se preteaz mult mai bine la interpretri economice, este
uor de scris un program de calculator asociat, este implementat pe foarte multe calculatoare i n
plus, aa cum aminteam mai sus, nc nu a aprut o problem practic n faa cruia s clacheze.
Noii algoritmi rmn doar ca alternative teoretice sau pentru cazurile n care algoritmul simplex este
lent, dar ei nu-l pot nlocui complet.


Fundamentarea matematic a algoritmului simplex


Algoritmul simplex pleac de la presupunerea c dispunem deja de o soluie admisibil de
baz x
B
, corespunztoare unei baze B. De asemenea, presupunem c am rezolvat sistemul Ax = b
folosind aceast baz, rezultnd astfel variabilele principale n funcie de cele secundare:

32
x
B
= B
-1
b B
-1
Sx
S

21
Bazele cercetrii operaionale

nlocuind variabilele, cu formula gsit, n funcia obiectiv, obinem:

f(x) = (B
T
B
c
-1
b B
-1
Sx
S
) + x
T
S
c
S
= c B
T
B
-1
b ( B
T
B
c
-1
S c )x
T
S
S
=
= f(x
B
) ( B
T
B
c
-1
S c )x
T
S
S
= f(x
B
) (z )x
T
S
c
S
= f(x
B
) x
S


unde:
f(x
B
) = c B
T
B
-1
b este valoarea funciei obiectiv n soluia de baz
B
T
B
c
-1
S = z este un vector n-m componente z = (z
m+1
, z
m+2
,...,z
n
).
= z este un vector n-m componente = (
T
S
c
m+1
,
m+2
,...,
n
)

Obinem urmtoarea form a problemei:
( ) ( ) ( )

=
= = +
=


+ =
+ =
n 1,..., j , 0 x
m 1,..., i x a x
x min sau max
j
n
1 m j
i j ij i
n
1 m j
j j
B
x
x f f


Din motive de organizare i concentrare a datelor problemei, Danzig le-a trecut pe acestea
ntr-un tabel ca cel de mai jos, numit tabel simplex.

c
1
c
2
... c
m
c
m+1
... c
n

c
B
x
B
x
B
x
1
x
2
... x
m
x
m+1
... x
n
c
1

c
2

M
c
m
x
1

x
2

M
x
m

B
-1
b I
m
B
-1
S
f(x
B
) 0 z
m+1
... z
n


0
m+1
...
n


Fiecrei soluii de baz i corespunde un tabel simplex i reciproc, deci, de fiecare dat cnd
vom vorbi de un tabel simplex, vom spune i care este baza asociat.
Din forma funciei obiectiv se vede c:

ntr-o problem de maxim:
x
B
este soluie optim ( )

+ =

n
1 m j
j j
B
x x f ( )
B
x f oricare ar fi x
S
0
0 oricare ar fi x

+ =

n
1 m j
j j
x
S
0
j
0, j = 1,...,n (toi
j
sunt pozitivi)
ntr-o problem de minim:
x
B
este soluie optim ( )

+ =

n
1 m j
j j
B
x x f ( )
B
x f oricare ar fi x
S
0
0 oricare ar fi x

+ =

n
1 m j
j j
x
S
0
j
0, j = 1,...,n (toi
j
negativi)
33
22
Programarea liniar

Pentru a evita complicarea expunerii vom presupune n continuare c problema este de
maxim, pentru cazul de minim raionamentul fiind analog.
Rezultatul obinut reprezint criteriul de recunoatere a optimalitii soluiei sau, mai simplu,
criteriul de optim.
Dac soluia nu este optim atunci exist evident o alt soluie de baz admisibil mai bun.
Se poate demonstra c dac x i y sunt dou soluii admisibile de baz cu f(x) f(y) i numrul de
variabile principale prin care difer cele dou este k, cu 1 k m, atunci exist un ir de soluii
admisibile de baz: {x
1
= x, x
2
, ..., x
k
= y} astfel nct:

1. f(x
i
) f(x
i+1
) oricare ar fi 1 i < k
2. x
i
difer de x
i+1
printr-o singur variabil, oricare ar fi 1 i < k

Din cele de mai sus rezult c e suficient s cutm o soluie de baz admisibil mai bun
doar printre cele care difer de cea actual printr-o singur variabil.
Trebuie deci s gsim acea variabil principal care iese din baz i acea variabil secundar
care intr n baz. Rezultatul schimbrii trebuie s fie:

1. o soluie de baz (deci coloanele corespunztoare noii variabile s formeze un minor
principal);
2. o soluie admisibil (adic s aib toate componentele pozitive);
3. o soluie mai bun;
4. cea mai bun posibil dintre soluiile mai bune.

Presupunem c nlocuim variabila principal x
i
(1 i m) cu variabila secundar x
j
(m+1 j
m). Aceasta este echivalent cu a scoate din ecuaia i (singura n care apare x
i
) variabila x
j
, n
funcie de variabila x
i
i de celelalte variabile secundare. Este evident c acest lucru (care este
echivalent cu faptul c noua soluie trebuie s fie de baz) este posibil doar dac coeficientul lui x
j

din aceast ecuaie este diferit de 0 (a
ij
0). n acest caz avem succesiv:

x
i
+ + a

+ =

n
j k
1 m k
k ik
x a
ij
x
j
= x
i
x
j
+

+ =

n
j k
1 m k
k
ij
ik
x
a
a
+
ij
a
1
x
i
=
ij
a
1
x
i

x
j
=
ij
a
1
x
i

+ =

n
j k
1 m k
k
ij
ik
x
a
a

ij
a
1
x
i

nlocuind variabila x
j
n celelalte ecuaii obinem:

x
s
+ a

+ =

n
j k
1 m k
k sk
x a +
sj
(
ij
a
1
x
i

+ =

n
j k
1 m k
k
ij
ik
x
a
a

ij
a
1
x
i
) = x
s

x
s
+

+ =

|
|
.
|

\
|

n
j k
1 m k
k
ij
ik
sj sk
x
a
a
a a
ij
sj
a
a
x
i
= x
s

ij
sj
a
a
x
i
pentru s = 1,...,m i s i

Conform formulelor de mai sus rezult c noua soluie de baz este admisibil dac:

x
s

ij
sj
a
a
x
i
0 oricare ar fi s =1,...,m diferit de i
sj
s
a
x

ij
i
a
x
oricare ar fi s =1,...,m, s i
34
23
Bazele cercetrii operaionale
i n urma schimbrii noua soluie de baz va fi:
j
x =
ij
a
1
x
i
i

s
x = x
s

ij
sj
a
a
x
i
pentru s i
n concluzie, dac ne hotrm s introducem n baz variabila j, singura variabil care o
poate nlocui (pentru ca noua soluie s fie admisibil de baz) nu poate fi dect aceea care
corespunde acelui a
ij
strict pozitiv din coloana j din matricea B
-1
S, pentru care se obine valoarea
minim a rapoartelor dintre componentele soluiei de baz actuale i componentele coloanei j.
Pentru evidenierea acestora, ele se noteaz cu
s
i avem:

i
=
|
|
.
|

\
|
=
>

sj
s
0 a
m s 1
a
min
ij
x
s


Condiia de mai sus este numit criteriul de ieire din baz.
Mai nainte am vzut ce efect are schimbarea unei variabile din baz asupra sistemului. Este
important ns s vedem efectul ei i asupra funciei obiectiv. Valoarea funciei obiectiv n noua
soluie de baz va fi:
f(
B
x ) = ( )
j j
B
x x f = ( )
i
ij
j
B
a
1
x x f
Pentru ca aceast soluie s fie cel puin la fel de bun trebuie ca:

f(
B
x ) f(x
B
) ( )
i
ij
j
B
a
1
x x f f(x
B
) 0
a
1
i
ij
j
x
0 a
0
ij
i

x
j
0

n concluzie, dac vrem s obinem o soluie strict mai bun vom alege o variabil x
j

corespunztoare unui
j
< 0. Noua soluie va exista efectiv doar dac pe coloana j din matricea B
-1
S
exist o component a
ij
strict pozitiv i va fi efectiv strict mai bun doar dac componenta
corespunztoare x
i
din soluia de baz este diferit de 0, mbuntirea fiind egal cu
i
ij
j
a
1
x .
Situaia n care toate componentele coloanei j din matricea B
-1
S sunt mai mici sau egale cu
0 este lmurit de urmtoarea teorem:

Teorem: Dac pe coloana j din matricea B
-1
S, corespunztoare unei variabile x
j
cu
j
< 0,
toate componentele sunt mai mici sau egale cu zero atunci problema are optim infinit.

Demonstraie: Fie o soluie particular a sistemului, n care variabila secundar x
j
= > 0,
oarecare iar celelalte sunt 0. n acest caz, variabilele principale vor fi: y
i
= x
i
a
ij
i vor fi toate
pozitive, innd cont de faptul c toi a
ij
0 i, deci, soluia va fi admisibil. Pentru o astfel de
soluie, valoarea funciei obiectiv este:

f(y

) = f(x
B
)
j
. i avem: ( ) + =

y f lim
deci imaginea funciei f este nemrginit i afirmaia este demonstrat.
Presupunem n continuare c exist o component a
ij
strict pozitiv. Deoarece dorim s
trecem la cea mai bun dintre bazele posibile, vom alege dintre toate variabilele cu
j
< 0, pe cea
pentru care se obine:
|
|
|
.
|

\
|

>

<
+
ij
i
0 a
m i 1
j
0
n j 1 m
a
min max
ij
j
x

35
24
Programarea liniar
Aceast condiie este criteriul de intrare n baz.
Deoarece calculul necesar gsirii acestuia este laborios, Danzig a preferat nlocuirea acestei
alegeri cu alegerea acelui j care corespunde celui mai negativ
j
(= ( )
j
0
n j 1 m
j
max
<
+
), variant care
este uor de aplicat, mbuntete soluia i prin care se obine, n marea majoritate a cazurilor,
acelai j.
n acest moment tim cum s gsim o soluie mai bun, dac ea exist i am putea calcula
din nou elementele necesare analizrii noii soluii, din tabelul simplex, folosind formulele fiecruia:

x
B
= B
-1
b
z = c B
T
B
-1
A
= z c

Acest mod de lucru este efectiv folosit n anumite variante ale algoritmului simplex (vezi
forma revizuit) dar el presupune calcularea inversei matricei B, ceea ce necesit foarte mult timp.
Acest motiv era suficient de convingtor pentru ca Danzig s-i fi pus problema dac nu cumva
noul tabel simplex poate fi calculat pe baza fostului tabel simplex, fcnd mult mai puine calcule i
utiliznd formule uor de memorat i aplicat. Aceast ntrebare era natural de pus, dac inem cont
c noua soluie difer de fosta soluie printr-o singur variabil. Aceste formule au fost efectiv
gsite, ele putnd fi obinute urmrind efectul nlocuirii lui x
i
cu x
j
asupra sistemului:

noua soluie de baz
B
x se obine din fosta soluie cu formulele deja gsite mai sus:

j
= x
ij
a
1
x
i
i

s
x = x
s

ij
sj
a
a
x
i
pentru s i

noii coeficienii ai variabilelor n cele m ecuaii vor fi:

1. variabil principal x
s
va avea coeficientul 1 n ecuaia k i 0 n celelalte ecuaii;
2. o variabil secundar x
k
, diferit de x
i
, va avea coeficienii
ij
ik
sj sk
a
a
a a n
ecuaiile s i i coeficientul
ij
ik
a
a
n ecuaia i.
3. noua variabil secundar x
i
va avea coeficienii
ij
sj
a
a
n ecuaiile s i i coeficien-
tul
ij
a
1
n ecuaia i.
4. noua valoare a funciei obiectiv va fi: f(
B
x ) = ( )
i
ij
j
B
a
1
x x f
5. noii
j
i obinem nlocuind n funcia obiectiv variabila x
j
n funcie de x
i
:

f(x) = f( )
B
x

+ =

n
j k
1 m k
k k
x
j
(

+ =

n
j k
1 m k
k
ij
ik
x
a
a

ij
a
1
x
i
+
ij
a
1
x
i
) =
36
25
Bazele cercetrii operaionale
= ( )
i
ij
j
B
a
1
x x f

+ =

|
|
.
|

\
|

n
j k
1 m k
k
ij
ik
j k
x
a
a

|
|
.
|

\
|

ij
j
a
x
i
=
= f(
B
x )

+ =

|
|
.
|

\
|

n
j k
1 m k
k
ij
ik
j k
x
a
a

|
|
.
|
\
|

ij
j
a

x
i

de unde rezult c
ij
ik
j k k
a
a
= pentru k i i
ij
j
i
a

=

Dei par s fie foarte multe formule complicate, frumuseea algoritmului i meritul lui
Danzig const tocmai n faptul c toate respect o regul vizual uor de memorat, numit regula
dreptunghiului, aa cum se va vedea n algoritmul simplex.


ALGORITMUL SIMPLEX

Reamintim c presupunem c problema este la forma standard de maxim i c dispunem de
o soluie de baz admisibil.

Pasul 1. Se construiete tabelul simplex corespunztor bazei de care dispunem n ordinea
urmtoare:
1. pe linia a doua se trec toate variabilele ntr-o ordine oarecare;
2. pe prima linie se trec coeficienii funciei obiectiv, fiecare deasupra variabilei
corespunztoare;
3. se construiete matricea A, fiecare coloan fiind format din coeficienii unei
variabile din toate ecuaiile (ordinea n care se parcurg ecuaiile trebuie s fie aceeai
pentru toate variabilele), avnd grij ca, coloanele s fie trecute n ordinea n care au
fost trecute variabilele pe linia 2;
4. se construiete baza B, ordinea coloanelor fiind cea n care apar ele n matricea A;
5. se calculeaz B
-1
;
6. se calculeaz B
-1
A i se trece n partea central a tabelului;
7. se trec variabilele principale n a doua coloan, n aa fel nct, la intersecia liniei i
coloanei corespunztoare acestei variabile, s se afle valoarea 1.
8. se trec n prima coloan coeficienii corespunztori variabilelor principale din funcia
obiectiv, fiecare n dreptul variabilei corespunztoare;
9. se calculeaz soluia de baz cu formula B
-1
b, avnd grij ca ordinea n care au fost
trecui termenii liberi n vectorul b s fie aceeai cu ordinea n care au fost parcurse
ecuaiile la formarea matricii A;
10. se trec n a treia coloan valorile variabilelor principale din soluia de baz, fiecare n
dreptul variabilei corespunztoare;
11. se calculeaz f(x
B
) nmulind dou cte dou componentele coloanei 1 cu cele din
coloana 3 aflate pe aceeai linie i adunnd toate produsele ntre ele (adic facem
produsul scalar dintre c
B
i x
B
);
12. se calculeaz pe rnd fiecare z
j
j = 1,...,n un z
j
obinndu-se nmulind scalar c
B
cu
coloana j din B
-1
A aflat n centrul tabelului (aceast linie se calculeaz i se trece
doar n primul tabel, scopul ei fiind calcularea lui );
13. se calculeaz pe rnd fiecare
j
j = 1,...,n scznd din linia lui z linia lui c (
j
= z
j
- c
j
)

Pasul 2. Se analizeaz valorile
j
corespunztoare variabilelor secundare (e uor de vzut c
ntotdeauna, cei corespunztori variabilelor principale sunt toi 0, deci neinteresani).
37
26
Programarea liniar
dac toi sunt mai mari sau egali cu 0 atunci soluia actual este cea optim. Dac
exist
j
= 0 n afara bazei, atunci pot aprea dou cazuri:
toate elementele din coloana a
j
din B
-1
A sunt mai mici sau egale cu 0.
Atunci toate soluiile de forma x
B
- a
j
sunt soluii optime, unde > 0
oarecare;
1)
2) exist o component a
ij
a coloanei a
j
strict pozitiv. Atunci introducnd
variabila x
j
n baz n locul variabilei principal x
i
obinem alt soluie de
baz optim.
Dac apar numai cazuri de tipul 2), obinem toate soluiile de baz optime, mulimea
tuturor soluiilor optime fiind format din toate combinaiile convexe ale acestora.
Dac apare i cazul 1) atunci mulimea soluiilor optime este nemrginit fiind
format din combinaiile convexe ale soluiilor de forma x
B
- a
j
unde x
B
sunt toate
soluiile optime de baz.
dac exist
j
< 0 atunci l alegem pe cel mai negativ:
k
= . Variabila x
j
0
n j 1 m
j
min
<
+
j

va fi cea care intr n noua baz. Dac minimul este multiplu atunci alegem, la
ntmplare, unul dintre acetia (cei minimi).
Pasul 3. Se analizeaz elementele coloanei a
j
din B
-1
A, corespunztoare variabilei alese la pasul 2.

Dac toate sunt mai mici sau egale cu 0 atunci problema are optim infinit i
algoritmul ia sfrit;
Dac exist componente strict pozitive, pentru acestea se calculeaz rapoartele
s

=
sj
s
a
x
. Variabila x
i
corespunztoare raportului minim este cea care va iei din
baz. Dac acest minim este multiplu sunt posibile dou cazuri:
1)
2)
minimul este strict pozitiv. n acest caz se alege unul dintre acetia la
ntmplare;
minimul este 0. Atunci x
i
corespunztori sunt 0, deci soluia este
degenerat i noua soluie este la fel de bun. Aceast situaie poate duce
la ciclarea algoritmului i alegerea la ntmplare nu mai este suficient,
fiind nevoie de o regul de alegere suplimentar care s evite ciclarea. O
metod de alegere se bazeaz pe faptul c, aa cum vom vedea,
ntotdeauna prima baz este matricea unitate i n dreptul ei, n toate
tabelele simplex, se va afla inversa bazei corespunztor fiecruia. n acest
caz, pentru poziiile n care s-a obinut minimul mprim prima coloan
a lui B
-1
la coloana a
j
i alegem minimul dintre aceste rapoarte. Dac
minimul dintre acetia este tot multiplu continum procedeul, pentru
poziiile ce dau noul minim, cu coloana a doua din B
-1
i aa mai departe,
pn minimul rmne unic. Nu este posibil s se epuizeze toate coloanele
lui B
-1
i minimul s rmn multiplu, deoarece, n acest caz, am avea:
j i
j i
j i
j i
2
k 2
1
k 1
a
b
a
b
= , pentru toi indicii j
k
ai coloanelor lui B
-1
, i
1
i i
2
fiind doi
din indicii care dau acelai minim pn la sfrit sau altfel scris
j i
j i
j i
j i
2
1
k 2
k 1
a
a
b
b
= pentru orice j
k
liniile i
1
i i
2
din B
-1
sunt proporionale,
fapt ce contrazice faptul c B
-1
este inversabil.
Pasul 4. Se calculeaz componentele tabelului simplex corespunztor noii baze pe baza tabelului
actual i folosind urmtoarele reguli:
1. se ncadreaz elementul a
ij
, aflat la intersecia coloanei variabilei care intr n baz
38
27
Bazele cercetrii operaionale
cu linia variabilei care iese din baz, care a fost numit de Danzig pivot, ntr-un
dreptunghi
2. coloana pivotului va avea 1 n dreptul pivotului i 0 n rest (inclusiv
j
);
3. linia pivotului este linia actual mprit la pivot (inclusiv n soluia de baz);
4. restul elementelor se calculeaz cu regula dreptunghiului (inclusiv soluia de baz,
i f(x
B
)). Regula dreptunghiului se bazeaz pe observaia c n toate formulele
prin care se calculeaz acestea nu apare dect valoarea lor actual, pivotul i cele
dou elemente care ar completa dreptunghiul ce are poziia de calculat i pivotul
pe diagonal. Regula dreptunghiului se enun literar astfel: "noua valoare =
produsul dintre elementele de pe diagonala pivotului minus produsul dintre cele
aflate pe cealalt diagonal totul mprit la pivot". (pentru scurtarea timpului de
lucru se poate observa c elementele unei linii care are 0 pe coloana pivotului
rmn aceleai i de asemenea elementele unei coloane care are 0 pe linia
pivotului)
Operaia de calculare a noului tabel prin regulile de mai sus poart denumirea de
pivotare.
Pasul 5. Se reia algoritmul de la pasul 2.


Exemplu: Fie problema de programare liniar:

( )

=
+ + + + +
+ + + + +
+ + + + +
+ + + + + =
1,...,6 i , 0 x
11 x 2 x x 2 x 2 x 3x
15 x 2 x 3 x x 3 x 2 2x
8 x x 3 x x x 2 x
x 5 x 3 x 4 x x 2 x 3 max
i
6 5 4 3 2 1
6 5 4 3 2 1
6 5 4 3 2 1
6 5 4 3 2 1
f


pentru care tim c baza format din coloanele a
1
, a
2
, a
3
este admisibil. Pentru rezolvare vom aduce
problema la forma standard de maxim introducnd variabilele de abatere x
7
, x
8
, x
9
obinnd:

( )

=
= + + + + + +
= + + + + + +
= + + + + + +
+ + + + + =
1,...,9 i , 0 x
11 x x 2 x x 2 x 2 x 3x
15 x x 2 x 3 x x 3 x 2 2x
8 x x x 3 x x x 2 x
x 5 x 3 x 4 x x 2 x 3 max
i
9 6 5 4 3 2 1
8 6 5 4 3 2 1
7 6 5 4 3 2 1
6 5 4 3 2 1
f


Vom aeza n tabelul simplex variabilele n ordinea indicilor i vom avea:
c = , A = , B =

, c
|
|
|
|
|
|
|
|
.
|

\
|
0
0
0
5
3
4
1
2
3
|
|
.
|

\
|
1 0 0 2 1 2 2 1 3
0 1 0 2 3 1 3 2 2
0 0 1 1 3 1 1 2 1
|
|
.
|
\
|
2 1 3
3 2 2
1 2 1
B
=
|
|
.
|

\
|
1
2
3
vom calcula matricea B
-1
=
|
|
|
|
|
|
.
|

\
|

7
2
7
5
7
4
7
1
7
1
7
5
7
4
7
3
7
1
i pe baza acesteia soluia de baz x
B
= B
-1
b = i
|
|
.
|

\
|
3
2
1
39
28
Programarea liniar
matricea B
-1
A =
|
|
|
|
|
|
.
|

\
|



7
2
7
5
7
4
7
2
7
1
7
3
1 0 0
7
1
7
1
7
5
7
1
7
11
7
2
0 1 0
7
4
7
3
7
1
7
3
7
2
7
6
0 0 1
care se trec n tabelul simplex:

3 2 1 4 3 5 0 0 0
c
B
x
B
x
B
x
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x
9

3

2

1
x
1


x
2


x
3

1

2

3
7
2
7
5
7
4
7
2
7
1
7
3
1 0 0
7
1
7
1
7
5
7
1
7
11
7
2
0 1 0
7
4
7
3
7
1
7
3
7
2
7
6
0 0 1







i n final se vor calcula valoarea funciei obiectiv n aceast soluie, z
j
i
j
:

3 2 1 4 3 5 0 0 0
c
B
x
B
x
B
x
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x
9

3

2

1
x
1


x
2


x
3

1

2

3
7
2
7
5
7
4
7
2
7
1
7
3
1 0 0
7
1
7
1
7
5
7
1
7
11
7
2
0 1 0
7
4
7
3
7
1
7
3
7
2
7
6
0 0 1





10
7
8
7
6
7
9
7
13
7
17
7
19
1 2 3

7
8
7
6
7
9
7
22
7
4
7
9
0 0 0

Din tabel se observ c exist
j
< 0, acetia fiind
4
,
5
,
6
,
8
iar minimul lor este
6
.
Observaie Dac vom cuta acel
j
care d cea mai bun mbuntire vom avea de gsit
acel
j
dintre cei negativi pentru care se obine
|
|
|
.
|

\
|

>

<

ij
i
0 a
3 i 1
j
0
9 j 4
a
min max
ij
j
x
i deci de calculat:
i4
i
0 a
3 i 1
4
a
min
i4
x
>

=
|
|
|
|
.
|

\
|

7
2
7
6
2
,
1
min
7
9
=
2
3

i5
i
0 a
3 i 1
5
a
min
i5
x
>

=
|
|
|
|
.
|

\
|

7
1
7
11
3
,
2
min
7
4
=
11
8

40
29
Bazele cercetrii operaionale
i6
i
0 a
3 i 1
6
a
min
i6
x
>

=
|
|
|
|
.
|

\
|

7
2
7
1
7
3
3
,
2
,
1
min
7
22
=
3
22

i8
i
0 a
3 i 1
8
a
min
i8
x
>

=
|
|
|
|
.
|

\
|

7
5
3
min
7
6
=
5
18

i n final max (
2
3
,
11
8
,
3
22
,
5
18
) =
3
22
i corespunde tot lui
6
.
n concluzie, soluia actual nu este optim i soluia cea mai bun dintre cele posibile ca
succesoare va avea variabila x
6
printre cele principale.
Analiznd coloana a
6
observm c exist componente strict pozitive (de fapt, n acest caz
sunt chiar toate) i calculm pentru acestea rapoartele
i
obinnd:

1
=
7
3
1
=
3
7
,
2
=
7
1
2
= 14,
3
=
7
2
3
=
2
21

deci minimul corespunde variabilei x
1
i aceasta este cea care va iei din baz. n cest moment
cunoatem noua baz i vom construi tabelul simplex pe baza regulilor de calcul de la pasul 4:

1. pivotul este a
16
=
7
3

4. de exemplu, pentru elementul de pe poziia a
34
avem dreptunghiul:








7
6
7
3

7
3
7
2
i noua valoare de pe aceast poziie va fi:
7
3
7
2
7
6
7
3
7
3

|
.
|

\
|

= 1
n final, tabelul corespunztor noii baze va fi:

3 2 1 4 3 5 0 0 0
c
B
x
B
x
B
x
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x
9

5

2

1
x
6


x
2


x
3

3
7

3
5

3
7

3
2
1
3
2
0
3
1
1 1 0
3
2
3
1
0
3
2
0
3
5
0 0 1
3
1
3
4
1
3
1
1
3
2
2 0 0
3
7





3
52

3
16
4
3
7
0
3
8
5 0 0
3
22

41
30
Programarea liniar

Continund algoritmul vom gsi tabelele:

3 2 1 4 3 5 0 0 0
c
B
x
B
x
B
x
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x
9

5

2

0
x
6


x
2


x
8

3
14

3
5

3
7

3
2
1
3
2
0
3
1
1 1 0
3
2
3
1
0
3
2
0
3
5
0 0 1
3
1
3
2
0
3
1
1
3
1
1 1 0
3
5





3
80

3
8
0
3
1
0
3
4
1 4 0
3
14




3 2 1 4 3 5 0 0 0
c
B
x
B
x
B
x
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x
9

5

3

0
x
6


x
5


x
8

5

1

2
5
3
1
5
4
0 0 1 1
5
1
5
3
5
1
0
5
2
0 1 0 0
5
3
5
1
5
3
0
5
1
1 0 1 1
5
1
5
8



28
5
2
0
5
1
0 0 1 4
5
4
5
22


Ultimul tabel conine soluia optim, deoarece toi
j
0. Deoarece nu mai exist nici un
j

= 0 n afara celor din baz rezult c soluia optim este unic.


Determinarea unei soluii de baz admisibile de start

Presupunem nc odat c problema este la forma standard.
Algoritmul simplex necesit, pentru pornire, o soluie admisibil de baz. Gsirea acesteia
pur i simplu prin ncercri nu este deloc o sarcin uoar, gndindu-ne c aceasta presupune
gsirea unui minor principal, inversarea acestuia i calcularea soluiei, abia n acest moment putnd
vedea dac aceasta are toate componentele pozitive, aceast cutare putnd dura foarte mult.
Rezolvarea problemei pleac de la observaia c singura baz pentru care calculul de mai sus
se poate face imediat este matricea unitate, caz n care soluia de baz corespunztoare este chiar
vectorul termenilor liberi. Aceasta presupune ca problema s aib toi termenii liberi mai mari sau
egali cu 0 i n matricea A s existe toate coloanele matricii unitate.
Dac toi termenii liberi pot fi fcui mai mari sau egali cu 0 foarte simplu, prin nmulirea
eventual cu 1 a restriciei respective, existena tuturor coloanelor matricii unitate este evident c
este foarte puin probabil i mai greu de obinut.
n acest sens plecm de la observaia c existena unui vector din coloana unitate printre
coloanele matricii A este echivalent cu existena unei variabile care apare doar n ecuaia
corespunztoare lui 1 din acel vector, cu coeficientul 1. Acest lucru poate fi obinut n dou
moduri:

42
31
Bazele cercetrii operaionale
a) ncepnd de la prima ecuaie, cutm o variabil care are coeficientul de acelai semn cu
termenul liber, o scoatem din aceast ecuaie n funcie de celelalte variabile, o nlocuim
n celelalte i repetm procedeul pornind de la a doua ecuaie. Pot aprea trei cazuri:
1)
2)
3)
1)
2)
la un moment dat obinem o ecuaie n care toi coeficienii variabilelor au semn
contrar termenului liber, mcar unul dintre toi fiind diferit de 0. n acest caz
ecuaia nu are evident soluie admisibil(pozitiv) i deci problema nu are soluie;
toi coeficienii variabilelor i termenul liber sunt 0. n acest caz rezult c aceast
ecuaie rezult din cele anterioare i ea va fi eliminat, trecndu-se la urmtoarea;
se epuizeaz toate ecuaiile. n acest moment, variabilele care au fost scoase din
fiecare ecuaie formeaz baza dorit.
Procedeul de mai sus poate prea atractiv, dar presupune introducerea unui algoritm
diferit de simplex, cu efect asupra omogenitii calculelor i a vitezei de lucru. De
asemenea, prin efectuarea calculelor de mai sus, datele problemei nu mai au semnificaia
economic iniial, ne mai putndu-se face interpretri economice.
b) Pentru toi vectorii coloan introducem n ecuaiile corespunztoare cte o variabil cu
coeficientul 1. Vom obine evident un nou sistem de restricii i rmne de vzut ce
legtur este ntre soluiile acestuia i cel iniial. Cele dou sisteme au forma:
Ax = b i Ax + y = b
Este evident c o soluie a primului sistem este soluie i a celui de-al doilea (lum y = 0)
iar o soluie a celui de-al doilea este soluie i pentru primul doar dac y = 0. Scopul
nostru va fi deci, ca pornind de la soluia iniial a celei de-a doua probleme s ajungem
la o soluie a acesteia n care y = 0. innd cont c n soluiile de baz, variabilele
secundare sunt toate egale cu 0, vom ncerca s scoatem din baz variabilele y. Scopul
algoritmului simplex este ns maximizarea funciei obiectiv, nu scoaterea a uneia sau
alteia din variabile din baz. Pentru a echivala cele dou scopuri putem proceda n dou
feluri:
Alegem o nou funcie obiectiv care s-i ating extremul printre soluiile pozitive
chiar pentru y = 0 i n momentul cnd am obinut soluia respectiv pornim cu
aceasta ca soluie iniial algoritmul simplex pentru fosta problem.
Adugm la fosta funcie obiectiv noile variabile cu nite coeficieni de asemenea
natur alei nct aportul variabilelor y la valoarea funciei s fie contrar scopului
dorit (foarte mari pozitivi ntr-o problem de minim i foarte mari negativi ntr-o
problem de maxim).

Vom detalia n continuare cele dou metode:

Algoritmul simplex n dou faze

Dat problema de programare liniar la forma standard de maxim:

( )

=
=
0 x
b x A
x c max
T
f


n care am aranjat deja ca toi termenii liberi s fie pozitivi (b 0).

Faza 1 Construim problema:
( )

= +
=
0 y x,
b y x A
y min g


43
32
Programarea liniar
pe care o rezolvm cu algoritmul simplex pornind rezolvarea de la baza matrice unitate, putnd
ajunge la dou situaii:

1)
2)
minimul funciei g este strict pozitiv. Aceasta este echivalent cu faptul c egalitatea Ax
+ y = b se poate obine doar pentru y > 0 sau altfel spus Ax > b pentru orice x 0, deci
sistemul Ax = b nu are soluii admisibile i n concluzie problema iniial nu are
soluie.
minimul funciei g este 0. n acest caz, soluia optim obinut are y = 0, deci verific
Ax = b fiind n concluzie o soluie admisibil de baz a primei probleme.

Faza 2 ncepnd de la soluia gsit la faza 1 se rezolv problema iniial cu algoritmul simplex.

Dezavantajul metodei const n faptul c tabelul simplex final de la faza 1 trebuie modificat
pentru a obine tabelul simplex iniial de la faza 2 (vectorii x, c, c
B
, z, , f(x
B
), se elimin coloanele
corespunztoare lui y) i n plus nu vom mai avea n tabelele simplex ale problemei iniiale inversa
bazei (care se gsea n dreptul coloanelor matricii unitate din prima faz) necesar n anumite
variante ale algoritmului simplex.


Metoda bazei artificiale (metoda penalizrii)

Dat problema de programare liniar la forma standard de maxim:

( )

=
=
0 x
b x A
x c max
T
f


n care am aranjat deja ca toi termenii liberi s fie pozitivi (b 0).

Construim problema:
( )

= +
=
0 y x,
b y x A
My x c max
T
g


n care M este o constant presupus foarte mare (mai mare dect orice constant care ar putea
apare n rezolvarea problemei). Rezolvm problema cu algoritmul simplex pornind rezolvarea de la
baza matrice unitate, putnd ajunge la trei situaii:

1)
2)
3)
problema are optim infinit. n acest caz, problema iniial are optim infinit.
problema are optim finit i n soluia de baz avem cel puin o variabil din vectorul y. n
acest caz problema iniial nu are soluii admisibile.
problema are optim finit i n soluia de baz nu avem nici o variabil din vectorul y. n
acest caz problema iniial are optim finit, soluia optim i maximul funciei fiind
aceleai cu cele ale problemei modificate.

n final vom remarca faptul c variabilele y nu corespund unor mrimi economice ca
celelalte, ele fiind introduse doar ca un artificiu de calcul pentru a putea porni algoritmul simplex.
Din acest motiv ele se numesc variabile artificiale.
44
33
Bazele cercetrii operaionale

Exemplu Fie problema de programare liniar:

( )

+
+
+ =
0 x , x
2 x 4 x
10 x x 3
x 3 x 2 max
2 1
2 1
2 1
2 1
f

Forma standard a problemei va fi:
( )

= +
= + +
+ =
0 x , x , x , x
2 x x 4 x
10 x x x 3
x 3 x 2 max
4 3 2 1
4 2 1
3 2 1
2 1
f


Avem deja termenii liberi i o coloan a matricii unitate
\
|
corespunztoare variabilei x |
.
|
0
1
3
.
Pentru a obine i a doua coloan

\
|
vom introduce variabila x
|
.
|
1
0
5
cu coeficientul 1 n a doua ecuaie
i n final vom avea de rezolvat problema:

Algoritmul simplex n dou faze Metoda bazei artificiale

( )

= + +
= + +
=
0 x , x , x , x , x
2 x x x 4 x
10 x x x 3
x min
5 4 3 2 1
5 4 2 1
3 2 1
5
g


( )

= + +
= + +
+ =
0 x , x , x , x , x
2 x x x 4 x
10 x x x 3
Mx x 3 x 2 max
5 4 3 2 1
5 4 2 1
3 2 1
5 2 1
f


Aplicnd algoritmul simplex n dou faze vom obine n prima faz succesiunea de tabele:

0 0 0 0 1
c
B
x
B
x
B
x
1
x
2
x
3
x
4
x
5

0 x
3
10 3 1 1 0 0
1 x
5
2 1 4 0 -1 1
2 1 4 0 -1 1
1 4 0 -1 0

0 0 0 0 1
c
B
x
B
x
B
x
1
x
2
x
3
x
4
x
5

0 x
3
2
19

4
11
0 1
4
1

4
1

0 x
2
2
1

4
1
1 0
4
1

4
1

0 0 0 0 0 -1

Am obinut optimul egal cu 0 n soluia de baz (x
3
,x
2
) care va fi soluia iniial pentru
algoritmul simplex aplicat problemei iniiale n a doua faz. Eliminm din tabel coloana lui x
5
,
nlocuim valorile coeficienilor funciei obiectiv i deci i valoarea acesteia, valorile i obinem
tabelul:
45
34
Programarea liniar

2 3 0 0
c
B
x
B
x
B
x
1
x
2
x
3
x
4

0 x
3
2
19

4
11
0 1
4
1

3 x
2
2
1

4
1
1 0
4
1


2
3

4
5
0 0
4
3


2 3 0 0
c
B
x
B
x
B
x
1
x
2
x
3
x
4

0 x
3
4 0 -11 1 3
2 x
1
2 1 4 0 -1
4 0 5 0 -2

2 3 0 0
c
B
x
B
x
B
x
1
x
2
x
3
x
4

0 x
4
3
4
0
3
11

3
1
1
2 x
1
3
10
1
3
1

3
1
0

3
20
0
3
7

3
2
0

2 3 0 0
c
B
x
B
x
B
x
1
x
2
x
3
x
4

0 x
4
38 11 0 4 1
3 x
2
10 3 1 1 0
30 7 0 3 0

Soluia optim a primei probleme este deci x
1
= 0 i x
2
= 10 care d un maxim al funciei
egal cu 30. Dac aplicm a doua metod vom obine succesiv tabele:

2 3 0 0 -M
c
B
x
B
x
B
x
1
x
2
x
3
x
4
x
5

0 x
3
10 3 1 1 0 0
-M x
5
2 1 4 0 -1 1
-2M -M -4M 0 M -M
-M-2 -4M-3 0 M 0
2 3 0 0 -M
c
B
x
B
x
B
x
1
x
2
x
3
x
4
x
5
0 x
3
2
19

4
11
0 1
4
1

4
1

3 x
2
2
1

4
1
1 0
4
1

4
1


2
3

4
5
0 0
4
3
M+
4
3


46
35
Bazele cercetrii operaionale

2 3 0 0 -M
c
B
x
B
x
B
x
1
x
2
x
3
x
4
x
5
0 x
3
4 0 -11 1 3 -3
2 x
1
2 1 4 0 -1 1
4 0 5 0 -2 2+M

2 3 0 0 -M
c
B
x
B
x
B
x
1
x
2
x
3
x
4
x
5
0 x
4
3
4
0
3
11

3
1
1 -1
2 x
1
3
10
1
3
1

3
1
0 0

3
20
0
3
7

3
2
0 M

2 3 0 0 -M
c
B
x
B
x
B
x
1
x
2
x
3
x
4
x
5
0 x
4
38 11 0 4 1 -1
3 x
2
10 3 1 1 0 0
30 7 0 3 0 M

Rezultatul final este evident acelai.


VARIANTE ALE ALGORITMULUI SIMPLEX

1. Algoritmul simplex dual

Pentru expunerea acestui algoritm trebuie introduse noiunile de baz dual admisibil i
soluie dual admisibil de baz. Prin definiie numim:

soluie de baz dual admisibil =
soluie de baz pentru care toi
j
0
baz dual admisibil = baz corespunztoare unei soluii de
baz dual admisibile
Ca i n cazul algoritmului simplex, pentru a putea rezolva problema cu algoritmul simplex
dual trebuie s dispunem deja de o baz iniial dual admisibil. Aceast soluie poate exista ca
urmare a unor calcule anterioare (vezi capitolul cu reoptimizarea) sau, ca i n cazul algoritmului
simplex, poate fi aplicat o procedur prin care s gsim aceast baz. Prezentarea acesteia este mai
complicat dect cea de la algoritmul simplex astfel nct:

dac dispunem de o baz dual admisibil vom rezolva problema cu algoritmul simplex
dual
dac nu dispunem de o baz dual admisibil vom rezolva problema cu algoritmul
simplex.

Pentru a evita orice confuzie, vom numi n continuare algoritmul simplex obinuit algoritm
simplex primal i o baz admisibil baz primal admisibil.
Se observ c o soluie dual admisibil nu este n general primal admisibil i reciproc, iar o
soluie care este simultan primal i dual admisibil este o soluie optim i reciproc.
Presupunem c am adus problema la forma standard de maxim i dispunem de o baz dual
47
36
Programarea liniar
admisibil i dispunem deja de de o baz dual admisibil. Algoritmul simplex dual const n
urmtorii pai:

Pasul 1. Se construiete tabelul simplex asociat acestei baze, la fel ca i la algoritmul simplex
primal;
Pasul 2. Se analizeaz componentele soluiei:
Dac toate componentele sunt mai mari sau egale cu 0 atunci soluia este i primal
admisibil, deci optim.
Dac exist componente strict negative, variabila corespunztoare celei mai
negative (x
i
= ) este cea care iese din baz. Dac minimul este multiplu se
ia una la ntmplare.
k
m k 1
x min

Pasul 3. Se analizeaz linia l
i
corespunztoare variabilei x
i
aleas la pasul 2:
Dac toate componentele a
ij
j = 1,...,n sunt mai mari sau egale cu 0, atunci am avea
o ecuaie cu toi coeficienii necunoscutelor pozitivi i termenul liber strict negativ,
deci problema nu are soluii primal admisibile.
Dac exist componente strict negative, atunci pentru acestea se gsete acel indice
pentru care se obine
ij
j
0 a
a
min
ij

<
(prin am notat modulul numrului ). Dac
minimul este multiplu alegem unul dintre acetia la ntmplare. Variabila
corespunztoare acestuia este cea care intr n baz.
Pasul 4. Se construiete tabelul corespunztor noii baze aplicnd aceleai reguli ca la algoritmul
simplex primal;
Pasul 5. Se reia algoritmul de la pasul 2


2. Forma secundar

Este evident c modul de organizare al datelor n tabelul simplex nu este unicul mod de a
organiza datele ntr-un tabel. Forma secundar este tocmai o astfel de alternativ. Presupunem i n
acest caz c problema este la forma standard de maxim, c problema este la forma standard i c
dispunem de o soluie iniial de baz care este primal sau dual admisibil.

Pasul 1. Datele problemei vor fi organizate ntr-un tabel de forma:

c
S

c x f x
S
f(x
B
)

S
c
B
x
B x
B
= B
-1
b B
-1
S
c
S
x
S
0 I
n-m

Se observ c singura diferena este c la coloana variabilelor bazei din stnga se adaug
i cele secundare, pe orizontal se las doar variabilele secundare iar n loc de matricea
unitate n dreptul variabilelor principale vom avea matricea unitate n dreptul celor
secundare (dar cu minus), fiind calculat la fel, neglijndu-se cei din dreptul variabilelor
principale, care oricum erau 0.

Pasul 2. + Pasul 3. Se gsesc variabila care iese din baz i cea care intr n baz cu aceleai
reguli ca la algoritmul simplex primal sau, dup caz, ca la cel dual.
48
37
Bazele cercetrii operaionale

Pasul 4. Se construiete tabelul asociat noii baze aplicnd regulile:

1)
2)
3)
4)
Pivotul este acelai ca la tabelul simplex;
Linia pivotului are 1 n dreptul pivotului i 0 n rest;
Coloana pivotului se mparte la pivotul cu semn schimbat
Celelalte elemente se calculeaz cu regula dreptunghiului

Pasul 5. Se reia algoritmul de la pasul 2.

Exemplu Fie problema de programare liniar rezolvat mai sus:

( )

+
+
+ =
0 x , x
2 x 4 x
10 x x 3
x 3 x 2 max
2 1
2 1
2 1
2 1
f

Forma standard a problemei va fi:
( )

= +
= + +
+ =
0 x , x , x , x
2 x x 4 x
10 x x x 3
x 3 x 2 max
4 3 2 1
4 2 1
3 2 1
2 1
f

iar dup introducerea variabilelor artificiale obinem:
( )

= + +
= + +
+ =
0 x , x , x , x , x
2 x x x 4 x
10 x x x 3
Mx x 3 x 2 max
5 4 3 2 1
5 4 2 1
3 2 1
5 2 1
f

Tabelul corespunztor va fi:

2 3 0
c
B
x
B
x
B
x
1
x
2
x
4


-2M -M-2 -4M-3 M
2 x
1
0 -1 0 0
3 x
2
0 0 -1 0
0 x
3
10 3 1 0
0 x
4
0 0 0 -1
-M x
5
2 1 4 -1

Aplicm simplex primal i obinem cel mai negativ
j
corespunztor lui x
2
i
i
minim
corespunztor lui x
5
. n acest moment avem o soluie de baz a problemei iniiale i putem elimina
variabila x
5
. Obinem:


2 -M 0 2 0
c
B
x
B
x
B
x
1
x
5
x
4
c
B
x
B
x
B
x
1
x
4



M+ -
2
3

4
5


-
2 x
1
0 -1 0 0 2 x
1
0 -1 0
3 x
2
-

3 x
2
-
0 x
3 2
19

- 0 x
3 2
19

4
11


0 x
4
0 0 0 -1 0 x
4
0 0 -1
-M x
5
0 0 -1 0


2
3
4
5

4
11

i n continuare:
49
38
Programarea liniar

3 0 3 0
c
B
x
B
x
B
x
2
x
4
c
B
x
B
x
B
x
2
x
3


4 5 -2
3
20

3
7


3
2

2 x
1
2 4 -1 2 x
1 3
10

3
1

3
1

3 x
2
0 -1 0

3 x
2
0 -1 0
0 x
3
4 -11 3 0 x
3
0 0 -1
0 x
4
0 0 -1 0 x
4 3
4

3
11


3
1


2 0

c
B
x
B
x
B
x
1
x
3


30 7 3

2 x
1
0 -1 0
3 x
2
10 3 1
0 x
3
0 0 -1
0 x
4
38 11 4

Din rezolvarea de mai sus se observ c aceast metod este mai eficient doar dac
numrul variabilelor secundare este mai mic dect numrul variabilelor principale. Totui, motivul
principal pentru care a fost introdus aceast variant, este existena unor probleme n care, pe
parcursul rezolvrii, se adaug foarte multe restricii (de exemplu rezolvarea problemelor n numere
ntregi), pentru o restricie n plus tabelul simplex mrindu-se cu o linie i o coloan (cum se va
vedea la capitolul de reoptimizare) iar tabelul corespunztor formei secundare doar cu o linie.


3. Forma revizuit a algoritmului simplex

O problem mare (de exemplu cu 1000 variabile i 100 restricii) necesit n algoritmul
simplex introducerea, memorarea i lucrul cu un tabel cu 100.000 componente, adic un numr
imens de date. Din acest motiv, i remarcnd faptul c n algoritmul simplex doar o parte din
acestea contribuie efectiv la luarea deciziilor, s-a construit un algoritm care s in cont de
observaiile de mai sus, numit "forma revizuit a algoritmului simplex", n care se lucreaz cu
minimul necesar din datele tabelului simplex. Astfel, pentru testarea soluiei actuale i trecerea
eventual la o nou baz avem nevoie doar de urmtoarele elemente:
(1) inversa bazei curente B
-1

(2) componentele vectorului pentru a face testul de optim i a gsi variabila care intr n
baz (dac soluia nu e optim)
(3) coloana a
k
din B
-1
A corespunztoare celui mai negativ
j
(dac exist strict negativi)
pentru a face testul de optim infinit
(4) soluia curent pentru a gsi variabila care iese din baz (dac mai e cazul)

Aceste elemente se aeaz ntr-un tabel de forma:



c
B




x
B


x
B
= B
-1
b


B
-1
f(x
B
)
= c B
T
B
-1

numit tabelul simplex redus.
50
39
Bazele cercetrii operaionale
Operaiile ce se efectueaz n cadrul algoritmului simplex revizuit sunt (presupunem c
problema este la forma standard de maxim i deinem o soluie admisibil de baz i inversa bazei
corespunztoare):

Pasul 1. Se calculeaz
j
corespunztori variabilelor secundare cu formula cunoscut:

j
= c B
T
B
-1
P
j
- c
j
= P
j
- c
j

unde P
j
este coloana corespunztoare variabilei x
j
din matricea iniial.

Pasul 2. Se analizeaz
j
calculai:

dac toi sunt mai mari sau egali cu 0 soluia curent este optim. STOP
dac exist
j
strict negativi se alege minimul dintre acetia
k
, variabila x
k
va intra n
baz i se trece la pasul 3.

Pasul 3. Se calculeaz a
k
= B
-1
P
k
care se ataeaz ca nou coloan la tabel:



c
B




x
B


x
B
= B
-1
b


B
-1


a
k
= B
-1
P
k
f(x
B
)
= B
T
B
c
-1

k

Pasul 4. Se analizeaz componentele coloanei a
k
:

dac toate sunt mai mici sau egale cu 0 problema are optim infinit. STOP
dac exist a
ik
strict pozitivi se alege cel pentru care se obine:

a
rk
=
ik
i
0 a
m i 1
a
min
ik
x
>



i variabila x
r
va iei din baz apoi se trece la pasul 5.

Pasul 5. Se pivoteaz ntregul tabel simplex i se elimin ultima coloan.
Pasul 6. Se reia algoritmul de la pasul 2.


Exemplu Fie problema de programare liniar rezolvat mai sus:

( )

+
+
+ =
0 x , x
2 x 4 x
10 x x 3
x 3 x 2 max
2 1
2 1
2 1
2 1
f

Forma standard a problemei va fi:
( )

= +
= + +
+ =
0 x , x , x , x
2 x x 4 x
10 x x x 3
x 3 x 2 max
4 3 2 1
4 2 1
3 2 1
2 1
f

51
40
Programarea liniar
iar dup introducerea variabilelor artificiale obinem:
( )

= + +
= + +
+ =
0 x , x , x , x , x
2 x x x 4 x
10 x x x 3
Mx x 3 x 2 max
5 4 3 2 1
5 4 2 1
3 2 1
5 2 1
f


Iteraia 1. Prima baz este B = I
2
= B
-1
corespunztoare variabilelor x
3
i x
5
de unde rezult x
B
=
i = (0,-M)I
|
.
|

\
|
2
10
2
= (0,-M). Primul tabel redus va fi:

0
-M
x
3
x
5
10
2
1
0
0
1

-2M 0 -M

Se calculeaz
S
= S c
S
= (0,-M)
|
.
|

\
|
1 4 1
0 1 3
( ) 0 3 2 = ( ) M 3 M 4 2 M
de unde rezult c cel mai negativ este
2
i vom calcula coloana a = I
2
=
\
|
care se adaug
la tabelul anterior rezultnd:
|
.
|

\
|
4
1
|
.
|
4
1
2

0
-M
x
3
x
5
10
2
1
0
0
1

1
4
-2M 0 -M -4M-3

i
minim este cel corespunztor lui x
5
i deci variabila x
2
va intra n locul variabilei x
5
.
Dup pivotare i eliminarea ultimei coloane obinem:

0
3
x
3
x
2
2
19


1
0
-



2
3

0

Deoarece variabila artificial x
5
a ieit din baz ea va fi eliminat din problem.
Iteraia 2.
S
= S c
S
= (0,)

|

|
.
|
\
1 1
0 3
( ) 0 2 = (
4
3
4
5
)
cel mai negativ este
1
i vom calcula coloana a
1
=
|
.
|
\

4
1
4
1
0
1

|
=
|
.
|

\
|
1
3
|
.
|
\ 4
1
4
11

|
care se
adaug la tabelul anterior rezultnd:
0
3
x
3
x
2
2
19


1
0
-


4
11



2
3

0
4
5


i
minim este cel corespunztor lui x
2
i deci variabila x
1
va intra n locul variabilei x
2
.
Dup pivotare i eliminarea ultimei coloane obinem:

0
2
x
3
x
1
4
2
1
0
-3
1

4 0 2

52
41
Bazele cercetrii operaionale
Iteraia 3.
S
= S c
S
= (0,2)

|

|
.
|
\
1 4
0 1
( ) 0 3 = (8 2 )
cel mai negativ este
4
i vom calcula coloana a
4
= =

\
|
care se
adaug la tabelul anterior rezultnd:
|
.
|

\
|

1 0
3 1
|
.
|

\
|
1
0
|
.
|
1
3

0
2
x
3
x
1
4
2
1
0
-3
1

3
-1
4 0 2 -2

i
minim este cel corespunztor lui x
3
i deci variabila x
4
va intra n locul variabilei x
3
.
Dup pivotare i eliminarea ultimei coloane obinem:

0
2
x
4
x
1
3
4

3
10

3
1

3
1

-1
0

3
20

3
2

0

Iteraia 4.
S
= S c
S
= (
3
2
,0)
|
|
.
|
\
0 4
1 1
( ) 0 3 = ( 0
3
7
)
cel mai negativ este
2
i vom calcula coloana a
2
=
|
.
|
\

0
1
3
1
3
1

|
= |
.
|

\
|
4
1
|
.
|

\
|

3
1
3
11
care se
adaug la tabelul anterior rezultnd:

0
2
x
4
x
1
3
4

3
10

3
1

3
1

-1
0
3
11

3
1


3
20

3
2
0
3
7

i
minim este cel corespunztor lui x
1
i deci variabila x
2
va intra n locul variabilei x
1
.
Dup pivotare i eliminarea ultimei coloane obinem:

0
3
x
4
x
2
38
10
4
1
-1
0
30 3 0

Iteraia 5.
S
= S c
S
= (3,0)
|
.
|

\
|
0 1
1 3
( ) 0 2 = ( 7 ) >0 deci soluia este optim (i unic)
STOP
3

Chiar dac la prima vedere calculele par mai mprtiate i deci mai lente, pentru probleme
mari, pe calculator se economisete foarte mult memorie i se mrete foarte mult viteza de calcul.
Totui, marele avantaj al acestei metode este acela c, la fiecare iteraie, se folosesc datele
problemei iniiale, ceea ce face ca erorile inerente de rotunjire s nu se propage, rmnnd n limite
acceptabile.


53
42
Bazele cercetrii operaionale
ELEMENTE DE TEORIA GRAFURILOR

1. Noiuni generale

n general, pentru situaiile care necesit la rezolvare un oarecare efort mintal (i un caz tipic
este cel al celor din economie), se caut, n primul rnd, o metod de reprezentare a lor care s
permit receptarea ntregii probleme dintr-o privire (pe ct posibil) i prin care s se evidenieze ct
mai clar toate aspectele acesteia.
n acest scop se folosesc imagini grafice gen diagrame, schie, grafice etc. O reprezentare
dintre cele mai utilizate este cea prin grafuri. Acestea sunt utilizate n special pentru vizualizarea
sistemelor i situaiilor complexe. n general, vom reprezenta componentele acestora prin puncte n
plan iar relaiile (legturile, dependenele, influenele etc) dintre componente prin arce de curb cu
extremitile n punctele corespunztoare. ntre dou puncte pot exista unul sau mai multe segmente
(n funcie de cte relaii dintre acestea, care ne intereseaz, exist) iar segmentelor li se pot asocia
sau nu orientri (dup cum se influeneaz cele dou componente ntre ele), numere care s exprime
intensitatea relaiilor dintre componente etc.
Este evident, totui, c aceast metod are limite, att din punct de vedere uman (prea multe
puncte i segmente vor face desenul att de complicat nct se va pierde chiar scopul pentru care a
fost creat claritatea i simplitatea reprezentrii, aceasta devenind neinteligibil) ct i din punct de
vedere al tehnicii de calcul (un calculator nu poate "privi" un desen ca un om).
Din acest motiv, alturi de expunerea naiv-intuitiv a ceea ce este un graf, dat mai sus, se
impune att o definiie riguroas ct i alte modaliti de reprezentare a acestora, adecvate n general
rezolvrilor matematice.

Definiia 1 Se numete multigraf un triplet G = (X, A, f) n care X i A sunt dou mulimi
iar f este o funcie, definit pe produsul vectorial al lui X cu el nsui (X
2
= XX), care ia valori n
mulimea prilor mulimii A (notat P(A))

Mulimea X se numete mulimea nodurilor multigrafului i elementele sale se numesc
noduri (sau vrfuri) ale multigrafului, iar A reprezint mulimea relaiilor (legturilor) posibile ntre
dou noduri ale multigrafului.

Definiia 2 Se numete graf orientat un multigraf n care mulimea A are un singur
element: A = {a}.

n acest caz mulimea prilor mulimii A are doar dou elemente: mulimea vid i
ntreaga mulime A. Dac unei perechi orientate (x
i
, x
j
) din X
2
i se asociaz prin funcia f mulimea
A atunci spunem ca exist arc de la nodul x
i
la nodul x
j
iar perechea (x
i
,x
j
) se va numi arcul (x
i
,x
j
).
Nodul x
i
se numete nod iniial sau extremitate iniial a arcului (x
i
,x
j
) iar nodul x
j
se numete
nod final sau extremitate final a arcului (x
i
,x
j
). Arcul (x
i
,x
j
) este incident spre interior vrfului
x
j
i incident spre exterior vrfului x
i
. Dac pentru un arc nodul iniial coincide cu nodul final
atunci acesta se numete bucl. Nodurile x
i
i x
j
se vor numi adiacente dac exist cel puin unul
din arcele (x
i
,x
j
) i (x
j
,x
i
).
Dac unei perechi orientate (x
i
, x
j
) din X
2
i se asociaz prin funcia f mulimea vid
atunci spunem c nu exist arc de la nodul x
i
la nodul x
j
.
Este evident c a cunoate un graf orientat este echivalent cu a cunoate vrfurile i arcele
sale. Din acest motiv putem defini un graf orientat prin perechea (X,U), unde X este mulimea
vrfurilor sale iar U mulimea arcelor sale.
De asemenea, putem cunoate un graf orientat cunoscnd mulimea nodurilor i, pentru
fiecare nod, mulimea arcelor incidente spre exterior. Din acest motiv putem defini un graf orientat
ca o pereche (X,) unde X este perechea nodurilor iar este o funcie definit pe X cu valori n
111
43
Elemente de teoria grafurilor
mulimea prilor lui X, valoarea acesteia ntr-un nod x
i
, (x
i
) X fiind mulimea nodurilor
adiacente nodului x
i
, prin arce pentru care x
i
este extremitatea iniial.

Definiia 3 Se numete graf neorientat un multigraf n care mulimea A are un singur
element iar funcia f are proprietatea:
f[(x
i
,x
j
)] = f[(x
j
,x
i
)] , oricare ar fi nodurile x
i
i x
j
din X
n aceste condiii, dac f[(x
i
,x
j
)] = f[(x
j
,x
i
)] = A atunci perechea neorientat {x
i
,x
j
} este o
muchie iar dac f[(x
i
,x
j
)] = f[(x
j
,x
i
)] = spunem c nu exist muchie ntre vrfurile x
i
i x
j
.
Deoarece, n cele mai multe din cazurile practice care vor fi analizate n acest capitol,
situaia este modelat matematic printr-un graf orientat, vom folosi, pentru simplificarea expunerii,
denumirea de graf n locul celei de graf orientat iar n cazul n care graful este neorientat vom
specifica acest fapt la momentul respectiv.

2. Moduri de reprezentare ale unui graf

A. O prim modalitate de reprezentare este listarea efectiv a tuturor nodurilor i a arcelor
sale.
B. Putem reprezenta graful dnd pentru fiecare nod mulimea nodurilor cu care formeaz
arce n care el este pe prima poziie.
C. Putem reprezenta geometric graful, printr-un desen n plan, reprezentnd fiecare nod
printr-un punct(cercule) i fiecare arc printr-un segment de curb care are ca extremiti
nodurile arcului i pe care este trecut o sgeat orientat de la nodul iniial spre cel
final.
D. Putem folosi o reprezentare geometric n care nodurile sunt reprezentate de dou ori, n
dou iruri paralele, de la fiecare nod din unul din iruri plecnd sgei spre nodurile cu
care formeaz arce n care el este pe prima poziie, de pe al doilea ir (reprezentarea prin
coresponden).
E. Un graf poate fi reprezentat printr-o matrice ptratic boolean, de dimensiune egal cu
numrul de noduri, n care o poziie a
ij
va fi 1 dac exist arcul (x
i
,x
j
) i 0 n caz contrar,
numit matricea adiacenelor directe.
F. Un graf poate fi reprezentat printr-o matrice ptratic latin, de dimensiune egal cu
numrul de noduri, n care pe o poziie a
ij
va fi x
i
x
j
dac exist arcul (x
i
,x
j
) i 0 n caz
contrar.
Exemplu: Dac n reprezentarea A avem graful G = (X,U), unde X = {x
1
, x
2
, x
3
, x
4
, x
5
, x
6
}
i U = {(x
1
,x
1
), (x
1
,x
2
), (x
1
,x
4
), (x
1
,x
5
), (x
2
,x
3
), (x
2
,x
4
), (x
2
,x
6
), (x
3
,x
1
), (x
3
,x
2
), (x
4
,x
5
), (x
5
,x
2
),
(x
6
,x
4
)}, atunci n celelalte reprezentri vom avea:
B x
1
{x
1
, x
2
, x
4
, x
5
} C
x
3
x
4
x
5
x
6
x
2
x
1
x
2
{x
3
, x
4
, x
6
}
x
3
{x
1
, x
2
}
x
4
{x
5
}
x
5
{x
2
}
x
6
{x
4
}
D (reprezentarea prin coresponden)
x
1
x
2
x
3
x
4
x
5
x
6





x
1
x
2
x
3
x
4
x
5
x
6

112
44
Bazele cercetrii operaionale
E F
x
1
x
2
x
3
x
4
x
5
x
6

x
1
1 1 0 1 1 0
x
2
0 0 1 1 0 1
x
3
1 1 0 0 0 0
x
4
0 0 0 0 1 0
x
5
0 1 0 0 0 0
x
6
0 0 0 1 0 0
x
1
x
2
x
3
x
4
x
5
x
6

x
1
x
1
x
1
x
1
x
2
0 x
1
x
4
x
1
x
5
0
x
2
0 0 x
2
x
3
x
2
x
4
0 x
2
x
6
x
3
x
3
x
1
x
3
x
2
0 0 0 0
x
4
0 0 0 0 x
4
x
5
0
x
5
0 x
5
x
2
0 0 0 0
x
6
0 0 0 x
6
x
4
0 0








3. Concepte de baz n teoria grafurilor

1. semigraf interior al unui nod x
k
: este mulimea arcelor = {(x

k
x
U
j
,x
k
)/ (x
j
,x
k
) U} care
sunt incidente spre interior nodului x
k
;
2. semigraf exterior al unui nod x
k
: este mulimea arcelor = {(x
+
k
x
U
k
,x
i
)/ (x
k
,x
i
) U} care
sunt incidente spre exterior nodului x
k
;
3. semigradul interior al unui nod x
k
: este numrul arcelor care sunt incidente spre interior
nodului x
k
= cardinalul lui i se noteaz cu ;

k
x
U

k
x

4. semigradul exterior al unui nod x


k
: este numrul arcelor care sunt incidente spre
exterior nodului x
k
= cardinalul lui i se noteaz cu ;
+
k
x
U
+
k
x

5. gradul unui nod x


k
: este suma semigradelor nodului x
k
: = + ;
k
x

+
k
x


k
x

6. nod izolat: este un nod cu gradul 0;


7. nod suspendat: este un nod cu gradul 1;
8. arce adiacente: arce care au o extremitate comun;
9. drum ntr-un graf: o mulime ordonat de noduri ale grafului: (x
1
, x
2
, ..., x
k
), cu
proprietatea c exist n graf toate arcele de forma (x
i
,x
i+1
) i = 1,...,k-1;
10. lungimea unui drum: este numrul arcelor care l formeaz;
11. drum elementar: un drum n care fiecare nod apare o singur dat;
12. drum simplu: un drum n care fiecare arc apare o singur dat;
13. putere de atingere a unui nod x
i
X n graful G: numrul de noduri la care se poate
ajunge din x
i
. Puterea de atingere se noteaz cu p(x
i
), 1 i n i evident p(x
i
) .
+
i
x

14. drum hamiltonian: un drum elementar care trece prin toate nodurile grafului;
15. drum eulerian: un drum simplu care conine toate arcele grafului;
16. lan: un drum n care arcele nu au neaprat acelai sens de parcurgere;
17. circuit: un drum n care nodul iniial coincide cu cel final;
18. circuit elementar: un drum n care fiecare nod apare o singur dat, cu excepia celui
final, care coincide cu cel iniial;
19. circuit simplu: un drum n care fiecare arc apare o singur dat;
20. circuit hamiltonian: un circuit care trece prin toate nodurile grafului;
21. ciclu: este un circuit n care arcele nu au neaprat acelai sens de parcurgere;
22. ciclu elementar: un ciclu n care fiecare nod apare o singur dat, cu excepia celui
final, care coincide cu cel iniial;
23. ciclu simplu: un ciclu n care fiecare arc apare o singur dat;
Observaie: ntr-un graf neorientat noiunile de drum i lan sunt echivalente i de
asemenea cele de circuit i ciclu.
24. graf parial al unui graf G = (X,U): este un graf G'(X,U') cu U' U;
25. subgraf al unui graf G = (X,): este un graf G'(X',') unde X' X i '(x
i
) = (x
i
) X'
pentru orice x
i
X';
113
45
Elemente de teoria grafurilor
26. graf redus al unui graf G = (X,U): este un graf G
*
(X
*
,U
*
) unde X
*
este format din
mulimile unei partiii de mulimi nevide ale lui X, iar ( ) exist doar dac i j i
exist cel puin un arc n U, de la un nod din la un nod din
*
i
X ,
*
j
X
*
i
X
*
j
X .
27. graf tare conex: este un graf n care ntre oricare dou noduri exist cel puin un drum;
28. graf simplu conex: este un graf n care ntre oricare dou noduri exist cel puin un lan;
Observaie: Pentru grafuri neorientat noiunile de tare conex i simplu conex sunt
echivalente, graful numindu-se doar conex;
29. component tare conex a unui graf G = (X,U): este un subgraf al lui G care este tare
conex i nu este subgraful nici unui alt subgraf tare conex al lui G (altfel spus, ntre
oricare dou noduri din component exist cel puin un drum i nu mai exist nici un nod
n afara componentei legat printr-un drum de un nod al componentei).

4. Gsirea drumurilor ntr-un graf orientat

Dac privim graful ca imagine a unui sistem, nodurile reprezentnd componentele sistemu-
lui, atunci o interpretare imediat a unui arc (x
i
,x
j
) este c, componenta x
i
influeneaz direct
componenta x
j
. Dac nodurile au semnificaia de stri posibile ale unui sistem atunci un arc (x
i
,x
j
)
semnific faptul c sistemul poate trece direct din starea x
i
n starea x
j
. n ambele cazuri se vede c
avem de-a face doar cu informaii despre legturi directe; totui, chiar dac o component x
i
nu
influeneaz direct componenta x
j
ea o poate influena prin intermediul altor componente, existnd
un ir de componente intermediare: x
1
x
2
,..., x
k
, fiecare influennd-o direct pe urmtoarea i x
i

direct pe x
1
iar x
k
direct pe x
j
. Astfel, dac dintr-o stare x
i
nu se poate trece direct ntr-o stare x
j
s-ar
putea totui n mai multe etape, prin alte stri intermediare. Deoarece gsirea acestor influene sau
treceri posibile este de obicei foarte important iar pentru un sistem cu mii sau zeci de mii de
componente acest lucru nu mai poate fi fcut "din ochi", este necesar formalizarea noiunii de
"influene" i "treceri" posibile, nu neaprat directe. Acest lucru a i fost fcut mai sus, deoarece
este evident c "x
i
influeneaz x
j
" sau "din starea x
i
se poate trece n starea x
j
" este echivalent cu
existena n graf a unui drum de la nodul x
i
la nodul x
j
.
n continuare vom da un algoritm prin care putem gsi toate drumurile dintr-un graf orientat
cu un numr finit de noduri.

Pasul 1. Se construiete matricea boolean a adiacenelor directe corespunztoare grafului, notat
cu A. n aceasta se afl, evident, toate drumurile de lungime 1.

Este interesant de vzut ce legtur exist ntre aceast matrice i drumurile de lungime 2.
Fie dou noduri x
i
i x
j
oarecare din graf. Existena unui drum de lungime 2 ntre ele presupune
existena unui nod x
k
, din graf, cu proprietatea c exist att arcul (x
i
,x
k
) ct i arcul (x
i
,x
k
). Pentru a
vedea dac acesta exist, lum pe rnd fiecare nod al grafului i verificm dac exist sau nu ambele
arce ((x
i
,x
k
) i (x
i
,x
k
)). Aceasta este echivalent cu a verifica dac, n matricea boolean a adiacene-
lor directe, exist vreun indice k astfel nct elementul k al liniei i i elementul k al coloanei j s fie
ambele egale cu 1. Dac folosim operaiile algebrei booleene de adunare i nmulire:
+
&
0 1 & 0 1
0 0 1 0 0 0
1 1 1 1 0 1

atunci verificrile de mai sus sunt echivalente cu a verifica dac elementul de pe poziia (i,j) din A
2

este egal cu 1. Valoarea 1 spune doar c exist cel puin un drum de lungime 2 de la x
i
la x
j
. Dac
dorim s vedem i cte sunt, vom folosi regulile de nmulire i adunare obinuit.
De asemenea, se poate observa c existena unui drum de lungime 3 de la x
i
la x
j
presupune
existena unui nod x
k
astfel nct s existe un drum de lungime 2 de la x
i
la x
k
i un arc de la x
k
la x
j
,
care este echivalent cu a verifica dac exist vreun indice k astfel nct elementul k al liniei i din
114
46
Bazele cercetrii operaionale
matricea A
2
i elementul k al coloanei j din A sunt ambele egale cu 1 sau, mai simplu, dac
elementul (i,j) din A
3
este 1.
Din cele de mai sus se observ c existena drumurilor de lungime k este dat de valorile
matricei A
k
, dac s-au folosit regulile algebrei booleene i numrul lor este dat de A
k
, dac s-au
folosit regulile obinuite.

Pasul 2. Vom calcula succesiv puterile lui A pn la puterea A
n-1


Dac ntre nodurile x
i
i x
j
exist un drum de lungime n atunci el va conine un numr de
noduri mai mare sau egal nu n+1 i, cum n graf sunt doar n vrfuri, este clar c cel puin unul, s
zicem x
k
, va aprea de dou ori. Vom avea n acest caz un drum de la x
i
pn la prima apariie a lui
x
k
, i un drum de la ultima apariie a lui x
k
la x
j
. Eliminnd toate nodurile dintre prima apariie a lui
x
k
i ultima apariie a sa vom obine un drum de la x
i
la x
j
, n care x
k
apare o singur dat. Aplicnd
acest procedeu pentru toate nodurile care apar de mai multe ori pe drum, vom obine un drum de la
x
i
la x
j
, n care fiecare nod apare o singur dat (deci un drum elementar), care are evident cel mult
n-1 arce. n concluzie, dac exist vreun drum de la x
i
la x
j
atunci exist i un drum elementar i,
deci, va exista o putere a lui A, ntre A
1
i A
n-1
, n care poziia (i,j) este diferit de 0. Pentru
deciderea existenei unui drum ntre oricare dou noduri este suficient, deci, calcularea doar a
primelor n-1 puteri ale lui A.

Pasul 3. Se calculeaz matricea D = A + A
2
+ ... + A
n-1


Dac ne intereseaz doar existena drumurilor dintre noduri, nu i numrul lor, vom folosi
nmulirea i adunarea boolean i conform observaiei de mai sus:

d
ij
=

j i
j i
x la x de drum un nici a exist nu a dac 0
x la x de drum un putin cel a exist a dac 1
( (
( (


n acest caz, observnd c:

A(A + I)
n2
= C A + A
0
2 n
1
2 n
C

2
+ A
2
2 n
C

3
+ ... + C A
2 n
2 n

n1
= A + A
2
+ A
3
+ ... + A
n-1
= D

rezult c e suficient s calculm doar puterea n-2 a matricei A + I i apoi s-o nmulim cu A.
Avantajul acestei metode, n ceea ce privete economia de timp, este susinut i de urmtoarea
observaie: dac D conine toate perechile de arce ntre care exist drum atunci:

D = (A + A
2
+ ... + A
n-1
) + A
n
+ A
n+1
+ ... + A
n+k
= D oricare ar fi k 0
A(A + I)
n2+k
= (A + A
2
+ ... + A
n-1
) + A
n
+ A
n+1
+ ... + A
n+k-1
= D = A(A + I)
n2

A(A + I)
n2+k
= A(A + I)
n2
oricare ar fi k 0

deci de la puterea k = n-2 toate matricile A
k
sunt egale. Putem, deci, calcula direct orice putere a lui
A+I mai mare sau egal cu n-1 (de exemplu calculnd (A+I)
2
, (A+I)
4
, (A+I)
8
, ..., , r fiind
prima putere a lui 2 pentru care 2
r
2
I) (A+
r
n-2).
Procedeul de mai sus nu asigur dect aflarea faptului dac exist sau nu drum ntre dou
noduri, eventual ce lungime are i cte sunt de aceast lungime. Totui, n problemele practice cel
mai important este s tim care sunt efectiv aceste drumuri. Deoarece toate drumurile pot fi
descompuse n drumuri elementare i n problemele practice n general acestea sunt cele care
intereseaz, paii urmtori ai algoritmului vor fi dedicai gsirii lor. Pentru gsirea acestora se
folosete reprezentarea grafului prin matricea latin de la cazul F.

115
Pasul 4. Construim matricea latin L asociat grafului, unde:
47
Elemente de teoria grafurilor

l
ij
=
( )
( )

j i
j i j i
x , x arcul a exist nu a dac 0
x , x arcul a exist a dac x x
( (
( (

i matricea L
~
, definit prin:
ij
l
~
=
( )
( )

j i
j i j
x , x arcul a exist nu a dac 0
x , x arcul a exist a dac x
( (
( (

numit matricea latin redus.
Gsirea unui drum de lungime 2 de la x
i
la x
j
presupune gsirea unui nod cu proprietatea c
exist arcele (x
i
,x
k
) i (x
k
,x
j
) i memorarea vectorului (x
i
, x
k
, x
j
). Aceasta este echivalent cu a gsi
un indice k astfel nct elementul de pe poziia k a liniei i, din matricea L, s fie x
i
,x
k
i elementul
de pe poziia k al coloanei j, din matricea L
~
, s fie x
j
. Vom nmuli deci matricea L cu matricea L
~
,
folosind ns nite reguli de calcul speciale, numite nmulire i adunare latin.

Definiia 1: Se numete alfabet o mulime de semne numite simboluri sau litere {s
i
/iI}
unde I este o mulime oarecare de indici, finit sau nu.
Definiia 2: Se numete cuvnt un ir finit de simboluri notat s .
n 2 1
i i i
s ... s
Definiia 3: Se numete nmulire latin o operaie definit pe mulimea cuvintelor unui
alfabet, notat " ", astfel:
L

n 2 1
i i i
s ... s s
L

m 2 1
j j j
s ... s s =
m 2 1 n 2 1
j j j i i i
s ... s s s ... s s
(produsul a dou cuvinte se obine prin concatenarea lor)
nmulirea latin este asociativ, are ca element neutru cuvntul vid, nu e
comutativ i un element este inversabil doar dac este cuvntul vid.
Definiia 3: Se numete adunare latin o funcie definit pe mulimea cuvintelor unui
alfabet cu valori n mulimea parilor mulimi cuvintelor, notat " " astfel:
L
+
n 2 1
i i i
s ... s s
L
+
m 2 1
j j j
s ... s s =
)
`

m 2 1
n 2 1
j j j
i i i
s ... s s
s ... s s
(suma a dou cuvinte este mulimea format din cele dou cuvinte)

Pasul 5. Se calculeaz succesiv matricile:

L
2
= L
L
L
~
, L
3
= L
2

L
L
~
, ... ,L
k+1
= L
k
L
L
~


folosind operaiile de nmulire i adunare latin, alfabetul fiind mulimea nodurilor grafului, unde
operaia de nmulire este uor modificat, produsul dintre dou elemente ale matricilor fiind 0, dac
unul dintre ele este 0 sau au un nod comun i este produsul latin al lor, n caz contrar.
Din felul cum a fost construit, matricea L
k
va conine toate drumurile elementare de
lungime k. Cum un drum elementar poate avea cel mult n noduri (cte are graful cu totul) rezult
c:
primele n-1 puteri ale lui L conin toate drumurile elementare din graf;
puterile lui L mai mari sau egale cu n au toate elementele egale cu 0;
matricea L
n-1
conine toate drumurile hamiltoniene din graf (dac exist).

Observaie: Deoarece obinerea matricii D prin metoda de mai sus presupune un volum
foarte mare de calcule (de exemplu, dac graful are 100 de noduri, ridicarea unei matrici de
100100 la puterea 100) pentru obinerea acesteia se poate aplica i urmtorul algoritm:

Pas 1. Se construiete matricea de adiacen A;
Pas 2. Pentru fiecare linie i se adun boolean la aceasta toate liniile j pentru care a
ij
= 1.
116
48
Bazele cercetrii operaionale
Pas 3. Se reia pasul 2 pn cnd, dup o aplicare a acestuia, matricea rmne aceeai (nu
mai apare nici un 1)
Ultima matrice obinut este matricea drumurilor D numit i matricea conexiunilor totale.
Aceast metod, dei mai simpl nu spune ns i care sunt aceste drumuri, pentru gsirea
lor aplicndu-se, de exemplu, nmulirea latin
117
49
Elemente de teoria grafurilor
5. ARBORI. Problema arborelui de valoare optim

n acest subcapitol grafurile vor fi considerate neorientate.

5.1. Noiunea de arbore

Un arbore este un graf neorientat, finit, conex i fr cicluri. Grafurile din fig. 4.1. sunt
arbori.


x
1
x
1
x
1 x
1
x
1
x
1
x
1
x
1
x
1
x
1
x
1







a)
c)
b)


Figura 4.1


Studiul arborilor este justificat de existena n practic a unui numr mare de probleme care
pot fi modelate prin arbori. Dintre acestea amintim:

1. construirea unor reele de aprovizionare cu ap potabil (sau cu energie electric sau
termic etc) a unor puncte de consum, de la un punct central;
2. construirea unor ci de acces ntre mai multe puncte izolate;
3. desfurarea unui joc strategic;
4. luarea deciziilor n mai multe etape (arbori decizionali);
5. evoluii posibile ale unui sistem pornind de la o stare iniial;
6. construirea unei reele telefonice radiale, a unei reele de relee electrice;
7. legarea ntr-o reea a unui numr mare de calculatoare;
8. organigramele ntreprinderilor;
9. studiul circuitelor electrice n electrotehnic (grafe de fluen etc);
10. schemele bloc ale programelor pentru calculatoare etc.

n toate problemele de mai sus se dorete ca, dintre muchiile unui graf neorientat, s se
extrag arborele optim din mulimea tuturor arborilor care pot fi extrai din graful dat.
Deoarece definiia arborelui este dificil de aplicat pentru deciderea faptului c un graf este
arbore sau nu (i n special sunt greu de verificat conexitatea i mai ales existena ciclurilor) exist
mai multe caracterizri posibile ale unui arbore, acestea fiind date de teorema de mai jos:

Teorem. Dac H este un graf neorientat finit, atunci urmtoarele afirmaii sunt echivalente:

1)
2)
3)
H este arbore;
H nu conine cicluri i, dac se unesc printr-o muchie dou noduri neadiacente, se
formeaz un ciclu (i numai unul). Arborele este, deci, pentru o mulime de noduri dat,
graful cu numrul maxim de arce astfel nct s se pstreze proprietatea c nu are cicluri);
H este conex i dac i se suprim o muchie se creeaz dou componente conexe (arborele
este graful conex cu numrul minim de arce);
118
50
Bazele cercetrii operaionale
4)
5)
6)
H este conex i are n-1 muchii;
H este fr cicluri i are n-1 muchii;
Orice pereche de noduri este legat printr-un lan i numai unul.

Demonstraie :

1) 2). ntre cele dou noduri adiacente noii muchii introduse exista deja un drum n fostul graf.
Acest drum, mpreun cu noul arc va forma evident un ciclu i afirmaia 2) a fost
demonstrat.
2)3). Pentru oricare dou vrfuri neunite printr-o muchie, adugnd muchia dintre cele dou
vrfuri s-ar crea, conform ipotezei, un ciclu care conine aceast muchie, deci dou
drumuri ntre cele dou noduri, din care unul nu conine noua muchie, adic n graful
iniial exista un drum ntre cele dou noduri. Dac nu exist cicluri nseamn c ntre
oricare dou noduri exist un singur drum. Pentru dou noduri unite printr-o muchie,
aceasta este chiar drumul corespunztor celor dou noduri. Dac suprimm aceast muchie
ntre cele dou noduri nu va mai exista nici un drum, formndu-se dou componente
conexe.
3)4). Demonstraia se face prin inducie dup n = numrul de noduri ale grafului. Pentru n=2 este
evident. Presupunem afirmaia adevrat pentru toate grafurile cu cel mult n noduri. Dac
graful are n+1 noduri, prin suprimarea unei muchii se formeaz dou componente conexe
fiecare avnd cel mult n noduri (n
1
n, n
2
n i n
1
+ n
2
= n+1) i deci au n
1
1 respectiv
n
2
1 muchii. n concluzie graful iniial a avut (n
1
1) + (n
2
1) +1 = n
1
+ n
2
1= (n+1)-1
muchii, ceea ce era de demonstrat.
4)5). Dac ar avea un ciclu atunci prin suprimarea unui arc al acestuia ar rmne de asemenea
conex. Eliminm acest arc apoi repetm procedeul pentru graful parial rmas i tot aa
pn cnd nu mai rmne nici un ciclu. n acest moment graful rmas este conex i nu are
cicluri deci este arbore i deci are n-1 arce, n contradicie cu faptul c el avea n-1 arce
nainte de a ncepe suprimarea arcelor;
5)6). Dac ntre dou noduri ar exista dou drumuri atunci acestea ar forma la un loc un ciclu.
Deci ntre 2 noduri este cel mult un drum. Dac ntre dou noduri nu ar exista nici un drum
ar fi cel puin dou componente conexe n graf, fiecare fiind arbore (pentru c nu exist
cicluri) i deci fiecare ar avea un numr de arce cu 1 mai mic dect numrul de noduri.
Fcnd adunarea, ar rezulta c n graf sunt strict mai puin de n-1 arce.
6)1). Dac H ar avea un ciclu, ntre dou noduri ale acestuia ar exista dou lanuri, n
contradicie cu ipoteza.

Presupunem c avem un graf pentru care am verificat deja dac este conex. Dac nu este
atunci acesta, evident, nu are nici un graf parial care s fie arbore.
Presupunem de asemenea c fiecrei muchii i este asociat o valoare real.

5.2. Algoritmi pentru gsirea arborelui de valoare optim

Vom da mai jos trei algoritmi pentru determinarea unui graf parial al grafului, care s fie
arbore i pentru care suma valorilor arcelor sale s fie minim (sau maxim).
Toi algoritmii descrii n continuare extrag arborele prin colectarea una cte una a muchiilor
acestuia.

A. Algoritmul lui Kruskal

Pasul 1. Dintre toate muchiile grafului se alege muchia de valoare minim (maxim). Dac
minimul este multiplu se alege la ntmplare una din muchiile respective. Deoarece acest
"la ntmplare" trebuie cumva tradus n limbajul calculatorului, n cazul implementrii unui
119
51
Elemente de teoria grafurilor
program bazat pe acest algoritm, vom perturba din start valorile muchiilor, la k muchii cu
aceiai valoare V adunnd respectiv valorile , 2, ... , k, unde este foarte mic (n orice
caz, k mai mic dect diferena dintre valoarea acestor arce si valoarea imediat superioar a
unui arc), pozitiv.
Pasul 2. Dintre toate muchiile rmase, se alege cea de valoare minim (maxim);
Pasul 3. Dintre toate muchiile rmase, se alege cea de valoare minim (maxim), astfel nct s nu
se formeze cicluri cu cele deja alese;
Pasul 4. Se reia algoritmul de la pasul 3 pn se colecteaz n-1 muchii.

Dei s-a demonstrat c algoritmul gsete ntotdeauna arborele optim, el are dezavantajul c
este foarte laborios (de fiecare dat trebuie calculat minimul unei mulimi mari sau foarte mari
exist situaii n practic n care graful are sute de mii de arce) i, n plus, trebuie aplicat un algoritm
special ca s respectm condiia de a nu se forma cicluri, la alegerea unui nou arc.
O metod posibil este ca, dup adugarea fiecrui arc, s se mpart graful n componente
conexe i s alegem apoi un arc care nu are ambele extremitile n aceeai component conex.
De asemenea este clar c, n cazul existenei arcelor de valori egale, deoarece se alege la
ntmplare, exist mai multe variante de evoluie a alegerii arcelor. Totui, cu toate c pot fi mai
multe grafuri la care se poate ajunge prin acest algoritm, ele vor avea toate aceeai valoare (minima
(sau maxima) posibil).


B. Algoritmul lui Sollin

Pasul 1. Pentru fiecare nod se alege muchia adiacent de valoare minim (maxim).
Pasul 2. Se evideniaz componentele conexe, existente n graful parial format din arcele alese
pn n acest moment.
Pasul 3. Pentru fiecare component conex se alege muchia adiacent de valoare minim
(maxim). Prin muchie adiacent unei componente conexe nelegem o muchie care are o
singur extremitate printre nodurile componentei respective.
Pasul 4. Se reia algoritmul de la pasul 2 pn rmne o singur component conex. Aceasta este
arborele optim cutat.

Acest algoritm asigur de asemenea gsirea arborelui optim, necesit mult mai puine
calcule (la fiecare alegere se calculeaz minimul doar pentru muchiile adiacente unui singur nod),
evit automat formarea ciclurilor, dar, pentru grafuri foarte mari, la un moment dat pot exista att de
multe componente conexe care trebuie memorate succesiv, nct calculul devine greoi sau, pe
calculator, depete posibilitile de memorare ale calculatorului.


C. O variant a algoritmului lui Kruskal

Pasul 1. Dintre toate muchiile grafului se alege cea de valoare minim (maxim);
Pasul 2. Dintre toate muchiile adiacente componentei conexe format din arcele alese pn n acest
moment, se alege cea de valoare minim (maxim);
Pasul 3. Se reia pasul 2 pn se colecioneaz n-1 muchii.

Algoritmul are toate avantajele algoritmului lui Sollin i, n plus, lucreaz cu o singur
component conex, fiind mult mai uor de implementat pe calculator i mult mai rapid n execuie.


Exemplu: Administraia unei localiti montane a hotrt construirea unor linii de teleferic
care s lege oraul de cele 8 puncte turistice importante din jurul acestuia. n urma unui studiu au
120
52
Bazele cercetrii operaionale
fost puse n evidena toate posibilitile i costurile de conectare a obiectivele turistice ntre ele i cu
oraul, acestea fiind prezentate n figura 4.2.
Se cere gsirea variantei de construcie de cost minim, care s asigure accesul din ora la
oricare din obiectivele turistice.

9
Figura 4.2
8
8
6
7
8
4
3
7
5
2
2
3
3
5
4
8
8
7
9
P
8
P
5
P
4
P
7
P
3
P
6
P
1
P
2
O















Rezolvare

Condiia de cost minim implic dou obiective:
1. S se construiasc minimul de arce necesare;
2. S se construiasc cele mai ieftine legturi.
Referitor la numrul de arce necesar, facem observaia c, dac din ora se va putea ajunge
la orice obiectiv turistic, atunci se va putea ajunge i de la orice staiune la oricare alta (trecnd prin
ora), deci trebuie ca arcele alese pentru construcie s formeze la un loc un graf conex.
n concluzie, cutm un graf parial conex cu un numr minim de arce, adic un arbore. n
plus, suma costurilor arcelor sale trebuie s fie minim. Vom aplica pe rnd cei trei algoritmi pentru
gsirea acestuia:

A. Kruskal

La primul pas poate fi ales unul din arcele OP
3
sau OP
7
, ele avnd valoarea minim 2. Putem
alege oricum primul arc dintre cele dou pentru c la al doilea pas va fi ales cellalt.
La pasul trei poate fi ales unul din arcele OP
5
, OP
6
sau P
1
P
6
care au valoarea minim 3. Nici
n acest caz nu are vre-o importan ordinea alegerii, deoarece pot fi alese succesiv toate trei fr a
se forma nici un ciclu.
Al aselea arc poate fi ales dintre arcele P
4
P
5
i P
1
P
2
, care au valoarea minim 4. Nici n
acest caz nu are vre-o importan ordinea alegerii, deoarece pot fi alese succesiv ambele, fr a se
forma nici un ciclu.
Urmtoarea valoare disponibil a unui arc este 5, dar arcul opt nu poate fi ales dintre arcele
OP
1
, P
6
P
7
, dei au valoarea minim 5. Arcul OP
1
nu poate fi ales deoarece s-ar forma ciclul OP
1
P
6
,
iar P
6
P
7
ar duce la ciclul OP
6
P
7
. Urmtoarea valoare minim este 6, pentru arcul P
5
P
7
dar nu poate fi
ales deoarece se formeaz ciclul OP
5
P
7
.
Valoarea urmtoare, 7, o au arcele OP
4
, P
2
P
3
i P
5
P
8
. OP
4
nu poate fi ales deoarece s-ar
forma ciclul OP
5
P
4
. Arcul P
2
P
3
nu poate fi ales deoarece s-ar forma ciclul OP
6
P
1
P
2
P
3
. Arcul P
5
P
8
nu
formeaz nici un ciclu i el va fi al optulea arc ales. n acest caz, deoarece s-au adunat 8 arce ntr-un
graf cu 9 noduri, am obinut graful cutat.
Acest arbore este reprezentat n figura 4.3.

121
53
Elemente de teoria grafurilor

7
Figura 4.3
4
3
2
2
3
3
4
P
8
P
5
P
4
P
7
P
3
P
6
P
1
P
2
O















B. Sollin

Vom alege: pentru nodul O

arcul OP
3
pentru nodul P
1
arcul P
1
P
6
pentru nodul P
2


arcul P
1
P
2
pentru nodul P
3


arcul OP
3
pentru nodul P
4


arcul P
4
P
5
pentru nodul P
5


arcul OP
5
pentru nodul P
6


arcul P
1
P
6
pentru nodul P
7


arcul OP
7
pentru nodul P
8


arcul P
5
P
8

Rezult graful parial:

Figura 4.4
7
4
3
2
2
3
4
P
8
P
5
P
4
P
7
P
3
P
6
P
1
P
2
O














Dup cum se vede, s-au format dou componente conexe: C
1
= {P
1
,P
2
,P
6
}
C
2
= {O,P
3
,P
4
,P
5
,P
7
,P
8
}.
Vom alege: pentru C
1
arcul OP
6

pentru C
2
arcul OP
6


i obinem o singur component conex, care este arborele cutat.

122
54
Bazele cercetrii operaionale
C. Varianta algoritmului lui Kruskal

Succesiunea alegerii arcelor va fi:

1

OP
3
2

OP
7

3

OP
6

4

OP
5

5

P
1
P
6

6

P
1
P
2

7

P
4
P
5

8

P
5
P
8



123
55
Elemente de teoria grafurilor

6. Cuplajul a dou mulimi disjuncte. Probleme de afectare (de repartiie)

n practica economic sunt foarte des ntlnite probleme n care se dorete asocierea optim
a elementelor unei mulimi X = {x
1
, x
2
, ... , x
n
} cu elementele unei alte mulimi Y = {y
1
, y
2
, ... , y
m
}
n condiiile unor limitri existente (i cunoscute) ale posibilitilor de asociere.
n general, fiecare asociere posibil x
i
y
j
aduce un anumit efect a
ij
(profit, cost etc) care
poate fi calculat i vom presupune c este cunoscut.
Limitrile asupra asocierilor se traduc de obicei prin faptul c:

1. Un element x
i
poate fi asociat doar cu anumite elemente din Y i reciproc;
2. La sfrit, fiecrui element din X i s-a asociat cel mult un element din Y i reciproc.

Asocierea optim presupune, de obicei, dou obiective:

1. S se fac maximul de asocieri;
2. Suma efectelor asocierilor s fie maxim (sau minim, n funcie de semnificaia
acestora).

Reprezentarea geometric a situaiei de mai sus este un graf de forma:


x
1
x
2
x
n
y
m
y
2
y
1









numit graf bipartit.

Definiia 1: Se numete graf bipartit un graf G = (X, U) n care mulimea nodurilor poate fi
mprit n dou mulimi disjuncte A i B astfel nct orice arc are extremitatea iniial n A i cea
final n B.

Definiia 2: Se numete cuplaj al unui graf bipartit o submulime de arce W U cu
proprietatea c nu exist dou arce adiacente (sau altfel spus, pentru orice nod exist cel mult un arc
incident acestuia).

Definiia 3: Se numete cuplaj maxim un cuplaj cu proprietatea c orice arc care nu face
parte din cuplaj este adiacent cu un arc din cuplaj ( orice arc am aduga, nu mai rmne cuplaj
nu exist nici un cuplaj n care s se includ strict conine numrul maxim de arce
neadiacente)
Este evident c numrul de arce ale unui cuplaj este mai mic sau egal cu numrul de
elemente din fiecare din mulimile A i B ( min (|A|,|B|). Este interesant de vzut ns ct de
mare este el efectiv i n ce condiii este egal chiar cu min (|A|,|B|).
Referitor la prima ntrebare, n 1931 Knig a demonstrat o teorem care permite stabilirea
numrului de arce ale unui cuplaj maxim:

124
56
Bazele cercetrii operaionale
Teorem: Numrul maxim de arce ale unui cuplaj ntr-un graf bipartit G = (AB, ) este
egal cu ( ) ( ) C C A min
A C
+



n ceea ce privete a doua problem, observm mai nti c putem presupune c ntotdeauna
|A||B|, n caz contrar inversnd sensul tuturor arcelor grafului, problema rmnnd aceeai.
n acest caz:

( ) ( ) C C A min
A C
+

= |A| ( ) ( ) C C A min
A C
+

|A| = 0 ( ) ( ) C C min
A C
+

= 0
( ) ( ) C C max
A C

= 0 ( ) C C oricare ar fi C A
sau altfel spus, pentru orice submulime C a lui A, mulimea nodurilor atinse de arce care pleac din
nodurile sale, adic (C), are cel puin attea elemente ct C.
De exemplu, la repartizarea angajailor pe posturi, fiecare angajat poate obine un post dorit
dac i numai dac oricare ar fi mulimea de r angajai exist cel puin r posturi diferite din care pot
alege.
Presupunem, n continuare, c s-a asociat fiecrui arc (x
i
,x
j
) o valoare v
ij
.

Definiia 4: Se numete valoare a unui cuplaj suma valorilor arcelor care l formeaz.

n acest moment putem spune c determinarea unei asocieri optime a mulimilor X i Y de la
nceput este echivalent matematic cu determinarea unui cuplaj maxim de valoare optim (minim
sau maxim) n graful bipartit asociat.
Dintre problemele ntlnite n practica economic, ce se reduc matematic la gsirea unui
cuplaj maxim de valoare optim, amintim:

1. Problema repartizrii muncitorilor unei secii la utilajele acesteia n funcie de pregtirea
i preferinele muncitorilor, complexitatea mainilor etc;
2. transferarea unor informaii ntr-un grup;
3. Repartizarea angajailor pe posturi;
4. Formarea grupelor de lucru dup afinitile dintre membrii colectivului.

n 1955, bazndu-se pe teorema lui Knig, H.W. Kuhn a elaborat un algoritm, cunoscut n
literatura de specialitate sub denumirea de algoritmul ungar, cu ajutorul cruia se poate determina
un cuplaj maxim de valoare minim ntr-un graf bipartit pentru care |A|=|B|= n.
El se bazeaz pe observaia c, dac se adun (sau scade) aceeai numr la toate valorile
arcelor, nu se modific ierarhia cuplajelor maxime, n ceea ce privete valoarea lor.
Vom prezenta algoritmul concomitent cu rezolvarea unui caz particular, pentru o mai bun
receptare a acestuia:
"ntr-o secie produsele finite se obin n urma efecturii succesive a 6 operaii pe 6 maini.
n aceast secie sunt angajai 6 muncitori, fiecare fiind calificat pentru efectuarea oricrei din cele 6
operaii. Pentru a optimiza activitatea n secie cei 6 muncitori au fost supui la un test n care
fiecare a prelucrat un numr de piese, pe toate cele ase maini. n final, calculndu-se timpul mediu
n care muncitorul M
i
efectueaz operaia O
j
s-au obinut valorile (n ore) date n tabelul de mai jos:

M
1
M
2
M
3
M
4
M
5
M
6

O
1
4 3 6 2 6 8
O
2
5 4 8 3 8 9
O
3
5 6 8 2 8 7
O
4
4 5 7 2 7 8
O
5
4 6 6 3 6 7
O
6
6 6 8 3 8 9
125
57
Elemente de teoria grafurilor
S se gseasc acea repartiie a muncitorilor la maini astfel nct timpul n care o pies se
prelucreaz succesiv pe cele 6 maini s fie minim."

Pasul 1. Se construiete matricea ptratic M care are elementele:

m
ij
=
( ) ( )
( )

j i
j i j i
x , x arcul exista nu daca
x , x arcul exista daca x , x arcului valoarea


Pentru exemplul ales vom avea: M =
|
|
|
|
|
.
|

\
|
9 8 3 8 6 6
7 6 3 6 6 4
8 7 2 7 5 4
7 8 2 8 6 5
9 8 3 8 4 5
8 6 2 6 3 4

Pasul 2. Se scade din fiecare linie minimul acesteia apoi, n matricea obinut, din fiecare coloan
minimul acesteia (se poate face i invers, rezultatul final va fi acelai). Pentru exemplul
dat vom obine succesiv matricile:
M
1
=

i apoi M
|
|
|
|
|
.
|

\
|
6 5 0 5 3 3
4 3 0 3 3 1
6 5 0 5 3 2
5 6 0 6 4 3
6 5 0 5 1 2
6 4 0 4 1 2
2
=


|
|
|
|
|
.
|

\
|
2 2 0 2 2 2
0 0 0 0 2 0
2 2 0 2 2 1
1 3 0 3 3 2
2 2 0 2 0 1
2 1 0 1 0 1
Ultima matrice este cea asupra creia se aplic urmtoarele calcule. n acest moment pe
fiecare linie i pe fiecare coloan se afl cel puin un 0, care corespunde celui mai mic timp. Se
ncearc n continuare folosirea doar a acestor repartizri:

Pasul 3. n ordinea cresctoare a numrului de zerouri i de sus n jos (n cazul existenei mai
multor linii cu acelai numr de zerouri ) se ncadreaz pentru fiecare linie zeroul a crui
coloan conine cele mai puine zerouri (primul de la stnga dintre acestea, n caz de
egaliate) i se bareaz celelalte zerouri de pe linia i coloana acestuia. Pe parcursul
algoritmului sunt luate n considerare la numrare doar zerourile nencadrate i nebarate
nc. n final, pe fiecare linie i pe fiecare coloan va fi cel mult un zero ncadrat. Dac n
final sunt n (= dimensiunea matricei) zerouri, atunci arcele corespunztoare formeaz
cuplajul cutat. Dac sunt mai puine se trece la pasul 4.
n exemplul nostru avem trei linii cu cte un zero (a 3-a, a 4-a i a 5-a) .l ncadrm pe cel de
pe linia 3 (prima dintre ele) i barm restul zerourilor de pe linia 3 i coloana 3, obinnd:

|
|
|
|
|
.
|

\
|
2 2 0 2 2 2
0 0 0 0 2 0
2 2 0 2 2 1
1 3 0 3 3 2
2 2 0 2 0 1
2 1 0 1 0 1


n acest moment pe liniile 1 i 2 se afl un zero. Se ncadreaz cel de pe linia 1 i se
bareaz celelalte de pe linia 1 i coloana 2, obinnd:

126
58
Bazele cercetrii operaionale
|
|
|
|
|
.
|

\
|
2 2 2
0 0 0
2 2 1
1 3 2
2 2 1
2 1 1

0 2 2
0 0 2
0 2 2
0 3 3
0 2 0
0 1 0

Ultima linie cu zerouri este linia 5 din care l ncadrm pe primul i le barm pe celelalte:

|
|
|
|
|
.
|

\
|
2 2 0 2 2 2
0 0 0 0 2 0
2 2 0 2 2 1
1 3 0 3 3 2
2 2 0 2 0 1
2 1 0 1 0 1


n total nu sunt 6 zerouri ncadrate (sunt doar trei) i deci trecem la pasul 4.

Pasul 4. La acest pas se va stabili numrul minim posibil de linii i coloane care s conin toate
zerourile matricii. n acest sens vom proceda astfel:

a) se marcheaz liniile care nu au nici un zero ncadrat;
b) se marcheaz coloanele care au un zero barat pe o linie marcat;
c) se marcheaz liniile care au un zero ncadrat pe o linie marcat (dac exist);
Se repet operaiile b) i c) pn nu mai poate fi marcat nici o linie i nici o coloan.

n cazul nostru vom avea: a) se marcheaz liniile 2, 4 i 6;
b) se marcheaz coloanele 2 i 4;
c) se marcheaz liniile 1 i 3;
b) nu mai marcm nici o coloan deoarece nu mai exist
nici un zero barat pe liniile 1 i 3, care s corespund unei
coloane nemarcate;
c) nu mai marcm nici o linie, deoarece nu a mai aprut
nici o coloan marcat.
Rezult:
|
|
|
|
|
.
|

\
|
2 2 0 2 2 2
0 0 0 0 2 0
2 2 0 2 2 1
1 3 0 3 3 2
2 2 0 2 0 1
2 1 0 1 0 1


Pasul 5. Se taie liniile nemarcate i coloanele marcate:

|
|
|
|
|
.
|

\
|
2 2 0 2 2 2
0 0 0 0 2 0
2 2 0 2 2 1
1 3 0 3 3 2
2 2 0 2 0 1
2 1 0 1 0 1


Pasul 6. Se mpart elementele matricei n trei grupe:

G
1
= elemente aflate la intersecii de linii netiate cu coloane netiate;
127
59
Elemente de teoria grafurilor
G
2
= elemente situate la intersecii de linii tiate cu coloane netiate sau de linii netiate
cu coloane tiate;
G
3
= elemente situate la intersecii de coloane tiate cu linii tiate

Pasul 7. Se gsete minimul grupei G
1
, care se scade din fiecare element al lui G
1
i se adun la
fiecare element al grupei G
3
. Elementele grupei G
2
rmn neschimbate.
Pentru exemplul dat, minimul lui G
1
este 1 i obinem noua matrice:
|
|
|
|
|
.
|

\
|
1 1 0 1 2 1
0 0 1 0 3 0
1 1 0 1 2 0
0 2 0 2 3 1
1 1 0 1 0 0
1 0 0 0 0 0

Pasul 8. Se reia algoritmul de la pasul 3.

Vom avea dup marcare:
|
|
|
|
|
.
|

\
|
1 1 0 1 2 1
0 0 1 0 3 0
1 1 0 1 2 0
0 2 0 2 3 1
1 1 0 1 0 0
1 0 0 0 0 0

Deoarece avem 6 zerouri ncadrate, am obinut cuplajul maxim de valoare minim cutat, cruia i
va corespunde repartizarea muncitorilor pe operaii de mai jos:

M
1
M
2
M
3
M
4
M
5
3
6
7
4
4
6
O
6
O
5
O
4
O
3
O
2
O
1
M
6












care duce la o durat total a prelucrrii unei piese de 6 + 4 + 7 + 6 + 3 = 26 ore
Observaie: Deoarece regula de a alege de sus n jos la linii cu acelai numr de zerouri este
arbitrar i de asemenea alegerea primului zero de la stnga, putem ajunge i la alte
cuplaje maxime, dar toate vor avea aceeai valoare, cea minim. De exemplu, un alt
cuplaj optim este:
M
1
M
2
M
3
M
4
M
5
3
6
7
4
4
6
O
6
O
5
O
4
O
3
O
2
O
1
M
6



adic
|
|
|
|
|
.
|

\
|
1 1 0 1 2 1
0 0 1 0 3 0
1 1 0 1 2 0
0 2 0 2 3 1
1 1 0 1 0 0
1 0 0 0 0 0


128
60
Bazele cercetrii operaionale
care are de asemenea valoarea 26.

Observaia 1. Dac dorim un cuplaj de valoare maxim atunci vom calcula la pasul 1
matricea M astfel:

1. Construind matricea A de elemente:

a
ij
=
( ) ( )
( )


j i
j i j i
x , x arcul exista nu daca
x , x arcul exista daca x , x arcului valoarea


2. Matricea M va avea componentele: m
ij
= ( )
ij ij
n j i, 1
a a max



apoi aplicm n continuare algoritmul.

Observaia 2. Dac |A||B| atunci aplicm acelai algoritm cu singura diferen c ne
vom opri cnd vom obine un numr de zerouri egal cu min (|A|,|B|).

129
61
Elemente de teoria grafurilor

7. Drumuri i circuite hamiltoniene

Una dintre cele mai cunoscute probleme economice este problema comis voiajorului. Comis
voiajorul este un individ care trebuie s prezinte s-au s distribuie marfa comandat la o serie de
centre distribuite n general neliniar pe o anumit zon teritorial (localitile dintr-un jude,
magazinele dintr-un cartier, persoanele dintr-un sat etc). Dac numrul de obiective care trebuie
vizitate este mare sau foarte mare iar timpul disponibil foarte limitat atunci devine vital o
asemenea organizare a trecerii pe la fiecare obiectiv nct s se efectueze n timpul minim posibil.
Acest timp minim se traduce prin drumul cel mai scurt, iar cel mai scurt drum este evident cel n
care se trece pe la fiecare obiectiv o singur dat. n plus, la sfrit trebuie s se afle n punctul
iniial, adic sediul firmei la care lucreaz.
O reprezentare a regiunii aprovizionate, n care centrele pe la care se trece sunt vizualizate
prin puncte iar cile de acces la acestea prin segmente de curbe, va fi evident un graf, problema
reducndu-se la a gsi circuitul hamiltonian de lungime minim.
n timp, s-au evideniat o multitudine de probleme reductibile la gsirea unui drum (sau
circuit) hamiltonian ntr-un graf, cum ar fi:

1. Problema potaului (gsirea traseului cel mai scurt care trece pe la toate locuinele ce
aparin de oficiul potal la care lucreaz acesta);
2. Problema adunrii deeurilor (cel mai scurt drum care trece pe la toate punctele de
depozitate a deeurilor);
3. Problema succesiunii operaiilor (executarea mai multor operaii pe o main n acea
ordine n care suma timpilor consumai cu pregtirea mainii pentru trecerea de la o
operaie la urmtoarea s fie minim)
4. Ordinea lipirii unor componente electronice pe o plac, etc;


Determinarea drumurilor hamiltoniene

Problema determinrii drumului (circuitului) hamiltonian de valoare optim s-a dovedit
deosebit de dificil, neexistnd nici acum un algoritm care s rezolve problema n timp polinomial
i nici mcar o metod simpl prin care s se decid dac ntr-un graf dat exist sau nu drumuri
hamiltoniene.
Exist ns mai muli algoritmi, unii exaci alii heuristici, care reuesc, ntr-un caz sau altul,
s rezolve problema satisfctor i n timp util.

A. Algoritmul lui Foulkes

Pasul 1. Se scrie matricea boolean A asociat grafului G.

Pasul 2. Se determin matricea D a drumurilor grafului G prin procedeul expus la nceputul
capitolului i apoi matricea M = I + D.

Pasul 3. Se mparte mulimea nodurilor grafului n submulimi disjuncte astfel:

1. Se consider n matricea M liniile pline (cu toate elementele 1). Nodurile ce corespund liniilor
pline cu 1 formeaz submulimea C
1
.
2. Se elimin liniile i coloanele care corespund nodurilor din submulimea stabilit.
3. Se reia raionamentul de la punctul 1 pe matricea redus obinut la punctul 2 obinndu-se
urmtoarea submulime i n continuare toate celelalte pn se epuizeaz toate liniile matricei.

130
62
Bazele cercetrii operaionale
Pasul 4. Se construiete graful G' n care:

1. Nodurile care formeaz o submulime sunt reprezentate prin puncte n interiorul unui
dreptunghi i ntre acestea se traseaz arcele existente n graful iniial G.
2. Se traseaz legturile dintre submulimi. Ele sunt reprezentate prin arcele existente n
graful iniial G ntre nodurile submulimii C
1
i cele ale submulimii C
2
, ntre nodurile
submulimii C
2
i cele ale submulimii C
3
etc.

Pasul 5. Se gsesc drumurile hamiltoniene

Un drum hamiltonian se gsete plecnd de la un vrf din submulimea C
1
, trecnd prin toate
vrfurile acesteia cu un drum hamiltonian, din ultimul vrf la care se ajunge n C
1
trecnd la un vrf
din C
2
, parcurgnd n continuare un drum hamiltonian n a doua submulime i tot aa, trecnd prin
toate submulimile i parcurgnd, deci, toate nodurile grafului iniial, o singur dat. Aplicnd acest
procedeu n toate modurile posibile se obin toate drumurile hamiltoniene din graful iniial G.
(Observaie: poate s nu existe nici un drum hamiltonian n graful G, caz n care algoritmul se
oprete deoarece la un anumit pas nu mai exista nici o linie plina cu 1).

Observaie. Algoritmul lui Foulkes reduce gsirea drumurilor hamiltoniene n graful iniial
G (care n problemele practice este foarte mare) la gsirea mai multor drumuri hamiltoniene mai
mici n componente tare conexe ale grafului. Dac un graf are o singur component tare conex,
algoritmul lui Foulkes nu este eficient, n acest caz trebuind aplicai ali algoritmi cum ar fi cel bazat
pe nmulirea latin.


B. Algoritmul lui Chen pentru determinarea drumurilor hamiltoniene
n grafuri fr circuite

Fie G = (X,U) un graf orientat fr circuite, cu n noduri: X = {x
1
, x
2
, , x
n
}. Vom
considera c am calculat matricea drumurilor D i puterile de atingere ale tuturor nodurilor.
Dac n graful G exist un drum de la nodul x
i
la nodul x
j
atunci evident p(x
i
) > p(x
j
),
deoarece n orice vrf n care se poate ajunge din x
j
se poate ajunge i din x
i
dar din x
j
nu se poate
ajunge n x
j
pentru c nu exist circuite.

Teorema 2.3 (Chen) Un graf cu n noduri, fr circuite conine un drum hamiltonian dac i
numai dac exist relaia:

( )
( )
2
1
1

=
n n
x p
n
i
i


Demonstraie
Fie H un drum hamiltonian i presupunem c nodurile grafului au fost notate n
ordinea n care apar n acest drum. Atunci din orice nod x
i
se poate ajunge n toate nodurile cu
indice mai mare i numai n acestea (altfel ar exista circuite) i deci puterea unui nod x
i
este n i, de
unde:
(

=
n
i
i
x p
1
) = (n 1) + (n 2) + + 1 + 0 =
( )
2
1 n n

Ordonnd vrfurile n ordinea descresctoare a puterii lor de atingere (i > j p(x
i
) <
p(x
j
)) i cum graful nu are circuite, vom obine o matrice D cu toate zerourile deasupra diagonalei
(evident pe o poziie (i,i) nu se afl nici un 1 iar dac ar fi un 1 pe poziia (i,j) cu i > j ar nsemna c
131
63
Elemente de teoria grafurilor
din x
i
se poate ajunge n x
j
, deci n toate nodurile n care se poate ajunge din x
j
, iar din x
j
nu se poate
ajunge n x
i
, deci p(x ) > p(x
i
( )
j
) n contradicie cu ipoteza de ordonare a nodurilor). Cum deasupra
diagonalei sunt
n
n n 1
poziii iar suma puterilor vrfurilor este chiar
( )
n
n n 1
rezult c toate
poziiile de deasupra diagonalei sunt 1. Aceasta nseamn c exist toate arcele de forma (x
i
,x
i+1
)
(altfel n-ar exista drum de la x
i
la x
i+1
, deoarece toate drumurile au indicii nodurilor n ordine
descresctoare) i deci drumul hamiltonian (x
1
, x
2
, , x
n
) q.e.d.

Teorema 2.4 Dac ntr-un graf orientat fr circuite exist un drum hamiltonian atunci
acesta este unic.

Demonstraie Deoarece un drum hamiltonian se identific cu o permutare a nodurilor
grafului, existena a dou drumuri hamiltoniene implic existena a dou permutri distincte a
nodurilor grafului i cum dou permutri distincte difer prin cel puin o inversiune vor exista dou
noduri x
i
i x
j
n ordinea x
i
x
j
pe un drum i invers pe cellalt, existnd deci un drum att de la x
i

la x
j
ct i de la x
j
la x
i
, cele dou formnd mpreun un circuit, n contradicie cu ipoteza.

Pe aceste teoreme se bazeaz algoritmul lui Chen de determinare a drumului hamiltonian
ntr-un graf orientat fr circuite:

Pasul1. Se scrie matricea de adiacen A
Pasul2. Se calculeaz matricea drumurilor D
Pasul3. Dac exist un indice i cu d
ii
= 1 atunci graful are circuite, nu se poate aplica algoritmul
lui Chen i algoritmul se oprete. Dac nu, se trece la pasul 4.
Pasul4. Se calculeaz puterile de atingere pentru fiecare nod.
Pasul5. Dac nu se verific relaia ( )
( )
2
1
1

=
n n
x p
n
i
i
atunci graful nu are drumuri hamiltoniene
i algoritmul se oprete, altfel se trece la pasul 6.
Pasul6. Se ordoneaz nodurile n ordinea descresctoare a puterilor lor de atingere i obinem
drumul hamiltonian cutat.



C. Algoritmul lui Kaufmann

Pasul 1. Construim matricea latin L asociat grafului, unde:

l
ij
=
( )
( )

j i
j i j i
x , x arcul a exist nu a dac 0
x , x arcul a exist a dac x x
( (
( (

Pasul 2. Construim matricea L
~
, definit prin:
ij
l
~
=
( )
( )

j i
j i j
x , x arcul a exist nu a dac 0
x , x arcul a exist a dac x
( (
( (

numit matricea latin redus.

Pasul 3. Se calculeaz succesiv matricile:

L
2
= L
L
L
~
, L
3
= L
2

L
L
~
, ..., L
k+1
= L
k
L
L
~
, ...

132
64
Bazele cercetrii operaionale
folosind operaiile de nmulire i adunare latin, alfabetul fiind mulimea nodurilor grafului, unde
operaia de nmulire este uor modificat, produsul dintre dou elemente ale matricilor fiind 0, dac
unul dintre ele este 0 sau au un nod comun, i este produsul latin al lor, n caz contrar.
Din felul cum a fost construit, matricea L
k
va conine toate drumurile elementare de
lungime k. Cum un drum elementar poate avea cel mult n noduri (cte are graful cu totul) rezult
c:
primele n-1 puteri ale L conin toate drumurile elementare din graf;
puterile lui L mai mari sau egale cu n au toate elementele egale cu 0;
matricea L
n-1
conine toate drumurile hamiltoniene din graf.

Pasul 4. Dac se doresc i circuitele atunci se verific pentru fiecare drum hamiltonian dac poate
fi completat pn la un circuit (adic dac exist n graf arcul care unete nodul final cu cel
iniial);
Pasul 5. Dac se dorete i drumul (sau circuitul) de valoare optim (maxim sau minim) se
calculeaz suma valorilor pentru fiecare drum i/sau circuit i se alege cel cu valoarea
optim.

n concluzie, metoda nmulirii latine (A. Kaufmann J. Melgrange) determin toate
drumurile elementare din graf, prin calcularea matricelor M
(1)
, M
(2)
, M
(3)
, , M
(n-1)
.
n matricea M
(n-1)
se citesc drumurile hamiltoniene.
Aceast metod a nmulirii latine (algoritmul lui Kaufmann) este util, mai ales, n cazul
grafurilor tare conexe, unde algoritmul lui Foulkes nu este eficient. Totui, metoda este greu de
aplicat n grafuri cu un numr mare de noduri. n acest caz este preferabil s se construiasc graful
condensat, s se determine drumurile hamiltoniene n fiecare n parte cu algoritmul lui Kaufmann i
apoi, ca la algoritmul lui Foulkes, s se caute drumurile hamiltoniene n graful iniial.

D. Un algoritm bazat pe algoritmul ungar

Fie G = (X,U) un graf orientat cu n noduri X = {x
1
, x
2
, , x
n
}.

Pasul 1. Se construiete graful bipartit H = (AB,V) n care A = B = X i V = U (adic am folosit
pentru G reprezentarea prin coresponden).
Pasul 2. Se gsete pentru graful H cuplajul maxim de valoare minim.
Pasul 3. Se construiete graful parial al lui G format doar cu arcele cuplajului gsit. Este uor de
demonstrat c, componentele tare conexe ale acestuia sunt toate nite circuite. Dac s-a
format un singur circuit acesta este circuitul hamiltonian de valoare minim. Dac s-au
format mai multe se trece la pasul 4.
Pasul 4. Pentru fiecare arc aflat pe circuitul de lungime minim (dac sunt mai multe se iau n
considerare arcele tuturor) se reia algoritmul de la pasul 1 pentru graful parial rezultat din
G prin eliminarea acestui arc.
Pasul 5. Pentru fiecare graf parial se continu procedeul pn se ajunge la unul din cazurile:

Cazul1. Cuplajului maxim gsit i corespunde un singur circuit. Dac acest circuit
este primul obinut atunci valoarea sa i se atribuie unei variabile Z i
circuitul este pstrat. Dac nu este primul atunci valoarea sa se compar cu
Z i, dac este mai mic, ea devine noua valoare a lui Z i circuitul se
pstreaz, eliminndu-l pe cel corespunztor fostei valori a lui Z. n caz
contrar se trece la alt graf parial neanalizat nc.
Cazul2. Cuplajul maxim are o valoare mai mare dect Z. Pentru acest graf parial se
abandoneaz ramificarea.

133
65
Elemente de teoria grafurilor
Pasul 6. Se continu analiza grafurilor pariale pn sunt analizate toate ramificaiile. Valoarea Z
final este valoarea circuitului de valoare minim iar circuitul corespunztor este cel
optim.

Analiza de mai sus poate fi schematizat printr-un arbore de tipul:












n care fiecare nod este un graf parial de analizat, iar pentru fiecare arc, nodul inferior este un graf
parial care provine din graful corespunztor nodului superior, prin suprimarea unui arc de pe
circuitele de lungime minim corespunztoare cuplajului maxim de valoare minim al acestuia.

Observaie: Algoritmul asigur gsirea circuitului de valoare minim iar n cazul n care
algoritmul lui Foulkes nu funcioneaz este o alternativ mai bun dect algoritmul lui Kaufmann.
Totui el nu lucreaz n timp polinomial i n unele cazuri (de exemplu cazuri n care se formeaz
foarte multe cicluri cu lungime minim) necesit un numr imens de calcule.
n aceste cazuri se pot folosi metode euristice prin care se elimin din start o serie de arce,
considerate a avea valori prea mari pentru a se putea afla pe circuitul hamiltonian de valoare
minim, apoi se aplic n graful parial rmas unul din algoritmii de mai sus.
134
66
Bazele cercetrii operaionale

8. Drumuri optime ntr-un graf

n marea majoritate a problemelor care pot fi modelate prin grafuri nu ne intereseaz numai
dac exist sau nu legturi ntre componentele reprezentate prin nodurile grafului ci i intensitatea
acestora. Aceast intensitate are semnificaia unei valori numerice (pozitive sau negative) asociate
arcului corespunztor legturii a crei intensitate o msoar.
n aplicaiile economice aceast valoare poate fi:

lungimea drumului dintre dou localiti;
costul parcurgerii rutei reprezentate prin arcul corespunztor;
durata parcurgerii rutei respective;
cantitatea transportat pe ruta respectiv;
capacitatea maxim a rutei respective;
ctigul realizat prin trecerea de la o stare la alta a sistemului;
consum de energie pentru efectuarea trecerii respective;
punctaj realizat etc.

Una din problemele care poate aprea n aceste situaii este gsirea, pentru o anumit
pereche de noduri (sau mai multe perechi), a drumului optim ntre acestea.
Pentru formalizarea problemei vom introduce noiunea de valoare a unui drum, care este
egal cu suma valorilor arcelor care l compun. Vom nota n continuare valoarea unui arc (x
i
,x
j
) cu
v(x
i
,x
j
) sau cu v
ij
. n aceste condiii putem enuna problema drumului optim astfel:
"Dat un graf G = (X,U) i o funcie care asociaz fiecrui arc o valoare real, s se
gseasc, pentru o pereche dat de noduri, drumul (drumurile) de valoare optim (minim sau/i
maxim) ntre cele dou noduri i valoarea acestuia (acestora)"
Deoarece este vorba de gsirea minimului unei mulimi de numere reale, prima ntrebare
care se pune este dac aceasta admite minim. Dac mulimea nodurilor grafului este infinit atunci
pot exista o infinitate de drumuri elementare distincte ntre cele dou noduri i mulimea valorilor
acestora poate avea orice form (nchis sau nu, mrginit sau nu) devenind foarte greu de
caracterizat cazurile cnd minimul dorit exist. Deoarece totui majoritatea covritoare a
problemelor economice se modeleaz prin grafuri cu numr finit de noduri, ne vom limita n
continuare doar la acestea.
Un numr finit de noduri n atrage dup sine existena unui numr finit de arce (cel mult n
2
)
i a unui numr finit de drumuri elementare ( cel mult nn!

=
1 - n
1 k
k!
1
). Deoarece oricrui drum d i
corespunde un drum elementar d
e
(obinut prin eliminarea tuturor subcircuitelor lui d) putem calcula
valoarea oricrui drum ca sum ntre valoarea drumului elementar corespunztor i valorile unor
subcircuite ale sale, fiecare nmulit cu numrul de parcurgeri ale circuitului respectiv.
n concluzie, dac exist un circuit de valoare negativ nseamn c exist drumuri de
valoare orict de mic (cele care conin acest circuit), obinut prin parcurgerea acestuia de oricte
ori dorim) i, deci, mulimea valorilor drumurilor este nemrginit inferior, neexistnd drum de
valoare minim. Dac exist un circuit de valoare pozitiv atunci exist drumuri de valoare orict de
mare i mulimea valorilor drumurilor este nemrginit superior, neexistnd drum de valoare
maxim.
Dac nu exist circuite de valoare negativ atunci valoarea oricrui drum este mai mare sau
egal cu a drumului elementar corespunztor, deci drumul de valoare minim (dac exist) va fi un
drum elementar. Cum mulimea drumurilor elementare este finit (i deci i mulimea valorilor lor)
va avea minorant i am lmurit problema compatibilitii problemei. Analog, dac nu exist circuite
de valoare pozitiv atunci valoarea oricrui drum este mai mic sau egal cu a drumului elementar
135
67
Elemente de teoria grafurilor
corespunztor, deci drumul de valoare maxim (dac exist) va fi un drum elementar. Cum
mulimea drumurilor elementare este finit (i deci i mulimea valorilor lor), va avea majorant.
Obs. 1. Dac n graf nu exist dect arce de valoare pozitiv atunci exist drum de valoare
minim.
Obs. 1. Dac n graf nu exist dect arce de valoare negativ atunci exist drum de valoare
maxim.
Obs. 1. Dac n graf nu exist circuite atunci exist i drum de valoare minim i drum de
valoare maxim.
Deoarece din cele de mai sus se sesizeaz importana existenei circuitelor ntr-un graf vom
da n continuare un algoritm de depistare a existenei circuitelor ntr-un graf:

Pasul 1. Se construiete mulimea A format din nodurile pentru care toate arcele incidente sunt
incidente spre interior ( noduri n care toate arcele "intr" sau, altfel spus, noduri din care
nu "pleac" nici un arc).
Pasul 2. Se gsesc toate nodurile care nu sunt din A pentru care toate arcele incidente au cealalt
extremitate n A (noduri din care se poate "ajunge" doar in A). Dac nu exist nici un
astfel de arc se trece la pasul 4.
Pasul 3. Se adaug arcele gsite la pasul 2 la mulimea A apoi se reia algoritmul de la pasul 2,
pentru noua mulime A.
Pasul 4. Dac A conine mulimea tuturor nodurilor atunci graful nu conine circuite. Dac au
rmas noduri n afara lui A atunci graful conine circuite.



Algoritmi de gsire a drumului optim

Din cauza varietii nelimitate a grafurilor posibile, nu exist un algoritm care s rezolve
orice problem n timp util, dar s-au elaborat o mulime de algoritmi, fiecare fiind cel mai eficace n
anumite cazuri. Aceti algoritmi pot fi grupai n cinci categorii:

1. Algoritmi prin calcul matricial (Bellman-Kalaba, I. Tomescu, Bellman-Schimbell);
2. Algoritmi prin ajustri succesive: (Ford);
3. Algoritmi prin inducie (Dantzig);
4. Algoritmi prin ordonare prealabil a vrfurilor grafului;
5. Algoritmi prin extindere selectiv (Dijkstra).

n continuare vom prezenta trei dintre aceti algoritmi.

A. Algoritmul lui Bellman - Kalaba

Algoritmul se aplic n grafuri finite care nu au circuite de valoare negativ (pentru o
problem de minim) sau care nu au circuite de valoare pozitiv (ntr-o problem de maxim) i
gsete drumurile de valoare minim (maxim) de la toate nodurile grafului la un nod oarecare,
fixat. Dac dorim s cunoatem drumurile de valoare minim (maxim) ntre oricare dou noduri
vom aplica algoritmul, pe rnd, pentru fiecare nod al grafului.
Fie G = {x
1
, x
2
, ... ,x
n
} un graf orientat finit. Presupunem (fr a restrnge generalitatea, c
am numerotat nodurile astfel nct nodul spre care cutm drumurile de valoare minim (maxim)
de la celelalte noduri s fie x
n
.

Pasul 1. Se construiete matricea ptratic M cu dimensiunea egal cu numrul de noduri ale
grafului ale crei elemente sunt:
136
68
Bazele cercetrii operaionale
m
ij
=

)
`


+
=

) x , (x arcul exista nu daca


maxim) de problema o - (ntr
minim) de problema o - (ntr
j i daca 0
j i si ) x , (x arcul exista daca ) x , (x arcului valoarea
j i
j i j i

Pasul 2. Se adaug succesiv liniile L
i
la matricea M, elementele acestora calculndu-se prin
relaiile de recuren:
1. L
1j
= m
jn
j = 1,...,n (prima linie este ultima coloan, transpus, a matricii M)
2. L
ij
= min (L
i-1,j
, (m
n 1, k
min
=
jk
+ L
i-1,k
)) ntr-o problem de minim
sau L
ij
= max (L
i-1,j
, (m
n 1, k
max
=
jk
+ L
i-1,k
)) ntr-o problem de maxim

Pasul 3. Dup calcularea fiecrei linii noi se compar elementele ei cu cele ale precedentei:
Dac L
ij
= L
i-1,j
pentru orice j = 1,...,n atunci se oprete recurena i ultima linie
calculat conine valorile minime ale drumurilor de la celelalte noduri la nodul x
n
.

Dac exist cel puin un indice j cu L


ij
L
i-1,j
se trece la calcularea noii linii L
i+1

Pasul 4. Pentru gsirea drumului care d valoarea minim de la un nod x
j
la nodul x
n
se gsesc,
ncepnd napoi de la ultima linie, pe care s-au obinut valorile finale, notat L
f
, nodurile
, ..., care formeaz drumul cutat, unde = x
1
k
x ,
2
k
x
r
k
x
1
k
x
j
, = x
r
k
x
n
i fiecare alt indice
k
i+1
este cel pentru care s-a obinut minimul(maximul) de pe poziia k
i
al liniei L
i
.


Observaie: Pentru grafuri foarte mari, algoritmul necesit un volum mare de memorie, prin
necesitatea memorrii matricei M, care este greu de manipulat. Chiar dac din cele n
2
arce posibile
graful ar avea doar un procent foarte mic matricea grafului va avea tot n
2
poziii de memorat i
analizat.
Exemplu: Presupunem dat graful orientat de mai jos, n care se dorete gsirea drumului de valoare
minim de la nodul x
1
la nodul x
9
.

x
5
9
8
8
6
7
3
4
9
7
5
2
2
3
3
5
4
8
3
7
9
x
9
x
8
x
4
x
7
x
3
x
6
x
1
x
2













Matricea M va fi
|
|
|
|
|
|
|
|
.
|

\
|









0
7 0 4
8 6 0
5 0 8
9 2 3 0 7 2 8
3 0
9 3 0
9 7 0
5 4 0
137
69
Elemente de teoria grafurilor

iar dup calcularea liniilor L
i
obinem:

x
1
x
2
x
3
x
4
x
5
x
6
x
7
x
8
x
9
x
1
0 4 5
x
2

0 7 9
x
3

0 3 9
x
4

0 3
x
5

8 2 7 0 3 2 9
x
6

8 0 5
x
7

0 6 8
x
8

4 0 7
x
9

0
L
1
9 3

8 7 0
L
2


12 6 3 10 13 8 7 0
L
3
15 12 6 3 8 13 8 7 0
L
4
13 12 6 3 8 13 8 7 0
L
5
13 12 6 3 8 13 8 7 0

Deoarece L
4
= L
5
oprim calcularea liniilor dup calcularea liniei 5. n aceast linie se afl
valorile celor mai scurte de la toate nodurile la nodul x
9
. Drumul dorit de noi (x
1
x
9
) are valoarea
dat de prima poziie a liniei 5, fiind egal cu 13.
Pentru a gsi acest drum, plecm napoi de la linia 4 i avem:

x
1
x
5





13 = 8 + 5 x
3


8 = 6 + 2 x
4


6 = 3 + 3



3
x
9




B. Algoritmul lui Ford simplificat

Algoritmul lui Ford simplificat se aplic doar n grafuri care nu admit circuite. Cu ajutorul
lui se gsete drumul de valoare optim ntre dou noduri fixate x
i
i x
j
. Printr-o eventual
renumerotare a nodurilor putem presupune c nodul de la care pornete drumul este x
1
, care va fi
numit nod iniial, iar nodul la care se termin este x
n
, numit nod final.
Algoritmul este:

Pasul 1. I se d vrfului iniial valoarea 0 (zero): w(x
0
) = 0
Pasul 2. Se construiete mulimea A format din nodul iniial: A = {x
1
}
Pasul 3. Se analizeaz nodurile din afara mulimii A.
Dac exist noduri n care se poate ajunge prin arce directe doar de la nodurile
mulimii A, acestea se adaug la m limea A, cu valoarea: u
w(x
i
) =
( )
( ) ( ) ( )
i j j
x , x
x
x , x v x w min
i j
j
+

, n problemele de minim
138
70
Bazele cercetrii operaionale
sau w(x
i
) =
( )
( ) ( ) ( )
i j j
x , x
x
x , x v x w max
i j
j
+

, n problemele de maxim
apoi se trece la pasul 4
Dac nu exist nici un nod de acest tip atunci nu exist nici un drum de la x
1
la x
n
.
STOP

Pasul 4. Se analizeaz mulimea A:
Dac x
n
A atunci valoarea sa reprezint valoarea drumului de valoare optim de la
x
1
la x
n
. Pentru gsirea acestui drum se pornete napoi de la nodul final x
n
i se
gsesc nodurile , ..., care formeaz drumul cutat, unde = x
1
k
x ,
2
k
x
r
k
x
1
k
x
n
,
x
r
k
x =
1
i fiecare alt indice k
i+1
este cel pentru care:

w( ) + v( x , x ) = w( ) STOP
1 i
k
x
+ 1 i
k
+ i
k
i
k
x
Dac x
n
A se reia algoritmul de la pasul 3.

Exemplu: Pentru acelai graf i aceeai pereche de noduri din exemplul rezolvat cu algoritmul lui
Bellman-Kalaba vom avea succesiv:

pas1: w(x
1
) = 0
pas2: A = {x
1
}
pas3: Nodurile n care se poate ajunge doar din x
1
: {x
5
}
w{x
5
) = min( w(x
1
) + v(x
1
,x
5
)) = 0 + 5 = 5
pas4: x
9
A
pas3: A = {x
1
,x
5
} i nodurile n care se poate ajunge prin arce directe doar din x
1
i x
5
sunt: {x
6
}
w{x
6
) = min( w(x
1
) + v(x
1
,x
6
), w(x
5
) + v(x
5
,x
6
)) = min(0 + 3 , 5 + 3) = 3
pas4: x
9
A
pas3: A = {x
1
,x
5
,x
6
} i nodurile n care se poate ajunge prin arce directe doar din x
1
, x
5
i x
6
sunt:
{x
2
,x
7
}
w{x
2
) = min( w(x
1
) + v(x
1
,x
2
), w(x
5
) + v(x
5
,x
2
), w(x
6
) + v(x
6
,x
2
)) = min(0 + 4,5 + 8,3 + 8) = 4
w{x
7
) = min( w(x
5
) + v(x
5
,x
7
), w(x
6
) + v(x
6
,x
7
)) = min(5 + 2,3 + 5) = 7
pas4: x
9
A
pas3: A = {x
1
,x
2
,x
5
,x
6
,x
7
} i nodurile n care se poate ajunge prin arce directe doar din x
1
, x
2
, x
5
, x
6

i x
7
sunt: {x
3
,x
8
}
w{x
3
) = min( w(x
2
) + v(x
2
,x
3
), w(x
5
) + v(x
5
,x
3
)) = min(4 + 7,5 + 2) = 7
w{x
8
) = min( w(x
5
) + v(x
5
,x
8
), w(x
7
) + v(x
7
,x
8
)) = min(5 + 9,7 + 6) = 13
pas4: x
9
A
pas3: A = {x
1
,x
2
,x
3
,x
5
,x
6
,x
7
,x
8
} i nodurile n care se poate ajunge prin arce directe doar din x
1
,
x
2
,x
3
,x
5
, x
6
, x
7
i x
8
sunt: {x
4
}
w{x
4
) = min( w(x
2
) + v(x
2
,x
4
), w(x
3
) + v(x
3
,x
4
),w(x
5
) + v(x
5
,x
4
), w(x
8
) + v(x
8
,x
4
)) = min(4 +
9,7 + 3,5 + 7,13 + 4) = 10
pas4: x
9
A
pas3: A = {x
1
,x
2
,x
3
,x
4
,x
5
,x
6
,x
7
,x
8
} i nodurile n care se poate ajunge prin arce directe doar din x
1
,
x
2
, x
3
, x
4
, x
5
, x
6
, x
7
i x
8
sunt: {x
9
}
w{x
9
) = min( w(x
3
) + v(x
3
,x
9
), w(x
4
) + v(x
4
,x
9
), w(x
7
) + v(x
7
,x
9
), w(x
8
) + v(x
8
,x
9
)) = min(7 +
9, 10 + 3, 7 + 8, 13 + 7) = 13
pas4: x
9
A i urmeaz s gsim drumul care are lungimea 13.
Avem succesiv:
w(x
9
) = w(x
4
) + v(x
4
,x
9
)
w(x
4
) = w(x
3
) + v(x
3
,x
4
)
w(x
3
) = w(x
5
) + v(x
5
,x
3
)
139
71
Elemente de teoria grafurilor
w(x
5
) = w(x
1
) + v(x
1
,x
5
)
deci drumul cutat este: x
1
x
5
x
3
x
4
x
9


Observaia 1. Dac graful are un circuit atunci se poate demonstra uor c nu vom putea da
valoare nici unui nod al acestuia i dac exist vreun drum de la x
1
la x
n
care trece prin unul din
nodurile circuitului nu vom putea da valoare nici lui x
n
, cu toate c exist drum de la x
1
la x
n
.
Observaia 2: Algoritmul necesit pentru memorare i manipulare doar cunoaterea, pentru
fiecare nod, a nodurilor spre care "pleac" arce din acesta i valorile acestor arce, fiind mult mai
uor de aplicat sau implementat pe calculator. El are ns dezavantajul c se poate aplica doar n
grafuri fr circuite.


C. Algoritmul Ford generalizat

Algoritmul lui Ford generalizat a fost creat cu scopul de a putea gsi drumul optim i n
grafurile care au circuite. Cu ajutorul lui se gsete drumul de valoare optim ntre dou noduri
fixate x
i
i x
j
. Printr-o eventual renumerotare a nodurilor putem presupune c nodul de la care
pornete drumul este x
1
, care va fi numit nod iniial, iar nodul la care se termin este x
n
, numit nod
final.
Algoritmul este:

Pasul 1. I se d vrfului iniial valoarea 0 (zero): w(x
0
) = 0 i tuturor celelalte valoarea + (ntr-o
problem de minim) sau - (ntr-o problem de maxim).
Pasul 2. n ordinea cresctoare a indicilor nodurilor se calculeaz pentru fiecare nod, pe baz
fostelor valori, noile valori cu formula:
w
*
(x
i
) = n problemele de minim ( )
( )
( ) ( ) (
|
|
|
.
|

\
|
+

i j j
x , x
x
i
x , x v x w min , x w min
i j
j
)
) sau w
*
(x
i
) = n problemele de maxim ( )
( )
( ) ( ) (
|
|
|
.
|

\
|
+

i j j
x , x
x
i
x , x v x w max , x w max
i j
j
Pasul 3. Se compar noile valori w
*
(x
i
) cu fostele valori w(x
i
):
Dac w
*
(x
i
) = w(x
i
) pentru orice nod x
i
atunci:
dac w(x
n
) < (la problema de minim) sau w(x
n
) > - (la problema de maxim),
valoarea nodului x
n
reprezint valoarea drumului de valoare minim(maxim) de
la x
1
la x
n
. Pentru gsirea acestui drum se pornete napoi de la nodul final x
n
i
se gsesc nodurile , ..., x care formeaz drumul cutat, unde = x
1
k
x ,
2
k
x
r
k
1
k
x
n
,
= x
r
k
x
1
i fiecare alt indice k
i+1
este cel pentru care:
w( ) + v( , ) = w( ) STOP
1 i
k
x
+ 1 i
k
x
+ i
k
x
i
k
x
dac w(x
n
) = + (-) atunci nu exist nici un drum de la x
1
la x
n
. STOP
Dac exist cel puin un nod pentru care w
*
(x
i
) < w(x
i
) se reia algoritmul de la pasul
2 pentru noile valori ale vrfurilor.

Observaie: Algoritmul poate gsi drumul i n grafuri cu circuite dar este evident mult mai
lent dect cel simplificat. Pentru scurtarea duratei de execuie se poate modifica algoritmul n sensul
c o valoare nou calculat a unui vrf va fi folosit imediat ca atare la calculul noilor valori ale
celorlalte, nu doar dup ce se calculeaz noile valori ale tuturor vrfurilor.


140
72
Bazele cercetrii operaionale
D. Algoritmul lui Dijkstra

n algoritmul Ford simplificat, pentru a gsi valoarea nodului final, deci a drumului minim,
plecm de la nodul iniial n toate direciile posibile, pstrnd de fiecare dat toate nodurile
analizate. Acest fapt duce la un consum inutil de timp, deoarece foarte multe din aceste noduri nu
vor face parte din drumul optim. Pentru a elimina acest neajuns, algoritmul lui Dijkstra ncearc s
pstreze, la fiecare iteraie, mulimea minim de noduri care s le conin pe toate cele care vor
forma efectiv drumul optim. n plus, algoritmul se poate aplica i n drumuri cu circuite. Ca un
minus este faptul c se aplic doar la probleme de minim. Algoritmul are urmtorii pai:

Pasul 1. I se d vrfului iniial valoarea 0 (zero): w(x
0
) = 0
Pasul 2. Se construiete mulimea A format din nodul iniial: A = {x
1
}
Pasul 3. Se analizeaz nodurile din afara mulimii A.
Dac exist noduri n care se poate ajunge prin arce directe de la noduri din A
(nu doar de la nodurile mulimii A, ca la algoritmul lui Ford simplificat) se
calculeaz pentru toate acestea:
w(x
i
) =
( )
( ) ( ) ( )
i j j
x , x
A x
x , x v x w min
i j
j
+


n problemele de minim
dar, spre deosebire de algoritmul lui Ford simplificat, se adaug la mulimea A doar
cel pentru care se obine valoarea minim, apoi se trece la pasul 4.
Dac nu exist nici un nod de acest tip atunci nu exist nici un drum de la x
1
la x
n
.
STOP

Pasul 4. Se analizeaz mulimea A:
Dac x
n
A atunci valoarea sa reprezint valoarea drumului de valoare optim de la
x
1
la x
n
. Pentru gsirea acestui drum se pornete napoi de la nodul final x
n
i se
gsesc nodurile , ..., care formeaz drumul cutat, unde = x
1
k
x ,
2
k
x
r
k
x
1
k
x
n
,
x
r
k
x =
1
i fiecare alt indice k
i+1
este cel pentru care:

w( ) + v( x , x ) = w( ) STOP
1 i
k
x
+ 1 i
k
+ i
k
i
k
x
Dac x
n
A se reia algoritmul de la pasul 3.


Exemplu Vom aplica algoritmul la acelai graf folosit la ceilali algoritmi, pentru a putea
face comparaii:

pas1: w(x
1
) = 0
pas2: A = {x
1
}
pas3: Nodurile n care se poate ajunge i din x
1
: {x
2
,

x
5
,

x
6
}
w{x
2
) = min( w(x
1
) + v(x
1
,x
2
)) = 0 + 4 = 4
w{x
5
) = min( w(x
1
) + v(x
1
,x
5
)) = 0 + 5 = 5
w{x
6
) = min( w(x
1
) + v(x
1
,x
6
)) = 0 + 3 = 3
min(w{x
2
),w{x
5
),w{x
6
)) = w{x
6
) = 3
pas4: x
9
A
pas3: A = {x
1
,x
6
} i nodurile n care se poate ajunge prin arce directe din x
1
sau x
6
sunt:
{x
2
,x
5
,x
7
}
w{x
2
) = min( w(x
1
) + v(x
1
,x
2
), w(x
6
) + v(x
6
,x
2
)) = min(0 + 4 , 3 + 8) = 4
w{x
5
) = min( w(x
1
) + v(x
1
,x
5
)) = min(0 + 5) = 5
w{x
7
) = min( w(x
6
) + v(x
6
,x
7
)) = min(3 + 5) = 8
min(w{x
2
),w{x
5
),w{x
7
)) = w{x
2
) = 4
pas4: x
9
A
141
73
Elemente de teoria grafurilor
pas3: A = {x
1
,x
2
,x
6
} i nodurile n care se poate ajunge prin arce directe din x
1
, x
2
sau x
6
sunt:
{x
3
,x
4
,x
5
,x
7
}
w{x
3
) = min( w(x
2
) + v(x
2
,x
3
)) = min(4 + 7) = 11
w{x
4
) = min( w(x
2
) + v(x
2
,x
4
)) = min(2 + 9) = 11
w{x
5
) = min( w(x
1
) + v(x
1
,x
5
)) = min(0 + 5) = 5
w{x
7
) = min( w(x
6
) + v(x
6
,x
7
)) = min(3 + 5) = 0
min(w{x
3
),w{x
4
),w{x
5
),w{x
7
)) = w{x
5
) = 5
pas4: x
9
A
pas3: A = {x
1
,x
2
,x
5
,x
6
} i nodurile n care se poate ajunge prin arce directe din x
1
, x
2
, x
5
, x
6
i x
7

sunt: {x
3
,x
4
,x
7
,x
8
}
w{x
3
) = min( w(x
2
) + v(x
2
,x
3
), w(x
5
) + v(x
5
,x
3
)) = min(4 + 7,5 + 2) = 7
w{x
4
) = min( w(x
2
) + v(x
2
,x
4
), w(x
5
) + v(x
5
,x
4
)) = min(4 + 9,5 + 7) = 12
w{x
7
) = min( w(x
5
) + v(x
5
,x
7
), w(x
6
) + v(x
6
,x
7
)) = min(5 + 2,3 + 5) = 7
w{x
8
) = min( w(x
5
) + v(x
5
,x
8
)) = min(5 + 9) = 14
min(w{x
3
),w{x
4
),w{x
7
),w{x
8
)) = w{x
3
) = w{x
7
) = 7
pas4: x
9
A
pas3: A = {x
1
,x
2
,x
3
,x
5
,x
6
,x
7
} i nodurile n care se poate ajunge prin arce directe din x
1
, x
2
, x
3
, x
5
, x
6
,
i x
7
sunt: {x
4
,x
8
,x
9
}
w{x
4
) = min( w(x
2
) + v(x
2
,x
4
), w(x
3
) + v(x
3
,x
4
),w(x
5
) + v(x
5
,x
4
)) = min(4 + 9,7 + 3,5 + 7) =10
w{x
8
) = min( w(x
5
) + v(x
5
,x
8
), w(x
7
) + v(x
7
,x
8
)) = min(5 + 9,7 + 6) = 13
w{x
9
) = min( w(x
3
) + v(x
3
,x
9
), w(x
7
) + v(x
7
,x
9
)) = min(7 + 9,7 + 8) = 15
min(w{x
4
),w{x
8
),w{x
9
)) = w{x
4
) = 10
pas4: x
9
A
pas3: A = {x
1
,x
2
,x
3
,x
4
,x
5
,x
6
,x
7
} i nodurile n care se poate ajunge prin arce directe din x
1
, x
2
, x
3
, x
4
,
x
5
, x
6
, i x
7
sunt: {x
8
,x
9
}
w{x
9
) = min( w(x
3
) + v(x
3
,x
9
), w(x
4
) + v(x
4
,x
9
), w(x
7
) + v(x
7
,x
9
)) = min(7 + 9,10 + 3,7+8)=13
w{x
8
) = min( w(x
5
) + v(x
5
,x
8
), w(x
7
) + v(x
7
,x
8
)) = min(5 + 9,7 + 6) = 13
min(w{x
8
),w{x
9
)) = w{x
8
) = w{x
9
) = 13
pas4: x
9
A i urmeaz s gsim drumul care are lungimea 13.
Avem succesiv:
w(x
9
) = w(x
4
) + v(x
4
,x
9
)
w(x
4
) = w(x
3
) + v(x
3
,x
4
)
w(x
3
) = w(x
5
) + v(x
5
,x
3
)
w(x
5
) = w(x
1
) + v(x
1
,x
5
)
deci drumul cutat este: x
1
x
5
x
3
x
4
x
9

142
74
Bazele cercetrii operaionale
9. Reele de transport

ntr-o mare varietate de situaii concrete din practica economic se pune problema deplasrii
unei cantiti de materie, energie, informaie etc, din anumite locuri, numite surse, n alte locuri,
numite destinaii. Pentru realizarea acestui transport se folosesc o serie de trasee, numite rute de
legtur. Unitile indivizibile ale cantitii Q, care se deplaseaz de-a lungul rutelor ntre surse i
destinaii, se numesc uniti de flux, iar ansamblul rutelor, surselor, destinaiilor i, eventual, a
altor puncte intermediare se numete reea de transport.
Situaia de mai sus poate fi reprezentat geometric printr-un graf finit, conex i fr bucle.
Pentru ca o astfel de problem s fie suficient de complex pentru a necesita un studiu
matematic riguros, trebuie ca fiecare surs s poat aproviziona mai multe destinaii i orice
destinaie s poat fi aprovizionat de mai multe surse.
Aprovizionarea destinaiilor se poate face direct de la surse sau prin intermediul altor
puncte, numite puncte intermediare. n cazul cel mai general pot exista de asemenea legturi ntre
surse i/sau legturi ntre destinaii.
Aa cum s-a vzut i la problema de transport, situaia de mai sus este un cadru extrem de
larg, care permite existena unui numr foarte mare de tipuri de probleme posibile, diferite ntre ele
prin informaiile suplimentare pe care le avem despre reea i prin obiectivele urmrite.
Una dintre acestea este problema determinrii cantitii maxime (minime) care poate fi
transportat de la surse la destinaii, n situaia n care sursele dispun de cantiti limitate (inferior
sau superior), destinaiile au un necesar sau o putere de absorbie limitat inferior sau superior iar pe
fiecare rut se poate transporta doar o cantitate cuprins ntre anumite limite.
Pentru studiul matematic al acestei situaii vom da definiiile matematice ale obiectelor
implicate n problem i ipotezele modelului.

Definiia 1: Se numete reea de transport standard un graf finit, simplu, conex, fr bucle
G = (X,U) care are urmtoarele proprieti:
1. Exist i este unic s X a.. , (din care doar "ies" arce), numit
intrarea reelei de transport;

+
s
U =

s
U
2. Exist i este unic t X a.. = ,
+
t
U

t
U (n care doar "intr" arce) numit
ieirea reelei de transport;
3. S-a definit o funcie c: U R
+
care asociaz fiecrui arc u un numr strict
pozitiv c
u
numit capacitatea arcului.

Observaie: Este clar c exemplele obinuite au doar rareori o singur surs i o singur destinaie.
Totui, printr-o tehnic foarte simpl, orice reea de transport se poate aduce la forma standard:
1. Dac sunt mai multe surse se introduce un nod suplimentar din care "pleac" cte
un arc spre fiecare surs (i numai spre acestea), iar capacitile acestor arce vor fi
egale cu disponibilurile surselor corespunztoare;
2. Dac sunt mai multe destinaii se introduce un nod suplimentar spre care "pleac"
cte un arc din fiecare destinaie (i numai din acestea), iar capacitile acestor arce
vor fi egale cu necesarurile destinaiilor corespunztoare;

Definiia 2: Se numete flux ntr-o reea de transport R = (X,U) o funcie : U R
+
care
are urmtoarele proprietile:
P1. 0
u
c
u
oricare ar fi u din U; valoarea
u
se numete flux al arcului u
P2. oricare ar fi i s,t (suma fluxurilor arcelor care "intr" ntr-
un nod i este egal cu suma fluxurilor arcelor care "ies" din acest nod, cu excepia
nodului iniial i al celui final.

+

=
i
i
U u
u
U u
u

143
75
Elemente de teoria grafurilor

Definiia 3: Se numete valoare a fluxului suma fluxurilor arcelor care "pleac" din nodul
iniial s i se noteaz cu .
Observaie: Se poate demonstra uor c aceast valoare este egal i cu suma fluxurilor
arcelor care "intr" n nodul final t. n concluzie avem:

=

+

=
t s
U u
u
U u
u


Valoarea fluxului reprezint cantitatea care se transport efectiv pe reea de la surse la
destinaii.

Definiia 4: Se numete flux de valoare maxim ntr-o reea un flux n aceast reea, cu
proprietatea c, pentru orice alt flux ' pe aceast reea, avem '.

Valoarea fluxului de valoare maxim reprezint cea mai mare cantitate care se poate
transporta efectiv pe reea, de la surse la destinaii.

Economic vorbind, ne intereseaz, referitor la o reea, rspunsurile la urmtoarele ntrebri:

1. Putem transporta ntreaga cantitate necesar la destinaii?
2. Dac da, cum transportm efectiv aceast cantitate de la surse la destinaii?
3. Dac nu, din ce motiv nu putem realiza acest transport?
4. Cum putem nltura cu eforturi minime acest motiv?

Rspunsul la primele dou ntrebri se poate afla prin gsirea fluxului de valoare maxim i
compararea valorii lui cu suma necesarurilor destinaiilor. n plus, valoarea acestuia pe un arc
reprezint cantitatea care trebuie transportat pe ruta respectiv, pentru a obine aceast valoare a
fluxului.
Rspunsul la ultimele dou ntrebri pornete de la observaia c cea mai mare cantitate care
poate traversa reeaua de la un cap la altul este egal cu dimensiunea celui mai ngust loc de trecere
prin reea. Dac vrem, deci, s mrim fluxul va trebui s lrgim tocmai acest cel mai ngust loc de
traversare al reelei.
Pentru formalizarea consideraiilor de mai sus vom introduce noiunea de tietur ntr-o
reea:

Definiia 5: Dat o reea de transport G(X,U) cu s = nodul iniial i t = nodul final, se
numete tietur n reea o partiie a mulimii vrfurilor reelei de transport, format din dou
submulimi V i W (VW = , VW = X) astfel nct s V i t W.

O tietur poate fi privit, intuitiv, ca o seciune a reelei, care las nodul iniial cu o
submulime din noduri ntr-o parte, nodul final cu restul nodurilor n cealalt parte i reteaz toate
arcele care trec dintr-o parte n cealalt.
A cunoate o tietur este echivalent cu a cunoate care sunt elementele celor dou mulimi,
V i W, care formeaz partiia.
Vom nota o tietur prin T = (V,W), convenind ca mulimea scris pe prima poziie s
conin nodul iniial s al reelei iar cea scris pe a doua, nodul final t.

Definiia 6: Se numete capacitate a unei tieturi T = (V,W) ntr-o reea de transport
G(X,U), notat C(T), suma capacitilor tuturor arcelor care au extremitatea iniial n V i cea
final n W.
144
76
Bazele cercetrii operaionale
C(T) =
( )

=
W x
V x
x , x u
u
j
i
j i
c
Pentru a nu exista nici o ambiguitate, insistm asupra faptului c se vor lua n considerare
doar arcele care trec de la mulimea ce conine nodul iniial spre mulimea care conine nodul final,
adic n sensul normal de transport (surse destinaie).

Definiia 7: Se numete tietur de valoare minim ntr-o reea o tietur T n aceast
reea, cu proprietatea c, pentru orice alt tietur T' n aceast reea, avem C(T) C(T').

Urmtoarele teoreme fac legtura matematic dintre fluxurile unei reele i tieturile sale:

Teorema 1. Dat o tietur T = (V,W) i un flux ntr-o reea de transport avem:

=
( )

=
W x
V x
x , x u
u
j
i
j i

( )

=
V x
W x
x , x u
u
j
i
j i

sau, altfel spus, valoarea unui flux oarecare este egal cu suma fluxurilor arcelor care trec de la V la
W din care se scade suma fluxurilor arcelor care trec invers, de la W la V, oricare ar fi tietura T =
(V,W).

Demonstraie: Avem succesiv:

= =
( )

=
X x
x s, u
u
j
j

( )

=
X x
x s, u
u
j
j
+ =


|
|
|
.
|

\
|

+
s x
V x
U u
u
U u
u
i
i
i
x
i
x

= ( )
( )

=

V x
V x
x , x u
u u
j
i
j i
+
( )

=
W x
V x
x , x u
u
j
i
j i
-
( )

=
V x
W x
x , x u
u
j
i
j i
=
( )

=
W x
V x
x , x u
u
j
i
j i

( )

=
V x
W x
x , x u
u
j
i
j i


Corolar: ntr-o reea de transport valoarea oricrui flux este mai mic sau egal dect valoa-
rea oricrei tieturi.

Demonstraie: Fie T o tietur oarecare i un flux oarecare. Avem succesiv:

=
( )

=
W x
V x
x , x u
u
j
i
j i

( )

=
V x
W x
x , x u
u
j
i
j i

( )

=
W x
V x
x , x u
u
j
i
j i

( )

=
W x
V x
x , x u
u
j
i
j i
c = C(T)

Corolar: ntr-o reea de transport valoarea fluxului maxim este mai mic sau egal dect
valoarea tieturii minime.
Demonstraia e evident. n plus, din cele de mai sus se vede c egalitatea are loc numai
dac, pentru tietura minim, exist un flux pentru care toate arcele de la V la W sunt folosite la
maxim (fluxul e egal cu capacitatea arcelor) iar pe toate arcele de la W la V nu se transport nimic.

Teorema lui Ford-Fulkerson Dac fluxul este maximal atunci exist o tietur de
capacitate egal cu valoarea fluxului.
145
77
Elemente de teoria grafurilor

Demonstraie: Fie un flux maximal. Introducem urmtorul procedeu de marcare a
vrfurilor:
Pasul 1. Se marcheaz nodul iniial s cu 0(zero);
Pasul 2. Pentru fiecare vrf marcat x
i
se marcheaz cu:
[+x
i
] toate vrfurile nemarcate x
j
pentru care exist arcul (x
i
,x
j
) i (x
i
,x
j
) < c(x
i
,x
j
)
(adica nodurile spre care mai e loc pentru a se transporta ceva din x
i
);
[x
i
] toate vrfurile nemarcate x
j
pentru care exist arcul (x
j
,x
i
) i (x
j
,x
i
) > 0
(adic toate nodurile spre care pleac deja ceva din x
i
);
Pasul 3. Se repet pasul 2 pn nu mai poate fi marcat nici un vrf.

Dac vrful final t ar fi marcat, atunci ncepnd de la acesta, am putea construi lanul
, ..., unde = s, = t i marcajul oricrui vrf este + sau
Adugnd la fluxul fiecrui arc al lanului de tipul ( x , x ) valoarea:
1
k
x ,
2
k
x
r
k
x
1
k
x
r
k
x
1 i
k
x
+ i
k
x
i
k
x .
i
k
1 i
k
+
= min(
( )
( ) ( ) ( )
1 i i 1 i i
1 i
k
i
k
k k k k
x , x
x , x x , x c min
+ +
+
,
( )
( )
1 i i
i
k
1 i
k
k k
x , x
x , x min
+
+
)
i scznd din fluxul fiecrui arc de tipul ( x , ) aceeai valoare , obinem un flux de valoare
+ , deci fluxul nu ar fi maximal.
1 i
k
+ i
k
x
n concluzie vrful t nu va fi marcat. Fie tietura T = (V,W), unde V este format din
mulimea nodurilor marcate iar W din cele nemarcate. n acest caz, pentru fiecare arc (x
i
,x
j
) care
"traverseaz" tietura avem:

dac x
i
V atunci (x
i
,x
j
) = c(x
i
,x
j
) deoarece nodul x
j
nu e marcat
dac x
i
W atunci (x
i
,x
j
) = 0 deoarece nodul x
i
nu e marcat

n acest caz avem:
C(T) =
( )

=
W x
V x
x , x u
u
j
i
j i
c =
( )

=
W x
V x
x , x u
u
j
i
j i

( )

=
V x
W x
x , x u
u
j
i
j i
=
i teorema e demonstrat.

Teorema lui Ford-Fulkerson poate stabili doar valoarea fluxului maxim dar nu d o metod
de gsire a acestuia. Pentru a rezolva problema gsirii fluxului de valoare maxim se poate folosi
algoritmul lui Ford-Fulkerson.
Pentru expunerea acestuia vom introduce i noiunile de:

arc saturat = un arc pe care fluxul este egal cu capacitatea;
drum complet = un drum de la nodul iniial s la nodul final t care conine cel puin un arc saturat;
flux complet = un flux pentru care orice drum de la nodul iniial s la nodul final t este complet.

Algoritmul lui Ford-Fulkerson

ETAPA I Se determin un flux complet.

Pasul 1. Se numeroteaz nodurile reelei de transport astfel nct x
1
= s i x
n
= t;
Pasul 2. Se asociaz grafului fluxul nul (
u
= 0 pentru orice arc u din graf);
Pasul 3. n ordine lexicografic, se ia pe rnd fiecare drum D de la nodul iniial la cel final, se
calculeaz valoarea
D
= ( )
u u
D u
c min

i se adaug la fluxul de pe fiecare arc al


146
78
Bazele cercetrii operaionale
drumului. Arcul(arcele) unui drum D pentru care s-a obinut valoarea minim
D
va fi
dup aceast adugare, n mod evident, saturat i deci drumul D va fi complet.
Dup epuizarea tuturor drumurilor se obine un flux complet, de valoare =

D
D
.
Deoarece alegerea drumurilor n ordine lexicografic nu ine cont de structura reelei, aa cum se
poate vedea pe un exemplu, acest procedeu nu asigur ntotdeauna gsirea fluxului maxim. Acest
impediment poate fi depit fie prin gsirea unei ordini de parcurgere a tuturor drumurilor, care s
dea pentru fiecare reea fluxul maxim, n urma procedeului de mai sus, fie prin redistribuirea
judicioas a fluxului gsit la etapa I. A doua variant este cea care se aplic la etapa II.

ETAPA II Se determin fluxul maxim

Pasul 4. Se marcheaz nodul iniial s cu 0(zero);
Pasul 5. Pentru fiecare vrf marcat x
i
se marcheaz cu:
[+x
i
] toate vrfurile nemarcate x
j
pentru care exist arcul (x
i
,x
j
) i (x
i
,x
j
) < c(x
i
,x
j
)
(adica nodurile spre care mai e loc pentru a se transporta ceva din x
i
);
[x
i
] toate vrfurile nemarcate x
j
pentru care exist arcul (x
j
,x
i
) i (x
j
,x
i
) > 0 (adic
toate nodurile spre care pleac deja ceva din x
i
);
Pasul 6. Se repet pasul 5 pn este marcat nodul final sau pn cnd nu mai poate fi marcat nici
un vrf;
Pasul 7. Dac nodul final a fost marcat atunci fluxul este maxim i algoritmul se oprete, n caz
contrar trecndu-se la pasul 8;
Pasul 8. Construim un lanul L = , , ..., unde = s, = t i marcajul oricrui vrf
este +x sau . Se calculeaz:
1
k
x
2
k
x
r
k
x
1
k
x
r
k
x
1 i
k
x
+ i
k
i
k
x

L
= min(
( )
( ) ( ) ( )
1 i i 1 i i
1 i
k
i
k
k k k k
x , x
x , x x , x c min
+ +
+
,
( )
( )
1 i i
i
k
1 i
k
k k
x , x
x , x min
+
+
)
care se adaug la fluxul fiecrui arc al lanului de tipul ( ) i se scade din
fluxul fiecrui arc de tipul ( , .
i
k
x ,
1 i
k
x
+
1 i
k
x
+ i
k
x )
Pasul 9. Se terge marcajul i se reia algoritmul de la pasul 4.

n final, tietura de valoare minim este cea n care V = mulimea nodurilor marcate iar W =
mulimea nodurilor nemarcate.

Observaia 1. Algoritmul nu asigur ntotdeauna gsirea fluxului maxim, deoarece se poate
ca creterea fluxului la fiecare iteraie s se fac cu cantiti din ce n ce mai mici astfel nct suma
lor s nu ating niciodat marginea superioar dat de valoarea tieturii minime, algoritmul avnd o
infinitate de pai. Teorema de mai jos d o condiie suficient pentru ca algoritmul s se termine
ntr-un numr finit de pai:

Teorem Dac toate capacitile rutelor reelei sunt numere raionale atunci algoritmul lui
Ford-Fulkerson are un numr finit de pai.

Demonstraie Prin nmulirea tuturor acestor capaciti cu cel mai mic multiplu comun al
numitorilor se obine o reea cu toate capacitile numere naturale. innd cont de formula de
calcul, la fiecare iteraie cantitatea adugat va fi numr natural i cum valoarea fluxului maxim
este mrginit de capacitatea tieturii minime C
min
, care este de asemenea numr natural, algoritmul
va avea nevoie de cel mult C
min
pai pentru a o atinge.

Observaia 2. Teorema de mai sus asigur doar o limitare superioar a numrului de iteraii
ale algoritmului, fa de capacitatea tieturii minime. Aceast valoare poate fi ns, n anumite
147
79
Elemente de teoria grafurilor
cazuri, foarte mare i, dac nu se iau precauii suplimentare, algoritmul nu va da soluia n timp util.
Depirea acestei situaii este asigurat de urmtoarea teorem:

Teorem Dac la fiecare iteraie se alege drumul (lanul) de lungime minim atunci
algoritmul va avea cel mult
2
1
mn iteraii, unde n = numrul de noduri iar m = numrul de muchii.

Observaia 3. Exist probleme n care se dorete gsirea fluxului minim ntr-o reea, valorile
fluxului pe arce fiind limitate inferior de capacitile acestora. n acest caz se aplic de asemenea
algoritmul lui Ford-Fulkerson astfel:

Pasul 1. Se calculeaz M = maximul capacitilor arcelor
Pasul 2. Se construiete reeaua R', care este fosta reea, n care au fost modificate doar
capacitile arcelor, acestea devenind
u
c = M c
u

Pasul 3. Se gsete cu algoritmul Ford-Fulkerson fluxul , de valoare maxim, n aceast
reea
Pasul 4. Fluxul de valoare minim n reeaua iniial va avea valorile ' = M


Observaia 4. Exist i alte tipuri de probleme asemntoare celor de mai sus. Astfel, se
poate pune problema:
gsirii capacitilor minime ale arcelor cu care se poate asigura transportarea ntregii
cantiti de la surse la destinaii
fluxului minim(maxim) ntr-o reea n care capacitile rutelor sunt limitate att superior
ct i inferior;
n cazul n care rutelor li se asociaz i costuri unitare de parcurgere, putem cuta fluxul
maxim de cost minim;

148
80
Bazele cercetrii operaionale

TEORIA ORDONANRII

O problem de ordonanare const n stabilirea unei ordini de efectuare a operaiilor
(activitilor) unui proiect, astfel ca interdependenele dintre ele s fie respectate n cadrul
resurselor disponibile i durata total de execuie a acestuia s fie minim.
Pentru a putea concretiza definiia de mai sus, trebuie clarificate noiunile de proiect,
operaii (activiti) ale acestuia, interdependene ntre operaii i resurs a proiectului.

1. Prin proiect vom nelege o aciune de mare amploare sau un proces complex destinat
atingerii unui scop bine precizat. La un proiect deosebim urmtoarele caracteristici:

un obiectiv, care poate fi un produs, o cantitate de informaii sau un rezultat de natur
organizatoric;
un ansamblu de activiti (subaciuni, subprocese, operaii), corelate logic i tehnologic,
a cror realizare permite atingerea scopului propus;
un proces tehnologic prin care se precizeaz intercondiionrilor ntre activiti,
interesnd n special ordinea de execuie a acestora.

Proiectele pot fi clasificate dup natura lor n:

proiecte industriale i proiecte de investiii, prin care se obine un produs material (de
exemplu construcia unei cldiri, pod, tunel, etc);
proiecte organizatorice al cror scop este de a obine un rezultat de natur informaional
sau organizatoric (de exemplu un proiect de cercetare tiinific).

Pentru a permite o analiz amnunit a desfurrii lui, o alegere a variantelor optime de
execuie i un control continuu al evoluiei sale, trebuie s descompunem proiectul n pri
componente la un nivel care s permit tratarea unitar a fiecrei pri i stabilirea conexiunilor
ntre acestea. Aceste componente se numesc operaii sau activiti.
O activitate este o parte distinct dintr-un proiect, un subproces precis determinat, care
consum timp i resurse. Vom presupune n continuare c activitile au urmtoarele proprieti:

fiecare activitate este indivizibil (nu se mai descompune n subactiviti);
fiecare activitate are o durat cunoscut;
o activitate, odat nceput, nu mai poate fi ntrerupt.

Dintre intercondiionrile (interdependenele) dintre activiti, ne intereseaz, n special,
cele temporale, numite relaii de preceden, care pot fi de trei tipuri:

1. de tip "terminare nceput". Acest tip este cel mai frecvent ntlnit i spunem c o
activitate A precede activitatea B printr-o interdependen de tip "terminare nceput"
dac activitatea B nu poate ncepe dect dup un interval de timp t
AB
de la terminarea
activitii A. Acest interval poate fi egal i cu zero, caz n care spunem c activitatea A
precede direct activitatea B;
2. de tip "nceput nceput". Acest tip este frecvent ntlnit i spunem c o activitate A
precede activitatea B printr-o interdependen de tip "nceput nceput" dac activitatea
B nu poate ncepe dect dup un interval de timp t
AB
de la nceperea activitii A. Acest
interval poate fi chiar mai mare dect durata activitii A, caz n care avem de fapt o
dependen de tipul "terminare nceput", putnd chiar privi primul tip ca un caz
particular al celui de-al doilea;
155
81
Teoria ordonanrii
3. de tip "terminare terminare". Spunem c o activitate A precede activitatea B printr-o
interdependen de tip "terminare terminare" dac activitatea B nu se poate termina
dect dup un interval de timp t
AB
de la terminarea activitii A sau c activitatea A
trebuie terminat cu cel puin t
AB
uniti de timp naintea terminrii activitii B.

Prin durat total de execuie a unui proiect nelegem intervalul de timp n care se
efectueaz toate activitile acestuia, respectnd toate interdependenele dintre activiti.
A programa un proiect nseamn a stabili termenele de ncepere pentru fiecare activitate n
parte, innd seama de restriciile impuse de procesul tehnologic, duratele activitilor i resursele
disponibile. Pentru un proiect dat, exist un numr enorm de programri admisibile. Un interes
deosebit prezint programul optim, adic acel program care, pe de o parte, satisface restriciile
impuse iar, pe de alt parte, optimizeaz un anumit criteriu de eficien economic.
Criteriul de optimizare nu este acelai pentru toate proiectele, el este stabilit pentru fiecare
caz n parte i definete obiectivele majore ale conducerii proiectului. n funcie de aceste obiective,
criteriul poate fi durata total minim, costul total minim, folosirea ct mai uniform a resurselor
sau o sintez a acestora. Deci, programul optim este acea desfurare a proiectului, precizat prin
termenele de ncepere ale activitilor, care conduce la o eficien maxim.
Deoarece, aa cum se vede i din cele spuse mai sus, situaiile din practic ce necesit
rezolvarea unei probleme de ordonanare sunt foarte variate, s-au propus numeroase modele pentru
rezolvarea lor. n continuare vor fi prezentate cteva dintre modelele cele mai frecvent utilizate n
practic.



1. Modele de analiz a drumului critic (ADC)

Principiul analizei drumului critic const n divizarea unui proiect (aciuni complexe) n
pri componente, la un nivel care s permit corelarea logic i tehnologic a acestora, adic s
fac posibil stabilirea interaciunilor ntre prile componente. Aceste pri componente sunt
activitile aciunii complexe.
La definirea listei de activiti specialistul sau specialitii care particip la aceast operaie
folosesc experiena lor pentru a rspunde pentru fiecare activitate la ntrebrile: ce alte activiti
succed sau preced n mod necesar aceast activitate ?; care este durata activitii ?. Ia natere n
acest fel un tabel care conine activitile proiectului, intercondiionrile ntre activiti i duratele
acestora.
Un astfel de tabel trebuie s conin cel puin urmtoarele elemente:

activiti: n aceast coloan se enumer activitile proiectului, fiind puse n eviden
printr-o denumire sau printr-un simbol (codul activitii);
condiionri: se precizeaz, pentru fiecare activitate, activitile imediat precedente, prin
simbolurile lor; activitile de start nu au activiti precedente, n csu fiind trecut o
liniu;
durata: pentru fiecare activitate se precizeaz durata de execuie, ntr-o anumit unitate
de msur. Durata unei activiti este o constant.

Modelele de analiz a drumului critic se bazeaz pe reprezentarea proiectului printr-un graf,
elementele tabelului asociat acestuia fiind suficiente pentru a construi graful corespunztor.
n tabelul 1 este prezentat un proiect, activitile fiind notate prin litere mari A, B, C, .
Activitile A i B sunt activitile de nceput ale proiectului. Activitatea A este direct precedent
activitii C. De asemenea, activitatea C este direct precedent activitilor E i F.


156
82
Bazele cercetrii operaionale
Tabelul 1
Nr.
crt.
Activitile
proiectului
Activitile
direct precedente
(condiionri)
Durate
1 A - 3
2 B - 2
3 C A 2
4 D B 6
5 E B 4
6 F C,D,E 4
7 G E 1


Exist mai multe moduri de a reprezenta un proiect printr-un graf, cele mai cunoscute fiind
prezentate mai jos:


A. Metoda CPM (Critical Path Method)

Metoda CPM este un procedeu de analiz a drumului critic n care singurul parametru
analizat este timpul i n reprezentarea graficului reea se ine seama de urmtoarele convenii:
fiecrei activiti i se asociaz un segment orientat numit arc, definit prin capetele sale,
astfel fiecare activitate identificndu-se printr-un arc;
fiecrui arc i se asociaz o valoare egal cu durata activitii pe care o reprezint;
condiionarea a dou activiti se reprezint prin succesiunea a dou arce adiacente.
Nodurile grafului vor reprezenta momentele caracteristice ale proiectului, reprezentnd
stadii de realizare a activitilor (adic terminarea uneia sau mai multor activiti i/sau nceperea
uneia sau mai multor activiti).
Procedeul CPM se bazeaz pe existena unei corespondene bipartide ntre elementele unui
proiect (activiti, evenimente) i elementele unui graf (arce i noduri). Se obine o relaie model-
obiect, care pune n eviden particularitile de o mare nsemntate practic, n special, proprietile
de succesiune temporal.
Pentru reprezentarea corect a proiectului (respectarea interdependenelor, claritatea
desenului etc), ct i pentru o standardizare a reprezentrii (pentru a putea fi neles i de altcineva
dect cel care l-a desenat) n desenarea grafului se respect urmtoarele reguli:

1. fiecare activitate se reprezint printr-un arc a crui orientare indic, pentru activitate,
desfurarea ei n timp;
2. un arc este limitat prin dou noduri (reprezentate prin cerculee) care simbolizeaz
momentele de nceput i de sfrit ale executrii activitii corespunztoare;
3. lungimea fiecrui arc, n general, nu este proporional cu lungimea activitii;
4. activitile vor fi reprezentate prin arce de forma:

sau sau sau


sau sau sau


esenial fiind poriunea orizontal, pe care se vor trece informaiile despre activitate,
poriunile oblice fiind la 45.
157
83
Teoria ordonanrii
Lungimea i nclinarea arcului au n vedere numai considerente grafice, pentru urmrirea
uoar a ntregului graf.
5. deoarece respectarea tuturor regulilor nu se poate face doar cu arce care corespund doar
activitilor proiectului, vor exista i arce care nu corespund nici unei activiti, care vor
fi reprezentate punctat i care, pentru unitatea prezentrii, vor fi numite activiti fictive,
ele neconsumnd resurse i avnd durata 0.
6. pentru reprezentarea unor dependene de tipul "terminare nceput" n care t
AB
> 0, vom
introduce nite arce reprezentate prin linii duble, care corespund intervalului t
AB
, avnd
semnificaia unor ateptri (n acest interval se "consum" doar timp, nu i resurse) i
care vor fi numite activiti de ateptare.
Dac se presupune c o activitate A este precedent activitii B, n funcie de tipul de
interdependen, n graficul reea arcele corespunztoare activitilor A i B vor avea urmtoarea
reprezentare:


sau (pentru t
AB
= 0)



















t
AB
sau
t
AB
A
B
2
B
1
sau
B
A
2 A
1
terminare - terminare
nceput - nceput
B
A
t
AB
terminare - nceput
B
A
B
t
AB A
Figura 1

A
B
t
AB

7. n graf nu sunt admise circuite (existena unuia ar nsemna c orice activitate a acestuia
ar fi precedent ei nsui). Deoarece, pentru un proiect foarte mare graful va avea foarte
multe arce, se poate ntmpla s crem un circuit fr s ne dm seama. Pentru a evita
acest lucru, vom introduce o regul mai uor de respectat, care o implic pe cea dinainte:
8. nodurile vor fi numerotate, numerotarea fcndu-se n aa fel nct, pentru fiecare
activitate, numrul nodului de nceput s fie mai mic dect numrul nodului de final al
activitii.
9. graful are un singur nod iniial (semnificnd evenimentul "nceperea proiectului") i un
singur nod final (semnificnd evenimentul "sfritul proiectului");
10. orice activitate trebuie s aib cel puin o activitate precedent i cel puin una care i
succede, exceptnd bineneles activitile care ncep din nodul iniial al proiectului i pe
cele care se termin n nodul final al proiectului;
11. dei exist activiti care se execut n paralel, care pot ncepe n acelai moment i se
pot termina n acelai moment, este interzis ca cele dou arce corespunztoare s aib
ambele extremiti comune, altfel desenul care rezult nu mai e graf. n desenul de mai
jos se arat care este reprezentarea corect, F fiind o activitate fictiv:
158
84
Bazele cercetrii operaionale

Figura 2
sau
corect
incorect
F B
A
F
B
A
B
A







12. nu trebuie introduse dependene nereale (neprevzute n tabelul de condiionri). Astfel,
dac n tabelul de condiionri vom avea situaia:
Tabelul 2
Activitate
Activitate direct precedent
(condiionri)
A -
B -
C A,B
D A

atunci reprezentarea:










Figura 3
D
C
B
A
este incorect, deoarece introduce condiionarea, inexistent n tabel, a activitii D de activitatea B.
Reprezentarea corect este:
Figura 4
D
C
B
A








13. s se foloseasc, pe ct posibil, numrul minim de activiti fictive, pentru a nu complica
excesiv desenul. De exemplu acelai efect ca n figura 4 putea fi obinut i prin
reprezentarea:

Figura 5
D
C
B
A







159
85
Teoria ordonanrii
dar am fi folosit o activitate fictiv n plus, inutil.

Dac dou sau mai multe activiti au aceeai activitate direct precedent, de exemplu A
precede B i A precede C, reprezentarea n graful-reea va avea forma din figura 5 (a). Arcele B i C
simbolizeaz dou activiti care nu pot ncepe dect dup ce s-a terminat activitatea A. Activitile
B i C pot fi executate simultan. De asemenea execuia unei activiti poate depinde de terminarea
mai multor activiti direct precedente, de exemplu A precede C i B precede C ca n figura 5 (b). n
aceast situaie, activitatea C nu poate ncepe, logic, dect dup ce s-au terminat activitile A i B.












(b)
(a)
B
A
C
B
A
C
Figura 6
Proiectul dat prin tabelul 1, poate fi modelat, n reprezentarea activitilor pe arce, prin
graful-reea din figura 6, numerotat secvenial.

1
G
F
E
D
C
B
A
Figura 7
6
4
5
3
2











Numerotarea nodurilor permite s identificm fiecare activitate prin perechea de noduri (de
nceput i sfrit). De exemplu, activitatea D se identific prin perechea (3,5), activitatea E prin
(3,4) etc.


Analiza proiectului

Analiza proiectului const n determinarea duratei minime a proiectului, determinarea
intervalelor de timp n care poate avea loc fiecare din evenimentele reprezentate prin noduri i
determinarea intervalelor de timp n care pot fi plasate activitile, astfel nct s se respecte toate
condiionrile i s obinem timpul minim de execuie al proiectului.
Este evident c durata minim de execuie a proiectului este cel mai mic interval de timp n
care pot fi efectuate toate succesiunile de activiti din proiect. O succesiune de activiti
corespunde unui drum n graf i deci, durata minim de execuie a proiectului este cel mai mic
minorant al lungimilor tuturor drumurilor din graf. Cum exist un numr finit de drumuri, mulimea
lungimilor acestora este finit i cel mai mic minorant al ei este maximul acesteia, adic durata
drumului de lungime maxim. Deoarece graful nu are circuite i are un singur punct iniial i unul
160
86
Bazele cercetrii operaionale
singur final, este evident c cele mai lungi drumuri vor fi cele dintre nodul iniial i cel final. Avem
deci de gsit drumul de lungime maxim dintr-un graf fr circuite, caz n care se poate aplica
algoritmul lui Ford simplificat.
Conform acestui algoritm, se calculeaz pentru fiecare nod al grafului:

A. Termenul cel mai devreme de realizare a evenimentului j. Acest termen reprezint
momentul cel mai devreme posibil de terminare a tuturor activitilor care converg n nodul j i este
egal cu valoarea maxim a drumurilor dintre evenimentul iniial 1 i evenimentul j, pe care l vom
nota cu = d
m
j
t
max
(1,j). Termenul cel mai devreme (numit i termenul minimal) a evenimentului j,
conform algoritmului lui Ford n grafuri G = (X,) fr circuite, se calculeaz astfel:

m
j
t =
( )
( ) n j 1 , d t max
ij
m
i
j i,
< +



Vom presupune, fr a restrnge generalitatea, c t
1
= 0, pentru evenimentul iniial 1 i, n
acest caz, termenul de realizare cel mai devreme al unui eveniment oarecare j va fi dat de formula:

m
j
t =
( )
( )

< +
=

n j 1 d t max
1 j 0
ij
m
i
j i,

Aceast formul permite calculul termenelor pentru evenimente, prin parcurgerea grafului-
reea n sens-nainte (parcursul nainte) i durata minim de execuie a proiectului va fi termenul cel
mai devreme de realizare al nodului final al grafului.
Acest termen devine termenul impus de realizare al proiectului i el nu mai poate fi depit,
depirea lui nsemnnd doar o proast organizare a lucrului.

B. Termenul cel mai trziu de realizare a evenimentului i. Acest termen (numit i termen
maximal) reprezint momentul cel mai trziu posibil de ncepere a activitilor care pleac din
nodul i astfel nct toate succesiunile de activiti dintre acest nod i nodul final s mai poat fi
efectuate pn la termenul final de realizare al proiectului i este egal cu diferena ntre durata
minim de realizare a proiectului i durata drumului de lungime maxim dintre evenimentul i i n.
Acest termen se noteaz cu = d
M
i
t
max
(1,n) d
max
(i,n).
Pentru calcularea acestor momente trebuie calculate duratele drumurilor de la nodul final
spre nodul iniial i apoi sczute din durata minim a proiectului, calcul care va fi fcut aplicnd, de
asemenea, algoritmul lui Ford simplificat.
Conform celor de mai sus, termenul cel mai trziu de realizare a unui eveniment, cu
respectarea duratei minime a proiectului (notat T= d
max
(1,n) = ), este dat de formula:
m
n
t

M
i
t =
( )
( )

<
=

n i 1 d t min
1 j T
ij
M
j
j i,

Intervalul [ t ] se numete intervalul de fluctuaie al evenimentului j. Evenimentul j
se poate plasa n orice moment al acestui interval de fluctuaie, fr a periclita durata total a
ntregului proiect. Acest interval l putem defini ca pe o rezerv de timp R(j) a evenimentului j:
m
j
t ,
M
j

R(j) =
M
j
t
m
j
t

161
87
Teoria ordonanrii
Dac R(j) = 0 evenimentul j trebuie s aib loc la termenul fixat , pentru c orice
ntrziere va duce la prelungirea duratei ntregului proiect.
M
j
t =
m
j
t

Exemplu: Vom arta n continuare modul cum se calculeaz aceste termene, pentru proiectul
dat de tabelul 1. Pentru o bun organizare a datelor vom reprezenta fiecare eveniment al proiectului
printr-un cerc divizat n trei pri (vezi figura 7), n care vom trece n partea de sus numrul
evenimentului i, n partea inferioar-stnga termenul cel mai devreme de realizare i n partea
inferioar-dreapta termenul cel mai trziu de realizare t .
m
j
t
M
j

M
j
t
i

m
j
t







Figura 8



n figura 8 a fost desenat graful asociat proiectului.

1
G
4
F
6
D
4
E
2
C
2
B
3
A
12 12
6
8 6
4
8 8
5
2 2
3
0 0
1
6 3
2













Figura 9


Primul eveniment se consider a avea loc la momentul t
1
= 0. Calculul termenelor minimale
pornete de la primul eveniment, avnd n vedere c se poate calcula termenul cel mai devreme al
unui eveniment numai dac acesta a fost calculat pentru toate evenimentele precedente:

m
1
t = 0
m
2
t = max ( + d
m
1
t
12
) = max (0 + 3) = 3
m
3
t = max ( + d
m
1
t
13
) = max (0,2) = 2
m
4
t = max ( + d
m
3
t
34
) = max (2 + 4) = 6
m
5
t = max ( + d
m
2
t
25
, + d
m
3
t
35
, + d
m
4
t
45
) = max (3 + 2, 2 + 6, 6 + 0) = 8
m
6
t = max ( + d
m
4
t
46
, + d
m
5
t
56
) = max (6 + 1, 8 + 4) = 12
162
88
Bazele cercetrii operaionale

Calculul termenelor maximale se face considernd durata minim a proiectului T = 12,
ncepnd de la ultimul nod, avnd n vedere c se poate calcula termenul cel mai trziu al unui
eveniment numai dac acesta a fost calculat pentru toate evenimentele succesoare. Pentru aceasta
se ia = 12 i se calculeaz:
M
6
t

M
5
t = min ( d
M
6
t
56
) = min (12 4) = 8
M
4
t = min ( d
M
6
t
46
, - d
M
5
t
45
) = min (12 1, 8 0) = 8
M
3
t = min ( d
M
5
t
35
, d
M
4
t
34
) = min (8 6, 8 4) = 2
M
2
t = min ( d
M
5
t
25
) = min (8 2) = 6
M
1
t = min ( d
M
2
t
12
, d
M
3
t
13
) = min (6 3, 2 2) = 0

Urmtoarea etap n analiza proiectului const n aflarea termenelor ntre care trebuie s se
efectueze activitile, calculndu-se n acest sens, pentru fiecare activitate (i,j), momentul minim de
ncepere: (i,j), momentul minim de terminare: (i,j) , momentul maxim de ncepere: (i,j) i
momentul maxim de terminare: (i,j).

m
t
t
m
t

M
t
t
M
t

1. Momentul (termenul minim) de ncepere cel mai devreme a activitii ( i.j). Deoarece
o activitate nu poate ncepe dect dup ce se termin toate cele precedente, momentul
minim de ncepere este evident termenul cel mai devreme de realizare al evenimentului i:

m
t (i,j) =
m
i
t

2. Momentul (termenul minim) de terminare cel mai devreme a activitii (i.j) este egal
cu suma dintre termenul cel mai devreme de ncepere i durata activitii:

t
m
t (i,j) = (i,j) + d

m
t
ij


3. Momentul (termenul maxim) de terminare cel mai trziu a activitii (i,j) este definit
de termenul cel mai trziu de realizare a evenimentului j:

t
M
t (i,j) =
M
j
t

4. Momentul (termenul maxim) de ncepere cel mai trziu a activitii (i,j) este egal cu
diferena dintre termenul cel mai trziu de terminare i durata activitii:

M
t (i,j) = (i,j) - d
t
M
t
ij



Aceste momente spun doar n ce interval poate fi situat o activitate, dar nu spun care este
diferena ntre o plasare posibil sau alta. n acest scop vom calcula, pentru fiecare activitate (i,j),
urmtoarele repere de timp:

a) Rezerva total de timp (R
t
) a unei activiti (i,j), ca fiind diferena dintre termenul cel
mai trziu de terminare i termenul cel mai devreme de terminare:

R
t
(i,j) = = d
t
M
t
t
m
t
t
M
t

m
t
ij
= d
M
j
t
m
i
t
ij

163
89
Teoria ordonanrii

Rezerva total de timp a unei activiti (i,j) reprezint timpul maxim cu care se poate
amna sau se poate mri durata activitii, fr depirea termenului final de execuie al
proiectului.
b) Rezerva liber de timp (R
l
) a unei activiti (i,j):

R
l
(i,j) = d
m
j
t
t
t
t
t = t = t
m
i
t
ij


Diferena ntre rezerva total i rezerva liber:

R
t
(i,j) - R
l
(i,j) =
M
j
m
j
t

pentru o activitate (i,j), este egal cu fluctuaia evenimentului final j al activitii. De aici
rezult c rezerva liber a unei activiti (i,j) reprezint intervalul de timp ca parte a
rezervei totale de timp, cu care o activitate se poate amna (sau se poate mri durata
activitii) fr a perturba termenul cel mai devreme de realizare al termenului final j
(adic fr a consuma din rezervele de timp ale activitilor care o succed).
c) Rezerva independent de timp (R
s
) a unei activiti (i,j):

R
i
(i,j) = d
m
j
M
i
t
ij


Rezerva independent de timp a unei activiti (i,j) exist dac R
i
(i,j) > 0 i dac exist,
ea reprezint timpul maxim cu care se poate amna (sau se poate mri durata activitii)
astfel nct s nu perturbe fluctuaia evenimentelor de la extremitilor activitii. Dac
R
i
(i,j) 0 atunci activitatea (i,j) nu are rezerv independent de timp. Rezerva inde-
pendent de timp arat intervalul n care poate fi plasat o activitate fr a consuma nici
din rezervele de timp ale activitilor ce o preced, nici din cele ale celor ce o succed.
Diferena ntre rezerva liber i rezerva independent:

R
l
(i,j) R
i
(i,j) =
M
i
m
i
t

este egal cu fluctuaia evenimentului i (cu care ncepe activitatea).

Intervalele de fluctuaie pentru evenimente i rezervele libere de timp pentru activiti
caracterizeaz elasticitatea unui program de ordonanare. Cu ct acestea sunt mai mici cu att
programul este mai rigid.
Drumul (drumurile) a crui lungime este egal cu durata minim de execuie a proiectului se
numete drum critic. Este clar c orice amnare a unei activiti a acestuia duce la lungirea duratei
de execuie a proiectului, deci nici una din aceste activiti nu dispune de rezerv de timp.
Activitile de pe drumul critic i prin extensie, orice activitate care nu dispune de rezerv de timp,
se numete activitate critic.
O activitate critic (i,j) este caracterizat prin:

m
i
= d
M
i
t ,
m
j
M
j
t ,
m
j
m
i
t
ij


De aici rezult c, pentru o activitate critic, avem:

R
t
(i,j) = R
l
(i,j) = R
i
(i,j) = 0

Termenele calculate pentru evenimente sunt utile n primul rnd pentru calculul termenelor
164
90
Bazele cercetrii operaionale
pentru activiti, dar ele servesc i pentru evaluarea stadiului de realizare al proiectului, verificnd
dac termenele de realizare pentru fiecare eveniment se afl n intervalul de fluctuaie.
n practic este nevoie de mai multe ori s ne interesm de activiti, n ceea ce privete
stadiul realizrii acestora, dect de evenimente. n primul rnd intereseaz activitile critice (cele
situate de-a lungul drumului critic), ele trebuind s fie realizate la datele calculate. Aceste activiti
nu dispun de rezerv de timp, deci trebuie s nceap i s se termine exact la termenele calculate,
pentru a nu depi termenul de finalizare al proiectului. Celelalte activiti pot fi amnate cu
rezervele lor de timp, dar consumarea acestora face ca proiectul s devin rigid.
Pentru activitile proiectului analizat mai sus, termenele activitilor i rezervele de timp
sunt date n tabelul de mai jos:
Tabelul 3
Activiti Cond. Durate

m
t
t
m
t

M
t
t
M
t R
t
R
l
R
i
A = (1,2) - 3 0 3 3 6 3 0 0
B = (1,3) - 2 0 2 0 2 0 0 0
C = (2,4) A 2 3 5 6 8 3 3 0
D = (3,4) B 6 2 8 2 8 0 0 0
E = (3,5) B 4 2 6 4 8 2 0 0
F = (4,6) C,D,E 4 8 12 8 12 0 0 0
G = (5,6) E 1 6 7 11 12 5 5 0

Conform tabelului 3 proiectul este foarte rigid, nici o activitate nedispunnd de rezerv
independent de timp.
Examinarea reperelor de timp permite cunoaterea posibilitilor pe care le are un
management de program de a interveni la timp pentru executarea la termenele calculate a tuturor
activitilor unui proiect dat. Durata proiectului calculat prin aceast metod nu poate fi redus
prin micorarea rezervelor.
Printre avantajele metodei CPM (i n general ale analizei drumului critic) evideniem:
determinarea cu anticipaie a duratei de execuie a proiectelor complexe;
pe timpul desfurrii proiectului permite un control permanent al execuiei acestuia;
explicitarea legturilor logice i tehnologice dintre activiti;
evidenierea activitilor critice;
evidenierea activitilor necritice, care dispun de rezerve de timp;
permite efectuarea de actualizri periodice fr a reface graful;
ofer posibilitatea de a efectua calcule de optimizare a duratei unui proiect, dup criteriul
costului;
reprezint o metod operativ i raional care permite programarea n timp a activitilor
innd seama de resurse.

Dezavantajele acestei metode sunt n principal:

greutatea desenrii grafului, fiind foarte greu de reprezentat exact toate condiionrile din
proiect, n condiiile n care acestea sunt foarte complicate iar desenul trebuie s fie
destul de simplu i clar nct s fie inteligibil i deci util;
chiar dac se respect toate regulile de construire a grafului, rmn nc destule variante
de desenare astfel nct dou reprezentri ale aceluiai proiect fcute de doi indivizi pot
s nu semene aproape deloc.
din cele de mai sus se vede c reprezentarea este greoaie chiar dac toate condiionrile
ar fi de tipul "terminare nceput" cu preceden direct, ncercarea de a forma graful n
condiiile existenei i a celorlalte tipuri de interdependene ducnd foarte repede la un
desen extrem de ncrcat i greu de folosit.

165
91
Teoria ordonanrii
B. Metoda MPM (Metro Potenial Method)


Metoda potenialelor sau MPM este un procedeu de analiz a drumului critic care ncearc
s depeasc neajunsurile metodei CPM, n care, ca i n metoda CPM, se analizeaz parametrul
timp, diferena constnd n felul n care se construiete graful reea:
fiecrei activiti A i se asociaz un nod A;
fiecrui nod i se asociaz o valoare dat de durata activitii pe care o reprezint;
condiionarea (succesiunea) a dou activiti se reprezint printr-un arc, orientat de la o
activitate la alta;
fiecrui arc dintre dou activiti A i B i se asociaz un numr reprezentnd valoarea
t
AB
.

Reprezentarea activitate nod permite ca ntre activitile unui proiect s avem mai multe
tipuri de legturi de preceden. Cele trei tipuri de preceden se vor reprezenta astfel:

1)
2)
3)
Legtura "terminare - nceput" se reprezint grafic n fig. 10.


t
AB
B
A


Fig. 10

Activitatea B ncepe dup ce s-a terminat activitatea A. Putem considera c arcul (A,B)
are el nsui o durat t
AB
0, ceea ce nseamn c activitatea B poate ncepe dup ce s-au
scurs t
AB
uniti de timp de la terminarea activitii A. n general, nu toate legturile
"terminare - nceput" au durat, cele mai multe avnd durata t
AB
= 0.

Legtura "nceput-nceput" poate fi utilizat pentru a arta simultaneitatea executrii a
dou activiti prin puncte de nceput. Aceasta este reprezentat n fig. 11.


t
AB
B
A




Fig. 11

Activitatea B poate ncepe cu cel puin t
AB
uniti de timp dup nceperea activitii A.
Dac t
AB
= 0 activitile pot ncepe n acelai timp.

Legtura "terminare terminare" poate fi, de asemenea, utilizat pentru a indica
simultaneitatea executrii a dou activiti prin punctul de terminare (fig. 12). Aceast
t
AB
B
A
Fig. 12
166
92
Bazele cercetrii operaionale
legtur arat c activitatea A este terminat cu cel puin t
AB
uniti de timp naintea
terminrii activitii B.
Vom numi activitate de baz orice activitate folosit ca baz de referin, fa de care este
format timpul de ateptare. n figura 11 activitatea de baz este A iar n figura 12 activitatea de baz
este B. Durata de ateptare t
AB
se raporteaz la activitatea de baz.
Proiectului dat prin tabelul 2 i corespunde n reprezentarea activitate nod graful-reea din
figura 13.

Tabelul 4
t
G
H
F
E
D
C
B
A
s
Activiti Dependene
A -
B -
C A
D B
E C
F C
G F,D
H E,F
Fig. 13

Graficul reea n reprezentarea activitate nod nu conine activiti fictive, eventual cu
excepia unei activiti de ncepere i/sau a unei activiti de terminare a proiectului, necesare n
cazul n care exist mai multe activiti care nu sunt condiionate de nici o activitate a proiectului
(acestea devenind toate noduri iniiale ale proiectului, dei trebuie s fie un singur nod iniial) sau,
analog, n cazul n care sunt mai multe activiti care nu au nici o activitate succesoare.
ntre un graf reea n reprezentarea activitate nod i un graf reea n reprezentarea activitate
arc se pot defini urmtoarele corespondene (vezi figura 14):

MPM

CPM


























t
AB
= 0
B A
B
A
t
AB
> 0
B A
B t
AB
A
t
AB
B
A
t
AB
B
A
2 A
1
t
AB
B
A
t
AB
A
B
2
B
1

Figura 14


167
93
Teoria ordonanrii
Calculul termenelor i rezervelor

Calcularea termenelor n reprezentarea activitate nod este asemntoare cu cea din
reprezentarea activitate arc. n aceast reprezentare un nod al grafului se reprezint printr-un
dreptunghi compartimentat n ase pri, care vor fi completate astfel:

centru sus: numrul sau simbolul activitii: i, A,
centru jos: durata activitii: d(i), d(A),
stnga sus: termenul cel mai devreme al nceperii activitii: ( ) i t

m
, , ( ) A t

m
dreapta sus: termenul cel mai devreme al terminrii activitii: , ( ) i
t
m
t , ( ) A t
t
m
stnga jos: termenul cel mai trziu al nceperii activitii: ( ) i t

M
, , ( ) A t

M
dreapta jos: termenul cel mai trziu al terminrii activitii: ( ) i
t
M
t , , ( ) A t
t
M

Aceste elemente pot fi urmrite n figura 15.


t
t
t
m
t
t
M
t

M
t
t
m
t
t
M
t

m
t
d(A)
A
d(i)
i

m





Figura 15

Ne vom referi n continuare la cazul a dou activiti A i B, considernd cele trei tipuri de
relaii ntre activiti. Pentru uurina calculului vom urmri figurile 16 i 17.

M
t

m
t
t
m
t
t
M
t
B
d(B)

M
t
A

m
t
t
m
t
t
M
t
d(A)

M
t
t
AB
t
AB
d(A)
A
t
M
t
t
m
t

m
t
t
M
t
t
m
t

M
t
d(A)
A

m
t
t
AB













Figura 16

1. Termenul cel mai devreme al nceperii activitii B, conform figurii 16 va fi dat de
formula:

( )
( )
( )
( ) ( )

+
+
+
=
terminare - terminare B d t A t
nceput - nceput t A t
nceput - terminare t A t
max
nceput de activitate o este B a dac 0
B t
AB
t
m
AB

m
AB
t
m
A

m
(


168
94
Bazele cercetrii operaionale
unde activitatea A este precedent activitii B i t
AB
este o durat de ateptare 0.
2. Termenul cel mai devreme al terminrii activitii B este egal cu suma dintre
termenul cel mai devreme al nceperii activitii B i durata sa:

( ) B t
t
m
= ( ) B t

m
+ d(B)

3. Termenul cel mai trziu de terminare a activitii A, conform figurii 17 va fi dat de
formula:
( )
( )
( ) ( )
( )

=
terminare - terminare t B t
nceput - nceput A d t B t
nceput - terminare t B t
min
a final activitate o este A a dac T
A t
AB
t
M
AB

M
AB

M
B
t
M
( (


unde activitatea A este direct precedent activitii B i t
AB
este o durat de ateptare 0.

4. Termenul cel mai trziu de ncepere al activitii A este egal cu diferena dintre
termenul cel mai trziu de terminare al activitii A i durata sa:

( ) A t

M
= ( ) A t
t
M
d(A)














M
t

m
t
t
m
t
t
M
t
A
d(A)

M
t

m
t
t
m
t
t
M
t
B
d(B)

M
t
t
AB
t
AB
t
AB
d(B)
B
t
M
t
t
m
t

m
t
t
M
t
t
m
t

M
t
d(B)
B

m
t



Figura 17
Pentru fiecare activitate vom defini urmtoarele rezerve de timp:

a) Rezerva total de timp (R
t
) a unei activiti A:

R
t
(A) = ( ) A t
t
M
( ) A t
t
m
= ( ) A t
t
M
( ) A t

M
d(A)

b) Rezerva liber de timp (R
l
) a unei activiti A:

R
l
(A) = ( ) ( ) ( ) ( ) A d A t B t max

m
B


unde activitatea A este direct precedent activitii B.
Modul cum se calculeaz termenele i rezervele de timp pentru activitile unui proiect prin
169
95
Teoria ordonanrii
metoda MPM este pus n eviden de exemplul dat prin tabelul 1 i reprezentat n figura 18.












12
12
12
12
0
t
12
7
11
6
1
G
12
12
8
8
4
F
8
6
4
2
4
E
8
8
2
2
6
D
8
5
6
3
2
C
2
2
0
0
2
B
6
3
3
0
3
A
0
0
0
0
0
s

Figura 18


Din acest graf reea se formeaz tabelul 5 cu termenele i rezervele de timp pentru
activitile proiectului:
Tabelul 5
Activiti Cond. Durate

m
t
t
m
t

M
t
t
M
t R
t
R
l
A - 3 0 3 3 6 3 0
B - 2 0 2 0 2 0 0
C A 2 3 5 6 8 3 3
D B 6 2 8 2 8 0 0
E B 4 2 6 4 8 2 0
F C,D,E 4 8 12 8 12 0 0
G E 1 6 7 11 12 5 5



2. Grafuri ADC integrate i condensate


n practica managementului aciunilor economice complexe prim metodele ADC, nivelul de
detaliere n activiti a proiectelor depinde de scopul urmrit (coordonare de ansamblu sau
conducere de detaliu), de timpul avut la dispoziie pentru elaborarea grafurilor, de specialitii
disponibili etc.
Dac graful sumar care se ntocmete pentru orientarea general a echipei de conducere a
aciunii (s-l numim graf director) este totdeauna necesar, cnd se face trecerea la conducerea de
amnunt, sunt tot att de necesare grafurilor detaliate.
n general grafurile detaliate se fac pe pri din aciunea complex, numite obiective sau
obiecte. Astfel, dac ne referim de exemplul la un proiect de construcii, graful corespunztor
ntregului proiect poate fi divizat n grafuri pe obiect, cum ar fi:

graful proiectrii;
graful organizrii antierului;
unul sau mai multe grafuri pentru lucrri de drumuri;
mai multe grafuri pentru lucrri de reele (ap, canal abur, electrice etc.);
mai multe grafuri pentru lucrri de construcii-montaj (cte unul pentru fiecare hal sau
cldire) etc.

170
96
Bazele cercetrii operaionale
Grafurile pe obiect au individualitatea lor i se trateaz ca entiti de programare distincte; n
acelai timp ns, trebuie gndit coordonarea lor n cadrul aciunii complexe din care fac parte. n
acest scop, dup ntocmirea separat a grafurilor pe obiect apare necesitatea asamblrii lor ntr-un
tot, care constituie graful integrat.
n continuare vom arta cum se obine graful integrat al mai multor grafuri pe obiect.
Fie P
1
, P
2
,...,P
n
mai multe grafuri ADC pe obiect i presupunem c ntre activitile
diferitelor grafe exist condiionri logice i tehnologice. Presupunem de asemenea c fiecare din
grafuri are o numrtoare proprie a evenimentelor, cunoscut.

Pasul 1. se deseneaz cele n grafuri alturat;
Pasul 2. se reprezint prin activiti fictive (n reprezentarea activitate-arc) sau sgei (n
reprezentarea activitate-nod) toate condiionrile logice i tehnologice existente
ntre activiti din proiecte diferite;
Pasul 3. se introduce un nod suplimentar fictiv I (activitate fictiv) care va fi legat la toate
nodurile (activitile) iniiale ale grafurilor P
1
, P
2
, ..., P
n
prin activiti fictive
(sgei), acesta fiind nodul (activitatea) iniial al grafului integrat;
Pasul 4. se introduce un alt nod suplimentar fictiv F (activitate fictiv), de care se vor lega
toate nodurile (activitile) finale ale grafelor specificate, prin activiti fictive
(sgei), acesta fiind nodul (activitatea) final al grafului integrat.
Pasul 5. se gsete drumul critic n graful integrat i se recalculeaz termenele activitilor
ntregului graf.

De exemplu, dac grafurilele din figurile 13 i 18 ar fi grafurile obiect ale unui proiect
complex, atunci integrarea acestora ar avea reprezentarea din figura de mai jos:





















F
I
t
G
H
F
E
D
C
B
A
s
12
12 12
12
0
t
7
12
6
11
1
G
12
12 8
8
4
F
6
8 4
2
4
E
8
8 2
2
6
D
5
8 6
3
2
C
2
2
0
0
2
B
3
6 3
0
3
A
0
0 0
0
0
s

Am reprezentat cu linii groase drumurile critice din cele dou grafuri i cu linii dublate
condiionrile dintre activiti din grafuri diferite.
Dac la nivelul conducerii operative intereseaz construirea i urmrirea grafurilor pe
obiecte, deci determinarea drumului critic pentru fiecare graf n parte, la nivelul coordonrii ntregii
aciuni va fi necesar cunoaterea drumului critic pentru graful integrat. Acesta, de regul, difer de
fiecare din drumurile critice ale grafelor componente i de aceea trebuie calculat separat.
171
97
Teoria ordonanrii
Graful integrat trebuie s respecte toate condiiile de construcie enumerate (de exemplu,
prin legturile integrate s nu apar circuite).
n foarte multe cazuri din practic, numrul activitilor care rezult prin integrarea mai
multor grafuri pe obiect este considerabil, putnd ajunge la zeci de mii, ceea ce depete de multe
ori posibilitatea de a le calcula i urmri, chiar cu ajutorul calculatoarelor puternice.
Cu att mai puin ar fi posibil cuprinderea sintetic a unui asemenea graf la nivelul
conducerii ntregii aciuni.
Pentru aceste motive a fost necesar gsirea unui mijloc de a reduce graful integrat,
pstrndu-i n acelai timp principalele caracteristici. Aceast operaie poart numele de
condensare iar rezultatul aplicrii acesteia asupra unui graf se numete graf condensat.
Condensarea se face dup urmtoarele reguli:

a) graful condensat va conine n mod obligatoriu nodurile de nceput i de sfrit ale
grafului i ale fiecruia din grafurile pe obiect componente;
b) el va cuprinde de asemenea toate activitile i nodurile de pe drumul critic al grafului
integrat;
c) n graful condensat se vor reprezenta toate activitile considerate deosebit de
importante i care trebuie explicitate;
d) din restul activitilor nu se reprezint dect activiti sau grupe de activiti strict
necesare pentru a nu lsa activiti sau noduri "n aer", adic nelegate de alte activiti
precedente sau succesoare.

n cazul grafurilor mari i foarte mari, condensarea poate face ca numrul activitilor
pstrate s reprezinte 10-20% din totalul celor din graful integrat, ceea ce reprezint, evident, o
simplificare considerabil.
Legtura dintre diferitele grafuri care alctuiesc graful integrat se poate evidenia cu ajutorul
aa-numitelor noduri de conexiune. Acestea au, n primul rnd, rolul de a permite desenarea
grafurilor cu foarte multe activiti, care nu ncap pe a singur foaie de hrtie, prin mprirea unui
astfel de graf n mai multe componente, ce se reprezint pe cte o foaie, legtura dintre ele fcndu-
se prin nodurile de conexiune. Un exemplu este dat n desenul de mai jos, n care nodurile de
conexiune au fost desenate prin puncte negre













Fiecare graf se poate calcula independent, innd seama, att la calculul termenelor minime
ct i la cel al termenelor maxime, de influena termenelor din cellalt graf, cu ajutorul arcelor care
intr n nodurile de conexiune.





172
98
Bazele cercetrii operaionale
3. Actualizarea grafurilor ADC

n practica realizrii aciunilor complexe, sunt numeroase cazurile cnd estimrile iniiale de
durat ale activitilor nu pot fi respectate. Apare astfel necesitatea ca, periodic, s se examineze
modul cum se realizeaz termenele calculate, n scopul punerii n eviden a eventualelor ntrzieri
i a lurii msurilor de recuperare a acestora.
Aceast activitate poart numele de actualizare a grafurilor iar noul graf se numete graf
actualizat.
Tehnica de actualizare a grafurilor poate fi descris succint astfel:

la data actualizrii se examineaz care activiti sunt terminate, care sunt n curs de
execuie i care sunt nc nencepute. Cu aceast ocazie se reestimeaz duratele aciunilor
n curs de execuie precum i cele nencepute;
se trece la recalcularea noilor termene considernd duratele activitilor executate ca
avnd durate nule, iar pentru restul activitilor duratele reestimate;
se calculeaz noul drum critic; fie durata sa D
ca
. Dac momentul n care se face
actualizarea este T
a
, noua estimare a duratei proiectului va fi D
a
= T
a
+ D
ca
. Dac aceast
nou durat este egal sau mai mic dect cea iniial (D), nu sunt necesare msuri
speciale, deoarece lucrarea se va ncadra n termenul stabilit. Dac, dimpotriv, D
a
> D
se vor lua msuri de scurtare a lui D
ca
, prin suplimentri sau redistribuiri de resurse.

Tehnica de actualizare descris mai sus este, evident, valabil cnd la momentul T
a
al
actualizrii, succesiunile i condiionrile dintre activitile neexecutate nu se modific. Cnd apar
astfel de modificri, odat cu reevaluarea datelor, se stabilesc noile condiionri, opernd
modificrile respective n graful refcut. ntruct, ns, astfel de situaii sunt relativ rare, procedeul
de actualizare a grafelor rmne foarte operativ, incomparabil mai simplu dect reactualizarea
grafelor tip Gantt, care necesit de fiecare dat refacerea integral a graficului.


4. Optimizri cost-durat

Estimarea duratelor aciunilor complexe (problema ADC/TIMP) prin metodele expuse mai
nainte, dei reprezint o problem deosebit de important din punct de vedere economic, nu este
nici pe departe singurul aspect care poate fi urmrit cu ajutorul acestor metode.
O alt problem n care pot fi utilizate instrumentele ADC sunt cele de analiz a costului
execuiei aciunilor complexe, n funcie de durata de execuie a acesteia.
Este evident c, n funcie de pregtirea celor care efectueaz lucrarea, de tehnologia
folosit, de oportunitile momentului etc, durata de execuie a unei aciuni complexe poate varia,
existnd totui o durat minim posibil T
min
i una maxim T
max
acceptabil.
Evident, durata lucrrii are numeroase implicaii asupra costului, drept pentru care prezint
un deosebit interes determinarea acelei durate de execuie, intermediare lui T
min
i T
max
, creia i
corespunde costul minim. n cele ce urmeaz vom prezenta succint aceast problem.


Costurile unei activiti

Vom considera c o activitate oarecare A, din cadrul unei aciuni complexe, se poate efectua
cu o durat d
A
care, din punct de vedere tehnologic, se situeaz ntre o limit inferioar d
min
i una
superioar d
max
(d
min
d
A
d
max
).
De asemenea, este evident c mrimea costului activitii (c
A
) depinde de durata de execuie
a acesteia: c
A
= f(d
A
). Vom numi durat normal de execuie a activitii durata care corespunde
costului minim de execuie. O durat de execuie mai mare dect durata normal este
173
99
Teoria ordonanrii
dezavantajoas att din punct de vedere al timpului ct i al costului, astfel nct durata normal va
fi i durata maxim acceptabil de execuie d
max
. O durat mai scurt de execuie va costa mai mult
din cauza eforturilor de urgentare (efectuarea de ore suplimentare care sunt pltite mai scump,
aplicarea unor tehnologii mai costisitoare, folosirea unor substane mai scumpe etc), dar activitatea
se va termina mai repede, cu beneficiile corespunztoare. Dependena funcional ntre c
A
i d
A

poate fi foarte complex (ptratic, neliniar, concav sau chiar discret), ns ea poate fi
aproximat cu o funcie liniar. S-a observat de asemenea c, n general, costul este descresctor n
funcie de durat pe intervalul (d
min
, d
max
). innd cont de toate acestea, rezult c graficul lui c
A
=
f(d
A
) este o dreapt, ca n figura de mai jos:

d
A
d
max
c
A
d
min
c
min
c
max








Din ipoteza liniaritii costului rezult c, costul urgentrii cu o zi al proiectului este acelai,
indiferent de a cta zi este vorba; acest cost este costul unitar al urgentrii. El se calculeaz cu
formula evident: c
u
=
min max
min max
d d
c c

i cu ajutorul lui se poate calcula foarte uor costul oricrei


durate intermediare lui d
min
i d
max
, cu una din formulele:


c(d
A
) = c
min
+ c
u
(d
A
d
min
) sau c(d
A
) = c
max
c
u
(d
max
d
A
)



Costul total al aciunilor complexe

n general, costul total al unei aciuni complexe are o structur identic cu acela al unei
investiii, fiind format din:

costuri directe (C
D
) - legate nemijlocit de realizarea activitilor (costul resurselor,
manoperei etc.);
costuri indirecte (C
I
) - cheltuieli generale, salariile personalului tehnic-administrativ, alte
cheltuieli de regie;
costul imobilizrii fondurilor C
IF
- pe perioada cnd investiia nu intr n funciune.

Dintre aceste costuri, costurile directe se calculeaz pentru fiecare activitate n parte, depind
de durata de execuie a fiecrei activiti i vor face obiectul analizei cost-durat, iar ultimele dou
reprezint cheltuieli globale ale proiectului i depind doar de durata total a proiectului.
Toate aceste costuri sunt evident, funcie de durata de execuie a investiiei. n figura de mai
jos se reprezint forma general a graficului funciilor C
D
, C
I
, C
IF
, n care t reprezint durata total
a investiiei.




174
100
Bazele cercetrii operaionale

t
opt t
max
t
min
t
C
C
D

C
IF
C
I

C
T
C
T
minim















Curba C
T
reprezint graficul funciei sum a celor trei funcii luate n considerare iar pe
grafic se poate citi timpul optim de execuie al proiectului (t
opt
) corespunztor costului total minim
(min C
T
).
n practic, C
I
i C
IF
se calculeaz la nivel contabil i nu pun probleme deosebite de calcul,
iar C
D
se gsete n urma unei analize cost-durat. C
D
(t) reprezint costul direct minim cu care se
poate obine o durat t [t
min
, t
max
] de execuie a ntregului proiect. Aflarea funciei C
D
(t)
presupune aflarea valorilor costului direct pentru orice durat de efectuare a proiectului, ceea ce n
cazul discret presupune un volum de calcule imens iar n cazul continuu este imposibil. De aceea se
calculeaz de fapt doar un numr suficient de valori, celelalte obinndu-se prin interpolarea
acestora. Cum se vede din desen, graficul lui C
T
are forma aproximativ a unei parabole, deci
numrul minim de valori pentru gsirea acesteia este 3, din care dou sunt calculate pentru t
min
i
t
max
, acestea fiind cele mai importante.
n cele ce urmeaz vom prezenta un algoritm pentru determinarea aproximativ a lui t
opt

folosind 3 puncte ca suport al interpolrii.


Algoritm pentru determinarea aproximativ a duratei optime
de execuie a unei aciuni complexe

Etapa 1

Se construiete graful asociat proiectului conform condiionrilor dintre activiti.

Etapa 2

Se gsete durata minim de execuie i drumul critic pentru cazul n care toate activitile ar
fi efectuate la durata lor maxim (normal). Acesta este durata maxim acceptabil de execuie a
proiectului (t
max
)i i corespunde costul direct minim (C
D
(t
max
) = C
Dmin
) de execuie a proiectului,
care se calculeaz adunnd costurile minime ale tuturor activitilor.

Etapa 3

Se gsete durata minim de execuie i drumul critic pentru cazul n care toate activitile ar
fi efectuate la durata lor minim. Aceasta este durata minim posibil de realizare a proiectului
(t
min
). Totui, costul aferent acestei durate nu este suma costurilor maxime ale activitilor, deoarece
175
101
Teoria ordonanrii
este evident c nu are sens s fie urgentate la maxim activitile necritice (cele care dispun de
rezerv de timp), aceasta neaducd dect o scumpire inutil a proiectului.

Etapa 3

Se relaxeaz activitile necritice, n limita rezervei disponibile de timp a fiecreia,
alegndu-se acea variant de relaxare care duce la cea mai mare scdere a costului total, apoi se
calculeaz costul proiectului pentru aceast variant. Acesta este C
D
(t
min
) = C
Dmax
.

Etapa 4

n acest moment avem deja dou puncte ale graficului. Pentru al gsi pe al treilea alegem o
durat intermediar t ntre t
min
i t
max
, relaxm activitile drumului critic obinut la etapa 2 cu un
total de t t
min
zile i apoi i celelalte activiti n limita rezervelor de timp disponibile ale lor,
alegnd acea variant de relaxare care duce la cea mai mare scdere a costului total, n final
calculndu-se costul proiectului pentru aceast variant. Rezult al treilea punct al graficului, de
coordonate (t, C
D
(t)).

Etapa 5

Se gsete ecuaia parabolei care trece prin cele trei puncte, se adun expresiile funciilor
corespunztoare celor trei tipuri de costuri obinndu-se funcia costului total i se gsete cu
ajutorul derivatei nti valoarea t
opt
n care se obine minimul acesteia.

Etapa 6

Se gsete, ca la etapa 4, costul direct minim cu care se poate executa proiectul n timpul t
opt

care se adun la valorile celorlalte dou costuri n t
opt
i rezult C
Tmin
.



5. Graficul Gantt

Un instrument de mare utilitate n analiza drumului critic l constituie graficul calendaristic
tip Gantt, aprut la nceputul secolului. Graficul (diagram) Gantt exprim la scara timpului, prin
linii orizontale, durata activitilor, i prin linii ntrerupte (de exemplu) rezervele de timp. Graficul
Gantt presupune divizarea aciunii complexe pe care o reprezint proiectul, n pri componente
(activiti) i ealonarea acestora n timp, innd seama de succesiunea tehnologic, termene
impuse, resurse etc.
Dac este ntocmit n urma unei analize temeinice, graficul Gantt ofer informaii bogate i
extrem de sugestiv prezentate, privind desfurarea lucrrilor, precum i o serie de informaii
derivate, privind ealonarea resurselor (for de munc, materii prime, materiale, fonduri bneti).
Aceste avantaje scad dac, datorit fie amplorii aciunii considerate, fie nivelului de detaliere dorit,
numrul activitilor ce compun graficul Gantt crete mult, ajungnd la cteva sute sau mii.
Graficul Gantt exprim la scara timpului un program de ordonanare. Astfel, avem graficul
Gantt la termenele cele mai devreme sau graficul Gantt la termenele cele mai trzii.
Pentru trasarea graficului Gantt se procedeaz astfel:

Pasul 1. Se ordoneaz activitile proiectului cresctor conform unui program de
ordonanare.
Pasul 2. Se reprezint activitile prin bare orizontale de lungimi egale cu duratele
activitilor (axa orizontal fiind axa timpului), fiecare bar ncepnd de la
176
102
Bazele cercetrii operaionale
momentul de ncepere al activitii corespunztoare;
Pasul 3. Se marcheaz fiecare activitate prin simbolul asociat sau prin numerele de ordine
ale evenimentelor de la extremiti deasupra barei corespunztoare.
Pasul 4. Rezerva total de timp se figureaz cu linie ntrerupt, adiacent cu durata
activitii, dup sau nainte (dup tipul programului).
Pasul 5. Pe fiecare linie orizontal se obinuiete s se figureze o singur activitate, iar
aceasta s fie imprimat de sus n jos i de la stnga la dreapta.

Pentru proiectul dat prin tabelul 1 i calculat prin grafurile din fig. 9 sau fig. 18 se deseneaz
graficul Gantt din fig. 19, corespunztor programului de ordonanare minorant (activitile ncep la
termenele cele mai devreme) i din fig. 20, corespunztor programului de ordonanare majorant
(activitile ncep la termenele cele mai trzii).


F
G
C
E
D
B
A
(4,6) = F
(5,6) = G
(2,4) = C
(3,5) = E
(3,4) = D
(1,3) = B
(1,2) = A
12 11 10 9 8 7 6 5 4 3 2 1













Figura 19


F
G
(5,6) = G
C
(2,4) = C
E
(3,5) = E
D
(3,4) = D
B
(1,3) = B
A
(1,2) = A
12 11 10 9 8 7 6 5 4 3 2 1














Figura 20




177
103
Teoria ordonanrii
6. Analiza resurselor

Dac din punct de vedere al condiionrilor de tip preceden (temporale) existena
activitilor paralele este corect din punct de vedere logic, putnd exista oricte activiti care se
desfoar n acelai timp, dac nu se intercondiioneaz ntre ele, neexistnd nici o diferen ntre
zilele proiectului, din punct de vedere practic, este clar c o zi n care se desfoar n acelai timp
10 activiti este mult mai intens din punct de vedere al organizrii i aprovizionrii cu resurse
dect o zi n care se desfoar o singur activitate. Deci, dac se ine cont doar de condiionrile
temporale pot aprea dezechilibre foarte mari n desfurarea proiectului i/sau pot aprea zile n
care necesarul de resurse ar fi mai mare dect disponibilul acestora.
Din cele spuse mai sus, se desprinde faptul c exist cel puin dou probleme importante
legate de resursele unui proiect:

problema alocrii resurselor, n care se ncearc programarea activitilor n aa fel
nct n nici o zi s nu se depeasc disponibilul din nici o resurs;
problema nivelrii resurselor, n care se ncearc programarea activitilor n aa fel
nct n toate zilele s se foloseasc cam aceiai cantitate de resurse (sau, altfel spus,
suma variaiilor de la o zi la alta s fie minim).

Trebuie fcut i observaia c analiza n cele dou probleme de mai sus se face n general
pentru resurse refolosibile, care nu se consum n timp, adic cele care, dup terminarea activitii
la care au fost alocate, se pot folosi la alt activitate. Resursele de acest tip sunt n principal fora de
munc i mainile i utilajele.
Pentru expunerea celor dou probleme este necesar i introducerea noiunilor de intensitate
a unei resurse i de profil a unei resurse.

1. Intensitatea unei resurse este cantitatea necesar sau disponibil din acea resursa, la un
moment dat;
2. Profilul unei resurse este diagrama n care se figureaz variaia intensitii unei resurse
n timp.


A. Problema alocrii resurselor

Soluia acestei probleme se poate obine, n cazurile foarte simple (puine activiti i puine
resurse), prin glisarea activitilor n limitele termenelor lor maxime de ncepere i de terminare,
aceasta fcndu-se cel mai uor pe baza graficului Gantt.
Dar, n practic, problemele au de cele mai multe ori sute sau chiar mii de activiti i este
necesar luarea n considerare a zeci de resurse importante, ceea ce face imposibil rezolvarea
problemei prin mijloace empirice, de tipul ncercrilor de a glisa activitile "dup ochi" i oblig la
cutarea unor metode riguroase, programabile pe calculator.
Formularea riguros-matematic a problemei alocrii resurselor conduce la modele de
dimensiuni i complexiti foarte mari, imposibil de rezolvat chiar cu calculatoarele cele mai
puternice.
Din aceste motive se utilizeaz procedee heuristice, care, fr a da ntotdeauna soluia
optim, ofer soluii cel puin satisfctoare.
n cele ce urmeaz vom examina unele aspecte ale folosirii procedeelor heuristice de
rezolvare a problemelor de alocare a resurselor.
Mersul operaiilor este, n general urmtorul

:

178
*
n prezentarea noastr ne referim la rezolvarea mintal a problemelor, evident ns c toate operaiile se transfer corespunztor
sistemelor de calcul (de altfel mintal nu se pot rezolva dect probleme foarte mici, cu caracter de exemplu).
104
Bazele cercetrii operaionale

a) se rezolv problema ADC - timp, construindu-se graful corespunztor aciunii complexe
considerate i se calculeaz termenele activitilor, rezervele i drumul critic;
b) se ncearc plasarea tuturor activitilor la momentul cel mai devreme de ncepere i se
traseaz profilul disponibilului resurselor considerate;
c) ncepnd cu activitile care ncep la termenul minim de ncepere zero i apoi n ordinea
cresctoare a termenelor minime de ncepere, se examineaz posibilitatea de a programa
aceste activiti, astfel ca s nu apar depiri ale necesarului faa de disponibil, pentru
nici a resurs;
d) cnd se ajunge n situaia ca, la un anumit moment s apar o astfel de depire, se
ncearc rezolvarea ei prin operaii de "amnare" a unora din activiti (evident, nu
ntotdeauna acest procedeu d rezultate: este posibil ca necesarul dintr-o resurs, pentru o
anumit activitate, s depeasc el singur disponibilul, caz n care, evident, problema
alocrii nu are soluii;
e) cnd, la un anumit moment, apar necesiti de amnare i operaia de amnare poate fi
aplicat la dou sau mai multe activiti care ncep la acelai termen, se introduce o
regul de prioritate, care permite s se stabileasc, care anume dintre activiti se
programeaz i care se amn: teoria i practica drumului critic menioneaz urmtoarele
criterii de amnare folosite de diveri autori:
Prioritatea dup rezerva total cea mai mic (se amn activitatea cu rezerva cea mai
mare de timp);
Prioritatea dup durata cea mai mic;
Prioritatea dup termenul minim de ncepere (se prefer activitatea cu termenul cel
mai devreme de ncepere cel mai mic);
Prioritatea dup termenul maxim de ncepere (se prefer activitatea cu termenul cel
mai trziu de ncepere cel mai mic);
Prioritatea dup termenul maxim de terminare (se prefer activitate cu termenul cel
mai trziu de terminare cel mai mic);
Prioritatea dup intervalul corespunztor activitii (se prefer activitatea cu
termenul cel mai devreme de terminare minim).
Prioritate dup cantitatea din resurse consumat (se prefer activitatea care consum
cel mai mult din resurse), etc
Nu se poate vorbi despre a concluzie general privind valabilitatea unora sau altora dintre
criteriile de amnare deoarece, n anumite cazuri, apare eficient folosirea unuia dintre ele, n alte
cazuri a altuia etc.
f) pentru fiecare activitate care s-a decis s fie amnat se ncearc plasarea ei la primul
moment posibil, acesta fiind primul moment cnd se disponibilizeaz din resurse, adic
primul moment cnd se termin una din resursele n curs de desfurare;
g) pentru fiecare activitate amnat se analizeaz toate activitile care o succed i, dac
este nevoie, se amn i acestea, nct s se respecte toate intercondiionrile existente
(n fapt, se face reactualizarea grafului);
h) Se reia procedeul, de la primul moment la care ar putea s nceap o activitate
neplanificat nc, pn cnd toate activitile sunt programate i toate resurse1e a1ocate
nu depesc disponibilul; n multe cazuri sunt necesare amnri care conduc chiar la
depirea termenului final al proiectului calculat n faza ADC-timp; ca urmare, n aceste
cazuri, noiunea de drum critic sufer o modificare, devenind echivalentul duratei
minime n care poate fi executat o aciune complex n limita resurselor disponibile.

n general, procedeele heuristice de rezolvare a problemei alocrii resurselor iau n
considerare durate fixe pentru activiti i nu admit ntreruperea acestora. Exist ns i procedee
care recomand scurtarea (lungirea) duratelor dup nevoie, prin alocare suplimentar, sau retragere
de resurse, precum i posibilitatea de a ntrerupe anumite activiti.
179
105
Teoria ordonanrii
B. Problema nivelrii resurselor

Dup cum am artat, aceast problem const n planificarea activitilor cu limitarea
termenului final de execuie a aciunii complexe, astfel nct profilul necesarului resurselor s fie
ct mai uniform.
Exist mai multe moduri de a exprima obiectivul uniformizrii profilului necesarului,
putndu-se urmri:

minimizarea sumei variaiilor absolute ale profilului;
minimizarea sumei creterilor;
minimizarea deviaiilor absolute de la medie;
minimizarea valorii maxime;
minimizarea variaiei maxime;
minimizarea sumei ptratelor diferenelor ntre profilul necesarului i un profil ideal (de
obicei o linie paralel cu axa timpului) etc.

Utiliznd criteriul minimizrii sumei ptratelor diferenelor, Burgens i Killebrew au
elaborat un algoritm de nivelare pentru o singur resurs, ale crui operaii sunt urmtoarele:

a) Se ntocmete graficul-reea i se calculeaz drumul critic;
b) Se programeaz activitile la termenul minim de ncepere, se ntocmete profilul
necesarului i se calculeaz suma ptratelor diferenelor (pe fiecare unitate de timp) ntre
profilul necesarului i profilul disponibilului;
c) ncepnd de la sfritul graficului-reea se ia prima activitate care dispune de rezerv i se
gsete poziia cea mai avantajoas posibil a ei, din punct de vedere al criteriului
enunat; cnd sunt mai multe poziii egal avantajoase se alege cea mai din dreapta;
d) Se trece la urmtoarea activitate, spre nceput, care dispune de rezerv i se procedeaz la
fel i tot aa, pentru toate activitile;
e) Se calculeaz valoarea criteriului corespunztor noii planificri obinute, apoi se aplic
din nou algoritmul de la pasul c, pn nu mai sunt posibile mbuntiri.

n cazul problemelor de nivelare dup mai multe resurse este posibil adaptarea algoritmului
Burgess-Killebraw dup cum urmeaz:

se ierarhizeaz importana relativ a resurselor stabilindu-se nite coeficieni de pondere;
se ncepe aplicarea algoritmului, urmrindu-se simultan pentru toate rezervele efectul
deplasrii unei activiti n limita intervalului ei aferent; se pot ivi urmtoarele cazuri:
1. deplasarea unei activiti mbuntete valoarea criteriului pentru toate resursele
considerate; n acest caz nu se face nici un calcul, deplasarea efectundu-se ct mai
avantajos;
2. deplasarea unei activiti mbuntete valoarea criteriului pentru o parte din resurse
i o nrutete pentru altele din ele; n acest caz se urmrete acea poziie a
activitilor care face ca suma sumei ptratelor diferenelor pentru fiecare resurs,
ponderat cu coeficienii de pondere stabilii, s fie minim.


180
106
Bazele cercetrii operaionale
7. Metoda PERT

Metodele CPM i MPM analizate anterior furnizeaz, aa cum s-a vzut, informaii care sunt
utile n procesul de conducere, ns ele nu in seama de posibilele variaii ale duratelor de execuie
ale activitilor.
Metoda PERT ncearc s corecteze acest lucru. n acest scop metoda permite calcularea
timpului mediu de terminare a unui proiect, identificarea activitilor critice, precum i estimarea
probabilitilor de realizare a termenelor planificate. Pentru c n practic, n foarte multe programe
din domeniul cercetrii i dezvoltrii, duratele activitilor sunt insuficient cunoscute sau chiar
incerte prin considerarea conceptelor statistice, duratele activitilor sunt considerate variabile
aleatoare caracterizate prin media i dispersia lor.
Metoda PERT pornete de la urmtoarele considerente:

a) Pentru fiecare activitate (i,j) se estimeaz trei durate:
durata optimist (a
ij
), care este considerat durata minim de execuie pentru
activitate, n condiii generale normale de execuie;
durata cea mai probabil (m
ij
) ca fiind estimaia cu cea mai mare ans de realizare
n condiii normale;
durata pesimist (b
ij
) ca fiind durata maxim de realizare a activitii, atunci cnd
exist mprejurrile cele mai defavorabile de execuie.
Un graf reea nzestrat cu cele trei tipuri de durate pentru activitile sale este numit reea
PERT.
b) Durata fiecrei activiti a proiectului are o distribuie . Se propune distribuia beta
pentru c aceasta satisface condiii care au un suport practic:
intersecteaz axa abciselor n dou puncte a
ij
i b
ij
, care corespund duratei minime i
duratei maxime;
este unimodal, adic are o singur valoare maxim, care corespunde duratei cele
mai probabile m
ij
.
valoarea b
ij
a
ij
este intervalul de variaie a distribuiei i poate indica gradul de
mprtiere a duratelor posibile.
c) Durata medie de execuie (
ij
t ) a unei activiti (i,j) este dat de formula:

ij
t =
6
b m 4 a
ij ij ij
+ +


d) Dispersia duratei de execuie ( ) a activitii (i,j) se calculeaz cu formula:
2
ij


2
ij
=
2
ij ij
6
a b
|
|
.
|

\
|



Dispersia este o msur a gradului de nesiguran n estimarea duratei activitii
(i,j); o valoare mare a dispersiei nseamn o mare nesiguran n privina duratei sale de
execuie.
2
ij

e) Durata total a proiectului este o variabil aleatoare cu distribuie normal avnd media
i dispersia:

( )

=
crit
D j i,
ij n
t t
( )

=
crit
D j i,
2
ij
2
n


181
107
Teoria ordonanrii
unde D
crit
reprezint mulimea tuturor arcelor grafului care sunt pe drumul critic.
f) Probabilitatea de realizare a duratei planificate T
plan
a unui proiect se determin
calculnd, mai nti, factorul de probabilitate z, dup relaia:

z =
2
n
n plan
t T



i apoi se deduce din tabelul valorilor funciei Laplace probabilitatea p(
n
t T
plan
).
g) Graful trebuie s conin un numr suficient de mare de activiti pentru a se ntruni toate
condiiile aplicrii teoremei limit central iar duratele activitilor s fie variabile
aleatoare independente. Se recomand, de asemenea, s nu existe mai multe drumuri
critice.

Metoda PERT se utilizeaz, n general, pentru descrierea unui proiect att pe reele CPM ct
i MPM.
Algoritmul pentru calcularea unui program PERT este urmtorul:

Pasul 1. Se calculeaz durata medie a fiecrei activiti din reeaua PERT, utiliznd relaiile de la
punctul c);
Pasul 2. Se calculeaz termenele activitilor reelei PERT, considernd duratele activitilor
deterministe i egale cu mediile lor, utiliznd una din metodele CPM sau MPM;
Pasul 3. Se calculeaz dispersia duratei fiecrei activiti cu formula de la punctul d);
Pasul 4. Se calculeaz durata total de execuie a ntregului proiect (
n
t ) i dispersia ( ) cu
formulele de la punctul e);
2
n

Pasul 5. Se determin probabilitatea de realizare a duratei planificate a proiectului dup relaia de


la punctul f) folosind tabelul funciei Laplace;
Pasul 6. Se face analiza proiectului, conform probabilitilor de realizare a duratei a proiectului:
dac p(
n
t T
plan
) este mai mic dect 0,25 exist un mare risc ca proiectul s nu se
realizeze la termenul planificat i este necesar revizuirea duratelor de execuie ale
activitilor n sensul urgentrii acestora;
dac p(
n
t T
plan
) 0,5 programarea este just;
dac p(
n
t T
plan
) este mai mare dect 0,6, programarea utilizeaz excesiv de multe
resurse
Pasul 7. Dac se dorete s se urmreasc anumite activiti (i,j) pentru care sunt date termenele
planificate de execuie T
ij
, atunci se calculeaz probabilitile ca fiecare activitate s fie
executat la termenul planificat utiliznd relaia:

z
ij
=
2
ij
ij
t T


i tabelul valorilor funciei lui Laplace.
dac p
ij
(t

T
ij
) < 0,6 atunci trebuie luate msuri de urgentare a executrii activitii
(i,j) n vederea realizrii ei n termenul planificat;
dac p
ij
(t

T
ij
) 0,6 activitatea (i,j) se execut n termenul planificat.

Exemplu: Fie G un graf reea definit de elementele din tabelul 8.7 n care, pentru fiecare
activitate, sunt definite trei estimri ale duratei (n sptmni) corespunztoare duratelor a
ij
, m
ij
, b
ij
.
Se rezolv reeaua PERT tiind c T
planificat
= 24 sptmni:


182
108
Bazele cercetrii operaionale
tabelul 8.7

Activiti

Condiionri
Durate

Durata medie t

m
t

t
M
t



a m b

A 2 5 8 5 0 7
B 2 5 8 5 0 5 1,00
C B 1 2 3 2 5 7 0,11
D A 2 3 4 3 5 13,16
E A 1 3 5 3 5 11,33
F A,C 3 6 10 6,16 7 14,50
G A,C 4 6 7 5,83 7 12,83 0,25
H A,C 3 4 6 4,16 7 16,66
I D 1 2 3 2 8 15,16
J I 3 5 6 4,83 10 19,99
K F 2 4 5 3,83 13,16 18,33
L G 2 4 5 3,83 12,83 16,66 0,25
M E 4 6 11 6,50 8 17,83
N M 4 5 7 5,16 14,50 22,99
Q K 2 5 6 4,66 15,99 22,99
R L,H 5 6 9 6,33 16,66 22,99 0,44
S J 2 3 4 3 14,83 22,99

Rezolvarea este dat n acelai tabel, din care se observ c activitile critice (fr rezerv
de timp) sunt B, C, G, L i R iar dup efectuarea calculelor obinem:

t
n
= 22,99 sptmni
2
n
= 1,00 + 0,11 + 0,25 + 0,25 + 0,44 = 2,05
Z =
05 , 2
99 , 22 24
= 0,70

Din tabelul cu valorile funciei Laplace gsim, corespunztor valorii 0,70, probabilitatea
0,758. Avem, astfel, o situaie n care se face risip de resurse, deci este necesar s se redefineasc
duratele n vederea obinerii unei planificri juste.

183
109
Bazele cercetrii operaionale

GESTIUNEA STOCURILOR

1. Introducere n problematica stocurilor

1.1. Stocurile ntr-un sistem de producie

n activitatea curent a agenilor economici apar probleme operative de producie, de
planificare sau proiectare, care se cer rezolvate n aa fel nct ele s corespund unui anumit scop,
de exemplu: un program de producie realizat cu beneficii ct mai mari, cu cheltuieli ct mai mici
sau ntr-un timp ct mai scurt etc.
Pornind de la anumite date cunoscute, caracteristice procesului economic, respectiv:
beneficii unitare, coeficieni tehnologici, disponibil de resurse, cheltuieli unitare, consumuri
specifice etc., se pot formula probleme care s in seama de scopul agenilor economici atunci cnd
pornete procesul tehnologic.
Teoria stocurilor a aprut din necesitatea asigurrii unei aprovizionri ritmice i cu cheltuieli
minime a stocurilor de materii prime i materiale n procesul de producie, sau a stocurilor de
produse finite i bunuri de larg consum n activitatea de desfacere a mrfurilor.
STOCURILE reprezint cantiti de resurse materiale sau produse (finite sau ntr-un stadiu
oarecare de fabricaie) acumulate n depozitele de aprovizionare ale unitilor economice ntr-un
anumit volum i o anumit structur, pe o perioad de timp determinat, n vederea unei utilizri
ulterioare.
Pe perioada respectiv resursele materiale sunt disponibile, dar nu sunt utilizate, deci sunt
neactive, scoase din circuitul economic, sau care prelungesc acest circuit (aspect considerat
negativ).
Stocul este o rezerv de material destinat s satisfac cererea beneficiarilor, acetia
identificndu-se, dup caz, fie unei clientele (stoc de produse finite), fie unui serviciu de fabricaie
(stocuri de materii prime sau de semifabricate), fie unui serviciu de ntreinere (articole de consum
curent sau piese de schimb), fie unui serviciu de dup vnzare (piese detaate).
Tratarea procesului de stocare ca proces obiectiv necesar se impune, nu numai ca urmare a
naturii economice a acestuia, ci i pentru c realizarea lui atrage cheltuieli apreciabile, concretizate
n afectarea unor importante spaii de depozitare-pstrare, de utilaje pentru transport-depozitare, de
fonduri financiare etc.
Dei diferite, procesele de stocare au totui o serie de caracteristici comune, dintre care
esenial este acumularea unor bunuri n scopul satisfacerii cererii viitoare. O problem de teoria
stocurilor exist doar atunci cnd cantitatea resurselor poate fi controlat i exist cel puin o
component a costului total care scade pe msur ce cantitatea stocat crete.
Evoluia nivelului stocului este interesant din dou puncte de vedere:
a) din punctul de vedere al productorului, care este preocupat de valoarea medie a
nivelului stocului, deoarece aceast valoare permite cunoaterea imobilizrii totale a stocului i
scopul productorului va fi reducerea imobilizrii la valoarea sa minim;
b) din punctul de vedere al beneficiarului, care dorind s fie satisfcut imediat, apreciaz
c trebuie s evite, n msura posibilitilor, rupturile de stoc. Obiectivul beneficiarului va fi
reducerea la minim a riscului de ruptur de stocuri.
Aceste dou puncte de vedere sunt contradictorii: riscurile de ruptur de stocuri nu sunt
reduse dect dac imobilizrile sunt foarte mari. Este deci necesar s se stabileasc un echilibru,
obiectivul conducerii stocului constnd n cutarea acestui echilibru.

191
110
Gestiunea stocurilor
1.2. Importana stocurilor n procesul de producie

Procesul de producie propriu-zis este supus n mod aleator unei sume de perturbaii cum ar
fi: instabilitatea personalului, prezena rebuturilor, existena timpilor mori datorai defectrii
utilajelor etc.
n felul acesta, producia devine un rezultat aleator al unei combinaii de fenomene care au
loc n conformitate cu legile probabilitii. Nici un proces de producie nu e fiabil dac este supus
direct aciunii perturbatoare a parametrilor ce apar n mod aleator. Este deci absolut necesar de a
elimina aceste influene directe, adic s se deconecteze sistemul de la fluctuaiile externe.
Elementul care asigur deconectarea i care joac rolul de tampon, de amortizor al variaiilor l
reprezint stocurile.
Ca proces economic complex, gestiunea stocurilor are o sfer larg de cuprindere, aceasta
incluznd att probleme de conducere, dimensionare, de optimizare a amplasrii stocurilor n
teritoriu, de repartizare a lor pe deintori, de formare i eviden a acestora, ct i probleme de
recepie, de depozitare i pstrare, de urmrire i control, de redistribuire i mod de utilizare.
Cu toate c stocurile sunt considerate resurse neactive, este necesar, n mod obiectiv, s se
recurg la constituirea de stocuri (de resurse materiale) bine dimensionate, pentru a se asigura
ritmicitatea produciei materiale i a consumului.
Obiectivitatea formrii de stocuri este justificat de aciunea mai multor factori care le
condiioneaz existena i nivelul de formare, le stabilizeaz funcia i scopul constituirii. ntre
acetia amintim:








contradicia dintre specializarea produciei i caracterul nespecializat al cererii;
diferena spaial dintre producie i consum;
caracterul sezonier al produciei sau al consumului; pentru majoritatea produselor producia
este continu, n timp ce consumul este sezonier; la produsele agricole situaia este invers;
periodicitatea produciei i consumului, a transportului;
necesitatea condiionrii materialelor naintea intrrii lor n consum;
punerea la adpost fa de dereglrile n procesul de aprovizionare-transport sau fa de
factorii de for major (stare de necesitate, calamiti naturale, seisme, caracterul deficitar
al resurselor);
necesitatea executrii unor operaii specifice pentru a nlesni procesul de livrare sau consum
al materialelor (recepie, sortare, marcare, ambalare dezambalare, formarea loturilor de
livrare, pregtirea materialelor pentru consum .a.m.d.);
necesitatea eficientizrii procesului de transport etc.

innd seama de aceast dubl influen a procesului de stocare, este necesar gsirea de
modele i metode n vederea formrii unor stocuri, care prin volum i structur, s asigure
desfurarea normal a activitii din economie, dar n condiiile unor stocri minim necesare i a
unor cheltuieli ct mai mici.
Rolul determinant al stocurilor este evideniat de faptul c acestea asigur certitudine,
siguran i garanie n alimentarea continu a produciei i ritmicitatea desfacerii rezultatelor
acesteia. Altfel spus, procesul de stocare apare ca un regulator al ritmului aprovizionrilor cu cel al
produciei, iar stocul reprezint acel tampon inevitabil care asigur sincronizarea cererilor pentru
consum cu momentele de furnizare a resurselor materiale.
Alte motive pentru crearea stocurilor ar putea fi:
investirea unei pri din capital n stocuri pentru a reduce cheltuielile de organizare;
capitalul investit n stocuri e uor de evideniat;
asigurarea desfurrii nentrerupte a procesului de producie;
asigurarea unor comenzi de aprovizionare la nivelul consumului imediat nu este
ntotdeauna posibil i eficient din punct de vedere economic;
192
111
Bazele cercetrii operaionale
comenzile onorate de ctre furnizorii din alte localiti nu pot fi introduse imediat n
procesul de fabricaie;
anticiparea unei creteri a preurilor (exceptnd speculaiile) etc.

1.3. Tipuri de stocuri

n cadrul gamei foarte largi de stocuri, se disting cu deosebire:
A. din punct de vedere al produciei stocurile pot fi de trei feluri:
a) cel de materii prime i materiale destinat consumului unitilor de producie; este vorba
de stocul de producie, stoc n amonte;
b) cel de produse finite, destinate livrrii ctre beneficiari; este vorba de stocul de
desfacere, stoc n aval;
c) cel destinat asigurrii funcionrii continue a unor maini sau a unor linii de fabricaie;
este vorba de stocul interoperaional.
Ponderea cea mai mare o deine stocul de producie.
B. din punct de vedere al rolului jucat pe plan economic stocurile pot fi:
a) stocuri cu rol de regulator; au ca rol reglarea fluxurilor de intrare i de ieire ale
produselor ntre dou stadii succesive ale procesului tehnologic;
b) stocuri cu rol strategic; sunt formate din piese sau din subansamble folosite de serviciul
de ntreinere , necesare nlocuirii rapide a lor n caz de avarie la instalaiile vitale ale
ntreprinderii;
c) stocuri speculative; sunt mai puin legate de activitatea agenilor economici i se refer
n general la produse i materiale rare, a cror valoare nu este fluctuant.
C. Din punct de vedere al modului de depozitare, care ine seama i de unele proprieti
fizico-chimice ale elementelor. Aa avem: produse periculoase, voluminoase, fragile etc.
D. Din punct de vedere al modului de gestionare avem:
a) stocuri cu gestiune normal;
b) stocuri cu afectare direct (comandate special pentru o anume comand);
c) stocuri fr gestiune (din magaziile intermediare, cu o supraveghe-re global);
d) stocuri de produse consumabile;
E. Din punct de vedere al caracteristicilor formrii i destinaiei lor stocurile pot fi:
a) stoc curent;
b) stoc de siguran;
c) stoc de pregtire sau de condiionare;
d) stoc pentru transport intern;
e) stoc de iarn;

1.4. Obiective i rezultate ale gestiunii tiinifice a stocurilor

Avnd n vedere particularitile diferitelor procese de stocare, activitatea de conducere a
acestora are totui unele trsturi comune; aa de pild, orice proces de stocare necesit prevederea
desfurrii lui i a condiiilor n care urmeaz a se efectua.
Formarea stocurilor este predeterminat de o anumit comand, iar desfurarea procesului
de stocare poate avea loc n baza organizrii sale raionale. Realizarea n condiii de eficien
economic maxim i de utilitate impune o coordonare permanent a procesului de stocare i un
control sistematic al modului de derulare al acestuia.
Obiectivele principale ale conducerii proceselor de stocare pot fi sintetizate astfel:
asigurarea unor stocuri minim necesare, asortate, care s asigure desfurarea normal a
activitii economico-productive a agenilor economici prin alimentarea continu a
punctelor de consum i n condiiile unor cheltuieli ct mai mici;
prevenirea formrii de stocuri supranormative, cu micare lent sau fr micare i
valorificarea operativ a celor existente (devenite disponibile);
193
112
Gestiunea stocurilor
asigurarea unor condiii de depozitare-pstrare corespunztoare n vederea prevenirii
degradrilor de materiale existente n stocuri;
folosirea unui sistem informaional simplu, operativ, eficient, util i cuprinztor care s
evidenieze n orice moment starea procesului de stocare;
aplicarea unor metode eficiente de urmrire i control care s permit meninerea stocului
n anumite limite, s previn imobilizrile neraionale.
Soluionarea oricrei probleme de stoc trebuie s conduc la obinerea rspunsului pentru
urmtoarele dou chestiuni (i care constituie de fapt obiectivele principale ale gestiunii):
1) determinarea mrimii optime a comenzii de aprovizionare;
2) determinarea momentului (sau frecvenei) optime de aprovizionare.
Desigur, pentru unele probleme particulare (de exemplu cele statice) este suficient un singur
rspuns i anume la prima problem.
Se realizeaz urmtoarele deziderate:
reducerea frecvenei fenomenului de rupere a stocului i prin aceasta satisfacerea n mai
bune condiii a cererii ctre beneficiari;
reducerea cheltuielilor de depozitare;
mrirea vitezei de rotaie a fondurilor circulante ale agenilor economici;
reducerea imobilizrilor de fonduri bneti;
reducerea unor riscuri inerente oricrui proces de stocare;
obinerea de economii la nivelul cheltuielilor generale ale ntreprinderii (de exemplu, la
produsele cu o durat de depozitare a stocului de materii prime mai mare dect durata
ciclului de fabricaie);
descoperirea i valorificarea rezervelor interne etc.

1.5. Elementele principale ale unui proces de stocare

Stabilirea politicii de gestiune a stocurilor este nemijlocit legat de cunoaterea elementelor
prin care se caracterizeaz procesele de stocare i care determin nivelul de formare al stocurilor:
A. CEREREA DE CONSUM, element de baz n funcie de care se determin nivelul i
ritmul ieirilor, volumul i ritmul necesar pentru intrri i nivelul stocului. Cererea de consum
reprezint numrul de produse solicitate n unitatea de timp. Acest numr nu coincide ntotdeauna
cu cantitatea vndut deoarece unele cereri pot rmne nesatisfcute datorit deficitului n stoc sau
ntrzierilor n livrare. Evident, dac cererea poate fi satisfcut n ntregime, ea reprezint
cantitatea vndut.
Dup natura ei, cererea poate fi:
a) determinat - cererea pentru o perioad e cunoscut i poate fi constant pentru toate
perioadele sau variabil pentru diferite perioade;
b) probabilist - cererea e de mrime sau frecven necunoscute, dar previzibile i
reprezentat printr-o repartiie de probabilitate dat. Caracteristicile i tipul cererii se stabilesc pe
baz de observaii, prin studii asupra perioadelor trecute. Stabilirea caracteristicilor i tipului de
cerere pe baza observaiilor, prin studii asupra perioadelor trecute, nu este satisfctoare, din cel
puin dou motive:
- presupunnd c i n viitor cererea ar urma aceeai repartiie de probabilitate ca n
perioadele trecute, parametrii ei nu se menin ntotdeauna;
- se exclude posibilitatea influenei unor fluctuaii sezoniere asupra cererii.
Cererea probabilist poate fi stabil din punct de vedere statistic sau nestabil din punct de
vedere statistic (sezonier).
c) necunoscut - cererea pentru care nu dispunem nici de datele necesare stabilirii unei
repartiii de probabilitate (este cazul, de exemplu, al produselor noi).
B.COSTURILE reprezint cheltuielile ce trebuie efectuate pentru derularea procesului de
aprovizionare-stocare (respectiv cele cu comandarea, contractarea, transportul, depozitarea, stocarea
materialelor etc.).
194
113
Bazele cercetrii operaionale
n calculul stocurilor se au n vedere:
a) Costurile de stocare care cuprind suma cheltuielilor ce trebuie efectuate pe timpul
staionrii resurselor materiale n stoc i anume:
- cheltuieli cu primirea-recepia;
- cheltuieli de transport intern;
- cheltuieli de manipulare, care cuprind costul forei de munc nece-sare pentru
deplasarea stocurilor, a macaralelor, crucioarelor, elevatoarelor i a celorlalte utilaje
necesare n acest scop;
- cheltuieli de depozitare propriu-zis: chiria spaiului de depozitare sau amortizrile, n
cazul unui spaiu propriu;
- cheltuieli de conservare;
- cheltuieli cu paza;
- cheltuieli de eviden care apar datorit faptului c stocurile sunt practic inutilizabile
fr o eviden bine pus la punct, care s ne spun dac produsul necesar se gsete
sau nu n stoc;
- cheltuieli administrative;
- impozite i asigurri;
- cheltuieli datorate deprecierii, deteriorrii, uzurii morale care sunt caracteristice pentru
produsele la mod sau pentru cele care se modific chimic n timpul stocrii (alimente, de
exemplu); la care se adaug costul capitalului investit; acest cost reprezint un anumit procent din
capitalul investit, ns determinarea cifrei exacte necesit o analiz atent. Procentul exact depinde,
n primul rnd de ce alte utilizri ce se pot gsi pentru capitalul imobilizat n stocuri.
Capitalul investit n stoc este neproductiv, costul su este dat de mrimea beneficiului ce s-ar
putea obine dac acest capital ar fi fost investit ntr-un mod productiv sau de dobnda ce trebuie
pltit dac ar fi fost mprumutat.
Costul stocrii depinde de mrimea stocului i durata stocrii. Aceste cheltuieli se pot grupa
dup cum urmeaz:
- cheltuieli constante pentru durata total a procesului de gestiune (amortismentul cldirii,
cheltuieli pentru ntreinerea depozitului, iluminat, nclzit etc.;
- cheltuieli variabile proporionale cu cantitatea depozitat i cu durata depozitrii (deci cu
stocul mediu), exprimate prin dobnda pentru fondurile imobilizate n stoc;
- cheltuieli variabile neproporionale cu mrimea lotului (salarii ale forei de munc, pierderi
datorate uzurii reale i demodrii, cheltuieli pentru chirie etc.) i cu durata de stocare.
La cheltuielile de existen a stocului n depozit, prezentate mai sus, se pot aduga i
cheltuielile pentru surplus de stoc (excedent), care intervin atunci cnd, dup satisfacerea cererii,
rmne o anumit cantitate nevndut (de exemplu, desfacerea unor articole de sezon). n modelele
dinamice unde se lanseaz mai multe comenzi n timpul unui sezon, penalizarea pentru surplus se
ataeaz numai ultimei comenzi nedesfcute complet.
b) Costul de penurie sau costul ruperii stocului este definit atunci cnd volumul cererii
depete stocul existent. Referitor la acest stoc, exist trei situaii. Prima apare atunci cnd stocul
(de materii prime sau semifabricate) este nul la primirea comenzii i firma se reaprovizioneaz de
urgen pentru a produce cantitile solicitate.
Componentele cheltuielilor de penurie sunt, n acest caz, urmtoarele:
- cheltuieli suplimentare pentru satisfacerea cererii n condiii neobinuite;
- penalizri primite de ctre firm din partea beneficiarului, dac termenele de livrare
prevzute n contracte nu se respect;
- cheltuieli suplimentare pentru manipulare, ambalare, expediie etc.
A doua situaie are loc atunci cnd desfacerea nu se poate realiza (pierderea beneficiarului)
din cauza nelivrrii imediate a unui articol. Estimarea cheltuielilor de penurie este aici destul de
dificil i adesea imposibil.
A treia, i cea mai dificil, apare atunci cnd firma este n lips de materii prime (sau piese
de schimb) ce afecteaz ntregul proces de producie, cu toate consecinele sale, reflectate n penali-
195
114
Gestiunea stocurilor
zri i uneori chiar n costul produciei care ar fi rezultat n timpul stagnrii.
c) Cheltuieli datorate variaiilor ritmului de producie. Din aceast categorie fac parte:
- cheltuielile fixe legate de creterea ritmului de producie, de la nivelul zero, la un
anumit nivel dat. Dac este vorba de achiziii, aici vor intra cheltuielile administrative
legate de lansarea comenzilor;
- cheltuieli de lansare care includ toate cheltuielile care se fac cu: ntocmirea comenzii,
trimiterea acesteia la furnizor, pregtirea livrrii unei partizi de materiale, cheltuieli de
transport a lotului, deplasrii la furnizori, telefoane, pot etc.; n general aceste
cheltuieli sunt fixe pentru o comand.
- cheltuieli legate de angajarea i instruirea unui personal suplimentar sau de concediere a
unor salariai.
d) Preul de achiziie sau cheltuielile directe de producie. Preurile pe unitatea de produs
pot depinde de cantitatea achiziionat, dac se acord anumite reduceri de pre n funcie de
mrimea comenzii. Cheltuielile de producie pe unitatea de produs pot fi i ele mai sczute, datorit
unei eficiene superioare a muncitorilor i mainilor ntr-o producie de serie mare.
C) CANTITATEA DE REAPROVIZIONAT reprezint necesarul de aprovizionat care se
stabilete n funcie de necesarul pentru consum pentru ntreaga perioad de gestiune.
Cantitatea de aprovizionat (cantitatea intrat n stoc) poate fi din producia proprie sau
obinut prin alte mijloace i se poate referii la fiecare resurs separat sau la ansamblul lor.
Aceast cantitate e limitat de capacitile de depozitare.
D) LOTUL reprezint cantitatea cu care se face aprovizionarea la anumite intervale n cadrul
perioadei de gestiune stabilit (trimestru, semestru, an) i care este n funcie de caracterul cererii.
E) PARAMETRII TEMPORALI sunt specifici dinamicii proceselor de stocare. Acetia
sunt:
a) perioada de gestiune - determin i orizontul procesului de gestiune. De obicei se
consider a fi un an;
b) intervalul de timp ntre dou aprovizionri consecutive;
c) durata de reaprovizionare - reprezint timpul ce se scurge din momentul calendaristic
la care s-a emis comanda de reaprovizionare pn la sosirea n ntreprindere a cantitii de
reaprovizionat;
d) momentul calendaristic la care se emit comenzile de reaprovi-zionare. (data de
reaprovizionare);
e) coeficientul de actualizare.
Dac n modelele probabiliste folosirea tuturor parametrilor temporali este obligatorie, unii
dintre ei (de exemplu, durata de reaprovizionare sau data de reaprovizionare) nu prezint nici o
importan n modelele deterministe. De asemenea durata de aprovizionare poate fi o constant sau
o variabil aleatoare, determinnd n baza legturii pe care o are cu volumul i frecvena cererii,
cheltuielile de penurie.
F) GRADUL DE PRELUCRARE A PRODUSELOR. Cu ct bunurile pstrate n stoc
sunt ntr-un stadiu mai avansat de finisare, cu att mai repede pot fi satisfcute comenzile, dar cu
att mai mari vor fi cheltuielile de stocare. Cu ct produsele sunt mai puin finisate (cazul limit l
constituie materia prim), cu att mai mici sunt cheltuielile de stocare, dar timpul necesar pentru
livrarea unei comenzi este mai mare. n plus, erorile de previziune tind s creasc pe msur ce
gradul de prelucrare a produselor este mai avansat; pentru a reduce influena factorilor nefavorabili
este necesar de aceea s creasc i stocul tampon. Numrul tipurilor de produse ce trebuie stocate
crete rapid, pe msur ce gradul de finisare este mai avansat.
Variabilele care influeneaz stocurile sunt de dou feluri:
variabile controlabile: cantitatea intrat n stoc, frecvena sau momentul achiziiilor,
gradul de prelucrare a produselor;
variabile necontrolabile: costurile, cererea, durata de reaprovizionare, cantitatea
livrat.

196
115
Bazele cercetrii operaionale

2. Modele de gestiune a stocurilor

2.1. Modelul Willson

Ipotezele modelului:

1. cerere constant n timp (cereri egale pe intervale egale de timp);
2. perioad fix de aprovizionare (aprovizionarea se face la intervale egale de timp);
3. cantiti egale de aprovizionare;
4. aprovizionarea se face n momentul n care stocul devine 0 (nu se admit intervale de timp
pe care stocul s fie 0);
5. aprovizionarea se face instantaneu (durata dintre momentul lansrii comenzii i intrarea
mrfii n depozit este zero)


Datele modelului:

T = perioada total de timp pe care se studiaz stocarea;
N = cererea total pe perioada T;
c
s
= costul unitar de stocare (costul stocrii unei uniti de marf pe o unitate de timp)
c
l
= costul lansrii unei comenzi


Variabilele modelului:

= intervalul dintre dou aprovizionri succesive;
n = cantitatea comandat i adus la fiecare aprovizionare;
s(t) = nivelul stocului din depozit la momentul t


Obiectivul modelului

minimizarea costului total de aprovizionare C
T



Relaiile dintre mrimile modelului

Ipoteza 1
T
N n
=

= cererea pe unitatea de timp s(t) = liniar


Ipoteza 2 acelai ntre oricare dou comenzi
Ipoteza 3 n acelai pentru toate comenzile
Ipoteza 4 s(t) 0 pentru orice t
Ipoteza 5 la sfritul unei perioade s(t) are un salt de la 0 la n


Rezolvare

Situaia de mai sus poate fi vizualizat prin trasarea graficului variaiei stocului n timp:


197
116
Gestiunea stocurilor

Figura 1
s(t)
T
N
n
















n figura 1 a fost reprezentat evoluia stocului, dac toat cantitatea necesar ar fi adus la
nceputul perioadei (graficul de deasupra) sau dac s-ar aduce cte n uniti din n uniti de
timp (graficul de jos). Se observ c evoluia este periodic, de perioad . n concluzie vom calcula
costul total cu aprovizionarea calculnd costul pe o perioad i nmulind apoi cu numrul de
perioade:

pe o perioad avem o lansare, deci un cost c
l
i cheltuieli de stocare pe o durat , stocul
variind liniar de la n la 0. Din acest motiv costul cu stocarea va fi: c
s

2
n
(n general
costul de stocare se calculeaz cu formula ( )


0
dt t s
S
c ).
numrul de perioade este egal cu

T
n
N
=
costul total cu aprovizionarea va fi C
T
= (c
l
+ c
s

2
n
)
n
N


n concluzie rezolvarea problemei se reduce la a gsi minimul funciei:

C
T
(n,) = (c
l
+ c
s

2
n
)
n
N


dac variabilele n i verific

T
n
N
= i n i sunt strict pozitive i n (0,N], (0,T]. Pentru
rezolvare vom scoate pe n funcie de n din relaia

T
n
N
= :
= n
N
T

i nlocuim n expresia costului total cu aprovizionarea obinnd:

C
T
(n) = (c
l
+ c
s

2
n
n
N
T
)
n
N
= n
T c
n
N
S
l
c

+
2
1


198
117
Bazele cercetrii operaionale
Cei doi termeni n care a fost separat costul total reprezint cheltuielile totale cu lansrile
respectiv cheltuielile totale cu stocarea, observndu-se c primele sunt descresctoare n n iar
celelalte liniar cresctoare. n concluzie, dac vom aduce toat cantitatea ntr-o singur tran vor fi
foarte mari costurile de stocare iar dac vom aduce de foarte multe ori cte foarte puin vor fi foarte
mari cheltuielile cu lansarea. Soluia optim n
*
va fi deci foarte probabil undeva ntre 0 i N. Pentru
a o determina facem tabloul de variaie al costului total n funcie de n pe intervalul (0,N].
Calculm derivata costului total:

2
C
2
T
T c
n
N c
S l

+

= care are zerourile: n


1,2
=
T c
N c
S
l

2


n
1
= ( | N
T c
N c
S
l
, 0
2



n
2
= ( |
2
2
, 0
2 T N
c
c
N
T c
N c
N
T c
N c
S
l
S
l
S
l




n concluzie:

a) dac
2
T N
c
c
S
l

adic dac costul de lansare este de mai mult de
2
T N
ori mai mare
dect costul de stocare tabloul de variaie va fi:
n 0 N
C
T
(n) - - - - - -
C
T
(n)

2
N T
c
S l
c

+

i deci se va face o singur aprovizionare la nceputul perioadei T n care se va aduce toat
cantitatea N, costul total fiind de
2
N T
c c
S l

+ .
b) dac
2
T N
c
c
S
l

< obinem tabloul:
n
0
T c
N c
S
l

2
N
C
T
(n) - - - - - 0 + + + +
C
T
(n) N T c c
S l
2

n concluzie se vor face
l
S
c
N T c
n
N


=
2
aprovizionri la intervale de t
opt
=
N c
T c
S
l

2
n
care se va aduce cte n
opt
=
T c
N c
S
l

2
, variant prin care se va face aprovizionarea cu costul
total minim posibil:
C
T
= N T c c
S l
2

Obs. Dac nu se accept dect soluii n numere ntregi pentru n sau t se va calcula costul
pentru:
199
118
Gestiunea stocurilor

n =
(
(


T c
N c
S
l
2
i n =
(
(


T c
N c
S
l
2
+ 1
t =
(
(


N c
T c
S
l
2
i t =
(
(


N c
T c
S
l
2
+ 1

alegndu-se dintre toate variantele cea mai ieftin. ( [x] = partea ntreag lui x).


2.2. Modelul Willson cu ruptur de stoc

Ipotezele modelului:

1. cerere constant n timp (cereri egale pe intervale egale de timp);
2. perioad fix de aprovizionare (aprovizionarea se face la intervale egale de timp);
3. cantiti egale de aprovizionare;
4. aprovizionarea nu se face n momentul n care stocul devine 0, admindu-se scurgerea
unui interval de timp n care depozitul va fi gol i cererea nu va fi satisfcut;
5. aprovizionarea se face instantaneu (durata dintre momentul lansrii comenzii i intrarea
mrfii n depozit este zero)


Datele modelului:

T = perioada total de timp pe care se studiaz stocarea;
N = cererea total pe perioada T;
c
s
= costul unitar de stocare (costul stocrii unei uniti de marf pe o unitate de timp)
c
l
= costul lansrii unei comenzi
c
p
= costul unitar de penalizare (pierderea cauzat de nesatisfacerea unei uniti din
cerere timp de o zi)


Variabilele modelului:

= intervalul dintre dou aprovizionri succesive;

1
= durata de timp n care n depozit se afl marf;

2
= durata de timp n care n depozitul este gol;
n = cantitatea comandat i adus la fiecare aprovizionare;
s = cantitatea maxim de marf aflat n depozit;
s(t) = nivelul stocului din depozit la momentul t


Obiectivul modelului

minimizarea costului total de aprovizionare C
T






200
119
Bazele cercetrii operaionale

n

2
Figura 2
s(t)
T

s
N
















Relaiile dintre mrimile modelului

Ipoteza 1
T
N n
1
= =

s
= cererea pe unitatea de timp s(t) = liniar
Ipoteza 2 ,
1
,
2
, aceiai ntre oricare dou comenzi i =
1
+
2
.
Ipoteza 3 n, s aceiai pentru toate comenzile.
Ipoteza 4 pe intervalul
2
depozitul este gol (deci stocul zero); totui graficul a fost
desenat n prelungirea perioadei
1
(deci cu valori negative) deoarece n
aceast perioad se presupune c cererea este aceeai ca n perioadele n care
exist marf n depozit, nivelul cererii nesatisfcute fiind privit ca stocul care
s-ar fi consumat dac aveam marf n depozit.
Ipoteza 5 la sfritul unei perioade este livrat instantaneu cantitatea n s n contul
cererii nesatisfcute n perioada
2
i introdus n depozit cantitatea s.


Rezolvare
Situaia de mai sus poate fi vizualizat prin trasarea graficului variaiei stocului n timp din
figura 2:
n figur a fost reprezentat evoluia stocului dac toat cantitatea necesar ar fi adus la
nceputul perioadei (graficul de deasupra) sau dac s-ar aduce cte n uniti din n uniti de
timp (graficul de jos). Se observ c evoluia este periodic, de perioad . n concluzie vom calcula
costul total cu aprovizionarea calculnd costul pe o perioad i nmulind apoi cu numrul de
perioade:

pe o perioad avem o lansare, deci un cost c
l
, cheltuieli de stocare pe o durat
1
, stocul
variind liniar de la s la 0 i cheltuieli de penalizare, cererea neonorat variind liniar de la
0 la n - s. Din acest motiv costul cu stocarea va fi: c
s

2
s

1
iar costul de penalizare va
fi: c
p

2
s - n


2
(n general costul de penalizare, ca i cel de stocare, se calculeaz cu
formula ( )

0
dt t s c
p
).
201
120
Gestiunea stocurilor
numrul de perioade este egal cu

T
n
N
=
costul total cu aprovizionarea va fi C
T
= (c
l
+ c
s

2
s

1
+ c
p

2
s - n

2
)
n
N


n concluzie rezolvarea problemei se reduce la a gsi minimul funciei:

C
T
(n,s,,
1
,
2
) = (c
l
+ c
s

2
s

1
+ c
p

2
s - n

2
)
n
N


unde variabilele n, s, ,
1
i
2
verific urmtoarele condiii i relaii:

Condiii Relaii

1. 0 < n N
2. 0 s n
3. 0 < T
4. 0
1

5. 0
2



1.
1
+
2
=
2.
T
N n
=


3.
2 1
s

s n
=

n concluzie, din cele 5 variabile doar dou sunt independente i din cele trei relaii vom
scoate trei dintre ele ca fiind variabile secundare n funcie de celelalte dou ca fiind principale. Fie
cele dou variabile principale n i s. n acest caz avem rezolvnd sistemul de relaii:

1
=
N
T
s

2
= ( )
N
T
s - n
=
N
T
n

Acestea se nlocuiesc n expresia costului total i obinem n final o problem de minim a
unei cu dou variabile:

s n,
min C
T
(n,s) = (c
l
+ c
s

2
s

N
T
s + c
p

2
s - n
( )
N
T
s - n )
n
N

unde 0 < n N i 0 s n.

Pentru rezolvare vom calcula derivatele pariale ale funciei C
T
(n,s) pe domeniul D = {(n,s)/
0 < n N i 0 s n}. Obinem:

( )
n
s n, C
T

= c
p
(n s)
n
T
- [c
l
+
2
1
c
s
s
2

N
T
+
2
1
c
p
(n s)
2

N
T
]
2
n
N

( )
s
s n, C
T

= [(c
s
+ c
p
)s - c
p
n]
n
T


202
121
Bazele cercetrii operaionale
Rezolvm sistemul:
( )
( )

0
s
s n, C
0
n
s n, C
T
T
scondu-l pe s n funcie de n din a doua ecuaie (s =
p s
p
c c
c
+
n) i nlocuindu-l n prima obinnd:
2
1

p s
p s
c c
c c
+
T - c
l

2
n
N
= 0 de unde rezult n
2
=
( )
T
N
c c
c c c 2
p s
p s l

+
i n final unica soluie pozitiv: n
0
=
p
p s
s
l
c
c c
T c
N c 2
+


i s
0
=
p s
p
s
l
c c
c
T c
N c 2
+


. Aceast soluie este soluia optim doar dac 0 < n
0
N i sunt ndeplinite
condiiile de ordinul 2:
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )

>
|
|
.
|

\
|

>

>

0 s , n
s n
s n, C
s , n
s
s n, C
s , n
n
s n, C
0 s , n
s
s n, C
, 0 s , n
n
s n, C
2
0 0
T
2
0 0
2
T
2
0 0
2
T
2
0 0
2
T
2
0 0
2
T
2

Evident n
0
> 0 i avem:
( )
(
0 0
2
T
2
s , n
s
s n, C

) = (c
s
+ c
p
)
0
n
T
> 0
( )
( )
0 0
2
T
2
s , n
n
s n, C

= ( )
3
0
2
0 p s l
n
N
N
T
s c c c 2
(

+ + > 0

( )
( )
( )
( )
( )
( )
2
0 0
T
2
0 0
2
T
2
0 0
2
T
2
s , n
s n
s n, C
s , n
s
s n, C
s , n
n
s n, C
|
|
.
|

\
|

=
( )
4
0
p s l
n
N T c c c 2 +
> 0
n
0
N este echivalent cu:
p s
p
s
l
c c
c
c
c 2
+

NT.
n concluzie, dac
p s
p
s
l
c c
c
c
c 2
+

NT atunci problema admite soluia optim:


n
0
=
p
p s
s
l
c
c c
T c
N c 2
+



s
0
=
p s
p
s
l
c c
c
T c
N c 2
+

1
=
p s
p
s
l
c c
c
N c
T c 2
+

2
=
|
|
.
|

\
|
+


p s
p
p
p s
s
l
c c
c
c
c c
N c
T c 2

=
p
p s
s
l
c
c c
N c
T c 2
+



C
T maxim
= C
T
(n
0
,s
0
) = N T c c
S l
2
p s
p
c c
c
+

203
122
Gestiunea stocurilor

Expresia =
p s
p
c c
c
+
msoar intensitatea lipsei de stoc i din expresia lui C
T maxim
se
observ c admiterea lipsei de stoc duce la micorarea costului total cu stocarea, explicaia constnd
n micorarea numrului de lansri pentru c, dei c
p
este mult mai mare dect c
s
, c
l
este i mai mare
dect c
p
. Dac c
p
este mult mai mare dect c
s
( 0
c
c
p
s
) atunci se obin aceleai soluii ca n modelul
Willson fr ruptur de stoc.
Dac
p s
p
s
l
c c
c
c
c 2
+

> NT atunci se va face o singur lansare (deci n


0
= N) i vom avea s
0
=
n
0
,
1
= = T i
0
= 0 iar C
T
= c
l
+ c
s

2
N
T exact ca i n modelul Willson fr ruptur de stoc.

2.3. Generalizri ale modelului Willson

n practic ipoteza c c
s
(costul unitar)

este acelai, indiferent de cantitatea stocat, nu este n
general ndeplinit dect pentru variaii mici ale stocului sau ale duratei de stocare, fiind mult mai
realist ipoteza c acesta depinde (invers proporional) de cantitatea stocat s, de durata de stocare
(direct sau invers proporional) etc, dependenele fiind exprimate prin funcii mai mult sau mai
puin complicate. Aceleai consideraii sunt valabile i pentru c
p
(dependent de mrimea cererii
neonorate sau mrimea ntrzierilor). n concluzie putem imagina modele n care: c
s
= f(s,t
s
) i/sau
c
p
= f(p,t
p
) unde am notat cu:
s = cantitatea stocat
t
s
= durata de stocare
p = cererea neonorat
t
p
= durata ntrzierii onorrii cererii

sau i mai complicate, neexistnd evident limite n acest sens. Motivele care ne oprete totui n a
discuta teoretic aceste modele sunt urmtoarele:

orice complicare a modelelor anterioare duce la ecuaii matematice complicate, ale cror
soluii nu mai pot fi scrise cu operatorii matematici obinuii (de exemplu, chiar dac am
presupune c unul singur dintre c
s
sau c
p
este funcie liniar n variabilele expuse mai sus
s-ar ajunge n rezolvare la ecuaii de gradul patru ale cror soluii ncap pe o foaie
ntreag (cititorul poate ncerca singur analiza acestor variante); ele ar fi practic de
nefolosit i oricum scopul studierii gestiunii stocurilor nu este gsirea unor modele ct
mai impuntoare;
aceste modele mai complicate pot aprea i pot fi aplicate evident n practic, existnd
algoritmi matematici de rezolvare (cel puin aproximativi) pentru orice model matematic,
dar acesta ar fi doar un pur calcul matematic;
modelele mai complicate nu ar aduga nimic ideii teoretice, desprinse din modelul
Willson clasic, c n orice model de stocare exist ntotdeauna dou tipuri de costuri,
indiferent de variabilele de decizie i anume: unele direct proporionale i celelalte invers
proporionale cu variabilele de decizie, fapt care face ca soluia s fie una de mijloc, i nu
o valoare extrem evident i deci banal.
n foarte multe cazuri un model de stocare presupune i multe alte variabile, care sunt de
obicei aleatoare, caz n care devine nerealizabil dorina de a gsi o soluie matematic
simpl. n aceste cazuri sunt chemate spre rezolvare alte ramuri ale analizei matematice i
economice, cum ar fi, de exemplu, simularea, algoritmii genetici etc.
204
123
Bazele cercetrii operaionale

2.4. Model de producie stocare

Presupunem c o unitate economic fabric un singur tip de produse cu un ritm al produciei
de produse n unitatea de timp pentru care are o cerere de N buci ntr-o perioad T. Presupunem
c T > N (adic dac ntreprinderea ar lucra non-stop ntreaga perioad T ar produce mai mult
dect ceea ce poate efectiv s vnd) motiv pentru care perioadele de producie sunt alternate cu
perioade de oprire a produciei astfel nct producia total s devin egal cu cererea total N.
Pentru simplificarea calculelor se va presupune c cererea este constant n timp, adic n fiecare
unitate de timp este egal cu =
T
N
. Deoarece > este evident c pe parcursul perioadelor de
producie se va acumula o cantitate de produse care trebuie stocate ntr-un depozit, acest stoc
epuizndu-se n perioadele n care producia este oprit. De asemenea este evident c oprirea i
repornirea produciei implic o serie de costuri. Pentru formalizarea modelului vom face i
urmtoarele ipoteze:
1. duratele ciclurilor de producie sunt egale ntre ele;
2. intervalele de staionare sunt egale ntre ele;
3. costul stocrii este direct proporional cu cantitatea stocat i durata stocrii cu un factor
de proporionalitate c
s
(costul unitar de stocare)
4. costul unei secvene oprire-pornire a produciei este acelai pentru toate secvenele;
5. se admite ruptura de stoc;
6. valoarea penalizrii este direct proporional cu mrimea cererii neonorate i cu durata
ntrzierii cu un factor de proporionalitate c
p
(costul unitar de penalizare)
Se cere n aceste condiii gsirea acelor intervale de producie i staionare care duc la un
cost total pe unitatea de timp minim.
Situaia de mai sus poate fi vizualizat foarte bine desennd graficul evoluiei stocului n
timp n figura 3.


L
i
c
h
i
d
a
r
e
a

d
e
f
i
c
i
t
u
l
u
i

n

p
a
r
a
l
e
l

c
u

s
a
t
i
s
f
a
c
e
r
e
a

c
e
r
e
r
i
i

c
u
r
e
n
t
e
Acumulare
de comenzi
neonorate

t
4
t
3
t
1
Formarea
stocului
t
2
Consumarea stocului

n
s
Ciclu de
producie
s(t)
T
N
Figura 3




















n acest desen am notat cu:

n = cantitatea produs peste cerere ntr-un ciclu de producie;
205
124
Gestiunea stocurilor
s = cantitatea maxim acumulat n depozit;
t
1
= intervalul de timp n care se formeaz stocul;
t
2
= intervalul de timp n care se epuizeaz stocul ca urmare a opririi produciei;
t
3
= intervalul de timp n care se acumuleaz comenzi neonorate ca urmare a faptului c
nu se produce i s-a epuizat stocul;
t
4
= intervalul de timp n care este lichidat deficitului n paralel cu satisfacerea cererii
curente.

Se observ c avem de-a face cu un fenomen ciclic n care o perioad poate fi aleas ca
intervalul dintre dou porniri succesive ale produciei. ntr-o perioad costul va fi format din:
costul unei secvene lansare-oprire a produciei c
l
;
cheltuieli de stocare pe intervalele t
1
i t
2
, c
s

2
s
(t
1
+ t
2
);
cheltuieli de penalizare pe intervalele t
3
i t
4
: c
p

2
s - n
(t
3
+ t
4
)

Costul total unitar va fi:
C
T
(n,s,t
1
,t
2
,t
3
,t
4
) =
( ) ( )
4 3 2 1
4 3 p 2 1 s l
t t t t
t t
2
s n
c t t
2
s
c c
+ + +
+

+ + +

i vom avea de rezolvat problema de minim cu legturi:

4 3 2 1
t , t , t , t s, n,
min
( ) ( )
4 3 2 1
4 3 p 2 1 s l
t t t t
t t
2
s n
c t t
2
s
c c
+ + +
+

+ + +

<
<
= =

= =

4 i 1 , t 0
n s 0
t
s
t
s n
t
s
t
s n
i
2 3
1 4




Pentru rezolvare vom scoatem din sistemul de restricii patru variabile n funcie de celelalte,
de exemplu variabilele n, s, t
1
i t
4
n funcie de t
2
i t
3
i le vom nlocui n C
T
.
Avem:
s = t
2

n = (t
2
+ t
3
)
t
1
=
2
t


t
4
=
3
t


i nlocuind n funcia obiectiv obinem:

C
T
(t
2
,t
3
) =
( ) ( )
( )
3 2
2
3 p
2
2 s l
t t 2
t c t c c 2
+
+ +




206
125
Bazele cercetrii operaionale
Se calculeaz ca i n modelul Willson cu ruptur de stoc derivatele pariale n t
2
i t
3
i din
condiia ca ele s se anuleze n punctul de minim obinem un sistem n t
2
i t
3
care are soluia:

t
2
=
( )
p s
p
s
l
c c
c
c
c 2
+


, t
3
=
( )
p s
s
p
l
c c
c
c
c 2
+



i n continuare:
t
1
=
( )
p s
s
p
l
c c
c
c
c 2
+



, t
4
=
( )
p s
p
s
l
c c
c
c
c 2
+




s =
( )
p s
p
s
l
c c
c
c
c 2
+


, n =
( )
( )
|
|
.
|

\
|
+
+

p
s
s
p
p s
l
c
c
c
c
c c
c 2



C
Tminim
=
p s
p
p s
c c
c
1 c c 2
+
|
|
.
|

\
|



Soluia de mai sus verific evident i celelalte restricii, deci este unica soluie optim.
Observaie Dac ritmul produciei este mult mai mare dect intensitatea cererii ( mult mai
mare dect sau echivalent spus 0

) se obine soluia din modelul Willson cu ruptur de stoc.




2.5. Model de gestiune cu preuri de achiziie sau cu cheltuieli de producie variabile

n modelul anterior, cu excepia cheltuielilor de lansare (presupuse fixe), cheltuielile de
producie erau ignorate. Acest lucru este valabil dac cheltuielile de producie pe unitatea de produs
nu variaz cu volumul produciei iar cererea este satisfcut n ntregime (sau, n modelele de
aprovizionare, cheltuielile de aprovizionare pe unitatea de produs nu variaz cu volumul comenzii).
Cheltuielile de producie depind de volumul produciei, notat cu q, i anume printr-o funcie
nedescresctoare f(q) care se anuleaz n origine i are un salt egal cu c
l
n aceasta, pentru cheltuieli
de lansare c
l
0 . Uneori funcia f(q) are i alte salturi care trebuie luate n consideraie cnd se
determin cantitatea optim q ce trebuie achiziionat (produs).
Caz 1 S presupunem acum c intensitatea cererii de produse este i s presupunem c
preul unitar al produsului este p cnd volumul comenzii este mai mic dect o cantitate Q i p' cnd
volumul comenzii este mai mare sau egal cu Q, cu p' < p.
Atunci f(q) are expresia:
f(q) =

+
< < +
=
Q q q p c
Q q 0 q p c
0 q 0
l
l

Dac presupunem c nu se admite neonorarea comenzilor i c aprovizionarea se face
instantaneu, atunci ne aflm n situaia de la modelul anterior n care t
1
= t
3
= t
4
= 0,
2
t
s
= i s = q.
Formula cheltuielilor medii pe unitatea de timp va deveni:
C
T
=
2
l 2 s
t
c t q c
2
1
+
= q c
2
1
s
+
q
c
l



207
126
Gestiunea stocurilor
Adugnd la acestea i cheltuielile unitare de producie
( )
2
t
q f
obinem:

C(q) =

+ +
< <

+ +
Q q
q
c
p q c
2
1
Q q 0
q
c
p q c
2
1
l
s
l
s



Pentru a calcula minimul acestei funcii vom calcula derivata:

C'(q) =
2
l
s
q
c
c
2
1


pentru q Q

care se anuleaz n q
0
=
s
l
c
c 2
. Punctul de minim este q
0
sau Q, punctul n care funcia nu e
continu. Rmne doar s mai comparm valorile funciei C(q) n q
0
i Q:

C(q
0
) =

+ +
< <

+ +
Q q
q
c
p q c
2
1
Q q 0
q
c
p q c
2
1
0
0
l
0 s
0
0
l
0 s



Dac q
0
< Q atunci soluia optim este q
0
iar dac q
0
> Q se compar valorile
0
l
0 s
q
c
p q c
2
1
+ +

i
Q
c
p Q c
2
1
l
s

+ +

.
Dac:
0
l
0 s
q
c
p q c
2
1
+ +

<
Q
c
p Q c
2
1
l
s

+ +

se alege q
0
altfel se alege Q.
Caz 2 S presupunem acum c intensitatea cererii de produse este i s presupunem c
preul unitar al produsului este p pentru primele Q produse i este cu p' mai mare pentru produsele
fabricate peste cantitatea Q.
Atunci f(q) are expresia:
f(q) =
( )

+ +
< < +
=
Q q Q - q p q p c
Q q 0 q p c
0 q 0
l
l
i vor rezulta cheltuielile totale n unitatea de timp:

C(q) =
( )


+ +
< <

+ +
Q q
q
Q c
p q c
2
1
Q q 0
q
c
p q c
2
1
l
s
l
s

p p

i n continuare se gsete soluia optim ca i la cazul 1.


208
127
Bazele cercetrii operaionale
2.6. Modele de gestiune cu cerere aleatoare

Presupunem c un produs este stocat ntr-un depozit intermediar, care este aprovizionat
dintr-un depozit mai mare la intervale egale de timp t. Se presupune c cererea pe un interval este
aleatoare cu o distribuie de probabilitate cunoscut din observaii statistice:

=

|

( ) ( ) ( )
|
|
.
|
\
L L
L L
n p 1 p 0 p
n 1 0
ea realizndu-se uniform pe fiecare interval.
Pentru simplificarea aprovizionrii se decide ca la fiecare aprovizionare s se aduc aceeai
cantitate de produse, care trebuie aleas astfel nct, n timp, s se minimizeze cheltuielile.
Cheltuielile legate de aprovizionare pot fi privite cel puin din dou puncte de vedere:

a) cu costuri de stocare i costuri de penalizare unitare

Presupunem c se cunosc cheltuielile unitate de stocare c
s
i cheltuielile unitare de
penalizare c
p
. Atunci, dac vom aduce de fiecare dat buci, vom avea ntr-o perioad cu cererea
doar cheltuieli cu stocarea iar ntr-o perioad cu > att cheltuieli cu stocarea ct i
penalizri.
Dac evoluia stocului va fi cea din figura 4a) i costul unitar de stocare va fi:
C(,) =
( )
|
.
|

\
|
=

2
c
2
c
s
s


t
t

iar dac > evoluia stocului va fi cea din figura 4b) i costul unitar de stocare va fi:
C(,) =
2 1
2 p 1 s
2
c
2
c
t t
t t
+

+


unde
2 1
t t

= . nlocuind t
1
n funcie de t
2
din aceast relaie n expresia costului unitar vom
obine:
C(,) = c
s

2
2
+ c
p

( )


2
2


















Figura 4
b)
a)
t
1
t
2


t


t
209
128
Gestiunea stocurilor


n concluzie, pentru o valoare aleas a lui costul mediu va fi o variabil aleatoare cu
aceleai probabiliti ale evenimentelor ca i cererea :

C() =
( )
( ) ( ) ( )
|
|
|
.
|

\
|

+
|
.
|

\
|



p p p
2
c
2
c
2
c
2
c
2
p
2
s s s
L L
L L


Al alege pe acel astfel nct, n timp, s se minimizeze cheltuielile este echivalent cu a gsi
acel pentru care media variabilei aleatoare C() este minim.
Avem:
( ) C = ( ) ( )
( )
( )

+ + =

+ +
|
.
|

\
|

1
2
p
1
2
s
0
p
2
c p
2
c p
2
s
c



unde R i valorile ( ) C formeaz un ir real. Pentru a gsi minimul acestui ir observm c
funcia cu valori reale ( ) C este o funcie de gradul doi cu coeficientul lui
2
pozitiv, deci are un
singur punct de minim local, care este i global i deci valoarea ntreag care d minimul lui
( ) C este cea care ndeplinete simultan relaiile:

( ) 1 C > ( ) C < ( ) 1 C +

sistem care, dup efectuarea unor calcule simplificatoare, este echivalent cu:

L( - 1) < < L()
unde:
L() = p( ) +
( )

+
|
.
|
\
+
1
p
2
1

|
iar =
p s
p
c c
c
+
.
Practic, pentru gsirea lui vom calcula toate valorile lui L() ntr-un tabel ca cel de mai
jos i vom alege acel pentru care se obine valoarea lui L() imediat superioar lui .

p() p( )
2
1
+
( )

p

( )

+ 1
p


( )

+
|
.
|

\
|
+
1
p
2
1


L()
0
1
2
M
0
1
2
M
p(0)
p(1)
p(2)
M


n final, pentru
0
gsit, se calculeaz costul mediu minim ( )
0
C

Generalizri

210
Caz 1 Sunt situaii n care cererea de produse se poate situa ntr-un interval foarte mare
(produse de valoare mic), caz n care calcularea probabilitilor pentru fiecare valoare a cererii ar
cere un efort prea mare, acesta nefiind justificat i prin faptul c probabilitatea pentru o anumit
cerere este practic aceeai pentru un ntreg interval de valori din vecintatea acesteia. Din acest
motiv se mpart valorile cererii n intervale egale, se presupune c cererile din fiecare interval au
129
Bazele cercetrii operaionale
aceeai probabilitate de manifestare i vom avea de estimat doar attea probabiliti cte intervale
posibile exist (sau se presupune c numai anumite valori ale cererii sunt posibile, de exemplu
mijloacele acestor intervale).
Cererea este o variabil aleatoare de forma:

=
| ) | ) ( ) | )
|
|
.
|
\
+ + + + +
L L
L L
n 2 1
p p p
, 1 - n a 2 , , nl a l l a l a l a a

|

sau:
=
( )
( )
|
|
.
|
\
|

+ + +
L L
L L
n p p p
2
1 2
a
2
3
2
2 1
l n l
a
l
a




unde a este valoarea minim a cererii iar l lungimea intervalelor. Vom presupune n acest caz costul
mediu va avea forma:

( ) C = ( ) ( )
( )
( )


+ =

+ = =

+ +
|
.
|

\
|

l l
l l

p c
2
p c
2
p
2
s
c
2
p
2
s
0
l

iar minimul acesteia va fi dat de acea valoare
0
pentru care:

L(
0
l) <
p s
p
c c
c
+
< L(
0
) unde L() = p( ) +
( )

+ =
|
.
|
\
+
l
l

p
2

|



Caz 2 Sunt de asemenea cazuri cnd cererea poate lua valori ntr-o mulime continu, fiind
o variabil aleatoare continu cu densitatea de repartiie f(). n acest caz valoarea medie a costului
este:

( ) C = ( ) ( )
( )
( )



+ +
|
.
|

\
|

d
2
c d
2
c d
2
s
2
p
2
s
0
f f f c

care este o funcie continu n . Pentru rezolvare vom deriva aceast funcie (folosind i formula
de derivare a integralelor cu parametru:
( )
( )
( )
( )
( )
( )
( ) ( ) ( ) ( ) ( ) ( ) y y a f y a y y b f y b y x f y x f
y b
y a
y
y b
y a
, , , ,
/
+ =

(
(



fiind ndeplinite condiiile care permit aplicarea acesteia.) i apoi vom gsi punctul n care se
anuleaz aceasta:
0
= soluia cutat.

b) cu pierderi

Presupunem c cheltuielile de stocare sunt neglijabile. n acest caz pentru fiecare pies
stocat peste cererea manifestat se face o cheltuial inutil c
1
iar pentru fiecare pies lips, n cazul
unei cereri mai mare dect stocul, o penalizare c
2
(n general c
2
> c
1
). n acest caz, costul mediu va
fi:
211
130
Gestiunea stocurilor
( ) C = c ( ) ( ) ( ) (


+ = =
+
1
2
0
1
p c p

)

Valoarea ntreag care d minimul lui ( ) C este cea care ndeplinete simultan relaiile:

( ) 1 C > ( ) C < ( ) 1 C +

sistem care, dup efectuarea unor calcule simplificatoare, este echivalent cu:

p( - 1) <
p s
p
c c
c
+
< p( )

din care va fi aflat
optim
i apoi ( )
optim
C .

Observaie. i n acest caz se pot analiza variantele cu cerere mprit n intervale sau cu
cerere continu, cazuri care sunt lsate ca exerciii cititorului.


3 Modaliti practice de aplicare a modelelor teoretice


3.1. Modelul S-s


Gestiunea de tip S-s sau cu dou depozite se caracterizeaz prin faptul c reaprovizionarea
se face n momentul n care nivelul curent al stocului a atins o anumit valoare notat generic cu
s. Acest lucru este echivalent unei gestiuni cu dou depozite, n cadrul creia reaprovizionarea se
face n momentul n care primul depozit s-a golit. n perioada de reaprovizionare (de avans)
consumul se va realiza din cel de-al doilea depozit, care joac rolul stocului de siguran.
n acest model considerm:
cererea total pentru perioada T este R, aleatorie;
costul stocrii este c
S
;
costul lansrii unei comenzi de reaprovizionare este c
L
;
termenul de livrare poate fi:
a) neglijabil; n acest caz obinem costul total pentru intervalul T ca fiind:
C
Rc
q
c
q
L S
= +
2
,

unde q reprezint cantitatea de reaprovizionat.
212
b) cvasiconstant. Fie nivelul minim de reaprovizionare Ns; cnd stocul atinge acest nivel
se lanseaz o comand de q piese. Mrimile date sunt: T, , R, c
S
, c
L
i ne propunem s determinm
pe Ns i pe q astfel nct costul stocului pentru perioada T s fie minim. O metod aproximativ
const n a admite c ritmul mediu al cererii este constant; n acest caz optimul cantitii q
0
este
independent de Ns:
131
Bazele cercetrii operaionale

q
R
T
c
c
L
S
0
2
= T
T
R
c
c
L
S
0
2
= C RTc
L S
0
2 = c
Dac este durata medie a termenului de reaprovizionare (cu o abatere medie ptratic
mic) se va evalua legea de probabilitate a cererii pentru acest interval de timp.
Fie F

(r) probabilitatea cererii de r produse n intervalul : F

(r) = P(R r) = probabilitatea


cumulat.
Impunem condiia ca probabilitatea epuizrii stocului s fie mai mic sau egal cu valoarea
dat (0 < 1); reprezint probabilitatea de penurie.
Trebuie s avem: 1 - F

(r) = . Fie Q soluia ecuaiei: 1 - F

(r) = , de unde rezult Q =


Ns.
Aceast metod este aproximativ, deoarece implic ipoteze de lucru distincte pentru
stocurile fiecrui depozit. Calculele pot fi efectuate fr ipoteze restrictive cu metoda Monte - Carlo
(nu face obiectul lucrrii de fa).


3.2 Metoda A.B.C.

Metoda A.B.C. este un procedeu rapid pentru analiza aprovizionrii i gestiunii economice a
materialelor. Aceast analiz clasific mrfurile achiziionate n funcie de valorile de aprovizionare
ale acestora i de ponderea achiziiilor. Prin aceasta pot fi vzute punctele de plecare pentru
realizarea unei politici raionale a achiziiilor; pe aceasta se pot baza mai multe msuri, ncepnd cu
simplificarea procedeelor de comand, pn la numrul de salariai folosii n depozite.
Factorul esenial n folosirea metodei A.B.C. const n alegerea unui criteriu corespunztor
pe baza cruia se efectueaz mprirea materialelor n cele trei grupe A, B, C. Un asemenea criteriu
poate fi valoarea de consum a materialului dat, n timpul stabilit, valoarea special a materialului cu
privire la folosirea lui n producie, proveniena din import etc.
O dat criteriul ales i mprirea n grupe efectuat, metoda A.B.C. poate fi utilizat n
diferite domenii ale gestiunii stocurilor:

Controlul selectiv al stocurilor

Metoda A.B.C. permite o gestiune selectiv a stocurilor.
Stocurile tampon ale articolelor de valoare mare sunt meninute la un nivel destul de mic.
Aceste articole trebuie s fie supuse unui control de gestiune foarte strns din partea personalului
aprovizionrii (articolele de mare valoare sunt adesea gospodrite cu ajutorul unui sistem de
reaprovizionare periodic i dac intervalele sunt suficient de frecvente, un stoc tampon este mai
puin necesar).
Aceast metod d o atenie mai mic articolelor de valoare mic, a cror epuizare se evit
prin asigurarea unor stocuri tampon.
Cu ajutorul metodei A.B.C. se pot reduce investiiile n stocuri, micornd n acelai timp
riscurile de epuizare.
Din analiza structurii materiale a unitilor economice rezult c valoarea mare n stoc este
deinut de un numr relativ mic de materiale, care nu numai c influeneaz direct volumul de
mijloace circulante atras, dar joac i rolul principal n desfurarea procesului de fabricaie.
Stocurile sunt mprite n trei clase:
clasa A: n care intr articolele cu valoare mare reprezentnd cantitativ 10 % din stoc i 70
% valoric;
clasa B: n care intr articole reprezentnd 20 % att cantitativ ct i valoric;
213
132
Gestiunea stocurilor
clasa C: n care intr articole ce reprezint cantitativ 70 % din stoc i valoric 10 %.

CLASA PONDEREA NUMERIC PONDEREA VALORIC
A 10 70
B 20 20
C 70 10

Gruparea materialelor n funcie de ponderea lor valoric n stocul total, pe baza datelor din
tabelul de mai sus, se prezint ntr-o form expresiv n graficul de evoluie al curbei valorilor
cumulate:















Pondere
valoric

% 100

90

70 C
B

A
10 30 100 Pondere
numeric
%
Datorit importanei lor pentru procesul de fabricaie i datorit influenei asupra volumului
de mijloace circulante, fiecare grup se va aborda difereniat, att din punct de vedere a
metodologiei de stabilire a stocurilor ct i din punct de vedere al conducerii i desfurrii
procesului de stocare ca atare.
Deci, metoda A.B.C., pe lng c ofer o politic diferit pentru articolele din categoria mai
scump, permite i utilizarea unor metode de gospodrire diferit.
ntruct n categoria A sunt puine articole, se poate controla zilnic nivelul stocurilor, pentru
a observa variaia cererii i a supraveghea de aproape respectarea termenelor de ctre furnizori. Cu
alte cuvinte, se nlocuiete o parte din stocul tampon de articole scumpe printr-un control al
gestiunii mai strns. Aceast decizie este eficient ntruct ea aduce la o reducere apreciabil a
investiiilor n stocuri.
Se vor folosi, deci, modele economico-matematice exigente, care vor avea n vedere
elemente (factori) concrete ce condiioneaz nivelul stocurilor i care asigur constituirea lor la
dimensiuni cat mai mici, determinnd creterea vitezei de rotaie a mijloacelor circulante la maxim.
Pentru materialele din categoria C se pot folosi procedee mai puin exigente (chiar cu
caracter statistic) i care vor avea n vedere factorii cu aciune hotrtoare n optimizarea proceselor
de stocare (cheltuielile de transport, sursa de provenien etc.).
Cu articolele din categoria B se poate adopta o politic intermediar, exercitnd un oarecare
control, dar baza rmne tot stocul tampon, spre deosebire de politica dus pentru categoria A. La
articolele mai ieftine este mai eficient s se suporte sarcina stocurilor, dect s se plteasc salariile
personalului care ar fi indispensabil pentru mrirea controlului.
Pentru grupa B se pot aplica dou soluii:
214
a) stabilirea de modele distincte pentru dimensionarea stocurilor de materiale din aceast
grup cu un grad de exigen mediu;
133
Bazele cercetrii operaionale
b) folosirea pentru materialele care, ca pondere valoric, tind ctre grupa A de importan, a
modelelor precizate pentru aceast din urm grup, iar pentru materialele ce tind ca
valoare ctre grupa C a modelelor specifice acestora.
abilitatea unui sistem de gestiune a stocurilor este determinat, n general, de felul n care
unde unor cerine de baz, cum ar fi:
Vi
acesta rsp
gradul ridicat de utilitate practic;
adaptabilitatea la utilizarea mijloacelor electronice de calcul;
supleea i operaionalitatea n derularea i adaptarea proceselor de stocare;
aria de cuprindere mare;
concordana cu fenomenele reale ale procesului de formare i consum a stocurilor;
reducerea la minim a imobilizrilor de resurse materiale i creterea vitezei de rotaie a
mijloacelor circulante ale agenilor economici;
cheltuielile de conducere, organizare i desfurare a proceselor de stocare ct mai mici.
An B.C. rspunde n mare msur cerinelor. alizat din aceste puncte de vedere sistemul A.
Acest s e ist m aplicat la gestiunea stocurilor are n vedere, n primul rnd reducerea imobilizrilor la
materialele de baz i care se consum n cantiti mari, aspect asigurat prin exigena metodologic
de dimensionare a stocurilor i de urmrire a derulrii proceselor de stocare.

3.3. Strategia IMPACT

IMPACT (Inventory Management Program and Control Techniques) este considerat ca un
model eficient de stabilire a stocurilor de sigurana. Este o metod de depozitare economic,
adaptat cerinelor calculatoarelor electronice. Acest model a fost dezvoltat de IBM.
Estimarea necesarului se face prin extrapolarea valorilor din trecut. Influenele conjuncturale
i sezoniere sunt luate n calcul prin metoda de nivelare exponenial.
Stocul de siguran se determin cu ajutorul calculului probabilitilor.
Conform metodei IMPACT, sortimentelor din depozit se mpart n trei grupe:
1. produse cu desfacere mare (vitale);
2. produse cu desfacere mijlocie (importante);
3. produse cu desfacere redus ( obinuite).
Mrimea stocului de siguran depinde de precizia estimrii necesitilor (cererii). Cu ct va
fi aprec fi mai mic stocul de siguran. iat mai precis n prealabil cererea, cu att va
Pentru a putea aplica metoda IMPACT sunt necesare: cunoaterea cererilor r
i
(i = 1, 2,..., T),
pe T intervale de timp i calculul abaterii medii ptratice .
Pentru determinarea stocului de siguran, metoda IMPACT folosete urmtorii indicatori:
a) cererea medie (necesarul mediu)
r
T
ir
i
=

,
i =1
unde T este numrul de interva ercetate; le de timp c
tT
1
(V.3.1)

r
i
este cererea n intervalul i, i = 1, 2,..., T;
b) MAD (Mean Absolut Deviation) reprezint abaterea absolut de la medie a cererilor, ca
unitate de msur a mprtierii valorilor efective n jurul valorii medii.
215
134
Gestiunea stocurilor
MAD
T
i r r
i
T
=
=

1
.
i 1
MAD se determin ca v ilor absolute ale abaterilor de la cererea aloare medie a valor
(V.3.2)

medie.
c) coeficientul de siguran exprim potenialul de livrare al furnizorilor. Coeficientul de
siguran (K) se stabilete pe baz de tabele ale funciei normale, n cadrul creia sunt date valorile
lui K, corespunztor diferitelor niveluri ale potenialului de livrare al furnizorilor.
Potenialul de livrare (Z) exprim gradul de satisfacere de ctre furnizor a unei comenzi.
Acest potenial de livrare se mai numete grad de deservire sau nivel de serviciu.
Potenialul de livrare (Z) se determin dup relaia

C
Z
C
LE
= ,
LC
unde C
LE
este cantitatea livrat ; efectiv
(V.3.3)

C
LC
este cantitatea ce trebuie livrat conform comenzii.
Rezult 0 < Z < 1; Z = 0 nseamn c se nregistreaz lipsa materialelor n stoc, fr o posibilitate
eficient de acoperire;
Z = 1 nseamn c avem de-a face cu un serviciu perfect de servire din partea furnizorilor.
Relaia de determinare a potenialului de livrare se poate exprima i sub alte forme, ca de
exemplu:

1.
N N N
UC UL UL

Z = = 1 , (V.3.4)
N N
UC UC
reprezint numrul de unit
N
UL
rep ez (buci) lips. r int numrul de uniti
unde N
UC
i (buci) comandate;

2. Z
N
ZT
=
N
ZT ZT
ZT
re ile lucrtoare din perioada de ge prezint numrul total de z
N N N
ZL ZL

= 1 , (V.3.5)
unde N stiune;
N
ZL
reprezint numrul de zile cu lips de stoc.
Cnd un produs se fabric din mai multe materii prime, care intr simultan n consum,
potenialul de livrare se calculeaz n funcie de necesitatea prezenei n acelai moment n depozit a
tuturor materiilor prime care concur la obinerea lui.
Stocul de siguran se calculeaz dup formula:

N
S
= K MAD

ntre potenialul de livrare i costul stocrii necesitat de constituirea i deinerea stocului de
siguran exist o corelaie strns. Creterea potenialului de livrare determin creterea costului
total de stocare, dar ntr-o proporie mai mic, ceea ce nseamn c eficiena este cu att mai mare
cu ct potenialul de livrare se apropie de unu.
Trebuie excluse influenele ntmpltore, ns luate n considerare influenele conjuncturale
i sezoniere. IMPACT folosete n acest scop metoda nivelrii exponeniale. Aceast metod a fost
dezvoltat de Robert Brown i este cunoscut sub numele de exponential smoothing.
Valoarea medie a cererii se corecteaz cu eroarea de previziune i se stabilete introducnd o
anumit parte a erorii n noua valoare a estimaiei.
216
135
Bazele cercetrii operaionale
Fie V
1
estimarea cererii pentru prima perioad i r
1
cererea real a primei perioade.
Estimarea cererii pentru urmtoarele perioade se obine din relaiile:
V
i
= V
i-1
+ (r
i-1
- V
i-1
),
unde reprezint constanta de nivelare; (0,1) i determin msura n care valorile din trecut
sunt cuprinse n estimarea cererii.
Constanta de nivelare trebuie astfel aleas nct s in seama suficient de influenele
conjuncturale i sezoniere, eliminnd totui influena ntregului.

0 < < 1
= 0 nseamn c erorile de prevedere care apar nu sunt luate n considerare
= 1 nseamn c estimarea corespunde exact cererii din perioada anterioar; toate influenele
ntmpltoare sunt introduse n estimare.
rincipii: abaterea Abaterea absolut de la medie (MAD) poate fi folosit dup aceleai p
medie a perioadei i va fi dat de relaia

MAD
i
= MAD
i-1
+ (, r
i-1
- V
i-1
, - MAD
i-1
).

n acest caz , r
i-1
- V
i-1
, este valoarea abaterii precedente fa de valoarea real.
Cererea medie (necesarul mediu) i abaterea absolut de la medie (MAD) vor fi apreciate n
prealabil prin metoda nivelrii exponenial, urmnd ca abia dup aceea s se determine nivelul
stocului de siguran (N
S
).


217
136

You might also like