16
Profesor univ. dr. ConstanŃa-Nicoleta BODEA Catedra de Informatică Economică Ruxandra Ileana BADEA Şcoala Doctorală Academia de Studii Economice din Bucureşti PROGRAMAREA PROIECTELOR COMPLEXE UTILIZÂND METODE EVOLUłIONISTE COMPLEX PROJECT SCHEDULING BASED ON EVOLUTIONIST METHODS Abstract. Economy dynamics transform projects into complex adaptive systems. Classical project scheduling methods such as Critical Path Method, Metro Potential Method or Program Evaluation and Review Technique become inefficient for project scheduling problems with multiple optimization criteria. Recent research in Artificial Intelligence (AI) shows that multi-agent methods benefits in addressing the scheduling problems. The paper presents the Time Constrained Scheduling Problem with time buffers. Two MATLAB implementations based on Genetic Algorithm and Ant Colony Algorithm are discussed. Finally, advantages of multi-agent implementation are discussed. Keywords: multi-agent methods, time constrained scheduling problem, genetic algorithms, Ant Colony Algorithm. Clasificarea JEL: O32, C40, C44, C45. 1. INTRODUCERE Metodele de programare (scheduling) acoperǎ o arie largǎ de probleme din domeniul planificǎrii proiectelor ([3]). Domeniul cercetǎrilor operaŃionale contribuie cu douǎ metode considerate clasice şi anume: ADC (analiza drumului critic) şi PERT (Program or Project Evaluation and Review Technique). In cadrul InteligenŃei Artificiale (IA) a fost promovat inŃial conceptul de planificator automat, implementat prin intermediul algoritmilor cu operatori predefiniŃi. Cercetǎri recente din domeniul IA abordeazǎ planificarea şi programarea proiectelor pe bază de modele. În [2] este propus un sistem agent denumit ResourceLeveler utilizat in nivelarea resurselor şi care are drept rezultat o soluŃie

Profesor univ. dr. ConstanŃa-Nicoleta BODEA Academia de ... elsevier/3-4rom pdf/Constanta Bodea.pdf · CERCETARE Un program calendaristic (schedule), S se defineşte cu ajutorul

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Profesor univ. dr. ConstanŃa-Nicoleta BODEA Academia de ... elsevier/3-4rom pdf/Constanta Bodea.pdf · CERCETARE Un program calendaristic (schedule), S se defineşte cu ajutorul

Profesor univ. dr. ConstanŃa-Nicoleta BODEA Catedra de Informatică Economică Ruxandra Ileana BADEA Şcoala Doctorală Academia de Studii Economice din Bucureşti

PROGRAMAREA PROIECTELOR COMPLEXE UTILIZÂND METODE EVOLUłIONISTE COMPLEX PROJECT SCHEDULING BASED ON EVOLUTIONIST METHODS

Abstract. Economy dynamics transform projects into complex adaptive systems. Classical project scheduling methods such as

Critical Path Method, Metro Potential Method or Program Evaluation

and Review Technique become inefficient for project scheduling

problems with multiple optimization criteria. Recent research in

Artificial Intelligence (AI) shows that multi-agent methods benefits in

addressing the scheduling problems.

The paper presents the Time Constrained Scheduling Problem with

time buffers. Two MATLAB implementations based on Genetic

Algorithm and Ant Colony Algorithm are discussed. Finally,

advantages of multi-agent implementation are discussed.

Keywords: multi-agent methods, time constrained scheduling problem, genetic algorithms, Ant Colony Algorithm.

Clasificarea JEL: O32, C40, C44, C45.

1. INTRODUCERE

Metodele de programare (scheduling) acoperǎ o arie largǎ de probleme din domeniul planificǎrii proiectelor ([3]). Domeniul cercetǎrilor operaŃionale contribuie cu douǎ metode considerate clasice şi anume: ADC (analiza drumului critic) şi PERT (Program or Project Evaluation and Review Technique). In cadrul InteligenŃei Artificiale (IA) a fost promovat inŃial conceptul de planificator automat, implementat prin intermediul algoritmilor cu operatori predefiniŃi. Cercetǎri recente din domeniul IA abordeazǎ planificarea şi programarea proiectelor pe bază de modele. În [2] este propus un sistem agent denumit ResourceLeveler utilizat in nivelarea resurselor şi care are drept rezultat o soluŃie

Page 2: Profesor univ. dr. ConstanŃa-Nicoleta BODEA Academia de ... elsevier/3-4rom pdf/Constanta Bodea.pdf · CERCETARE Un program calendaristic (schedule), S se defineşte cu ajutorul

ConstanŃa-Nicoleta Bodea, Ruxandra Ileana Badea

de programare a activităŃilor din proiect, luând in considerare constrângerile de resurse. ResourceLeveler a fost dezvoltat in C# ca plug-in pentru Microsoft Project.

Pornind de la aceste direcŃii posibile, în acest articol se analizează posibilitatea de a rezolva problema de optimizare a programǎrii proiectelor prin metode adaptive, posibil de implementat cu ajutorul metodelor multi-agent. Metodele multi-agent oferǎ o nouǎ perspectivă rezolvǎrii problemelor complexe, prin intermediul paradigmei calculului distribuit.

2. PROIECTUL – SISTEM ADAPTIV COMPLEX

Studiul sistemelor adaptive complexe (SAC) a devenit o zonǎ de cercetare

intensǎ în ştiinŃele sociale şi naturale. SAC reprezintǎ un subset al sistemelor dinamice neliniare [17], având urmǎtoarele proprietǎŃi: agregare, nonlinearitate, anticipaŃie şi diversitate. Pornind de la această definiŃie a lui J. Holland, din 1995 putem afirma cǎ o parte dintre caracteristicile SAC se regăsesc şi la proiecte.

Un proiect prezintă caracteristica de “evoluŃie prin agregare” deoarece conŃine elemente precum activitǎŃi şi resurse, care se influenŃează reciproc şi care au un comportament de grup. Comportamentul acestor elemente pe care le vom denumi agenŃi este unul neliniar şi complex.

