Vous êtes sur la page 1sur 13

Algoritmos Genticos para Gerncia de Projetos

Marco Aurlio C. Pacheco1, Thiago Souza M. Guimares1


1 ICA: Inteligncia Computacional Aplicada, Departamento de Engenharia Eltrica, PUC-Rio R. Marques de S. Vicente 225, Gvea, Rio de Janeiro, CEP 22453-900, RJ, Brasil {marco, thiagog}@ele.puc-rio.br

Resumo. O planejamento de tarefas e alocao de recursos pode ser um problema bastante complicado em projetos de mdio e grande porte, e um dos principais desafios do gerente de projeto lidar com essa complexidade. Nesse artigo sugerido um novo mtodo para resolver esse problema, integrando algoritmos genticos com tcnicas j altamente utilizadas em gerncia de projetos, como COCOMO e CPM/PERT. A soluo conta com tcnicas de algoritmos coevolucionrios cooperativos, gerando planejamentos viveis sem a necessidade de correes ou penalizaes. Por esse mtodo, o gerente de projetos poder, atravs da soluo gerada, alocar recursos em tarefas de uma maneira tima e ainda ter um maior controle de previso do futuro andamento do projeto. Os resultados obtidos foram bem satisfatrios, conseguindo-se um desempenho em mdia 35% melhor do que uma busca aleatria. Palavras chave: algoritmos genticos, algoritmos co-evolucionrios cooperativos

1. Introduo
Gerncia de projetos de software requer a definio de quem faz o que e quando. Muitas tcnicas so empregadas de modo a fornecer essa informao, ou mesmo uma indicao, que ajude ao gerente ter o controle do fluxo de seu projeto. Cada vez mais, tcnicas de Inteligncia Computacional esto sendo aplicadas em problemas nessa rea, e uma delas so os Algoritmos Genticos. Um mtodo desenvolvido por Chang, Christensen e Zhang [1] em 2001, se prope exatamente a utilizar de Algoritmos Genticos para solucionar problemas de planejamento de tarefas e alocao de recursos em projetos de software. Nesse trabalho, Chang [1] se baseia numa pesquisa e publicao anteriores feitas por Chao [2], e prope um Algoritmo Gentico diferente do proposto originalmente por Chao [2] mostrando que Algoritmos Genticos fornecem uma ferramenta poderosa para a gerncia de projetos, conseguindo bons resultados.

Em seu trabalho, Chang [1] cita melhorias que podiam ser feitas. Uma delas seria a integrao do modelo COCOMO (Constructive Cost Model), proposto por Boehm [3] e j largamente utilizado para estimaes de custos em gerncia de projetos. proposto nesse artigo uma integrao desse modelo e uma modelagem gentica alternativa proposta por Chao [2] e Chang [1] nos seus respectivos trabalhos. Para modelagem do Algoritmo Gentico foi utilizada a biblioteca TNA [4] desenvolvida pelo ICA da PUC-Rio. A TNA [4] uma biblioteca de Algoritmos Genticos desenvolvida em C++, e fornece inmeras facilidades da modelagem do algoritmo. Existem outras bibliotecas destinadas a fornecer as mesmas facilidades como a desenvolvida por Wall [5], que foi fortemente utilizada no trabalho de Chang [1]. A modelagem de um Algoritmo Gentico fundamental para seu sucesso. Um mesmo problema solucionado por AG pode no ter soluo satisfatria se a modelagem no for bem estudada. A proposta de modelagem apresentada nesse artigo j foi anteriormente utilizada com sucesso para problemas de planejamento de tarefas e recursos, num enfoque inclusive mais complexo do que a gerncia de projetos e foi idealizada por Cruz [6]. O planejamento de tarefas um problema geral e quando visto sob a tica de gerncia de projetos, as tarefas podem ser qualquer coisa desde escrever um documento, at desenvolver uma rotina em C++. Recursos podem ser mquinas de qualquer tipo, como na pesquisa de Cruz [6], onde os recursos eram relacionados ao controle de um porto de minrio, ou pessoas que trabalham num projeto. Este projeto tem como objetivo integrar a tcnica de Algoritmos Genticos para problemas de planejamento utilizando Co-evoluo Cooperativa, baseada no desenvolvimento de Cruz [6] e tcnicas para gerncia de projetos tradicionais, propondo assim um modelo alternativo ao utilizado por Chang [1] e Chao [2] no problema de alocar recursos em tarefas num projeto de mdio e grande porte. As sees seguintes descrevem seqencialmente a definio do problema de planejar um projeto, a modelagem da soluo proposta, os resultados obtidos com descrio do projeto testado, e uma concluso final mostrando tambm possveis melhoramentos no sistema.

