Sunteți pe pagina 1din 37

CUPRINS

CUPRINS...................................................................................1 PARTEA I ALGORITMI GENETICI.................................................2 Capitolul 1: Probleme de optimizare.........................................................2 1.1. Noiuni introductive.........................................................................2 1.2. Clase de metode de optimizare.......................................................5 Capitolul 2: Algoritmi genetici...................................................................7 2.1. Definirea conceptului......................................................................7 2.2. Structura algoritmilor genetici......................................................10 2.3. Operatori genetici.........................................................................13 2.4. Oportunitatea aplicrii algoritmilor genetici..................................17 PARTEA a II- a PROBLEMA PLANIFICRII RESURSELOR..............18 Capitolul 3: Prezentarea problemei.........................................................18 3.1. Modelul problemei de planificare..................................................18 3.2. Metode clasice de rezolvare..........................................................24 3.3. Algoritmi genetici pentru rezolvarea problemei de planificare ....31 3.4. Aplicaie........................................................................................34 Bibliografie.............................................................................37

PARTEA I ALGORITMI GENETICI


Capitolul 1: Probleme de optimizare

1.1. Noiuni introductive

Problema optimizrii Creterea extraordinar a complexitii sistemelor concepute n ultimele decenii a impus, n proiectarea acestora, utilizarea aproape exclusiv a calculatoarelor. Un numr mare de metode de calcul au fost dezvoltate i implementate n acest domeniu, metode care acoper astzi toate etapele muncii de proiectare, de la studiul cerinelor, pn la stabilirea detaliilor tehnologice. Evident, toate aceste activiti stau sub semnul maximizrii performanelor, iar intrarea lor sub incidena optimizrilor (de orice fel) este inerent, conducnd la apariia unor algoritmi de proiectare din ce n ce mai sofisticai i performani. Optimizarea reprezint disciplina din domeniul matematicii care se ocup cu gsirea minimei sau maximei unei funcii. Optimizarea cuprinde o arie foarte mare de tehnici din cadrul cercetrii, inteligenei artificiale, sau din informatic i este folosit pentru a mbunti diverse procese, indiferent de domeniul de care aparin (sntate, afaceri, financiar, industrial, etc.). [1] Modelarea Un model este reprezentarea abstract sau matematic a unei probleme i este o parte esenial n procesul de rezolvare optim a acelei probleme. Lund n considerare faptul c problemele din lumea real sunt foarte complexe i depind de multe variabile, este dificil dezvoltarea unui model matematic care s conin toate aspectele problemei. Din acest motiv cercettorii ncearc fie s formuleze un model simplificat, fie s fac numeroase presupuneri i aproximri cu privire la problema studiat. Pentru c modelarea n acest caz este simplificat i/sau aproximat, de

