Documente Academic
Documente Profesional
Documente Cultură
__________________________________________________
1. Introducere
Proiectele i, implicit, situaiile manageriale determinate de punerea n practic a
acestor proiecte, presupun efectuarea unor activiti interconectate, care pot fi modelate
prin intermediul grafurilor.
Managementul informatic al proiectelor permite gestiunea, coordonarea,
planificarea i controlul resurselor astfel nct obiectivele propuse s se ating n mod
optim i la timp.
O aplicaie foarte rspndit a grafurilor orientate o constituie simularea
proiectelor complexe ce presupun o multitudine de activiti distincte, efectuate n serie
sau n paralel. Teoria grafurilor vine n ajutorul oricrui analist de proiect prin
modelarea acestor activiti, prin structurarea grafic a dependenelor dintre ele i
prin determinarea timpului necesar de realizare a proiectului.
n evaluarea oricrui proiect este necesar cunoaterea timpului maxim de
execuie a ntregii lucrri. Acesta reprezint drumul cel mai lung de la faza iniial la
faza final a proiectului i este numit drum critic. Primele tehnici ce utilizeaz aceast
noiune au fost create prima dat n jurul anului 1950 i metoda prezentat n acest
material este cunoscut sub denumirea de Metoda drumului critic (din englez,
Critical Path Method).
2. Grafuri de activiti
Un graf de activiti este un graf asociat unei lucrri complexe a crei realizare
presupune desfurarea mai multor aciuni (procese, activiti). Un astfel de graf
presupune dou tipuri de componente:
arcele reprezint activitile sau etapele elementare ale lucrrii, iar lungimea
unor obiective pariale ale lucrrii; ele sunt vzute ca o piatr de hotar sau ca un
punct de verificare al evoluiei lucrrii. Exemple: terminarea fundaiei unei
cldiri, sosirea pieselor de schimb, efectuarea testelor asupra unei instalaii, etc.
Proiectul este conceput n cadrul tehnicilor de planificare de tip graf ca o colecie
de activiti (implicit i evenimente), desfurate ntr-o anumit perioad de timp (cu un
nceput i un sfrit definit) pentru a satisface un set de obiective.
Pentru o anumit activitate, momentul nceperii ei este reprezentat de extremitatea iniial, iar momentul terminrii sale este reprezentat de extremitatea final a
arcului respectiv.
Regul general
La construirea unui graf de activiti se ine cont de urmtoarea regul: toate
arcele care pleac dintr-un vrf X reprezint activiti ce nu pot ncepe dect dup
terminarea tuturor activitilor reprezentate de arcele care sosesc n nodul X.
Exemplul 2.1. Se d urmtorul graf de activiti:
ntruct drumul critic este cel mai lung drum din graf, celelalte drumuri trebuie s
fie ori egale (DC multiple), ori mai mici cu acesta. Prin urmare, trebuie s existe i
evenimente i activiti care pot fi ndeplinite nainte ca ele s fie de fapt necesare.
Pentru fiecare eveniment putem defini data ateptat i data limit de realizare a
sa (dat a crei depire va determina ntrzierea ntregii lucrri). De exemplu, n graful
de activiti prezentat n figura 3, evenimentul 7 are
- data asteptat este egal cu 5 + 8 = 13;
- data limit este egal cu 17 1 = 16 (deoarece o ntrziere peste unitatea de
timp 16 a evenimentului 8 determin o ntrziere peste 17 a ntregului proiect).
Definiia 3.3. Pentru un graf de activiti ale crui vrfuri reprezint evenimentele E1,
E2, , En (unde E1 reprezint nceputul lucrrii, iar En sfritul ei), definim
Marginile libere i marginile totale ale activitilor critice sunt nule deoarece
nceperea lor trebuie s se fac fr nici o ntrziere.
Algoritmul Roy-Floyd
Exist mai multe metode de determinare a drumului minim ntr-un graf orientat,
dintre care amintesc de algoritmul Dijsktra [1] i algoritmul Roy-Floyd [2]. Pentru
aceast lucrare am ales a doua metod deoarece se poate transforma foarte uor, astfel
nct s se poat obin drumul maxim ntr-un graf.
Fiind dat un graf G = (X,U), cu X = {x1, x2, , xn} ca fiind mulimea nodurilor i
cu U ce reprezint mulimea legturilor, s se determine pentru fiecare pereche de
noduri xi,xj (i j), precum i aceste drumuri (n cazul n care exist).
Legturile ntre noduri se rein sub forma unei matrice a drumurilor M = (mi,j)nxn,
unde n reprezint numrul de noduri i se poate exprima formal astfel:
0, daca i j
(1)
(2)
adic se compar dac lungimea drumului direct (care nu trece prin alte noduri) este
mai mic dect cel ce trece prin nodul 1. n caz afirmativ, se face atribuirea urmtoare:
M[i,j] < M[i,1] + M[1,j].
(3)
Dup ce se va efectua aceast operaie pentru toate nodurile grafului, vom obine toate
drumurile maxime ce trec prin nodul 1.
Se repret acest procedeu pentru fiecare nod intermediar nk cu k = {1,2, ,n},
efectund comparaia urmtoare pentru oricare dou noduri xi,xj (i j):
M[i,j] < M[i,k] + M[k,j],
(4)
de unde se trage concluzia c algoritmul caut drumul optim ntre nodul x i i yj, prin
noduri nk, pentru care se cunoate deja lungimea maxim a drumurilor de la ni la nk i
nk la nj. Dup pasul n, algoritmul se oprete i toate drumurile maxime au fost obinute.
Porninduse de la matricea drumurilor M, se poate formula urmtorul algoritm [5]:
for k=1 to n
for i=1 to n (cu ij)
for j=1 to n (cu ij)
if (M[i,j] < M[i,k] + M[k,j])
M[i,j] = M[i,k] + M[k,j]
(5)
Dac drumul optim trece prin nodul k, atunci se poate scrie egalitatea
M[i,j] = M[i,k] + M[k,j].
(6)
Observaii
Funcia de mai sus returneaz toate drumurile critice ntr-un graf. Pentru a fi
determinat un singur drum maxim, se rescrie condiia instruciunii while astfel:
while ((k<=nr_noduri) && !gasit)
Condiia ca graful s nu conin circuite este evident. Costul unui circuit este
, ceea ce ar nsemna rularea algoritmului la infinit [3].
meniul principal
meniul rapid
zona de lucru
zona de informa]ii
bara de stare
bare de scroll
Pentru a deschide un proiect nou, se alege din meniul File comanda New
sau se apas butonul corespunztor din meniul rapid.
Automat, cursorul mouse-ului va fi n starea de vizualizare (sgeat
butonul este apsat pe bara de unelte). Exist cinci moduri n care se poate afla
cursorul mouse-ului i ele vor fi prezentate n continuare:
Pentru a se introduce un nou nod, se apas din nou, n alt poziie. Dup ce au
fost introduse toate evenimentele dorite, se revine n modul de vizualizare (sgeat).
Iniial, valoarea este trecut ca fiind -Inf, ceea ce semnific tergerea arcului.
Dac se dorete acest lucru, se apas butonul Ok. Dac nu, se introduce valoarea
timpului de efectuare al activitii curente.
Observaie. Arcele i vor schimba i ele locaia n funcie de poziia aleas pentru
nodul mutat.
Pentru a repoziiona un alt eveniment, se ine apsat pe butonul stng al
mouse-ului i se trage din nou n locaia dorit.
4.2.4. tergerea unui eveniment
Pentru a terge un eveniment, se alege din meniul rapid unealta Stergere i se
apas pe nodul corespunztor. Totodat cu el, vor fi eliminate din graf i activitile ce
intr sau ies din acel nod.
n cazul n care graful nu este valid, utilizatorul este rugat s modifice anumite
elemente eronate, ce sunt de asemenea specificate n fereastra de dialog. Dup ce toate
erorile au fost remediate, testarea este efectuat cu succes i n fereastra de lucru vor
aprea dou etichete ce indic nceputul (Start) i sfritul (Final) al lucrrii.
Nodul iniial i cel final va avea un contur mai ngroat dect restul.
De reinut este faptul c dup modificarea unei informaii (durata unei activiti
sau tergerea unui nod sau a unui arc), este necesar o nou validare.
Dup ce au fost efectuate toate aceste operaiuni, se poate trece la rularea
Pentru a gsi drumul critic pentru graful curent, se apas butonul alturat
(el nu va fi activ pn ce validarea nu a fost realizat cu succes). n figura
urmtoare, este prezentat fereastra programului dup ce a fost rulat rutina de
determinare a drumului critic, ce utilizeaz algoritmul Roy-Floyd
Drumul critic a fost determinat i a fost colorat cu rou. n acest caz, pentru un
eveniment (n figura de mai sus, 5 - critic), sunt afiate mai multe detalii pe panoul de
informaii. Deoarece este un nod critic, data de ateptare este egal cu cea limit.
Observaii
n cazul n care exist mai multe drumuri critice, programul le va afia pe toate:
Figura 18.
Matricea dr. minime
(stnga);
Matricea dr. maxime
(dreapta).
Avnd graful de activiti validat i drumul critic fiind reprezentat prin culoarea
roie, se poate parcurge graful n funcie de timp, n sensul c exist posibilitatea
vizualizrii n evoluie. Aadar, se apas butonul Nav de pe bara de unelte a
programului (sau din meniul Graf, comanda Navigator). n partea de jos a ferestrei, va
aprea urmtorul panou de comand:
5. Concluzii
Grafurile de activiti sunt extrem de utile n evaluarea lucrrilor complexe, iar
reprezentarea lor permite analistului sau managerului de proiect o viziune de ansamblu
i totodat, o modalitate prin care poate testa o multitudine de variante, nainte de a o
alege pe cea considerat optim. De asemenea, softurile specializate ce ofer metode
complexe de analiz utilizeaz cu succes metode ca cea a Drumului Critic sau PERT,
o variant probabilistic. Algoritmul Roy-Floyd prezentat n aceast lucrare este foarte
general i obine rezultate excelente n determinarea drumului critic. De asemenea, cu
mici modificri, poate fi utilizat i n cazul n care ponderile arcelor pot lua valori
negative. Complexitatea sa ofer un rspuns optim ntr-un timp polinomial, ceea ce
nseamn c se poate utiliza fr a crea probleme din punct de vedere temporal.
nterfaa grafic VisuaGraf are un scop pur didactic i ncearc, prin utilizarea sa
destul de simpl, o nelegere mai rapid a noiunilor referitoare la grafurile de
activiti.
Bibliografie selectiv
1.
2.
3.
4.
5.
Tudor S., Manual de informatic pentru clasa a XI-a, Varianta C++, Editura
L&S Infomat, Bucureti, 2004;
6.
Tudor S., Iniiere n programarea vizual Borland C++ Builder, Editura L&S
Info-Mat, Bucureti, 2003, www.infobits.ro;