2 Planejamento do Projeto
Um planejamento de projeto inclui representaes de tarefas, recursos e interaes entre eles. Mtodos como PERT (Program Evaluation and Review Technique) e CPM (Critical Path Method) [7] fornecem modelos de representao que so comumente utilizados. O objetivo de um gerente de projetos determinar um planejamento que otimize os seus objetivos, que podem ter a ver com a durao do projeto e seu custo. Nesta pesquisa, um planejamento vai representar alocao de recursos em tarefas obedecendo a certas restries. Na definio de quem faz o que e quando, quem ser entendido como os recursos (pessoas), o que sero tarefas, e quando ser a ordem de execuo da tarefa no tempo. Ser tambm considerada a dedicao de cada recurso na realizao de uma tarefa.

De acordo com tcnicas de gerncia de projetos, um projeto mais bem representado por um grafo de precedncia das tarefas. Esse grafo acclico e direcionado, consistindo de um conjunto de tarefas T = {T1, T2, T3, ..., Tn}, e um conjunto de precedncias P = {(Pij); i j, 1 i n, 1 j n}, onde Pij=1 quando a tarefa i deve ser executada e finalizada antes da tarefa j iniciar, e zero caso contrrio. Associados a cada tarefa esto o esforo estimado e as habilidades requeridas para a execuo da tarefa. O esforo para a execuo de uma tarefa pode ser estimado pelo mtodo COCOMO [3]. Alm do grafo de precedncia, temos informaes adicionais relevantes como habilidades dos recursos e seus salrios. A relao entre recursos e tarefas de N:N, ou seja, mais de um recurso pode estar alocado em mltiplas tarefas concorrentes. A alocao de recursos em tarefas deve obedecer a certas regras. Um recurso alocado em uma tarefa deve ter pelo menos uma habilidade requerida pela tarefa, assim como toda a equipe alocada numa tarefa deve conter todas as habilidades necessrias para realiz-la. Pode-se calcular o tempo requerido para a execuo de uma tarefa utilizando a afirmao de que a durao da tarefa inversamente proporcional ao nmero de recursos alocados a ela, mas conhecido que isso no ocorre na prtica. Para contornar esse problema utiliza-se uma estimao emprica para a durao de uma tarefa:
Tempo = C.(Esforo)d

(1)

Onde o Esforo estimado em HM (Homem-Ms), e as constantes C e d so tabeladas de acordo com as caractersticas do projeto e mostradas na Tabela 1. Podemos tambm estimar o tamanho normal mdio da equipe:
Equipe =
Esforo Tempo

(2)

Essas relaes, definidas no COCOMO, ajudam a restringir o nmero de recursos em apenas uma tarefa, calculando o tamanho da equipe por uma relao no-linear.
Tabela 1. Valores das constantes da equao do COCOMO

Tipo de Projeto Orgnico Difuso Restrito

Constante C 2,5 2,5 2,5

Constante d 0,38 0,35 0,32

Como foi dito, a dedicao com que um recurso est alocado em uma tarefa ser considerada. Essa dedicao ser representada por uma porcentagem do tempo de trabalho do recurso, e estar restrita ao conjunto discreto {0%, 25%, 50%, 75%, 100%}. Assim, se um recurso R est alocado em uma tarefa T com uma carga de 25%, ele gastar 25% do seu tempo normal de 40 horas semanais de trabalho, executando a tarefa T. Alm disso, a possibilidade de dedicao extra (overtime) representada de forma similar, e podem ser definidos limites para cada recurso. Por exemplo, se um recurso tem um limite de overtime de 175%, ele pode estar trabalhando 100% em uma tarefa e,

paralelamente, 75% em outra tarefa. Esses limites podem ser facilmente ajustados, de acordo com a disponibilidade do recurso; gerentes de projetos fazem constantemente esses ajustes. Um planejamento de alocao de recursos em tarefas pode ser representado por uma tabela, onde os recursos so listados nas linhas, e as tarefas nas colunas.
Tabela 2. Exemplo de planejamento de alocao de recursos

Rec. 1 Rec. 2

T1 0,5 0

T2 0,25 0,75

T3 0 0,5

T4 0,25 0,25

T2

T1 T 1 T3

T4

Fig. 1. Exemplo de grafo de precedncia de tarefas

