Algorítimos Genéticos

1,973 views
1,794 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,973
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
86
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Algorítimos Genéticos

  1. 1. Algoritmos GenéticosUma abordagem didática<br />Marcelo Goulart SouzaInteligência Artificial - IA<br />
  2. 2. Objetivos<br />Introduzir o conteúdo de algoritmos genéticos, relacionando a computação com a biologia.<br />
  3. 3. Justificativa<br />Dar uma visão geral sobre algoritmos genéticos, através de definições conceituais, histórico e um exemplo implementado<br />
  4. 4. Introdução<br />Histórico:<br />Algoritmos genéticos (AG) foram inventados por John Holland e desenvolvidos por ele, seus alunos e colegas. Isso resultou no livro de Holland "Adaption in Natural and Artificial Systems" publicado em 1975.<br />Em 1992 John Koza usou algoritmos genéticos para desenvolver programas para realizar certas tarefas. Ele chamou seu método de "programação genética" (PG). Foram usados programas em LISP porque programas nessa linguagem podem ser expressos na forma de árvores, que são objetos utilizados pelos algoritmos genéticos.<br />
  5. 5. Introdução<br />O que é Genética?<br />parte da biologia que estuda a passagem das características biológicas e físicas de geração para geração.<br />
  6. 6. Principais Conceitos<br />Cromossoma: Cadeias de DNA compostas por genes que codificam determinadas proteínas, sendo que cada um tem sua posição.<br />Reprodução: a nível genético, é a recombinação entre cromossomas dos pais, sendo que podem ser suscetíveis a erros (Mutação)<br />Adaptação: sucesso na sobrevivência<br />
  7. 7. Principais Conceitos<br />cromossomo (genótipo) - cadeia de bits que representa uma solução possível para o problema. <br />gene - representação de cada parâmetro de acordo com o alfabeto utilizado (binário, inteiro ou real). <br />população - conjunto de pontos (indivíduos) no Espaço de Busca <br />geração - iteração completa do AG que gera uma nova população <br />genótipo x fenótipo<br />mitose x meiose<br />
  8. 8. Aplicações<br />Síntese de circuitos analógicos<br />Programação Genética<br />Gerenciamento de redes<br />Ciências biológicas<br />Problemas de otimização complexos<br />
  9. 9. Parâmetros Genéticos<br />Tamanho da População<br />Taxa de Cruzamento<br />Taxa de Mutação<br />Intervalo de Geração<br />
  10. 10. Descrição de um Problema de AG<br />Inspirados na teoria da evolução de Darwin<br />Inicialização: Uma população de N indivíduos, sendo que cada um pode representar a solução.<br />Calculo de Aptidão: determinada por uma função objetivo que depende da especificação do projeto.<br />
  11. 11. Descrição de um Problema de AG<br />Seleção: indivíduos mais aptos da geração atual são selecionados e utilizadas para gerar uma nova população por cruzamento.<br />Cada indivíduo possui uma frequência alélica, ou seja, quando maior a FA, maior a chance do indivíduo ser selecionado<br />Método de seleção é chamado de mostragem universal estocástica.<br />
  12. 12. Descrição de um Problema de AG<br />- Indivíduos de regiões de maior probabilidade terão<br />Mais chances de serem escolhidos<br />- Como consequência seleção de indivíduos <br />pode conter várias cópias<br />Figura 2: Roleta de Probabilidades<br />
  13. 13. Descrição de um Problema de AG<br />Cruzamento (cross-over): indivíduos selecionados na etapa anterior são cruzados da seguinte forma: a lista de indivíduos selecionados é embaralhada aleatoriamente criando-se, desta forma, uma segunda lista.<br />A permutação é feita com a parte inicial de L1 com a parte final de L2, as partes são divididas ao acaso.<br />
  14. 14. Descrição de um Problema de AG<br />Figura 3: Cross-Over<br />
  15. 15. Descrição de um Problema de AG<br />Mutação: A operação de mutação é utilizada para garantir uma maior varredura do espaço de estados e evitar que o algoritmo genético convirja muito cedo.<br />A mutação é efetuada alterando-se o valor de um gene de um indivíduo sorteado aleatoriamente com uma determinada probabilidade, vários indivíduos da nova população podem ter um de seus genes alterado aleatoriamente.<br />
  16. 16. Operações Básicas<br />Figura 4. Fluxograma de um AG<br />
  17. 17. Esboço Básico do Algoritmo Genético<br />Procedimento AG<br />{ <br />t = 0;<br />inicia_população (P, t)<br />avaliação (P, t);<br />repita até (t = d)<br />{ <br />t = t +1;<br />seleção_dos_pais (P,t);<br />recombinação (P, t);<br />mutação (P, t);<br />avaliação (P, t);<br />sobrevivem (P, t)<br />}<br />}<br />onde:<br />t - tempo atual;<br />d - tempo determinado para finalizar o algoritmo;<br />P - população<br />
  18. 18. Implementação<br />Arquivo ag.c<br />Busca para encontrar o valor máximo da função f(x) = x^2 + 5.<br />Pop Total = 4 Cromossomos<br />Cada linha é um cromossomo<br />Cada cromossomo é composto por 6 genes (col), sendo um desses bits, é a aptidão (fitness) que representa o valor da função y.<br />
  19. 19. Implementação<br />Figura 5: Tabela de Cromossomos<br />
  20. 20. Implementação<br />Seleção: Escolher os dois melhores cromossomos seguindo o princípio da “sobrevivência é para os mais fortes” que é avaliada pela maior aptidão.<br />Figura 6 : Genes escolhidos de maior aptidão<br />
  21. 21. Implementação<br />Reprodução: agora no novo conjunto, temos os dois cromos colhidos a partir do antigo conjunto, eles são pais de dois outros cromos no conjunto que será gerada pela passagem ao longo dos dois cromos em um determinado ponto e trocar as duas partes como segue:<br />Atravesse ocorreu após o bit 3 (note o negrito e itálico os dígitos barrado nas crianças dos pais)<br />
  22. 22. Implementação<br />Figura 7: Crossover<br />
  23. 23. Implementação<br />A mutação ocorre com uma baixa probabilidade de um cromossomo no conjunto, invertendo um dos bits para terminar o ciclo.<br />agora temos um novo conjunto, então fazemos o antigo conjunto igual para o novo ... e fazer a 1,2, e 3 novamente, dependendo do n º. de iterações. =)<br />
  24. 24. Conclusão<br />Os AG's são apropriados para problemas de otimização complexos, que envolvem muitas variáveis e um espaço de soluções de dimensão elevada. <br />Abrangem um grande número de aplicações. <br />O controle sobre os parâmetros do algoritmo é de fundamental importância para uma convergência rápida. <br />Para problemas específicos é aconselhável a utilização de algoritmos híbridos, que misturam as técnicas dos AG's com os métodos de otimização tradicionais. <br />Devido ao grande número de variáveis que um AG trata e às populações elevadas e alto número de gerações para a cobertura do espaço de soluções, os AG's possuem um custo computacional elevado.<br />
  25. 25. Questões<br />1 – Quais os principais tópicos de AG? Dê um pseudo-código de cada um usando 2 cromossomas: C1 = 010 111 e C2 = 111 001.<br />3 – O deve se concluir de um AG com taxa de mutação de 10% e crossover de 80%<br />4 – Quais os parâmetros analisados em AG?<br />
  26. 26. Referencias<br />M. Mitchell, An Introduction to Genetic Algorithms. MIT Press, 1996.<br />Lacerda, E.G.M, Carvalho, A.C.P.L. Introdução aos algoritmos genéticos. In: Galvão, C.O., Valença, M.J.S. (orgs.) Sistemas inteligentes: aplicações a recursos hídricos e ciências ambientais. Porto Alegre: Ed. Universidade/UFRGS : Associação Brasileira de Recursos Hídricos. p. 99-150. 1999. (Coleção ABRH de Recursos Hídricos; 7.).<br />http://www.obitko.com/tutorials/genetic-algorithms/portuguese/ga-basic-description.php<br />http://www.icmc.usp.br/~andre/research/genetic/index.htm<br />

×