Caracteristica de anticipaŃie este satisfacută de către proiecte prin multiplicare (schimbarea unui element determină schimbǎri in celelalte elemente), reactualizare şi reutilizare a informaŃiei (între elementele proiectului au loc interacŃiuni care permit actualizarea informaŃiilor). Aceste caracteristici asigură adaptabilitatea unui proiect, care se poate autoregla prin funcŃia de anticipaŃie. Autoreglarea devine atât un mijloc de adaptare la mediu, cât şi un mod de a face faŃă complexitǎŃii interne şi externe.

În cazul proiectelor, diversitatea este asigurată prin valorile timpilor de start şi de final, durate, sau resurse asignate.

La un proiect se regăsesc, de asemenea, următoarele mecanisme SAC: • Identificarea in mod unic a componentelor (agenŃilor). AgenŃii din

cadrul proiectului se diferenŃiază prin elemente de identificare unice: duratǎ, timpi de execuŃie, cantitate de resurse, calitate.

• Modele interne de adaptare. Structura internǎ a agenŃilor permite adaptarea acestora la mediul extern. De exemplu, agenŃii de tip activitate au asociate buffere de timp care permit proiectului sǎ se adapteze la întârzierile survenite pe parcursul implementării.

• Blocuri elementare. Un agent este compus din module elementare reutilizabile. Astfel, o activitate poate avea asociate mai multe elemente: timpi de execuŃie, resurse, buffere, care se pot combina cu valorile agenŃilor invecinaŃi, astfel incât să se realizeze o planificare optimizatǎ a proiectului.

Page 3: Profesor univ. dr. ConstanŃa-Nicoleta BODEA Academia de ... elsevier/3-4rom pdf/Constanta Bodea.pdf · CERCETARE Un program calendaristic (schedule), S se defineşte cu ajutorul

Programarea proiectelor complexe utilizând metode evoluŃioniste

3. METODE DE PROGRAMARE A PROIECTELOR

Problema de programare a proiectelor este o problemǎ non-linearǎ ([18]). Ca şi activitate de management, programarea se plasează între planificare şi execuŃie, presupunând decizii referitoare la resurse, activităŃi şi asocieri între acestea. Programul rezultat poate fi evaluat prin cost, durată şi/sau calitate. Metodele de programare pot fi impǎrŃite în douǎ categorii: metode constructive şi de reconstrucŃie.

Metodele constructive adaugǎ activitǎŃi/resurse unui program parŃial pânǎ când acesta ajunge să includǎ toate activităŃile necesare şi satisface constrângerile proiectului. Metodele de reconstrucŃie pornesc de la un program complet pe care îl modificǎ pentru a elimina conflictele şi optimiza soluŃia. Metodele utilizare în acest articol fac parte din cea de-a doua categorie, deoarece utilizeazǎ o funcŃie fitness, de evaluare, pentru a stabilit dacǎ este necesarǎ continuarea imbunătǎŃiriii soluŃiei găsite.

Problema de programare a unui proiect este definitǎ printr-un set de funcŃii obiectiv, relaŃii privind resursele şi condiŃii apriori ([23]). Drept exemple de funcŃii obiectiv se pot menŃiona: minimizarea duratei proiectului, minimizarea costului total al proiectului, precum şi nivelarea resurselor. În majoritatea cazurilor, existǎ o concurenŃǎ între a acorda prioritate criteriului de optimizare a costului sau celui de optimizare a duratei proiectului. Între cele două criterii există interdependențe, intârzierile de execuŃie a activitǎŃilor putând determina costuri suplimentare, iar reducerea costurilor poate avea ca urmare creşterea duratei de execuŃie. Având în vedere aceastǎ interdependenŃă, ne propunem să rezolvăm problema de programare luând în considerare constrângerile de timp (PSCT) din cadrul unui proiect. Aceasta este o variantǎ a problemei PSCR (programarea unui proiect cu luarea în considerare a resursele), problemă studiatǎ de [15], [21] şi [22].

PSCT şi PSCR se deosebesc, în principal, prin faptul câ în cadrul PSCT deadline-urile nu pot fi devansate, dar resursele se pot modifica, în timp ce în PSCR resursele sunt limitate la un anumit nivel, iar timpii de execuŃie pot fi modificaŃi semnificativ. O altǎ deosebire este aceea că PSCT utilizeazǎ doar funcŃii obiectiv neliniare, ceea ce face ca tehnicile asociate celor douǎ tipuri de probleme să fie diferite. Deşi PSCT se întâlneşte frecvent în practicǎ, a fost destul de rar abordatǎ în literatura de specialitate, comparativ cu PSCR.

[7] propune utilizarea unui model de programare liniarǎ în numere intregi (PLI) şi abordeazǎ tehnica de crashing pentru accelerarea execuției proiectului. Prin această tehnică, timpul de execuŃie al unei activitǎŃi se micşorează prin suplimentarea resurselor ([20]), ([24]).

Datorită caracterului de relativă unicitate, proiectul are asociat un nivel de probabilitate sau de nesiguranŃǎ, care reprezintă o variabilă importantă a modelelor de programare. În cazul PSCT, ne propunem să utilizǎm conceptul de buffere de timp pentru a simula întârzierile asociate activităŃilor, concept care a fost abordat şi în [13].

Page 4: Profesor univ. dr. ConstanŃa-Nicoleta BODEA Academia de ... elsevier/3-4rom pdf/Constanta Bodea.pdf · CERCETARE Un program calendaristic (schedule), S se defineşte cu ajutorul

ConstanŃa-Nicoleta Bodea, Ruxandra Ileana Badea

În figura 1 sunt prezentate principalele tipuri de metode de optimizare utilizate pentru rezolvarea problemei de programare a proiectelor. Dintre acestea, autorii au selectat două categorii de algoritmi evoluŃionişti, şi anume: algoritmul coloniei de furnici, şi algoritmii genetici, care au fost utilizaŃi în studiul de caz,.

Fig. 1. Metode de programare a proiectelor (adaptare după [29])

3.1 Algoritmul Coloniei de Furnici Comportamentul furnicilor este utilizat în rezolvarea problemelor de optimizare.