3 Modelagem da Soluo
A soluo proposta nesta pesquisa, como j mencionado anteriormente, procura integrar uma busca da soluo por Algoritmos Genticos e tcnicas de representao e estimativas descritas na seo anterior. A parte crucial de resolver um problema por Algoritmos Genticos a escolha da representao do cromossoma, que ser evoludo e a partir dele extrada a soluo. Uma forma de modelar o problema foi proposta por Chang [1], utilizando a representao mais natural, composta diretamente pelo planejamento, mostrado na Tabela 2. O cromossoma era diretamente a tabela de planejamento, onde as colunas se referem s tarefas e as linhas aos recursos, e a evoluo se dava na variao das cargas de trabalho localizadas nas clulas da tabela. Portanto, o cromossoma era representado por um vetor de duas dimenses e o seu contedo podia ter valores do conjunto {0; 0,25; 0,5; 0,75; 1}, ou at sendo estendido ao limite de overload de cada recurso. Dependendo do nmero de tarefas e recursos, o espao de busca pode crescer bastante, e junto com ele o nmero de solues invlidas. Durante a evoluo, muito possivelmente o AG geraria solues onde recursos estariam alocados em tarefas que no so capazes de realizar. Para evitar isso, proposto um novo modelo de

representao baseado na soluo para problemas de planejamento utilizado por Cruz [6]. Em sua pesquisa, Cruz [6] prope a construo de um modelo co-evolucionrio de modo que teramos duas espcies, uma representando quando uma tarefa ser executada e outra representando com quais recursos esta mesma dever ser executada. Esse modelo co-evolucionrio permite que ambas espcies evoluam separadamente e se combinem para formar uma soluo vlida. Inspirada nesse modelo foi idealizada mais uma espcie, que teria a funo de evoluir a equipe que ser necessria para realizar cada tarefa. A criao dessa nova espcie permitir que, indiretamente, as cargas de trabalho de cada recurso nas tarefas tambm evoluam para sua configurao tima. Por esse motivo ela foi chamada de espcie de carga. Portando, o modelo utilizado para resolver o planejamento de tarefas e alocao de recursos ser um modelo co-evolucionrio cooperativo de trs espcies, pois elas tm a funo de evoluir separadamente e interagem entre si atravs de um domnio compartilhado tendo uma relao de cooperao para formar a soluo. Existem duas razes principais pelas quais Algoritmos Genticos convencionais no so totalmente adequados para resolver problemas de maior complexidade. Em primeiro lugar, os Algoritmos Genticos convencionais impedem, a longo prazo, a preservao de certos componentes da soluo pois, por estarem codificados por completo em um indivduo, eles so avaliados como um todo e apenas os subcomponentes que pertencem a indivduos com avaliaes altas sero preservados. Em segundo lugar, o fato da representao estar relacionada a uma soluo completa e por no haver interaes entre os membros da populao, no existe presso evolucionria para a ocorrncia de co-adaptao, ou seja, no existe presso para a adaptao de um subcomponente dada a ocorrncia de uma mudana em outro subcomponente (Potter, 2000) [8]. A decomposio do problema, no entanto, tem um aspecto importante que deve ser levado em conta e que est relacionado com a evoluo de subcomponentes interdependentes. Se for possvel decompor o problema em subcomponentes independentes, cada um deles pode evoluir sem haver necessidade de se preocupar com os outros, e isso que ser mostrado na modelagem pesquisada nesse artigo.
Espcie 1 inAlgoritmo Gentico

Espcie 2
Algoritmo Gentico

fitness
Populao

Modelo do Domnio

Populao

colaboradores

Fig. 2. Modelo co-evolucionrio genrico

3.1 Espcie Tarefa

A espcie Tarefa representada pelo modelo baseado em ordem, muito utilizado e estudado para problemas similares como o problema do Caixeiro Viajante. O cromossoma consiste de uma lista ordenada, onde cada gene representa uma tarefa, e a posio do gene indica a prioridade de planejamento; quanto mais esquerda, maior a prioridade. Um exemplo de cromossoma da espcie Tarefas mostrado na tabela 3. As tarefas, na viso geral do projeto, esto representadas em um grafo de precedncia. Esse grafo utilizado pelo algoritmo de decodificao da soluo que ser explicitado mais adiante nesse artigo.
Tabela 3. Exemplo de cromossoma com 7 tarefas

Tarefa (Vrtice) Prioridade

v3 1

v6 2

v1 3

v5 4

V7 5

v4 6

v2 7

