Académique Documents
Professionnel Documents
Culture Documents
Algoritmos Probabilsticos
Algoritmos probabilsticos so os algoritmos que para realizar buscas em um espao candidato, utilizam um modelo com base probabilstica para encontrar solues candidatas.
Muitos algoritmos de inteligncia computacional e meta-heursticas podem ser considerados probabilsticos, embora a diferena com algoritmos seja a utilizao (em vez de implcita) explcita de ferramentas de probabilidade para resoluo de um problema [5]. A imagem demonstra a modificao entre os Algoritmos Genticos ( esquerda) e um EDA. Um dos ganhos observados em relao ao Algoritmo Gentico a realizao de operaes para manter a diversidade dos indivduos.
Estratgia
O objetivo de processamento de informao do algoritmo PBIL reduzir a memria necessria para o algoritmo gentico. Isto feito atravs da reduo da populao de solues de um candidato a um vector nico com um prottipo de atributos, a partir do qual solues candidatas podem ser geradas e avaliadas. Atualizaes e operadores de mutao tambm so realizados para o vector de prottipos, em vez do que as solues de candidatos gerados .
Pseudocdigo
O Algoritmo 1 representa o pseudocdigo do algoritmo PBIL [1].
1. P inicializar vetor de probabilidade (cada posio = 0.5) 2. enquanto (geraes++ < limite) 3. para cada vetor i faa 4. para cada posio j faa 5. gerar Vi(j) a partir de P(j) 6. fim-para 7. avaliar f(Vi) 8. fim-faa 9. Vmax = max(f(Vi)) 10. atualizar P a partir de Vmax 11. se random(0,1] < Pmutate 12. efetuar mutao P 13. fim-se 14. fim-enquanto
O algoritmo utiliza dois tipos de probabilidade. Uma probabilidade para atualizao do percentual de seleo dos indivduos e outra para a probabilidade de mutao do indivduo [1]. A regra de atualizao dada por:
Pi ( j ) Pi ( j ) * (1.0 ) Vmax ( j ) *
Onde a taxa de aprendizagem e Vmax o vetor com a maior avaliao. A regra de mutao dada por
Pi ( j ) Pi ( j ) * (1.0 ) rand[0.01.0] *
Onde O valor que a mutao pode afetar no vetor de probabilidades. Durante a leitura do artigo, no foi possvel encontrar valores pr-definidos para as variveis, como a taxa de aprendizagem. O que [1] esclarece que a taxa de aprendizagem
que define a velocidade de convergncia do algoritmo. O papel da mutao evitar que o vetor tenha convergncia rpida para os extremos (0,0 ou 1,0).
Concluso
O Algoritmo de estimao de distribuio um novo algoritmo que busca reduzir os gastos computacionais realizados pelos Algoritmos Genticos. Os EDAs so aplicados em problemas NP-Difceis, como o Problema do caixeiro viajante e o Bin packing, que so problemas estudados j por outros algoritmos. Um estudo relevante seria a busca de relaes de dependncia entre variveis, o que determinaria qual variao do algoritmo pode ser aplicada ao problema. Uma dificuldade seria a representao do indivduo no contexto do algoritmo. Como o mesmo no foi implementado aplicado ao problema proposto, no pode ser visvel a compatibilidade do EDA ao problema de estimativa de software. A partir desse estudo inicial, interessante aprofundar mais nas aplicaes e na real capacidade de aplicao do EDA na rea de estimativa de software, provendo uma ferramenta eficiente para criar prospeces e simulaes para a equipe de desenvolvimento de software.
Referncias
[1] S. BALUJA. Population-based incremental learning: A method for integrating genetic search based function optimization and competitive learning. Technical Report CMU-CS-94163, School of Computer Science, Carnegie Mellon University, Pittsburgh, Pennsylvania 15213, June 1994. [2] C. E. VAZQUEZ. Anlise de Pontos de Funo: medio, estimativas e gerenciamento de projetos de software. 8. ed. rev. So Paulo: rica, 2008. [3] H. C. A. B. TAVARES; A. E. S. CARVALHO; J. F. B. CASTRO. Medio de Pontos por Funo a Partir da Especificao de Requisitos, 1998. Disponvel em: < http://www.inf.pucrio.br/wer02/zip/Medicion_puntos%2820%29.pdf >. Acesso em: 06 de Maio de 2010. [4] C.A. DEKKERS. Desmistificando Pontos de Funo: Entendendo a Terminologia.1998. Disponvel em: <http://www.bfpug.com.br/Artigos/Desmistificando%20Pontos%20de%20Fun%C3%A7%C3%A 3o.pdf >. Acesso em: 13 de Maio de 2010. [5] J. BROWNLEE. Clever Algorithms. Nature-Inspired Programming Recipes. Reviso 2. 16 Jun. 2012. Cover Image, 2011.