Modul lor de comunicare cu ajutorul unei substanŃe, numite feromon, pe care o depoziteazǎ în zonele în care este cel mai probabil sǎ gǎseascǎ alimente, a fost implementat sub forma algoritmului coloniei de furnici (ACF), prin coeficienŃi care măsoară tendinŃa furnicilor de a urma cǎile deja marcate (coeficienŃii alfa şi beta). Primul ACF meta-euristic, denumit sistemul furnicilor, a fost definit în [5], fiind dezvoltat ulterior în [10]. Anterior, elemente ale acestei metode au fost definite în [8], [9], [12]. ACF a fost aplicat într-o serie de probleme combinatoriale, precum: programarea activitătilor, optimizarea routing-ului în cadrul reŃelelor de comunicaŃii şi telefonie ([19]).

Etapele unui ACF sunt următoarele: problema este reprezentată sub forma unui graf, apoi este definit un prim drum de parcurgere a acestui graf, pentru ca în funcŃie de obiectivul problemei, acest drum sǎ fie actualizat prin valori diferite ale nivelului de feromon, pânǎ la atingerea soluŃiei optime.

În comparaŃie cu alte metode de optimizare, precum algoritmii genetici, ACF oferǎ soluŃii în ceea ce priveşte calitatea şi eficienŃa calcului pentru probleme de

Metode compatibile multi-agent

Metode Stohastice Hill-Climbing

Calcul Evolutionist

Algoritmi evoluŃionişti

Algoritmi Genetici (AG)

Sisteme Learning Classifier

Programare ă

Strategii

Programare Genetică

Simulated Annealing (SA)

CăutareTabu

Parallel

Tunneling

Direct Monte Carlo Sampling

EvoluŃie DiferenŃială

Programare Genetică Standard

Programare Genetică Liniară

Programare Genetică

Algoritmi Memetici

Căutare Armonică

Inteligenta de Grup

Algoritmul Coloniei de Furnici (ACF)

Optimizarea Particulelor de Grup

Page 5: Profesor univ. dr. ConstanŃa-Nicoleta BODEA Academia de ... elsevier/3-4rom pdf/Constanta Bodea.pdf · CERCETARE Un program calendaristic (schedule), S se defineşte cu ajutorul

Programarea proiectelor complexe utilizând metode evoluŃioniste

optimizare combinatorialǎ, precum: problema comis voiajorului ([11]). ACF a fost aplicat cu succes şi în probleme de planificare a lucrărilor, fluxurilor de lucrări şi PSCR ([1], [6], [25], [28])

3.1 Algoritmii genetici Algoritmii genetici (AG) au fost inspiraŃi din procesul biologic de evoluŃie a