Finalmente, com relao aos operadores genticos para este modelo de representao de cromossoma, podem-se usar os operadores genticos convencionais para problemas baseados em ordem com representao de caminho. 3.2 Espcie Recurso A representao da espcie Recurso possui uma complexidade um pouco maior do que a da espcie Tarefa. Da mesma forma, cada gene corresponde a uma tarefa, mas agora, cada um representa uma lista de recursos. Essa lista possui um alfabeto tal, que somente os recursos capazes de realizar a tarefa estaro presentes. Como na espcie Tarefa, a ordem na qual essa lista aparece no gene indica a prioridade em que se deve tentar utilizar aquele recurso. A figura 3 mostra um exemplo do cromossoma de recursos.

Tarefas

T1 T2 T3 T4 T5 T6 T7 1 3 4 1 2 3 2 3 1 4 4 2 3 1 2 4 1

Recursos

Fig. 3. Exemplo de cromossoma da espcie Recurso

A evoluo ocorrer, variando-se as ordens dos alelos e no dos genes, como na espcie Tarefa. Assim, os operadores de mutao e crossover atuaro somente no

contedo dos genes. Sero utilizados, novamente, os operadores comuns de problemas de ordem. 3.3 Espcie Carga A espcie Carga, como dito anteriormente, ser responsvel por evoluir o tamanho da equipe de realizao de cada tarefa. Portanto, a representao natural seria novamente uma lista onde cada posio representa uma tarefa. Neste caso o contedo de cada gene seria um nmero real dentro de um certo domnio especificado. O domnio testado para o problema foi [-10, 10], e de acordo com a forma que o gene utilizado, o domnio deve ser simtrico em relao ao ponto zero; assim, possibilitamos a mesma chance de variao positiva como negativa. Inicialmente a equipe necessria para cada tarefa estimada pela equao 2, e somada ao valor contido no gene para cada tarefa. A partir disso tem-se um novo valor para a equipe, deslocada do ponto de equilbrio, por assim dizer, e com isso ser tentado alocar tantos recursos quanto necessrio. Os operadores atuantes nesse tipo de cromossoma so operadores sobre nmeros reais e novamente atuando somente no contedo dos genes, ou seja, no h mistura de equipes entre tarefas.
Tabela 4. Exemplo de cromossoma Carga com 7 tarefas

Tarefa Cromossoma

T1 -0,45

T2 2,12

T3 1,3

T4 -3,56

T5 1,2

T6 0,5

T7 -2,3

3.4 Decodificador O decodificador necessrio, desde que os cromossomas no representam diretamente a soluo. Em um processo co-evolucionrio, o decodificador est localizado no Modelo de Domnio, onde os cromossomas so avaliados, e pode ser visto na figura 2. O decodificador, neste caso, tem a funo de gerar um planejamento no estilo mostrado na tabela 2. O algoritmo do decodificador est descrito a seguir: procedure decodificador cromossomaT = cromossoma espcie Tarefa cromossomaR = cromossoma espcie Recurso cromossomaC = cromossoma espcie Carga grafo = grafo com restries de precedncia j = 0 while (j < tamanho (cromossomaT)) planejar tarefa j usando cromossomaT e grafo calcular equipe da tarefa j usando cromossomaC i = 0 while (i < tamanha (equipe)) selecionar recurso usando cromossomaR se necessrio utilizar overload de recursos end while

end while end procedure No processo co-evolucionrio cooperativo utilizado, quando um indivduo for avaliado, ele ser avaliado com o melhor indivduo das outras duas espcies. 3.5 Avaliao A avaliao da soluo considera mais de um objetivo. So eles: CostMoney, CostTime e OverLoad. Foi procurado minimizar cada um deles, em conjunto, maximizando a funo de avaliao descrita pela equao 3.
F = Validity.(

W2 W3 W1 + + ). CostTime OverLoad CostMoney

(3)

CostTime. Representa a durao total do projeto. A durao computada, achando-se o caminho mais longo (em tempo) no grafo de precedncias das tarefas, desde a tarefa inicial at a tarefa final. Achar o caminho mais longo significa encontrar o caminho crtico no grafo, e para isso foi implementado e aplicado o CPM (Critical Path Method) [7]. CostMoney. Representa o custo financeiro total do projeto. Calculado atravs da informao dos custos (salrios) de cada recurso e seu tempo total de alocao nas tarefas. OverLoad. Representa a quantidade de tempo trabalhada alm das horas normais de cada recurso. Cada recurso pode possuir um limite de horas extras, que quando so utilizadas, so computadas neste componente. Para um planejamento criado ser vlido, deve ser testada a completude das tarefas, ou seja, ao menos um recurso deve estar alocado em cada tarefa Tj, caso contrrio, o planejamento considerado invlido e temos Validity=0, deixando o cromossoma com avaliao zero. Como a funo de avaliao uma funo composta, somando-se objetivos, deve-se realizar um processo de normalizao sobre cada um deles, da forma:
CostTimenorm =