cele mai multe ori exist discrepane majore ntre rezultatele obinute i soluia optim real la problema respectiv. Aceste discrepane pot duce la decizii nepotrivite dac acestea sunt luate doar dup soluia problemei simplificate, iar acest lucru se ntmpl des n procese decizionale sau de proiectare. Modelul matematic este numele dat unui set de instrumente proiectate pentru a rezolva probleme manageriale, de planificare i proiectare unde factorul decizional trebuie s aloce resurse limitate unor activiti variate pentru a optimiza un scop msurabil. Caracteristica de baz a unei probleme ce poate fi rezolvat prin modelare matematic este aceea de a dezvolta un model matematic foarte bine definit. Modelele matematice au 3 componente majore: variabilele decizionale, funciile obiectiv i constrngerile (restriciile). [1] Variabilele decizionale Variabilele decizionale depind de tipul problemei i pot fi reprezentate de cantitile de resurse ce urmeaz s fie alocate sau de numrul de uniti ce trebuie produse, sau char de ctre ambele variante. Factorul decizional caut setul de valori necunoscute care poate oferi o soluie optim a problemei. De obicei, variabilele decizionale se noteaz matematic cu: x1, x2 xn sau cu x, y, z. [1] Funcia obiectiv Funciile obiectiv reprezint scopul/obiectivele problemei n termenii variabilelor decizionale. Fie o funcie , definit astfel: , pentru o mulime A de numere reale. Se caut elementul numete problem de minimizare) Se caut elementul numete problem de maximizare) A este o submulime a spaiului Euclidian , des specificat ca un set de limitri de posibiliti, egaliti sau inegaliti pe care membrii lui A trebuie s le satisfac (restricii). Elementele lui A se numesc soluii admisibile, iar funcia se numete funcie obiectiv sau funcie cost. O (problema se (problema se

soluie admisibil care minimizeaz sau maximizeaz (n funcie de tipul funciei) funcia obiectiv se numete soluie optim.[2] Constrngerile (Restriciile) Constrngerile sunt cunoscute ca i restricii sau limitri ale problemei ce urmeaz a fi optimizate. O constrngere are dou componente, de obicei o funcie i o constant, asociat unei egaliti sau inegaliti. Definirea problemei Faza definirii problemei este faza din care trebuie s rezulte o enunare clar si concis a acelei probleme, rezultat n urma observaiilor, precum i identificarea i clarificarea stadiului n care se afl aceasta. Din aceast definire clar a problemei trebuie s rezulte obiectivele urmrite. Tot n aceast etap sunt elaborate ipotezele, sunt determinate restriciile i sunt stabilite rezervele, precum i posibile informaii cu privire la resurse i paramatri implicai n problem. Practica arat c definirea eronat a problemei, este cauza major a eecului. Formularea problemei necesit numeroase ncercri sau rafinare. Procesele de formulare ncep cu ncercri de formulri urmate de reformulri progresive i modificri pe msur ce proiectul se desfoar i problema devine tot mai clar. Dezvoltarea modelului matematic Odat ce problema care trebuie analizat este definit, urmtorul pas este acela de a dezvolta un model matematic. El este o reprezentare matematic a sistemului real i reprezint inputurile importante ale problemei, ntr-o form uor de interpretat. Modelul matematic este testul experimental unde pot fi testate noi decizii alternative i impactul asupra sistemului existent fr a deregla sistemul real. Scopul unui model este acela de a explica, prezice sau controla comportamentul entitii modelate.

1.2. Clase de metode de optimizare

Dimensiunea problemelor O msur a complexitii problemei de programare este dimensiunea acesteia exprimat prin numrul de necunoscute i de restricii. Dimensiunea problemelor care pot fi rezolvate a crescut o dat cu dezvoltarea teoriei i a tehnicilor de calcul. Se pot distinge acum trei categorii de probleme: de dimensiune redus (cu cel mult 5 variabile sau restricii), de dimensiune medie (ntre 5 i 100 de variabile sau restricii) i de dimensiuni mari (cu peste 100 de variabile i restricii). Aceast clasificare reflect nu numai diferene de dimensiuni, dar i de abordare. Astfel problemele de dimensiuni mici pot fi rezolvate de mn sau cu un calculator de buzunar. Problemele de dimensiuni medii pot fi rezolvate pe un calculator, folosind programe matematice generale. Problemele de dimensiuni mari necesit programe sofisticate care exploateaz caracteristicile particulare ale problemei i de obicei se ruleaz pe calculatoare de mare capacitate. Teoria Abordrile iniial recente a se optimizrii axeaz s-a pe concentrat exploatarea asupra obinerii rezultatelor teoretice ignornd aspectele de calcul ale metodelor propuse. caracteristicilor calculatoarelor, obinnd soluia prin metode iterative. Algoritmi iterativi i convergen Cea mai important caracteristic a calculatoarelor este capacitatea lor de a efectua operaii repetitive ntr-un mod eficient i din aceast cauz majoritatea algoritmilor de rezolvare a problemelor de optimizare sunt iterativi. n cutarea unei soluii se alege un vector iniial x0 i algoritmul determin un vector x1 care conduce la o valoare mai bun a funciei obiectiv; procesul se repet obinndu-se un ir de vectori x0, x1, , xk, , fiecare mbuntind valoarea funciei obiectiv, fa de precedentul. Acest ir converge ctre x*, soluia problemei. n problemele de programare liniar soluia se obine dup un numr finit de pai. n probleme de programare neliniar irul nu atinge niciodat soluia, dar

converge ctre ea. Practic, algoritmul se oprete cnd s-a obinut un punct suficient de aproape de soluie. Teoria algoritmilor iterativi poate fi mparit n trei pri. Prima parte se ocup cu crearea de algoritmi. A doua parte, numit i analiza convergenei globale, analizeaz convergena unui algoritm ctre soluia optim atunci cnd se iniializeaz cu un punct deprtat de soluia optim. Cea de-a treia component se numete analiza convergenei locale i studiaz rata de convergen a irului ctre soluia optim. Este esenial cnd se recomand un algoritm s se menioneze i o estimare a timpului necesar pentru obinerea soluiei. [3] Clasificarea metodelor de optimizare n funcie de numrul i tipul variabilelor, de numrul de restricii, sau de tipul funciei ce trebuie optimizat, modelele i metodele de optimizare se mpart n mai multe categorii. Tabelul de mai jos ilustreaz principalele categorii de metode de optimizare:
Metoda Programare liniar Determinarea drumului Funcie obiectiv Liniar Liniar Liniar Liniar Liniar Neliniar Neliniar Neliniar Quadric Neliniar Neliniar Restricii Liniare Liniare Liniare Liniare Liniare Fr restricii Egaliti neliniare Neliniare Liniare Liniare

minim

(Dijkstra) Minimum spanning tree Algoritmul Ford/Fulkerson PERT i gestionea resurselor Branch and Bound Algoritmul Balas (cu valiabile binare) Algoritmi genetici Algoritmul Hooke i Jeeves Metoda Lagrange Metode GRG Programare quadric Programare liniar secvenial Programare quadric secvenial

Capitolul 2: Algoritmi genetici

2.1. Definirea conceptului

Algoritmii genetici sunt tehnici adaptive de cutare euristic, bazate pe principiile geneticii i ale seleciei naturale, enunate de Darwin ("supravieuiete cel care e cel mai bine adaptat"). Mecanismul este similar procesului biologic al evoluiei. Acest proces posed o trstur prin care numai speciile care se adapteaz mai bine la mediu sunt capabile s supravieuiasc i s evolueze peste generaii, n timp ce acelea mai puin adaptate nu reuesc s supravieuiasc i cu timpul dispar, ca urmare a seleciei naturale. Probabilitatea ca specia s supravieuiasc i s evolueze peste generaii devine cu att mai mare cu ct gradul de adaptare crete, ceea ce n termeni de optimizare nseamn c soluia se apropie de optim. Un algoritm genetic este un model informatic care folosete modelul biologic evoluionist pentru a rezolva probleme de optimizare ori cutare. [4] Algoritmii genetici codific soluiile posibile ale unor probleme specifice ntr-o structur de date de tip cromozom i aplic acestor structuri operatori de recombinare, pentru a pstra informaia util. Un cromozom este un vector sau un ir de gene. Poziia unei gene este numit locusul ei. Valorile pe care le poate lua o gen sunt numite alele i sunt mulimi finite de numere intregi, intervale de numere reale, sau chiar structuri complexe de date. Alelele (gen de un anumit tip de pe acelai cromozom) variaz de la un locus la altul. Sarcina unui algoritm genetic e s descopere cromozomi din ce n ce mai buni, pn la atingerea unei valori a raportului dintre evaluarea asociat unui ir i evaluarea medie a tuturor irurilor populaiei (fitness) despre care se tie c este optimal, sau pn cnd algoritmul genetic nu mai poate aduce mbuntiri.

Implementarea unui algoritm genetic ncepe cu o populaie de cromozomi aleas aleator. Se evalueaz aceste structuri i apoi se aloc faciliti reproductive astfel nct acei cromozomi care reprezint o soluie mai bun pentru problema int s aib mai multe anse de a se reproduce dect acei cromozomi care sunt soluii mai puin bune. Definirea unei soluii bune se face n raport cu populaia curent. ntr-un sens mai larg, algoritm genetic este orice model bazat pe ideea de populaie i care folosete selecie i operatori de recombinare pentru a genera noi puncte ntr-un spaiu de cutare. Ei sunt recomandai pentru aflarea soluiilor neliniare ale unor probleme atunci cnd nu este posibil modelarea matematic i nici euristic n domeniu. Ideea de baz a unui algoritm genetic const n a ncepe cu o populaie de soluii, fiecare mai performant dect precedentele. Fazele ciclului prin care opereaz un asemenea algoritm sunt: 1. Creearea unei populaii de membri, (soluii candidat la rezolvarea unei probleme); 2. Selecia membrilor care s-au adaptat cel mai bine necesitilor problemei de rezolvat; 3. Reproducerea (se folosesc operatorii genetici de ncruciare i mutaie, pentru a obine noi membri); 4. Evaluarea gradului n care noii membrii corespund mai bine soluionrii problemei; 5. Abandonarea populaiei vechi prin nlocuirea ei cu populaia nou din noua generaie. Abandonarea

Populaia

Evaluarea

Selecia

Reproducerea

Un asemenea ciclu se repet pn cnd este identificat cea mai bun soluie la problema n cauz. [5]

2.2. Structura algoritmilor genetici Algoritmii genetici ncep, ca i ali algoritmi de optimizare, cu definirea variabilelor, a funciei obiectiv i a costurilor i se termin de asemenea ca orice alt algoritm de optimizare, cu testarea convergenei. ns, ntre aceti doi pai, algoritmul este diferit. O structur general a unui algoritm genetic este prezentat mai jos: Definirea funciei obiectiv, a costurilor, a variabilelor Alegerea parametrilor AG Generarea populaiei iniiale Evaluarea cromozomilor Determinarea costului pentru fiecare cromozom Selectarea cromozomilor care vor participa la formarea noii generaii Selectarea cromozomilor care vor participa la formarea noii generaii ncruciare Mutaie Testarea convergenei Final

Definirea funciei obiectiv, a costurilor, a variabilelor. Alegerea parametrilor AG.

Algoritmul genetic ncepe prin a defini cromozomii sau o colecie de valori variabile care vor fi optimizate. Dac un cromozom are N variabile (o problem de optimizare N dimensional), date de p1, p2, . . . , pN, atunci cromozomul va fi scris ca un vector linie de N elemente: cromozom = [p1, p2, . . . , pN]. Cromozomii utilizai au lungime constant, pe tot parcursul algoritmului. Fiecare cromozom are un cost, determinat prin evaluarea funciei obiectiv f n p1, p2, . . . , pN: cost = f (cromozom) = f (p1, p2, . . . , pN). [6] Parametrii Operatorii introdui mai sus se aplic unei populaii care are iniial anumite caracteristici (parametri) ce confer zestrea genetic a populaiei respective. Aceti parametri joac, deseori, un rol esenial n reuita algoritmilor genetici. Principalii parametri sunt: mrimea (dimensiunea) populaiei, N; lungimea stringului asociat fiecrui individ (cromozom), l i probabilitile de ncruciare i, respectiv, mutaie, pc i pm . Dac mrimea (dimensiunea) populaiei, N este foarte mare atunci timpul de calcul necesar AG crete foarte mult, iar dac N este prea mic, atunci AG poate converge rapid ctre un individ (cromozom) care nu reprezint soluia optimal. Ca o regul empiric, N se alege egal cu l3. Probabilitile ps , pc i pm se aleg n funcie de forma funciei de fitness. Alegerea este, n general, euristic. Cu ct aceste probabiliti sunt mai mari, cu att populaia sufer schimbri mai importante. Pentru pc valorile general admise sunt ntre 0,5 i 0,9. Dac se alege un pc prea mic atunci exist riscul ca ncruciri s nu aib loc, ceea ce duce la odificarea foarte lent a populaiei i, deci, la creterea timpului de calcul necesar AG. n ceea ce privete probabilitatea de mutaie, pm aceasta se alege ntre 0,01 i 0,05. O probabilitate de mutaie prea ridicat risc s conduc la determinarea unei politici suboptimale. De multe ori, AG sunt realizai n aa fel nct o parte a sa determin individul optimal iar o alt parte stabilete valorile optime ale parametrilor. Aceste dou operaii pot fi efectuate simultan sau secvenial, evident cu creterea corespunztoare a timpului de calcul.

Generarea populaiei iniiale Se iniializeaz aleator populaia p(t), unde t = 0 (momentul iniial). ntotdeauna populaia (generaia) P(t+1) de la momentul t+1 se obine reinnd toi descendenii populaiei P(t) i tergnd ulterior cromozomii generaiei precedente (P(t)). De asemenea, numrul cromozomilor rmne constant. Evaluarea cromozomilor Se evalueaz cromozomii populaiei P(t). n acest scop se utilizeaz o funcie de performan ce depinde de problem. Ct timp nu este ndeplinit condiia de terminare se execut paii urmtori: Se selecteaz cromozomii din P(t) care vor contribui la formarea noii generaii. Fie P1 mulimea cromozomilor selectai (P1 reprezint o populaie intermediar). Se determin costurile pentru fiecare cromozom. Se aplic cromozomilor din P1 operatorii genetici. Cei mai utilizai sunt operatorii de mutaie i ncruciare. Fie P2 populaia astfel obinut (descendenii populaiei P(t)). Se terg din P1 prinii descendenilor obinui. Cromozomii rmai n P1 sunt inclui n populaia P2. Se construiete noua generaie, astfel: P(t+1) P2; se terg toi cromozomii din P(t); se execut atribuirea t t+1; se evalueaz P(t). Condiia de terminare se refer, de regul, la atingerea numrului de generaii specifice. Dac numrul maxim admis de generaii este N, atunci condiia de oprire este t>N. Se admite c rezultatul algoritmului este dat de cel mai promitor individ din ultima generaie. n realitate, nimic nu ne garanteaz c un individ mai performant nu a fost obinut ntr-o generaie anterioar. De aceea, este normal ca la fiecare pas (la fiecare generaie t) s reinem cel mai promitor individ care a fost generat pn atunci. Acest proces poart numele de elitism.

2.3. Operatori genetici Operatorii genetici joac cel mai important rol n cadrul AG. Exist trei tipuri principale de operatori: operatorul de selecie, operatorul de ncruciare i operatorul de mutaie. Operatorul de selecie (numit uneori i operatorul de reproducere) este cel mai important operator genetic deoarece permite indivizilor dintro populaie s supravieuiasc, s se reproduc sau s moar. Ca regul general, probabilitatea de supravieuire a unui individ este legat direct de eficiena relativ a acestuia n cadrul populaiei respective. Exist mai multe metode de reproducere (selecie). Metoda cea mai cunoscut este, desigur, cea a loteriei ntmpltoare (aleatoare). Conform acestei metode, fiecare individ (cromozom) va fi duplicat n noua populaie, proporional cu valoarea sa de adaptare. Se efectueaz, de cteva ori, extrageri cu revenire din cadrul mulimii de indivizi ai populaiei respective. n cazul codificrii binare, se determin pentru fiecare individ (cromozom) extras ci, fitnessul acestuia, f(d(ci)). Atunci probabilitatea ca cromozomul ci s fie reintrodus n noua populaie, a crei mrime este N, va fi:

Indivizii (cromozomii) care determin o valoare a funciei de fitness mare au o probabilitate de selecie ps mare, deci anse mai mari de a fi selecionai (de a se reproduce). Un astfel de tip de selecie se mai numete i selecie proporional i este foarte uor de efectuat. Inconvenientul major n utilizarea unei astfel de metode const n faptul c un individ care nu este cel mai bun din populaia respectiv poate ajunge totui s domine selecia. Se nregistreaz astfel o pierdere de diversitate prin dominaia unui individ, denumit i superindivid sau dictator. Un alt inconvenient este i performana slab a metodei ctre sfritul seleciei, cnd mulimea indivizilor devine mai omogen. n acest caz, majoritatea cromozomilor are un fitness ridicat, dar nu optimal sau apropiat de cel optimal. n procesul de selecie, acest grup poate ajunge

s domine populaia, astfel nct algoritmul genetic nu va mai evolua i optimul nu va mai putea fi gsit. Acest fenomen se numete convergen prematur i este una dintre problemele care apar cel mai frecvent la utilizarea algoritmilor genetici. O soluie a acestei probleme nu const neaprat din utilizarea unei alte metode de selecie, ci din introducerea unei funcii de fitness modificat. Astfel, putem utiliza o schimbare de scal pentru a crete ecartul (diferena) relativ dintre valorile de fitness ale indivizilor. Exist i alte metode de selecie, de exemplu selecia de tip turneu, n care se extrag de fiecare dat cte doi indivizi din populaie i se reproduce (selecteaz) cel mai bun dintre cei doi n noua populaie. Se repet aceast procedur pn cnd noua populaie este complet (deci ajunge la acelai numr de indivizi N ca i populaia iniial). Totodat, se urmrete ca n faza de selecie s nu se creeze noi indivizi n populaie. Acesta este rolul urmtorului operator genetic. [7] Operatorul de ncruciare permite crearea unui nou individ (cromozom) i includerea sa n populaia nou generat. Acest lucru se face printr-o procedur foarte simpl care permite schimbul de informaie ntre indivizi (cromozomi). Astfel, doi indivizi, formnd o pereche, sunt extrai din cadrul populaiei rezultat prin selecie (reproducere). Apoi se determin aleator unul sau mai multe puncte de ncruciare (o cifr ntre 1 i l1). n sfrit, cu o probabilitate pc ca ncruciarea s aib loc n acel punct, segmentelor finale (n cazul unui singur punct de ncruciare) ale celor doi prini, cum se numesc indivizii extrai, se schimb ntre ele, ducnd astfel la apariia a doi noi indivizi (cromozomi). Exemple de ncruciri sunt n figurile de mai jos: ncruciare simpl

Punct ncruciare

de

Prini

Rezultat

ncruciare multipunct Puncte de ncruciare

Prini

Rezultat

Trebuie spus c un individ selecionat pentru reproducere nu sufer neaprat i o operaie de ncruciare. Acest lucru nu are loc dect cu o anumit probabilitate, pc . Cu ct pc este mai mare, cu att populaia va suferi schimbri mai mari. Aciunea conjugat a celor doi operatori, de selecie i de ncruciare, este insuficient ns pentru a asigura reuita unui AG. Acest lucru se ntmpl deoarece, n cazul codificrii binare, anumite informaii (de exemplu caractere ale alfabetului) pot s dispar din populaie. De exemplu, dac nici un individ din populaia iniial nu conine 1 n ultima poziie a stringului binar i totui acest 1 face parte din stringul optimal ce trebuie determinat, orice operaie posibil de ncruciare nu permite s apar 1, care este iniial necunoscut. n codificarea real (zecimal), o astfel de situaie se poate atinge dac iniial populaia este cuprins, de exemplu, ntre 0 i 40, n timp ce valoarea optimal este 50. Orice combinaie posibil de cifre ntre 0 i 40 nu permite atingerea unei cifre de 50.

Operatorul

de

mutaie

modific

aleator,

cu

anumit

probabilitate pm, valoarea unei componente a individului. n cazul unei codificri binare, fiecare bit ai {0,1} din cadrul stringului este nlocuit cu probabilitatea pm de opusul su ai' = 1 ai. Aa cum sunt posibile mai multe locuri de ncruciare, pot fi alese, n cazul unui string binar, mai multe poziii n care pot aprea mutaii. Operatorul de mutaie confer algoritmului genetic o anumit proprietate de ergodicitate (de exemplu toate punctele din spaiul de cutare a soluiilor pot fi atinse utiliznd mutaia). Prin aplicarea operatorului de mutaie se confer algoritmului genetic un caracter dual: pe de o parte se poate efectua o cutare local n orice zon a spaiului de cutare a soluiei (cutarea pe orizontal) i, n acelai timp, se poate avansa, la fiecare mutaie, cu o treapt n procesul de cutare (cutarea n adncime).

2.4. Oportunitatea aplicrii algoritmilor genetici nc de la apariia lor, algoritmi genetici au trezit un interes deosebit cercettorilor din domeniul economiei i finanelor care au vzut in aceast metod o noua posibilitate de a aborda marile teme cu care se confrunta aceste domenii. n rezolvarea problemelor de optimizare i previziune, se includ aplicaii ale AG n trei domenii: rezolvarea numeric a problemelor de optim, econometrie i finane. Algoritmii genetici, spre deosebire de metodele clasice de rezolvare a problemelor de optim (de exemplu metodele de gradient) nu se bazeaz pe o metod analitic, ci pe una iterativ i euristic. Pentru aceasta, este necesar puin informaie pentru utilizator: spaiul de cutare a soluiilor posibile i un criteriu de performan. Foarte repede s-a vzut potenialul de utilizare a algoritmilor genetici ca mijloc de rezolvare numeric. Un mare potenial au dovedit algoritmii genetici i n aplicaiile lor econometrice. n acest domeniu, utilizarea algoritmilor genetici a fost fcut n diferite direcii: cutarea unei forme funcionale a modelului econometric, determinarea valorilor coeficienilor de regresie .a. Aplicaiile n domeniul finanelor sunt foarte bine dezvoltate n ultimii ani, iar algoritmii genetici reprezint o metod valid pentru multe probleme practice din finane care pot fi complexe i deci necesit utilizarea unor tehnici de optimizare robuste i eficiente. Astfel de aplicaii ale AG la probleme complexe pe pieele financiare includ: prognoza veniturilor, optimizarea portofoliului, descoperirea regulilor de tranzacionare i optimizarea metodelor de tranzacionare. [8] Aceast lucrare propune utilizarea algoritmilor genetici pentru rezolvarea problemei planificrii resurselor i activitilor unui proiect. Acest tip de problem face parte din categoria problemelor de optimizare, unde algoritmii genetici pot determina o soluie apropiat de optim. Cu ct proiectul are mai multe activiti i resurse de planificat, cu att mai eficient este algoritmul, n comparaie cu metodele clasice de rezolvare a problemei.

PARTEA a II- a PROBLEMA PLANIFICRII RESURSELOR


Capitolul 3: Prezentarea problemei

3.1. Modelul problemei de planificare

Elemente de teoria ordonanei 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. 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 i un proces tehnologic prin care se precizeaz intercondiionrilor ntre activiti, interesnd n special ordinea de execuie a acestora. 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 i, 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. Relaii de preceden 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 tAB 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 tAB 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. 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 tAB de la terminarea activitii A sau c activitatea A trebuie terminat cu cel puin tAB 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. [9] Problema planificrii implic utilizarea unui graf orientat, aciclic, care s conin o colecie de activiti i datele referitoare la relaiile lor de preceden. Scopul planificrii activitilor este de a elimina momentele din proiect fr activiti i de a optimiza organizarea activitilor, astfel nct relaiile de preceden s se ndeplineasc, iar timpul total de execuie s fie minim. [10] n general, problema planificrii resurselor este de dou tipuri: static i dinamic. n planificarea static, caracteristicile problemei, cum ar fi durata unei activiti, legturile, precedenele sau sincronizarea sunt cunoscute nainte de a fi executate. Pe de alt parte, n planificarea dinamic, sunt cunoscute puine activiti i deciziile cu privire la acestea sunt luate pe pacrurs. n continuare este prezentat modelul static de programare a resurselor. [11] 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). 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. [9] Descrierea matematic a problemei Un proiect va consta ntr-un set de activiti V = (1, 2, ..., n). Activitatea 1 i activitatea n reprezint nceputul proiectului, respectiv sfritul proiectului. Pentru fiecare activitate j vom nota cu Predj mulimea activitilor care trebuie s se finalizeze nainte ca j s nceap. Elementele mulimii Predj sunt numite predecesori direci ai lui j. Astfel, este adevrat urmtoarea afirmaie generalizat: O activitate i este numit predecesoare activitii j dac exist . Activitatea i este un succesor imediat al activitii j dac j este un predecesor imediat al activitii i. Mulimea tuturor succesorilor o vom nota cu Sucj. Astfel, activitatea 1 va fi predecesor pentru toate activitile, respectiv activitatea n va fi succesor pentru toate activitile proiectului. Un alt tip de restricie se refer la resurse. Sunt definite un numr de K tipuri de resurse refolosibile. O cantitate limitat din k resurse, notat cu Rk, este disponibil n fiecare unitate de timp. n timpul desfaurrii unei activiti j, sunt necesare rjk uniti de resurs , pe parcursul fiecrei

perioade te timp de durat dj (exist un singur mod de desfurare a activitilor). Se consider, de asemenea, ca activitile nu pot fi oprite o dat de au nceput. Parametri Rk,, rk, dj se presupun a fi cunoscui sau determinai, de tip ntreg. De asemenea, r1k = rnk = 0 i d1j = dnj = 0, pentru toi .

Problema planificrii acivitilor i resurselor se poate rezolva dac timpul de nceput (sau timpul de sfrit) a fiecrei activiti satisface restriciile de preceden i cele referitoare la resurse, astfel nct timpul total de desfurare al proiectului s fie minim.[12] Un exemplu de proiect, definit pe baza notaiilor de mai sus, se regsete n figura 3.1. Acest proiect are n = 7 activiti i k = 1 resurse reutilizabile, cu 2 uniti capacitate.

di/rj,1 2/ 1

2
0/ 0 Fig. 3.1

1/ 2

i
0/ 0 K = 1, R1 =2

1
1/ 1 1/ 2 2/ 1

n figura 3.2, o secven posibil este reprezentat cu o durat total de 8 uniti de timp, n timp ce n figura 3.3 este reprezentat o aranjare a activitilor ce determin o durat total de doar 5 uniti de timp. Aceste secvene sunt reprezentate cu ajutorul diagramei Gantt. Axa orizontal reprezint timpul, iar axa vertical utilizarea resurselor. Dac ar

fi existat mai multe tipuri de resurse, era necesar realizarea unei diagrame pentru fiecare resurs n parte. Fiecare dreptunghi reprezint o activitate. Lungimea dreptunghiului reprezint durata activitii, iar nlimea arat numrul de uniti de resurs folosit pentru activitate.

4 Fig. 3.2

4 Fig. 3.3

6 2

Definiii: Cu sj (fj) vom nota nceputul (sfritul) activitii j n secvena S, astfel rezultnd un vector de timpi de start (s1, s2, ..., sn), sau similar, un vector de timpi de final (f1, f2, ..., fn). s1 = 0, iar sn = max { }. fn va

fi lungimea sau durata proiectului, n cazul n care nu este specificat altfel. Dac o secven va fi fezabil, va fi notat cu T(s) i va fi definit ca soluie admisibil, care ndeplinete toate restriciile de preceden i constrngerile privind resursele. O secven S dat, , este o activitate activ la momentul t. Conceptual, o problem de planificare a activitilor i resurselor unui proiect poate fi definit astfel:

Funcia obiectiv (3.1) minimizeaz timpul de finalizare a activitilor proiectului, adic durata proiectului. Restriciile (3.2) reprezint relaiile de preceden, iar restriciile (3.3) reprezint limita utilizrii fiecrei resurse k la momentul t. n final, restriciile (3.4) definesc variabilele de decizie ca

fiind ntregi, nenegative. [12]

3.2. Metode clasice de rezolvare


Algoritmii genetici nu reprezinta metoda principala n rezolvarea problemelor de planificare a activitilor i a resurselor unui proiect. Deoarece 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. 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.
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; nc destule variante de desenare astfel nct dou reprezentri ale aceluiai proiect fcute de doi indivizi pot s nu semene aproape deloc.

chiar dac se respect toate regulile de construire a grafului, rmn

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.

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 tAB. Reprezentarea activitate nod permite ca ntre activitile unui proiect s avem mai multe tipuri de legturi de preceden (terminare nceput, nceput nceput, terminare terminare).

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 (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. 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 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. 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. 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 Tmin i una maxim Tmax acceptabil. Evident, durata lucrrii are numeroase implicaii asupra costului, drept pentru care prezint un deosebit interes determinarea acelei durate de execuie, intermediare lui Tmin i Tmax, creia i corespunde costul minim. 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.

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 i 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. 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. [9]

3.3.

Algoritmi planificare

genetici

pentru

rezolvarea

problemei

de

Aceast lucrare propune un algoritm genetic pentru Problema Planificrii Activitilor i Resurselor. Resursele proiectului sunt regenerabile i exist un singur mod de a realiza activitile. Algoritmul propus va minimiza timpul dintre nceputul i sfritul proiectului, lund n considerare restriciile de preceden i disponibilitatea resurselor. Dei algoritmii genetici nu sunt folosii n metodele clasice de rezolvare, acetia sunt foarte utili, rezolvnd ntr-un mod rapid problema i determinnd o soluie apropiat de optim. 3.3.1 Schema de Planificare Se construiete o secven paial care iniial seteaz la 0 nceputul activitii 1. O secven parial este o secven unde numai un subset de n activiti a fost planificat. Se va folosi o schem de planificare serial, unde se mrete numrul de activiti pentru a parcurge paii proiectului. Fie g = 1, 2, ... n-2 etape, unde n este numrul de ativiti. n fiecare etap este selectat o activitate i este programat ct mai devreme posibil, respectnd relaiile de preceden i restriciile resurselor. Sunt dou mulimi asociate fiecrei etape g. Mulimea Secg conine activitile deja programate, iar mulimea Dg conine activitile selectabile. Fg este mulimea timpului de finalizare pentru fiecare element al mulimii Dg. O activitate va fi selectabil dac nu a fost programat i dac toi predecesorii ei au fost programai. Exemplu: Reuniunea acestor mulimi nu est eechivalent cu mulimea V (mulimea activitilor), ntruct aceasta poate s aib i activiti neprogramate neeligibile. Se definete momentul t. Algoritmul va fi urmtorul: ca fiind contitatea disponibil de resursa de tipul k la

1. Start: s1 = f1 = 0, Sev1 = {1}. 2. De la cu g = 2 pn la n-1 execut: 2.1. 2.2. 2.3. 2.4. Calculeaz Dg, Fg, Selecteaz ESj = ,

2.5. fj = sj + dj 2.6. Secg = Secg-1 3. fn = n prima etap 0 este atribuit ca timp de nceput i sfrit pentru o activitate fictiv j, i este inclus ntr-o secven parial. La nceputul fiecrei etape g, se determin mulimea de elemente selectabile Dg, mulimea timpilor de sfrit Fg, i elementele rmase disponibile .

Dup ce o activitate j este selectat din mulimea activitilor eligibile Dg, timpul su de nceput este calculat, prin determinarea ESj (Earliest Starting Time j), lund n considerare relaiile de preceden i predecesorii activitii indicai prin h n secvena parial. Apoi se calculeaz ESj asociat resurselor. Timpul de sfrit este calculat adugnd dj la sj. 3.3.2 Reprezentarea cromozomilor Reprezentarea problemei se va baza pe conceptul unei liste de activiti. ntr-o list de activiti fiecare activitate nefictiv j

apare exact o singur dat. Sunt luate n considerare doar listele de activiti care au restrngeri de preceden. O list de activiti poate fi creat dac activitile predecesoare sunt executate ntotdeauna naintea oricrei activiti din list. . Formal, poate fi exprimat astfel:

Un individ este reprezentat astfel:

n secvena de activiti, se presupune c sunt ndeplinite restriciile de preceden; acest aspect se poate exprima astfel: i Fiecrui cromozom i se aplic algoritmul definit mai devreme, iar nodul iniial care corespunde unei activiti fictive ncepe la timpul 0. Urmtoarele activiti sunt planificate ntr-o ordine definit de lista . [12] 3.3.3 Operatori de ncruciare Pentru lista de activiti se va lua n considerare operatorul de ncruciare cu un singur punct de ncruciare. Doi indivizi, numii prini, sunt selectai: Parinte 1: Parinte 2: i

. Apoi se selecteaz aletor un numr q de la 1 la J, astfel: , astfel: . Poziiile de la i = q+1, ..., J , unde k este cel mai mic nu mai pot fi luate n considerare).

pentru a obine doi indivizi noi, fiu 1 (h1) i fiu 2 (h2). Poziia i = 1, ...., q, din h1 este preluat din din h1 sunt preluate din

indice (activitile deja luate din 3.3.4 Mutaii

Pentru lista de activiti se va alege o probabilitate cu care se vor interschimba activitile ji i ji+1, pentru fiecare pozitie i = 1, ..., j-1. Condiia ca relaiile de preceden s se respecte se va lua n considerare la fiecare mutaie.

3.4. Aplicaie

Problema alocrii resurselor studiu comparativ


1. Enun Se dorete s se programeze un proiect care conine n activiti A (sarcini) care trebuie s fie alocate unei mulimi P de p procesori paraleli (resurse), avnd ca obiectiv minimizarea timpului de alocare al activitilor. Se consider c fiecare activitate Ai trebuie s fie procesat de procesorul Pj pn la finalizare. De asemenea, fiecare sarcin poate fi procesat de ctre cel mult un procesor odat, iar fiecare procesor poate s procesezecel mult o sarcin odat. n funcie de probabilitile de aplicare a operatorilor genetici (selecia, ncruciarea i mutaia) se va realiza o analiz comparativ a rezultatelor. Aplicaia va realiza programarea activitilor, va construi o diagram Gantt asociat activitilor, va aloca fiecare activitate unui procesor i va realiza analiza algoritmilor genetici i a operatorilor acestora.

2. Modul de abordare al problemei Problema propus are 225 activiti, cu cost i durat constante. Numrul activitilor, costul sau durata se pot modifica, pentru una sau mai multe activiti, n funcie de opiunea utilizatorului. De asemenea, exist opiunea introducerii unui set nou de date pentru problem. Programarea activitilor i diagrama Gantt s-au realizat cu ajutorul metodei clasice PERT/CPM (Critical Path Method). S-au calculat, pentru fiecare activitate valorile: EST (Earliest Start Time), EFT (Earliest Finish Time), LST (Latest Start Time) i LFT (Latest Finish Time). Cu ajutorul acestor valori s-a construit diagrama Gantt. Pentru alocarea procesorilor (implicit 5, ns cu posibilitatea modificrii numrului acestora) s-a realizat cu ajutorul rezultatelor PERT/CPM i a algoritmilor genetici.

Resursele acestei probleme sunt procesorii (mainile paralele), care aparin unei clase speciale de resurse. Aceast clas are caracteristicile urmtoare: fiecare activitate are alocat un singur procesor, iar fiecare procesor poate s proceseze o singur activitate.

3. Algoritmul genetic propus Un cromozom va fi reprezentat de un vector de n elemente, unde n este numrul de activiti. Fiecare element i din acest vector va reprezenta procesorul cruia i-a fost alocat activitatea i. Se va ncepe cu o populaie de cromozomi generai aleator, de la 1 la N, unde N reprezint numrul de procesori din sistem. Lund n considerare c obiectivul este minimizarea timpului de planificare, funcia de fitness va avea forma urmtoare:

, unde max (LFT) este timpul maxim de finalizare al planificrii. Funcia de fitness va trebui s fie ct mai mare. Pentru operaii se vor folosi funciile mutaie i crossover, cu probabilitile definite de utilizator. Pentru cazul 1, operatorul crossover se va aplica cu o probabilitate de 0.2, iar cel de mutaie cu probabilitatea de 0.1. Pentru cazul 2, operatorul crossover se va aplica cu o probabilitate de 0.5, iar cel de mutaie cu probabilitatea de 0.15. Pentru ambele cazuri, modificarea minim a funciei fitness este de 0.0001. Pe lng modificarea minim a funciei fitness i probabliti, se ine cont i de numrul maxim de iteraii, stabilit la 100 pentru ambele cazuri.

4. Rezultate Analiza comparativ a celor dou cazuri scoate n eviden importana alegerii probabilitilor de aplicare a operatorilor. Ca i n natur, indivizii cu probabilitate mai mare de selecie au performane mai ridicate.

Rezultatele obinute arat c pentru o probabilitate de ncruciare mai mare, timpul maxim de alocare este mai mic, iar funcia fitness este mai mare. Pe de alt parte, atunci cnd probabilitatea de aplicare a operatorilor crete, scade numrul de iteraii necesar gsirii valorii potrivite. Rezultatele obinute privind planificarea procesorilor pentru fiecare activitate este prezentat n tabelul de rezultate al algoritmului genetic. Pentru exemplul dat, datele de intrare sunt mai jos:

Unul dintre seturile de date de ieire este prezentat mai jos. Se observ diferenele menionate mai sus.

Pentru aceleai valori s-a repetat algoritmul de 10 ori. Rezultatele se regsesc n diagramele de mai jos:

Concluzii privind algoritmii genetici

Bibliografie
[1] Ioan RUS, Clin-Adrian COMES, Veronica DEAC Optimizarea fluxurilor informatice n timp real element al restructurrii informatice, Universitatea Petru Maior din TrguMure 2010 [2] http://ro.wikipedia.org/wiki/Optimizare [3] Romic Trandafir, Modele i algoritmi de optimizare, Ed. AGIR, Bucureti, 2004 [4] http://ro.wikipedia.org/wiki/Algoritm_genetic [5] Claudia Mihaela Mark Seria informatic Algoritmi Genetici, Timioara, 2010 [6] Randy L. Haupt, Sue Hellen Haupt Practical Genetic Algorithms, John Wiley & Sons, Inc., Hoboken, New Jersey, 2004 [7] Emil Scarlat, Nora Chirita - Cibernetica sistemelor economice, Editura ASE, Bucureti,. 2003 [8] Henri Luchian, Mihaela Breaban Algoritmi Genetici, Universitatea Al. I Cuza, Iai, 2006 [9] E. ignescu, D. Mitru Bazele cercetrii operaionale, Ed. ASE, Bucureti 1999 [10] A. Abraham, A.E.Hassanien, P. Siarry, A. Engelbrecht - Foundations of Computational Intelligence Volume 3 [11] F.A. Omara and M.M. Arafa - Genetic Algorithms for Task Scheduling Problem [12] E.G. Franco, F.T. Zurrita, G.M. Delgadillo A Genetic Algorithm for the Resource Constrained Project Scheduling Problem, Bogota