speciilor. Holland şi, ulterior, Goldberg, Michalewicz şi Koza au dezvoltat această abordare ([16], [17]. În comparaŃie cu strategiile de cǎutare localǎ, AG considerǎ o populaŃie de soluŃii candidate, ceea ce determină creşterea eficienŃei de cǎutare. Principiul biologic “ cel mai puternic” câştigǎ este aplicat astfel: indivizii cel mai bine evaluaŃi, conform functiei de fitness, pot participa prin selectie, mutaŃie, sau recombinare la crearea unei noi generaŃii. SoluŃia finalǎ a problemei rămane la alegerea utilizatorului, care stabileşte condiŃia de terminare a prelucrărilor, prin setarea numărului de iteraŃii şi/sau a gradului de convergenŃă impus. Aceastǎ caracteristicǎ determinǎ compatibilitatea AG cu problemele de optimizare cu soluŃie Pareto-optimală, probleme dificile de optimizare multi-criterialǎ care au o plajǎ de valori optime, în loc de o soluŃie unicǎ. Existǎ douǎ tipuri de AG: algoritmi canonici şi algoritmi hibrizi. Cei din urmă înglobează o serie de rezultate recente ale cercetǎrii ştiinŃifice din domenii precum: reŃele neuronale, logica fuzzy, ş.a.

Avantajele care susŃin implementarea AG pentru optimizarea programării proiectelor sunt urmǎtoarele:

• Posibilitatea de paralelizare care determină creşterea performanŃei. Abordǎrile co-evolutive, care au la bază rularea în paralel a mai multor populaŃii pe diferite fire de execuŃie care sunt ulterior combinate, conduc la îmbunătǎŃirea calitǎŃii soluŃiilor cǎutate.

• Aplicarea diferitelor tipuri de funcŃii de fitness (discrete, convexe, concave)

• SoluŃii mai bune decât cele obŃinute prin metodelor clasice • Utilizarea în probleme cu constrângeri multiple, în regim nesupervizat • Grad ridicat de generalitate Principalul avantaj al AG este însă acela că se pot obŃine soluŃii sub-optimale

într-un timp de execuŃie satisfǎcǎtor, din aceastǎ cauzǎ fiind preferaŃi altor metode.

4. STUDIU DE CAZ – PROGRAMAREA PROIECTELOR DE CERCETARE

Un program calendaristic (schedule), S se defineşte cu ajutorul vectorului

timpilor de finalizare a activităŃilor {F1, F2, Fn}. Se considerǎ cǎ o activitate Ai+1

nu poate începe dacǎ activitatea anterioară, Ai nu s-a terminat (Si+1≥Fi)

Forma generalǎ a PSCT ca model de programare liniarǎ în numere întregi (PLI) este urmǎtoarea:

Page 6: Profesor univ. dr. ConstanŃa-Nicoleta BODEA Academia de ... elsevier/3-4rom pdf/Constanta Bodea.pdf · CERCETARE Un program calendaristic (schedule), S se defineşte cu ajutorul

ConstanŃa-Nicoleta Bodea, Ruxandra Ileana Badea

Min (Fn+1 ) n+1= activitatea finalǎ a proiectului (1) Fh ≤Fj –Dj , j=1,..,n+1, h=1,..,j-1, Dj=durata pentru activitatea j (2) ∑j [Cost (B j)] ≤ C, j=1,..,n+1, C= limita de cost pentru buffere (3) Fj≥0, Dj≥0,Bj≥0 j=1,..,n+1 (4)

Datoritǎ complexitǎtii problemei de optimizare cu constrângeri, nu ne putem aştepta ca modelul PLI să fie suficient. Prin metoda de propagare a constrângerilor, în loc de relaŃiile (1) şi (4) vom considera o singurǎ funcŃie obiectiv ce va fi implementatǎ prin doi algoritmi: AG şi ACF. Intr-un studiu preliminar au fost comparate mai multe funcŃii fitness şi s-a constatat faptul cǎ funcŃia Michalewicz oferǎ rezultate mai bune pentru problema de optimizare cu constrângeri de timp decât funcŃiile De Jong şi Rastrigin. Pentru acest studiu de caz a fost aleasǎ funcŃia Schwefel îmbunatǎŃitǎ şi s-a realizat o comparaŃie cu funcŃia Michalewicz in problema PSCT propusǎ.

FuncŃia Schwefel a fost modificatǎ printr-o transformare astfel încât să se atenueze dezavantaj pe care îl prezintă forma standard, acela de convergenŃă prematură, optimul global fiind distribuit simetric în spaŃiul de căutare faŃǎ de optimele locale. f(X) = ∑i(-xi*sin(√ xi)) SpaŃiul de căutare se restrânge la un hipercub -500 · ≤ Xi ·≤ 500, i = 1,.., n. Minimul global f(X) = - 418.9829 se obŃine pentru Xi = 420.9687, i = 1,.., n. Am modificat aceastǎ funcŃie prin transformarea cos(xi)=yi

Figura 2. FuncŃia Schwefel

FuncŃia Michalewicz a fost utilizată deoarece este o funcŃie multimodalǎ, de complexitate rezonabilǎ. Parametrul m reprezintǎ adâncimea nivelului de valori minime, iar o valoare ridicatǎ a acestuia poate crea dificultǎŃi în gǎsirea soluŃiilor. (figura 3)

Page 7: Profesor univ. dr. ConstanŃa-Nicoleta BODEA Academia de ... elsevier/3-4rom pdf/Constanta Bodea.pdf · CERCETARE Un program calendaristic (schedule), S se defineşte cu ajutorul

Programarea proiectelor complexe utilizând metode evoluŃioniste

f(X) = - ∑ i {sin(Xi) * [sin (i*Xi2 * 1/ pi) ]2m } De regulă, m = 10. SpaŃiul de cǎutare este restricŃionat la un hipercub Xi=0,..,pi, i = 1.., n., dupa cum este prezentat în această figură.

Figura 3. FuncŃia Michalewicz

FuncŃiile fitness au fost implementate pentru atât pentru algoritmul genetic, cât şi pentru algoritmul coloniei de furnici. Mediul de implementare este MATLAB, cu o configuraŃie hardware: Intel Atom 1,60 GHz CPU şi 2GHz RAM.

4.1 Rezultate obŃinute prin implementarea AG Fiecare cromozom din populaŃie este de fapt o permutare a listei de buffere

asociate activitǎŃilor proiectului (j1,..,jn). Lungimea cromozomului este egalǎ cu numǎrul de activitǎŃi din proiect. Au fost aplicaŃi următorii operatori: crossover, mutaŃia şi selecŃia. Dacă valoarea operatorului crossover este 1 (100%) atunci acest operator se aplică la fiecare generatie. Dacă este 0, atunci populaŃia din generaŃia respectivă este identică cu cea din populaŃia anterioară. Operatorul de mutaŃie indică posibilitatea schimbării anumitor componente în cadrul unui cromozom şi are drept scop evitarea blocării algoritmului în extreme locale.

4.2 Rezultate obŃinute prin implementarea ACF Pentru a îndeplini relaŃiile (1) - (4) ale modelului PSCT a fost modificat

algoritmul ACF definit pentru problema comis voiajorului şi s-a aplicat funcŃia Michalewicz drept funcŃie de evaluare a performanŃei furnicilor. ActivităŃile sunt reprezentate în sistem de coordonate XoY, fără codificare/decodificare.Parametrii ACF, alfa şi beta controlează modul în care sunt căutate noile soluŃii. Dacă alfa are valori mari, atunci tendinŃa furnicilor este de a căuta rute noi, iar dacă beta are valori mari tendinŃa este de a urma cea mai scurtă cale, putând cauza uneori convergenŃa prematură a algoritmului.

Valoarea coeficientului de evaporare a feromonului indică, de asemenea, faptul că este evitată sau nu convergenŃa prematură. Daca nu există evaporare a feromonului, tendinŃa în masă a furnicilor este aceea de a urma în mod exagerat calea primelor furnici, existând riscul de a atinge valori optime locale în locul optimului global. Valorile parametrilor cu care se rulează cei doi algoritmi sunt prezentaŃi in tabelul 1 şi au fost determinate prin simulare.

Page 8: Profesor univ. dr. ConstanŃa-Nicoleta BODEA Academia de ... elsevier/3-4rom pdf/Constanta Bodea.pdf · CERCETARE Un program calendaristic (schedule), S se defineşte cu ajutorul

ConstanŃa-Nicoleta Bodea, Ruxandra Ileana Badea

Tabelul 1 - Parametri de intrare

Parametri AG Parametri ACF Codificare/decodificare: binaraă Codificare/decodificare: Cartezian

(X0Y) Reprezentarea grafică a rezultatelor: vector de cost-timp

Reprezentarea grafică a rezultatelor: grafic de activităti

Număr de generaŃii=100 Număr de iteraŃii = 100 Dimensiunea populaŃiei= nr. activităŃi=20

Număr de noduri= nr. activităŃi= 20;

Număr digiŃi pt codificare cromozomi=16

Număr furnici= 16

Rata de crossover= 1.0 e=.1;% coeficient de evaporare Rata de mutaŃie=0.003 alfa=1; beta=5 Valoarea maximă buffer =20 unităŃi de timp

Valoarea maximă buffer =20 unităŃi de timp

Pentru fiecare activitate se cunosc următoarele informaŃii:

Fj=timpul cel mai devreme de finalizare pentru activitatea j Bj=bufferul de timp pentru activitatea j, considerat ca fiind un extra timp asociat unei activităŃi, datorită unor factori aleatori.

Pe baza acestor date de intrare se pot determina următoarele: Sj= timpul de start pentru activitatea j = timpul de finalizare a activităŃii j-1 Dj =durata activitătii j, considerată a fi determinată pe baza formulei F(j)-F(j-1)

Prin urmare, Fj+Bj reprezintă timpul cel mai târziu de finalizare pentru activitatea j. Cei doi algoritmi, AG şi ACF au rulat pe mai multe serii de date, fiecare având 20 de activităŃi, singura diferenŃă fiind între şirurile de buffere Bj generate aleator (Sj+Dj+Bj ≥ Fj , Sj ≥ F(j-1) –B(j-1) , j=1,..,20 ). Tabelul 2 prezintă valorile timpilor de finalizare iniŃiali.

Tabelul 2 - InformaŃiile iniŃiale privind activităŃile (ordonate după Fj)

A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 Fj 15 29 43 66 100 131 143 157 174 189 Dj 14 14 23 34 31 12 15 17 15 23

A11 A12 A13 A14 A145 A16 A17 A18 A19 A20

Fj 212 227 244 263 284 309 332 361 392 422 Dj 15 17 19 21 25 23 29 31 30 0

Datele de intrare sunt constituite din doi vectori: timpii minimi de finalizare

(Fj), prezentaŃi în tabelul 2 şi bufferele de timp (Bj) generate aleator. Figura 4 prezintă o parte din codul MATLAB utilizat pentru implementare.

Page 9: Profesor univ. dr. ConstanŃa-Nicoleta BODEA Academia de ... elsevier/3-4rom pdf/Constanta Bodea.pdf · CERCETARE Un program calendaristic (schedule), S se defineşte cu ajutorul

Programarea proiectelor complexe utilizând metode evoluŃioniste

function [cost,f]=ants_cost (m,n,d,at,el,FinishTime); k=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];% Latest FinishTime vector % k will be set to FinishTime+Buffers for i=1:m s=0; for j=1:n k (j)=at (i,j)+FinishTime (j); % add Buffers to FinishTime s=s-sin (k (j))*(sin (k (j)*k (j)*j/pi))^20; % Michalewicz Function end f (i)=s; end cost=f; f=f-el*min (f);% elimination of common cost.