CostTime . CostTimemax

(4)

4 Resultados Obtidos
O algoritmo foi testado com um projeto fictcio composto de 18 tarefas, 10 recursos e 5 tipos de habilidades possveis distribudas pelos recursos e tarefas. Muitas configuraes de taxas para mutao e crossover foram testadas e a melhor configurao dos parmetros mostrada nas tabelas 5 e 6. Os grficos comparativos com a busca aleatria so baseados nesta configurao de parmetros.
Tabela 5. Configurao geral do projeto testado

Parmetro W1 W2 W3 d C

Valor 2 2 1 0,38 2,5

Tabela 6. Configurao geral do AG

SteadyState Mutao Crossover Rodadas Geraes Populao

Espcie Tarefa 0,1 0,3 0,75 5 40 100

Espcie Recurso 0,1 0,3 0,75 5 40 100

Espcie Carga 0,1 0,3 0,8 5 40 100

O grfico em relao a busca aleatria mostrou que o AG teve um desempenho 35% melhor. Bem similar ao resultado obtido por Cruz [6], que utilizou o mesmo modelo co-evolucionrio com duas espcies, e chegou um desempenho 33% melhor do que a busca aleatria.
Desempenho AG
70000 60000 50000

Avaliao

40000 30000 20000 10000 0


0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38

Geraes

39

Fig. 4. Grfico de desempenho da mdia dos melhores em 40 geraes

5 Concluses
Esse artigo prope uma nova soluo para o problema resolvido por Chang [1], integrando tcnicas j largamente utilizadas em gerncia de projetos e tcnicas de inteligncia computacional. A soluo por Algoritmos Genticos mostrou resultados bastante satisfatrios, gerando planejamentos de alocao de recursos eficientes, embora no tenham sido testados na prtica. O desempenho do algoritmo sobre a busca aleatria provou que esse sistema pode se tornar uma ferramenta poderosa no mago da gerncia de projetos. O sistema mostra limitaes, no sentido de modelar as habilidades de cada recurso, e uma modelagem mais realista pode ser pensada nesse sentido. O modelo de Chang [1] fornece a possibilidade de se planejar mltiplos projetos simultaneamente, e esse caso no foi considerado neste artigo. Uma experincia interessante seria aplicar a soluo em um projeto real, e verificar os resultados. Finalmente, pde-se mostrar que modelos de Algoritmos Genticos Coevolucionrios no so mais custosos, e so capazes de modelar bem problemas complexos, com solues viveis sem a necessidade de correes ou penalizaes. O desacoplamento da representao permitiu que o algoritmo avaliasse solues em todo o espao de busca.

Referncias
[1] Chang, C. K., Christensen, M. J., Zhang, T. (2001), Genetic Algorithms for Project Management, Annals of Software Engineering 11, pp. 107-139. [2] Chao, C. (1995), SPMNET: A New Methodology for Software Management, Ph.D. Thesis, The University of Illinois at Chicago. [3] Boehm, B. (1981), Software Engineering Economics, Prentice-Hall, Englewood Cliffs, NJ. [4] Template Numerical Algorithms, ICA, DEE, PUC-Rio. [5] Wall, B. M. (1996), A Genetic Algorithm for Resource-Constrained Scheduling, Ph.D. Thesis, MIT; http://lancet.mit.edu/ga. [6] Cruz, A. V. A. (2003), Otimizao de Planejamentos com Restries de Precedncia usando Algoritmos Genticos e Co-Evoluo Cooperativa, Tese de Mestrado, DEE, PUCRio.

[7] J. J. Moder, C. R. Phillips, and E. W. Davis. Project Management with CPM, PERT and Precedence Diagramming. Van Nostrand Reinhold Company, New York, 3rd edition, 1983. [8] Potter, M. A., De Jong, K. A. A Cooperative Co-Evolutionary Approach to Function Optimization, The Third Parallel Problem Solving From Nature, Jerusalem, Israel, pp. 249257, Springer-Verlag, 1994.

Vous aimerez peut-être aussi