UNIVERSIDADE PRESBITERIANA MACKENZIE Laboratório de Computação Natural LCoN I ESCOLA DE COMPUTAÇÃO NATURAL Algoritmos Genéticos Rafael Xavier e Willyan Abilhoa Outubro/2012 www.computacaonatural.com.br
Agenda Breve História da Computação Evolutiva Inspiração Biológica Usar Algoritmos Evolutivos, Por quê? Algoritmos Genéticos Aplicações Atividade Prática www.computacaonatural.com.br 2
Breve História da Comp. Evolutiva (1950 / 1960) alguns cientistas da computação de forma independente estudavam os sistemas evolutivos como uma ferramenta de otimização para problemas de Engenharia. A ideia era evoluir uma série de soluções candidatas usando operadores inspirados na evolução e genética. www.computacaonatural.com.br 3
Breve História da Comp. Evolutiva Durante esse mesmo período, alguns biólogos evolucionistas usaram computadores para simular evolução para experimentos controlados. Baricelli (1957): Symbiogenetic evolution processes realized by artificial methods. Box (1957): Evolutionary operation: A method for increasing industrial productive. Rechenberg (1965): Cybernetic Solution Path of an Experimental Problem. Fogel, L.J., Owens, A.J., Walsh, M.J. (1966): Artificial Intelligence through Simulated Evolution. www.computacaonatural.com.br 4
Breve História da Comp. Evolutiva O algoritmo genético (AG) foi inventado por John Holland nos anos de 1960 e foi implementado nos de 1970 com a colaboração de estudantes e colegas. Em seu livro de 1975 Adaptation in Natural and Artificial Systems Holland apresenta o AG como uma abstração da evolução biológica. www.computacaonatural.com.br 5
Breve História da Comp. Evolutiva Dessa forma a meta original de Holland não era projetar um algoritmo para um problema específico, e sim estudar formalmente o fenômeno da evolução. O que temos hoje, são basicamente subprodutos do conceito original de AG desenvolvido por Holland. www.computacaonatural.com.br 6
Inspiração Biológica Evolução Darwiniana Reprodução com herança Variação Seleção Natural Genética É a ciência dos genes, da hereditariedade e da variação dos organismos. www.computacaonatural.com.br 7
Inspiração Biológica Evolução biológica é a mudança das características hereditárias de populações biológicas ao longo de gerações sucessivas. Os processos evolutivos dão origem a diversidade em todos os níveis de organização biológica, incluindo as espécies, organismos e moléculas tais como DNA e proteínas. www.computacaonatural.com.br 8
Inspiração Biológica Todos os organismos vivos são formados uma ou mais células. E em cada célula existe o mesmo conjunto de cromossomos. Os cromossomos são constituídos por genes, blocos de DNA. Cada gene codifica uma proteína particular* (uma característica particular). [simplista] www.computacaonatural.com.br 9
www.computacaonatural.com.br 10
Inspiração Biológica Uma população de indivíduos com reprodução com herança: recombinação genética (cruzamento/crossover) Variação Genética: Mutação Seleção Natural: Avaliação dos indivíduos por adaptabilidade ou qualidade (fitness) www.computacaonatural.com.br 11
Algoritmos Genéticos, Por quê? Independência do domínio: modelo geral, podem ser aplicados a diversos tipos de problemas; Não linearidade: Os AG s não linearizam o problema, tratam a complexidade do problema; Robustez: funções ruidosas, descontínuas, espaço de busca pouco conhecido, em geral evita ótimos locais; Facilidade de modificação: fácil alteração dos parâmetros para atender a modificações no problema; Natureza paralela: a sua natureza populacional facilita a paralelização. www.computacaonatural.com.br 12
Da Biologia à Computação www.computacaonatural.com.br 13
Algoritmos Genéticos O que são Algoritmos Genéticos (AGs)? Procedimentos computacionais que: Modelam e reproduzem processos evolutivos Buscam soluções para problemas diversos* www.computacaonatural.com.br 14
Algoritmos Genéticos Componentes fundamentais: Representação de indivíduos População Função de avaliação (fitness) Mecanismos de recombinação e mutação Mecanismos de seleção para reprodução Mecanismos de seleção para sobrevivência www.computacaonatural.com.br 15
Algoritmos Genéticos Representação de Indivíduos: É dada por sua modelagem genotípica e as respostas obtidas pela modelagem fenotípica www.computacaonatural.com.br 16
Algoritmos Genéticos Representação (Contexto Biológico): www.computacaonatural.com.br 17
Algoritmos Genéticos Representação (Contexto Computacional): www.computacaonatural.com.br 18
Algoritmos Genéticos Representação por Cadeias de Bits: Binária Inteira Real www.computacaonatural.com.br 19
Algoritmos Genéticos População: É um conjunto de indivíduos, ou seja, um conjunto de possíveis soluções do problema Normalmente o número de indivíduos é fixo Objetiva a diversidade, isto é, o maior número de soluções distintas possível www.computacaonatural.com.br 20
Algoritmos Genéticos Função de Avaliação (Fitness): É uma forma de se atribuir uma medida de qualidade à informação genotípica Essa medida de qualidade é observada no contexto da informação fenotípica Também chamada Função Objetivo, visto que os AGs solucionam problemas de Otimização Em um modelo matemático, essa função deverá ser maximizada ou minimizada www.computacaonatural.com.br 21
Algoritmos Genéticos Mecanismos de Recombinação Genética: Recombinação Binária e Inteira: Ponto Único N Pontos Uniforme Recombinação Real: Mecanismos anteriores Aritmética em Ponto Único Aritmética em N pontos Aritmética Uniforme www.computacaonatural.com.br 22
Algoritmos Genéticos Recombinação Binária e Inteira: Operações análogas para cadeias de Inteiros e Reais www.computacaonatural.com.br 23
Algoritmos Genéticos Recombinação Real Cálculo da Média Aritmética entre os alelos de cada cromossomo x = i + j ; i, j = {1,, n} 2 www.computacaonatural.com.br 24
Algoritmos Genéticos Mecanismos de Mutação: Mutação Binária Em N Pontos Ponto a Ponto Mutação Inteira Redefinição Aleatória Redefinição Aleatória com Soma Mutação Real Mutação Uniforme www.computacaonatural.com.br 25
Algoritmos Genéticos Mutação: Inteira Binária x i Q min,max Real x i R min,max www.computacaonatural.com.br 26
Algoritmos Genéticos Mecanismos de Seleção para Reprodução: Seleção Probabilística: Roleta Seleção Determinística: Torneio www.computacaonatural.com.br 27
Algoritmos Genéticos Mecanismo de Seleção por Roleta: www.computacaonatural.com.br 28
Algoritmos Genéticos Mecanismo de Seleção por Torneio: www.computacaonatural.com.br 29
Algoritmos Genéticos Mecanismos de Seleção de Sobreviventes: Baseado em Idade Eliminação Inserção (Política de Filas) Baseado em Fitness Substituição do(s) Pior(es) Elitista www.computacaonatural.com.br 30
Algoritmos Genéticos Componentes fundamentais: Representação de indivíduos População Função de avaliação (fitness) Mecanismos de recombinação e mutação Etapas Básicas Mecanismos de seleção para reprodução Mecanismos de seleção para sobrevivência www.computacaonatural.com.br 31
Algoritmos Genéticos Etapas básicas: 1. Inicializar uma população 2. Avaliar cada indivíduo 3. Selecionar Indivíduos para reprodução 4. Aplicar recombinação genética (crossover) 5. Aplicar mutação Fluxograma 6. Avaliar os novos indivíduos 7. Selecionar Sobreviventes www.computacaonatural.com.br 32
Algoritmos Genéticos Figura 2 Fluxograma de um AG básico [1]. www.computacaonatural.com.br 33
Algoritmos Genéticos Pseudocódigo genérico de um AG: 1. Procedimento AG recebe (n, r, m) retorna (P) 2. Inicializar (P, n) 3. Avaliar (P) 4. it := 1 5. Enquanto (critério de parada não atingido) faça 6. P := Selecionar Pais (P) 7. P := Aplicar Recombinação (P, r) 8. Aplicar Mutação (P, m) 9. Avaliar (P ) 10. Selecionar Sobreviventes (P, P ) 11. it := it + 1 Notação: n n. de indivíduos r tx. de recombinação m tx. de mutação P pop. de indivíduos it iteração P pais selecionados P nova população www.computacaonatural.com.br 34
Aplicações Problemas de Otimização: Problemas de Maximização/Minimização de Funções Problemas de Logística: Caixeiro Viajante Sequenciamento e Retirada de Contêineres www.computacaonatural.com.br 35
Atividade Prática LVCON: http://lvcon.tuilux.com.br/lvcon Exercício de Fixação 3 (5 min) Exercício de Fixação 5 (15 min) Análise da Aplicação do Problema do Caixeiro Viajante (PCV) (5 min) www.computacaonatural.com.br 36
Atividade Prática Exercício 3 Tempo: 5 minutos Quais as principais etapas de um algoritmo evolutivo? www.computacaonatural.com.br 37
Atividade Prática Exercício 3 (Resposta) Quais as principais etapas de um algoritmo evolutivo? Inicializar uma população Avaliar cada indivíduo Selecionar Indivíduos para reprodução Aplicar recombinação genética (crossover) Aplicar mutação Avaliar os novos indivíduos Selecionar Sobreviventes www.computacaonatural.com.br 38
Exercício 5 Dada a seguinte população: Aplique as operações de: 1. Seleção (1, 5) (3 min) 2. Recombinação (8) (3 min) 3. Mutação (2, 4) (3 min) 4. Avalie o fitness de cada indivíduo (3 min) Dado pela soma de bits 1 Revisão (3 min) Atividade Prática Indivíduo População 1º 0000110011 2º 1011100010 3º 1010010000 4º 1111010100 5º 0100001010 6º 1100001111 www.computacaonatural.com.br 39
Atividade Prática Exercício 5 (Resposta) - (3 min) 1. Seleção (1, 5) Indivíduo População 1º 0000110011 5º 0100001010 www.computacaonatural.com.br 40
Atividade Prática Exercício 5 (Resposta) - (3 min) 2. Recombinação (8) Indivíduo População 1º 0000110011 5º 0100001010 0000110010 0100001011 www.computacaonatural.com.br 41
Atividade Prática Exercício 5 (Resposta) - (3 min) 3. Mutação (2, 4) Indivíduo População 1º 0000110011 5º 0100001010 0101110011 0001001010 www.computacaonatural.com.br 42
Atividade Prática Exercício 5 (Resposta) - (3 min) 4. Avalie o fitness de cada indivíduo Indivíduo População Fitness 1º 0101110011 6 5º 0001001010 3 www.computacaonatural.com.br 43
Atividade Prática Análise da Aplicação do Problema do Caixeiro Viajante Tempo: 5 minutos Execute o algoritmo nas seguintes configurações: N Ind. 50 1000 20 % Recomb. 0.5 0.8 0.5 % Mut. 0.05 0.05 0.5 Seleção Roleta Roleta Torneio Mutação 2-opt 2-opt Swap N Cidades 30 30 30 www.computacaonatural.com.br 44
Atividade Prática Análise da Aplicação do Problema do Caixeiro Viajante Tempo: 5 minutos Execute o algoritmo nas seguintes configurações: Teste Config. 1 Config. 2 Config. 3 1 Começa com uma distância baixa e otimiza (pouco) até a convergência 2 Começa com uma distância alta e otimiza (muito) até a convergência 3 Começa com uma distância alta e otimiza (pouco) até a convergência www.computacaonatural.com.br 45