% This ACO is an adaptation of the classical ACO for Time Constrained % Scheduling Problem (TCSP) with minimizing cost for (Buffers+Finish Time) % Bodea, Badea - Bucharest, 2010 % Created and tested under Matlab 6.5 (R13) [x,y,d,t,h,iter,alpha,beta,e,m,n,el,FinishTime]=ants_information; for i=1:iter [app]=ants_primaryplacing (m,n); [at]=ants_cycle (app,m,n,h,t,alpha,beta); at=horzcat (at,at (:,1)); [cost,f]=ants_cost (m,n,d,at,el,FinishTime); [t]=ants_traceupdating (m,n,t,at,f,e); costoa (i)=mean (cost); [mincost (i),number]=min (cost); besttour (i,:)=at (number,:); iteration (i)=i; end subplot (2,1,1);plot (iteration,costoa); title ('average of cost (distance) versus number of cycles'); xlabel ('iteration'); ylabel ('distance'); [k,l]=min (mincost); for i=1:n+1 X (i)=x (besttour (l,i)); Y (i)=y (besttour (l,i)); end subplot (2,1,2);plot (X,Y,'--rs','LineWidth',2,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',10) xlabel ('X');ylabel ('y');axis ('equal'); for i=1:n text (X (i)+.5,Y (i),['\leftarrow node ',num2str (besttour (l,i))]); end title (['optimum course by the length of ',num2str (k)]);

function [x,y,d,t,h,iter,alpha,beta,e,m,n,el,FinishTime]=ants_information; iter=100;% number of cycles. m=16;% number of ants. %xoy representation activity lags, randomly generated x=rand (20)<.5; y=rand (20)<.5; %primary placing for 20 points representing activities x=[8 0 -1 2 4 6 3 10 2.5 -5 7 9 11 13 13 -4 -3 -3 1 -1]; y=[2 4 6 -1 -2 0.5 0 3.7 1.8 1 0 4 3 2 5 2 3 0 3 5]; % take care not to enter iterative points. n=length (x);% number of nodes=activities for i=1:n % generating link length matrix. for j=1:n d (i,j)=sqrt ((x (i)-x (j))^2+(y (i)-y (j))^2); end end % finish time vector for activities, hardcoded values FinishTime=[15,29,43,66,100,131,143,157,177,189,... 212,27,244,263,284,309,332,361,392,422]; e=.1;% evaporation coefficient. alpha=1;% order of effect of ants' sight. beta=5;% order of trace's effect. for i=1:n % generating sight matrix. for j=1:n if d (i,j)==0 h (i,j)=0; else h (i,j)=1/d(i,j); end end end t=0.0001*ones (n);% primary tracing. el=.96;% coefficient of common cost elimination.

Figura 4. Simularea ACF Prin execuŃia algoritmilor, au fost generate grafice de rezultate (figurile 6 şi 7).

Page 10: Profesor univ. dr. ConstanŃa-Nicoleta BODEA Academia de ... elsevier/3-4rom pdf/Constanta Bodea.pdf · CERCETARE Un program calendaristic (schedule), S se defineşte cu ajutorul

ConstanŃa-Nicoleta Bodea, Ruxandra Ileana Badea

ACF Fitness = -3.549

AG Fitness = -3.187

Figura 5. Simularea pentru funcŃia Michalewicz, nr de generaŃii=100

ACF Fitness = 4.580

AG Fitness = 5.043

Figura 6. Simularea pentru funcŃia Schwefel modificată, nr de generaŃii=100

În figura 5 se poate observa faptul că funcŃia fitness Michalewicz are valori comparabile pentru cei doi algoritmi (ACF: -3.547, AG: -3.187). În Fig. 6, pentru funcŃia fitness Schwefel, cei doi algoritmi oferă rezultate asemănătoare (ACF: 4.580, AG: 5.043). De asemenea graficele generate nu diferă semnificativ.

Rezultatele AG constau într-un şir de buffere de timp asociate celor 20 de activităŃi ale proiectului codate in binar pe 16 biŃi. A fost aleasă reprezentarea pe 16 biŃi deoarece prin utilizarea formulei de calcul: Xi=Fi+Bi, Fi şi Bi trebuie asigurată o codificare consistentă, iar F20 din Tabel 2 se codifică în binar pe 16 biŃi. În urma decodificării rezultatelor AG pentru funcŃia Michalewicz pentru 100 de generaŃii se obŃine soluŃia: 16, 18, 10, 7, 12, 9, 13, 19, 7, 3, 17, 13, 18, 8, 9, 6, 11, 15, 7, 11, având o valoare totala de 229.

Calculând suma încărcăturii de buffere pentru fiecare furnică din cadrul ACF, pentru funcŃia Michalewicz la 100 de generaŃii, se obŃin următoarele valori: 210, 198, 218, 192, 210, 210, 210, 210, 204, 210, 210, 210, 200, 210, 210, 211, ceea ce înseamnă că furnicile au ajuns să urmeze aproximativ acelaşi drum.

Comparând timpul total mediu pentru ACF: 195.68 cu valoarea generată de AG: 229 se poate afirma că nu sunt diferenŃe majore intre cei doi algoritmi in privinŃa soluŃiei generate. Timpul maxim pentru buffere admis ar fi fost 20 x 20 =

Page 11: Profesor univ. dr. ConstanŃa-Nicoleta BODEA Academia de ... elsevier/3-4rom pdf/Constanta Bodea.pdf · CERCETARE Un program calendaristic (schedule), S se defineşte cu ajutorul

Programarea proiectelor complexe utilizând metode evoluŃioniste

400, faŃă de care valorile obŃinute se incadrează intr-o medie, ceea ce semnifică obŃinerea unei soluŃii rezonabile (optime). Asemănător se obŃin rezultatele pentru funcŃia Schwefel (AG: 235, ACF: 197.55). Aceste rezultate sunt prezentate în tabelul 3. Tabelul 3: SoluŃia obŃinută prin AG şi ACF pentru ambele funcŃii fitness

FuncŃia Fitness AG SoluŃia decodificata

(100 generaŃii)

ACF SoluŃia medie (100 generaŃii)

FuncŃia Michalewicz f(X) = - ∑ i{sin(Xi) * [sin (i*Xi2 * 1/ pi) ]2m }, m=10

229

195.68

FuncŃia Schwefel (modificată) f(X) = ∑i(-xi*sin(√ xi))

235

197.55 O altă analiză comparativă s-a realizat prin rularea succesivă a celor doi algoritmi pentru un număr crescător de generaŃii. Rezultatele sunt prezentate în tabelul 4. Tabelul 4: Rezultate AG şi ACF pentru număr diferit de generaŃii pentru cele două funcŃii fitness FuncŃia Fitness

AG 100

generaŃii

ACF 100 generaŃii

AG 200 generaŃii

ACF 200 generaŃii

FuncŃia Michalewicz

-3.187

-3.549

-2.453

-4.014

FuncŃia Schwefel

5.043

4.580

4.467

3.600

S-a observat astfel că ACF are rezultate mai bune decât AG prin creşterea

numărului de generaŃii, însă ACF are şi dezavantajul că timpul de execuŃie al algoritmului creşte considerabil. Prin creşterea numărului de generaŃii s-a observat chiar o scădere a performanŃei AG pentru funcŃia Schwefel. Aşa după cum este prezentat în figura 7, funcŃia fitness converge prematur după generaŃia 100.

Page 12: Profesor univ. dr. ConstanŃa-Nicoleta BODEA Academia de ... elsevier/3-4rom pdf/Constanta Bodea.pdf · CERCETARE Un program calendaristic (schedule), S se defineşte cu ajutorul

ConstanŃa-Nicoleta Bodea, Ruxandra Ileana Badea

ACF Fitness = 3.600

AG Fitness = 4.467

Figura 7. Simularea pentru funcŃia Schwefel modificată, nr de generaŃii=200

5. TEHNOLOGII MULTI-AGENT PENTRU PROGRAMAREA

PROIECTELOR

Tehnologiile multi-agent oferǎ un nou mod de abordare a problemelor, inclusiv a celor de programare, cu constrângeri de resurse şi timp. Tehnicile avansate de managementul proiectelor trebuie să Ńinǎ cont de condiŃiile actuale în care sunt executate proiectele, respectiv distributivitate şi complexitate.

Metodele multi-agent reprezintǎ un mod eficient de a optimiza programarea unui proiect într-un mediu distributiv. Tipurile de agenŃi care pot fi utilizati în acest caz sunt agenŃii de tip resursǎ şi agenŃii de tip activitate. Datoritǎ locaŃiei diferite atât a resurselor, cât şi a execuŃiei activitǎŃilor, distribuirea agenŃilor se realizeazǎ în mod natural. În abordǎrile clasice, controlul proiectelor este centralizat, iar informaŃiile sunt comunicate de către managerul de proiect ([30]).

În cadrul tehnologiei multi-agent existǎ următoarele douǎ componente: metodele multi-agent şi sistemele/instrumentele multi-agent. DiferenŃa între cele douǎ domenii este aceea cǎ sistemele multi-agent (SMA) au un grad de independenŃǎ mai mare, simulând nesupervizat realitatea prin intermediul unui program central care poate rula la distanŃă agenŃi care se aflǎ în dinamicǎ. SMA reprezintǎ o ramură a InteligenŃei Artificiale Distribuite.

Conform [2] se pot defini trei tipuri de agenŃi: agenŃi de tip activitate, de tip resursǎ şi de tip serviciu. AgenŃii de tip resursǎ şi cei de tip activitate pot fi asociaŃi membrilor echipei care executǎ task-uri sau reprezintǎ resurse pentru proiect. FuncŃiunile de management de proiect, precum controlul şi coordonarea proiectului, revin agenŃilor de tip serviciu. În general, sistemele multi-agent sunt utilizate în optimizarea multi-criterialǎ sau în planificarea şi controlul proiectului. Pe de altă parte, metodele multi-agent sunt mai uşor de implementat deoarece se referǎ la o activitate specificǎ de management (programare, control, previzionare) şi nu necesitǎ conceperea unei arhitecturi, ci doar simpla execuŃie a unui algoritm bazat pe conceptul de agent inteligent. În general, aceste metode sunt inspirate din

Page 13: Profesor univ. dr. ConstanŃa-Nicoleta BODEA Academia de ... elsevier/3-4rom pdf/Constanta Bodea.pdf · CERCETARE Un program calendaristic (schedule), S se defineşte cu ajutorul

Programarea proiectelor complexe utilizând metode evoluŃioniste

natura şi emulează comportamentul unor entitǎti adaptabile la mediu şi dotate cu mecanisme inteligente, precum: neuronii, genele, albinele, furnicile, alte grupuri de animale.

Caracteristicile principale ale agenŃilor care se pot manifesta în cadrul unui sistem multi-agent sunt: proactivitatea, reactivitatea şi autonomia, atât în raport cu mediul, cât şi în raport cu alŃi agenŃi ([31]). Proactivitatea agenŃilor este direct proporŃionalǎ cu capacitatea de învǎŃare, astfel încât agenŃii cu un grad ridicat de cunoaştere a mediului pot avea “iniŃiative” în mǎsura în care utilizeazǎ o hartă a posibilelor reacŃii ale mediului.

Existǎ o serie de metodologii bazate pe agenŃi, care utilizeazǎ metafora organizǎrii umane, în care agenŃii pot deŃine unul sau mai multe roluri în acelaşi timp şi interacŃioneazǎ frecvent unii cu ceilalti. MAS-CommonKADS şi PASSI se aflǎ la interferenŃa inteligenŃei artificiale cu metodologiile Orientate Obiect (OO), în timp ce în cadrul Prometheus, conceptele OO sunt utilizate numai atunci când sunt indispensabile. Metodologia ADELFE abordeazǎ noŃiunea de Sisteme Multi-Agent Adaptive, în care agenŃii menŃin relaŃii de cooperare. Aspectul specific al acestei abordări îl constituie specializarea în dezvoltarea software-ului cu functionalitǎŃi emergente, permiŃând doar un singur tip de agent, şi anume acela care coopereazǎ. Un avantaj il constituie modularizarea, preluată din metodologia RUP, caracteristică prin care anumite componente pot fi reutilizate.

În scopul implementǎrii sistemelor multi-agent s-au realizat o serie de instrumente. Baza teoreticǎ pentru realizarea unui limbaj de programare a agenŃilor o constituie Programarea Orientatǎ pe AgenŃi ([27]), însǎ până în acest moment nu existǎ un limbaj propriu-zis care sǎ se fi impus pentru dezvoltarea sistemelor multi-agent. In [4] sunt menŃionate douǎ limbaje de programare care au stat la baza dezvoltǎrilor actuale bazate pe agenŃi, METATEM şi IndiGolog, precum şi limbajele utilizate în aplicaŃiile industriale, Brahms, JIAC şi Agent Factory, împreună cu GOAL, reprezentantul noii generaŃii de limbaje orientate agenŃi. Din studiul acestor limbaje se poate afirma faptul cǎ dezvoltarea sistemelor multi-agent reprezintǎ în special, inginerie software şi mai puŃin teorie a sistemelor multi-agent.

CONCLUZII

În prezent, interesul pentru managementul proiectelor şi pentru soluŃiile la diferitele probleme, precum cea de programare a proiectelor complexe este în creştere în tot mai multe domenii. Contextul economic actual generează probleme din ce in ce mai greu de rezolvat prin metode clasice, precum ADC, MMP, PLI.

Proiectul devine o formă de adaptare la complexitatea mediului economic. În aceste condiŃii, proiectele pot fi considerate, la randul lor, sisteme adaptive complexe care pot fi optimizate cu ajutorul tehnologiilor multi-agent.

Pornind de la aceste ipoteze, autorii au implementat în MATLAB două abordări de rezolvare a problemei de programare cu constrângeri de timp (PSCT), una bazată pe algoritmul genetic standard şi, cea de-a doua, pe algoritmul coloniei

Page 14: Profesor univ. dr. ConstanŃa-Nicoleta BODEA Academia de ... elsevier/3-4rom pdf/Constanta Bodea.pdf · CERCETARE Un program calendaristic (schedule), S se defineşte cu ajutorul

ConstanŃa-Nicoleta Bodea, Ruxandra Ileana Badea

de furnici. Rezultatele au relevat faptul că cei doi algoritmi au rezultate comparabile până la un punct pentru diferite functii fitness, după care ACF începe să se comporte mai bine sub aspectul timpului de răspuns şi a reacŃiei la îmbunătăŃirile aduse prin creşterea numărului de generaŃii.

Elementul de noutate al modelului îl constituie implementarea noŃiunii de buffer de timp. Analiza rezultatelor pentru cei doi algoritmi s-a realizat pentru mai multe funcŃii fitness şi pentru valori diferite ale parametri de rulare.

Studiul de caz a permis emiterea unor ipoteze privind posibilităŃile de îmbunătăŃire a algoritmilor prezentaŃi (optimizarea parametrilor de rulare, optimizarea codificării/decodificării etc.), astfel încât să se poată trece la o nouă etapă de căutare a unui algoritm mai eficient pentru PSCT.

Etapa următoare a cercetării va viza imbunătăŃirea modelului problemei de optimizare, prin adăugarea unor ipoteze care să permită respectarea mai multor condiŃii, precum: considerarea unei funcŃii multi-obiectiv şi ipoteza de paralelizare a activităŃilor. Implementarea modelului imbunătăŃit se va realiza în cadrul unui sistem multi-agent.

AKNOWLEDGEMENT Rezultatele prezentate în acest articol au fost obŃinute în cadrul proiectului

de cercetare Metode şi tehnici de evaluare a proiectelor şi programelor, finanŃat de către Ministerul EducaŃiei, Cercetării, Tineretului şi Sportului prin grantul ID-873/2007.

BIBLIOGRAFIE

[1] Bauer, A., Bullnheimer, B., Hartl, R., Strauss, C. (1999), „An ant colony optimizationapproach for the single machine total tardiness problem”, in Proceedings of the 1999 Congress on Evolutionary Computation (CEC99), 6-9 July, pp. 1445-1450; [2] Bodea, C.N., Niculescu, C.S. (2006), „Resource Leveling Using Agent Technologies”, in Proceedings of 20th IPMA World Congress on Project Management, China Machine Press, ISBN 7-111-04703-6, pp. 599-605; [3] Bodea, C.N., Elmas, C., Tănăsescu, A., Dascălu, M. (2010), „An ontological-based model for competences in sustainable development projects: a case study for project’s commercial activities”, Amfiteatrul Economic, no. 27, ISSN 1582-9146, pp. 177-189; [4] Bordini, R. H., Dastani, M. , Dix, J., Seghrouchni, A. El F. (2009), “Multi-Agent Programming Languages, Tools and Applications”, Springer Science & Business Media, New York, USA, ISBN 978-0-387-89298-6; Colorni, A., Dorigo, M., Maniezzo, V. (1991), „Positive feedback as a search strategy”, Technical Report No 91-016, Politecnico di Milano, Italy, p. 20

Page 15: Profesor univ. dr. ConstanŃa-Nicoleta BODEA Academia de ... elsevier/3-4rom pdf/Constanta Bodea.pdf · CERCETARE Un program calendaristic (schedule), S se defineşte cu ajutorul

Programarea proiectelor complexe utilizând metode evoluŃioniste

[5] Colorni, A., Dorigo, M., Maniezzo, V., Trubian, M. (1994), „Ant system for jobshop scheduling”, JORBEL Belgian Journal of Operations Research, Statistics and Computer Science, (34), pp. 39-53; [6]Deckro, R.F., Herbert J.E. (1989), „Resource constrained project crashing”, OMEGA International Journal of Management Science, 17, pp. 69–79; [7] Deneubourg, J.L., Pasteels, J.M., Verhaeghe, J.C. (1983), „Probabilistic behaviour in ants: A strategy of errors”, Journal of Theorical Biology (105), pp. 259–271; [7]Deneubourg, J.L., Goss, S. (1989), „Collective patterns and decision-making” Ethology and Evolution (1), pp. 295–311; [8]Dorigo, M. (1992), „Optimization, learning and natural algorithms”, Ph.D. Thesis, Politecnico di Milano, Italy; [9]Dorigo, M., Gambardella, L.M. (1997), „Ant colonies for the travelling salesman problem”,BioSystems (43), pp. 73–81; [10]Goss, S., Beckers, R., Deneubourg, J.L., Aron, S., Pasteels, J.M. (1990), „Howtrail laying and trail following can solve foraging problems for ant colonies”, in Hughes, R.N. (ed.), Behavioural Mechanisms of Food Selection NATO,ASI Series, G20, Springer, Berlin; [11]Guldemond, T.A., Hurink J.L., Paulus J.J., Schutten J.M.J. (2008), „Time-Constrained Project Scheduling”, Journal of Scheduling, Springer Netherlands, ISSN 1094-6136 (Print) 1099- 1425 (Online), vol. 11, no. 2, pp. 134-148; [12]Henderson-Sellers, B., P. Giorgini P., (2005), “Agent-oriented methodologies”, Idea Group Publishing, London, U.K, ISBN 1-59140-581-5; [13]Herroelen, W., De Reyck, B., Demeulemeester E. (1998), „Resource-constrained project scheduling: a survey of recent developments”, Computers and Operations Research, 25, pp. 279–302; [14]Holland, J.H. (1975), Adaptation in Natural and Artificial Systems, University of MichiganPress: Ann Arbor, MI; [15]Holland, J.H., (1995), Hidden Order: How Adaptation Builds Complexity, Reading, Addison-Wesley; [16]Hurink, J.L., Kok, A.L., Paulus, J.J., Schutten, J.M.J. (2009), Time-constrained projectscheduling with adjacent resources, Enschede, The Netherlands; [17]Jones, K., Bouffet, A. (2007), „Comparison of Ant Colony Optimisation and Differential Evolution”, International Conference on Computer Systems and Technologies – CompSysTech’07; [18]Kis, T. (2005), „A branch-and-cut algorithm for scheduling of projects with variable intensity activities”, Mathematical Programming, 103, pp. 515–539; [19]Kolisch, R., Hartmann, S. (1999), „Heuristic algorithms for solving the resource-constrained project scheduling problem: Classification and computational analysis”, in J. Weglarz (ed.),Handbook on Recent Advances in Project Scheduling. Kluwer, pp. 197–212; [20]Kolisch, R., Padman, R. (2001), „An integrated survey of deterministic project scheduling”,Omega, 29, pp. 249–272;

Page 16: Profesor univ. dr. ConstanŃa-Nicoleta BODEA Academia de ... elsevier/3-4rom pdf/Constanta Bodea.pdf · CERCETARE Un program calendaristic (schedule), S se defineşte cu ajutorul

ConstanŃa-Nicoleta Bodea, Ruxandra Ileana Badea

[21]Lee, J., Kim, Y., (1996), „Search heuristics for resource constrained project scheduling”, Journal of the Operational Research Society, 47(5), pp. 678-689; [22]Li, R.K-Y, Willis, R.J. (1993), „Resource constrained scheduling within fixed project durations”, The Journal of the Operational Research Society, 44, pp. 71–80; [23]Merkle, D., Middendorf, M., Schmeck, H. (2002), „Ant colony optimization for Resource-Constrained Project Scheduling”, IEEE Transactions on Evolutionary Computation 6(4): 333-346; [24]Molga, M., Smutnicki, C. (2005), „Test functions for optimization needs”, available at http://www.zsd.ict.pwr.wroc.pl/files/ docs/functions.pdf, Accesed on 20-07-2010; [25]Shoham, Y. (1993),”Agent-oriented programming”, Artificial Intelligence, 60(1), pp. 51-568; [26]Stutzle, T. (1998) ,An ant approach for the flow shop problem”, in Proceedings of the 6thEuropean Congress on Intelligent Techniques & Soft Computing (EUFIT '98), 3, pp. 1560-1564; [27]Weise, T. (2009), „Global Optimization Algorithms – Theory and Application,” available athttp://www.it-weise.de/, Accesed on 20-05-2010; [28]Yan, Y., Kuphal, T., Bode, J. (2000),” Application of Multiagent Systems in Project Management”, Int. J. Production Economics, Institute of Production Management and Industrial Information Management Department of Economics and Management Universityof Leipzig, Germany, pp. 185-197; [29]Zambonelli, F., Jennings, N. R., Wooldridge, M. (2001),”Organisational abstractions for the analysis and design of multi-agent systems”,in Proceedings of the Agent -Oriented Software Engineering Workshop (pp.235-251). LNCS, Vol. 1957. Berlin: Springer-Verlag.