Algoritmos Genéticos

Documentos relacionados
Introdução a Algoritmos Genéticos

Algoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva

1. Computação Evolutiva

Introdução aos Algoritmos Genéticos

3. Resolução de problemas por meio de busca

Codificação das variáveis: binária Iniciação da população: aleatória Avaliação: função aptidão Operadores. Critério de parada: número de gerações

Algoritmos Genéticos. Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008

Algoritmos Genéticos. Texto base: Stuart Russel e Peter Norving - Inteligência Artificial

Algoritmos Genéticos. Pontos fracos dos métodos tradicionais. Características de alguns problemas. Tamanho do espaço de busca- Ex. caixeiro viajante:

3 Algoritmos Genéticos

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução

Metahuerísticas: Algoritmos Genéticos. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng.

Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP

INF 1771 Inteligência Artificial

Exemplo de Aplicação de Algoritmos Genéticos. Prof. Juan Moisés Mauricio Villanueva cear.ufpb.br/juan

Computação Evolutiva. Computação Evolutiva. Principais Tópicos. Evolução natural. Introdução. Evolução natural

INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO

Técnicas de Inteligência Artificial

INF 1771 Inteligência Artificial

Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

Estratégias Evolutivas EEs. Prof. Juan Moisés Mauricio Villanueva

Algoritmos Evolutivos Canônicos

Algoritmos Genéticos

INTRODUÇÃO À INTELIGÊNCIA COMPUTACIONAL. Aula 06 Prof. Vitor Hugo Ferreira

Max Pereira. Inteligência Artificial

3 Algoritmos Genéticos

Algoritmos Genéticos

Inteligência Artificial

Técnicas de Inteligência Artificial

Tópicos Especiais em Informática Fatec Indaiatuba

Inteligência Artificial

Otimização. Unidade 6: Algoritmo Genético. Jaime Arturo Ramírez. 7. Teoria do processo evolutivo num GA. 8. Aspectos avançados

Métodos de Busca. Inteligência Artificial. Algoritmos Genéticos. Algoritmos Evolucionários. Prof. Ms. Luiz Alberto Contato:

ESTUDO DOS PARAMETROS DE UM ALGORITMO GENÉTICO PARA POSTERIOR USO NA SOLUÇÃO DE PROBLEMAS DO TIPO JOB-SHOP

ALGORITMOS GENÉTICOS. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO

Algoritmos Genéticos. 1 Semestre de Cleber Zanchettin UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática

Aprendizado Evolutivo: Introdução aos Algoritmos Genéticos

Algoritmos Evolutivos para Otimização

Modelos Evolucionários e Tratamento de Incertezas

GA Conceitos Básicos. Capítulo 3 Prof. Ricardo Linden

Computação Evolutiva. Prof. Eduardo R. Hruschka (Slides baseados nos originais do Prof. André C. P. L. F. de Carvalho)

IF-705 Automação Inteligente Algoritmos Evolucionários

Algoritmos Genéticos

Algoritmos genéticos Abordagem unificada de algoritmos evolutivos simples

Estrutura comum dos AEs Seleção

Computação Evolutiva. Prof. Eduardo R. Hruschka (Slides baseados nos originais do Prof. André C. P. L. F. de Carvalho)

Otimização com Algoritmos Genéticos no MATLAB. Prof. Rafael Saraiva Campos CEFET-RJ

UMA INTRODUÇÃO AOS ALGORITMOS GENETICOS

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ ALGORITMOS GENÉTICOS. Metaheurísticas de Buscas

4 Implementação Computacional

Agentes Adaptativos. Introdução

11/1/2012. Agenda. Classe de problemas de interesse. Busca Local. Busca Local. Exemplo de Espaço de Estados

CTC-17 Inteligência Artificial Busca Competitiva e Busca Iterativa. Prof. Paulo André Castro

3 Otimização Evolucionária de Problemas com Restrição

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid

GT-JeDi - Curso de Desenv. de Jogos IA para Jogos. Gustavo Pessin 2007

Créditos. Introdução a Sistemas Inteligentes. Agenda Introdução Breve Histórico. Introdução. Introdução aos Algoritmos Evolutivos

Otimização. Algoritmos Genéticos. Teoria da Evolução. Otimização

INF 1771 Inteligência Artificial

3. ALGORITMOS GENÉTICOS

Algoritmos Genéticos 1

Algoritmo Genético. Teoria da Evolução Princípio seguido pelos AGs

GAs são indicados em problemas complexos de otimização- onde se busca uma solução melhor:

APLICAÇÃO DE ALGORITMOS BIO-INSPIRADOS EM CONTROLE ÓTIMO

Modelos Evolucionários e Tratamento de Incertezas

OTIMIZAÇÃO FUNÇÕES UTILIZANDO ALGORITMOS GENÉTICOS NO APLICATIVO MS EXCEL RESUMO INTRODUÇÃO

Inteligência Artificial

Prof. Marco Aurélio C. Pacheco. 1. Problema 2. Representação 3. Decodificação 4. Avaliação 5. Operadores 6. Técnicas 7. Parâmetros

Computação Evolutiva Parte 2

GAs são indicados em problemas complexos de otimização- onde se busca uma solução melhor:

Algoritmos Genéticos

4 Métodos Existentes. 4.1 Algoritmo Genético

1. Computação Evolutiva

Problema de Satisfação de Restrições. Problema de Satisfação de Restrições. Grafo de restrições. Exemplo: 4 Rainhas como um PSR

Problema de Satisfação de Restrições

C o m p u t a ç ã o M ó v e l. André Siqueira Ruela

1. Computação Evolutiva

Introdução ao Algoritmo Genético

Frederico Gadelha Guimarães Departamento de Computação (DECOM) Universidade Federal de Ouro Preto (UFOP)

3 Computação Evolucionária

3 Métodos de Otimização

ALGORITMO GENÉTICO COMO REPRESENTAÇÃO DAS MUTAÇÕES NA BIOLOGIA

1. Computação Evolutiva

Aprendizado por Reforço usando Aproximação

Pesquisa Operacional Aplicada à Mineração

Motivação Computação Evolucionária e Algoritmos Genéticos. Teoria da Evolução. Teoria da Evolução. Otimização. Algoritmos Genéticos AG

INTRODUÇÃO À. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

4 Modelos Propostos para Otimização de Planejamentos com Restrições de Precedência 4.1 Representação com Algoritmos Genéticos

Algoritmos Genéticos. Luis Martí LIRA/DEE/PUC-Rio. Algoritmos Genéticos

Computação Evolutiva. Aula 4 Usando AEs Prof. Tiago A. E. Ferreira

Sistemas Inteligentes if684. Germano Vasconcelos Página da Disciplina:

4 Metáforas de Optimização

Buscas Informadas ou Heurísticas - Parte III

Figura 3.1: Fluxograma do algoritmo da Programação Genética.

3 Otimização Aplicada a Reconstituição de Acidentes

Métodos de pesquisa e Optimização

5 Modelo Kernel PCA Genético para Ajuste de Histórico

Algoritmos Genéticos. Indivíduos em uma população competem por recursos e parceiros. Os indivíduos mais bem sucedidos em cada competição vão produzir

Transcrição:

Algoritmos Genéticos Adriano Joaquim de Oliveira Cruz Universidade Federal do Rio de Janeiro Maio 2013 Adriano Cruz (DCC-UFRJ) AGs Maio 2013 1 / 155 Summary 1 Introdução 2 Termos e Definições 3 Algoritmo Genético 4 Codificação 5 População 6 Seleção 7 Cruzamento 8 Mutação 9 Condições de Parada 10 Island Genetic Algorithms 11 Separação de Gerações 12 Um exemplo simples 13 Elitismo 14 Exemplo simples com Matlab 15 Outro exemplo 16 Ambientes Dinâmicos 17 O FIM Adriano Cruz (DCC-UFRJ) AGs Maio 2013 2 / 155

Section Summary 1 Introdução 2 Termos e Definições 3 Algoritmo Genético 4 Codificação 5 População 6 Seleção 7 Cruzamento 8 Mutação 9 Condições de Parada 10 Island Genetic Algorithms 11 Separação de Gerações 12 Um exemplo simples 13 Elitismo 14 Exemplo simples com Matlab 15 Outro exemplo 16 Ambientes Dinâmicos 17 O FIM Adriano Cruz (DCC-UFRJ) AGs Maio 2013 3 / 155 Sorte! Nas minhas investigações debaixo do sol, vi ainda que a corrida não é para os ágeis, nem a batalha para os bravos, nem o pão para os prudentes, nem a riqueza para os inteligentes, nem o favor para os sábios: todos estão à mercê das circunstâncias e da sorte. Eclesiastes 9,12 Adriano Cruz (DCC-UFRJ) AGs Maio 2013 4 / 155

Bibliography Adriano Joaquim de Oliveira Cruz. Apresentação Algoritmos Genéticos. Andries P. Engelbrecht. Computational Intelligence: An Introduction. John Wiley & Sons, Ltd, West Sussex, England, 2008. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 5 / 155 O Problema Existem problemas para os quais algoritmos rápidos não são conhecidos. Encontrar a solução é buscar em um espaço onde vivem potenciais soluções a que melhor resolve o nosso problema. Quando este espaço é muito grande, encontrar a melhor solução pode levar tempo demais É possível obter soluções aproximadamente ótimas usando algoritmos probabilísticos. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 6 / 155

O que são? Técnica prática e robusta de busca e otimização. Baseados nos conceitos da seleção natural. É um método estocástico de busca. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 7 / 155 Exemplos de Problemas Encontrar o máximo (mínimo) de uma função. Encontrar um bom conjunto de regras para um sistema nebuloso. Encontrar o melhor agente para atuar como jogador digital. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 8 / 155

A Metáfora A metáfora que está por trás dos AGs é a da seleção natural. Na natureza, o problema de cada espécie é o de encontrar as melhores adaptações que a façam sobreviver em um ambiente complicado, muitas vezes hostil e que está sempre mudando. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 9 / 155 Evolução Há na natureza evolução no sentido de melhoria? Evolução pressupõe caminhar em direção a um indivíduo ideal. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 10 / 155

Adaptação Não seria mais apropriado falar em melhor adaptação ao ambiente? Na natureza sobrevivem não os mais evoluídos e sim os mais adaptados a um determinado ambiente. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 11 / 155 Section Summary 1 Introdução 2 Termos e Definições 3 Algoritmo Genético 4 Codificação 5 População 6 Seleção 7 Cruzamento 8 Mutação 9 Condições de Parada 10 Island Genetic Algorithms 11 Separação de Gerações 12 Um exemplo simples 13 Elitismo 14 Exemplo simples com Matlab 15 Outro exemplo 16 Ambientes Dinâmicos 17 O FIM Adriano Cruz (DCC-UFRJ) AGs Maio 2013 12 / 155

Adaptação O conjunto de características de um indivíduo, que o distingue dos demais, determina sua capacidade de sobrevivência. Estas características são determinadas pelo seu material genético. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 13 / 155 Mecanismos Na natureza a competição por recursos escassos em ambientes hostis ou que se alteram faz com que os mais aptos sobrevivam e consigam se reproduzir. Através da reprodução com parceiros os genes destes indivíduos são então transmitidos aos seus descendentes. Este processo contínuo de seleção e reprodução dos mais aptos pode conduzir a indivíduos cada vez mais adaptados. Este processo é denominado seleção natural. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 14 / 155

Seres Vivos - Cromossomos Cadeias organizadas de ADN (DNA) e proteínas encontrados nas células Contém informações que permitem a geração de um novo ser. É uma peça de ADN contendo diversos genes, elementos reguladores e outras sequências de nucleotídeos. A palavra cromossomo vem do grego chroma (cor) e soma (corpo) devido a propriedade de poder ser tingido facilmente. (fonte wikipedia) O conjunto de cromossomos que descrevem um organismo é o seu genoma. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 15 / 155 Seres Vivos - Cromossomos Cromossomos vêm em pares. Seres humanos têm 23 pares de cromossomos. Burros têm 31 pares e carpas 51 Cada gene corresponde a uma região do DNA que possui uma posição específica no cromossomo. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 16 / 155

Seres Vivos - Cromossomos A T G C G A T G C G Adriano Cruz (DCC-UFRJ) AGs Maio 2013 17 / 155 Seres Vivos - Proteínas Proteínas são a base de funcionamento das células. São compostas por cadeias de aminoácidos. Responsáveis por praticamente todo o trabalho realizado dentro das células. Exemplos de proteínas: enzimas, hemoglobina, certos hormônios. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 18 / 155

Seres Vivos - Genes Responsáveis por características específicas de cada ser. Podem assumir diferentes valores (alelos). Diferentes combinações de valores (genótipos) levam a diferenças em características do ser (fenótipos). Por exemplo, dois genes para olhos castanhos (fenótipo castanho), dois genes para olhos verdes (fenótipo verde), um gene para olhos verdes e outro para olhos castanhos (depende de como eles trabalham juntos). Adriano Cruz (DCC-UFRJ) AGs Maio 2013 19 / 155 Aproximação do funcionamento DNA armazena informação genética nos indivíduos. Proteínas são as trabalhadoras celulares. Uma sequência de DNA contém toda a informação necessária para se autoreplicar. Esta sequência é transcrita em RNA e posteriormente transcrita em uma proteína. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 20 / 155

Seres Vivos - Reprodução Cromossomos são encontrados em pares. Indivíduos possuem duas cópias de seus genes (reprodução sexuada). Gametas produzidos durante a fertilização possuem um representante de cada par. Gametas de dois indivíduos se unem para formar um novo indivíduo. Durante a produção dos gametas: Recombinação: troca de parte das cadeias de um par Mutação: alteração em uma ou mais posições dos cromossomos. A taxa de mutação é muito baixa devido aos mecanismos de correção embutidos no processo. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 21 / 155 Genética e Seleção Operadores de recombinação e mutação não garantem que os cromossomos dos filhos sejam exatamente iguais aos dos pais, mas sim uma combinação com possíveis alterações. Estas alterações podem ser benéficas ou não. Indivíduos que forem mais bem adaptados poderão mais facilmente repassar suas características. Deste modo a evolução gera maior adaptabilidade. proteína. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 22 / 155

Seres Vivos - Recombinação A G C C G M G A T T A F A G T T A C1 G A C C G C2 Adriano Cruz (DCC-UFRJ) AGs Maio 2013 23 / 155 Variações de Estratégias Algoritmos Genéticos: baseados na evolução (adaptação) genética. Programação Genética: baseados em algoritmos genéticos, mas os indivíduos são programas. Programação Evolucionária: deriva da simulação do comportamento adaptativo em evolução (evolução fenótica). Co-evolução: Evolução em que indivíduos evoluem através de cooperação, ou competição entre si. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 24 / 155

Section Summary 1 Introdução 2 Termos e Definições 3 Algoritmo Genético 4 Codificação 5 População 6 Seleção 7 Cruzamento 8 Mutação 9 Condições de Parada 10 Island Genetic Algorithms 11 Separação de Gerações 12 Um exemplo simples 13 Elitismo 14 Exemplo simples com Matlab 15 Outro exemplo 16 Ambientes Dinâmicos 17 O FIM Adriano Cruz (DCC-UFRJ) AGs Maio 2013 25 / 155 Cromossomo Indivíduos representam soluções potenciais em uma população. Em AG um indivíduo é representado por um único cromossomo. Usualmente, cada possível solução é codificada como uma cadeia de bits, o cromossomo ou genótipo. Cada parâmetro codificado na solução é chamado de um gene. F(x,y,z) 11010001 11010001 11010001 Gene X Gene Y Gene Z Adriano Cruz (DCC-UFRJ) AGs Maio 2013 26 / 155

População AGs mantém um conjunto de indivíduos formando populações de soluções. Indivíduos devem ser avaliados segundo uma função de aptidão. Indivíduos mais aptos terão mais chances de propagar sua informação genética. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 27 / 155 Gerações A cada geração o AG cria uma nova população. Esta criação de indivíduos é baseada em operadores genéticos. A evolução de uma geração para outra é feita em três fases: avaliação da aptidão, seleção dos mais aptos e reprodução. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 28 / 155

O Algoritmo Básico início Gera população inicial P i = 0 enquanto condição de parada não satisfeita faça Avalie cada indivíduo da população Cria espaço para nova população NP = enquanto NP P faça Seleciona pais a partir de P Recombine pais e gere filhos Aplique mutação nos filhos Insira filhos em NP fim enqto P NP i = i + 1 fim enqto Retorne melhor indivíduo de P como solução fim Adriano Cruz (DCC-UFRJ) AGs Maio 2013 29 / 155 Componentes de um AG Uma representação das soluções potenciais. Uma forma de criar a população inicial. Uma função de avaliação que faz o papel do ambiente e ordena as soluções por um critério de qualidade. Operadores genéticos que geram e alteram a composição dos filhos gerados. Valores para os vários parâmetros: tamanho da população, probabilidades de aplicação dos operadores, número de gerações etc. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 30 / 155

Por que AG Paralelo: mantém uma população de soluções que podem ser avaliadas simultaneamente. Global: AGs não usam somente informações locais, logo não necessariamente ficam presos em máximos locais. Não totalmente aleatório: usam informações da população atual para determinar o próximo estado de busca. Não afetados por descontinuidades: não usam informações de derivadas nem necessitam informações de seu entorno. Funções: Lidam com funções discretas e contínuas. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 31 / 155 Section Summary 1 Introdução 2 Termos e Definições 3 Algoritmo Genético 4 Codificação 5 População 6 Seleção 7 Cruzamento 8 Mutação 9 Condições de Parada 10 Island Genetic Algorithms 11 Separação de Gerações 12 Um exemplo simples 13 Elitismo 14 Exemplo simples com Matlab 15 Outro exemplo 16 Ambientes Dinâmicos 17 O FIM Adriano Cruz (DCC-UFRJ) AGs Maio 2013 32 / 155

Codificações de uma Solução A codificação pode, por exemplo, mapear pontos no espaço de soluções em cadeias de bits. Codificações são maneiras de traduzir o conhecimento sobre o problema para o ambiente dos AGs. Considere f(x 0,x 1,x 2 ) e que x 0 = 3, x 1 = 1, x 2 = 0 O cromossomo de 12 bits com genes de 4 bits poderia ser 0011-0001-0000 Adriano Cruz (DCC-UFRJ) AGs Maio 2013 33 / 155 Codificação Binária de uma Solução Considere uma função f(x) de v variáveis, ou seja x = (x 0,x 1,x 2,...,x v 1 ) onde x i R. Considere uma codificação binária que usa n bits para representar um valor real. Este esquema converte o indivíduo x = (x 0,x 1,x 2,...,x v 1 ) em b = (b 0,b 1,b 2,...,b v 1 ) onde b i = (b 0 b 1...b n 1 ) e b i {0,1}. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 34 / 155

Acurácia da Codificação Binária Considere que uma variável x é codificada em 16 bits. Considere que esta variável pode assumir valores entre x min = 0 e x max = 2 inclusive. A codificação divide o intervalo [0,2] em 2 16 1 pedaços. Neste caso a máxima acurácia é 2 0 2 16 1. De maneira geral a acurácia máxima neste tipo de codificação é x max,d x min,d 2 n d 1 d é uma das dimensões do espaço do problema. n d número de bits usado para codificar a dimensão d Adriano Cruz (DCC-UFRJ) AGs Maio 2013 35 / 155 Quantos Bits? Suponha que precisamos de D casas decimais. Seja T o tamanho do intervalo. Seja uma representação binária com n bits. Portanto: 2 (n 1) < T 10 D < 2 n Exemplo: D = 6 e T = 3 2097152 = 2 21 < 3000000 < 2 22 = 4194304 Neste caso o número de bits deve ser 22. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 36 / 155

Conversão para Real Considere uma variável x. Intervalo: [x min...x max ]. Representação com n bits: b = [b 0 b 1... b n 1 ] x = b convertido para inteiro. x = n 1 i=0 b i 2 n 1 i x = Φ(b) x = x min + x (x max x min ) (2 n 1) Adriano Cruz (DCC-UFRJ) AGs Maio 2013 37 / 155 Exemplo Duas variáveis x 1,x 2. Intervalo: x 1 [ 2,2] e x 2 [0,1]. Representação usa 6 bits. Cromossomo = 000011110011. b x1 = 000011 e b x2 = 110011. x 1 = 3 e x 2 = 51 x 1 = 2+3 2 ( 2) 2 6 1 = 1.809 x 2 = 0+51 1 0 2 6 1 = 0.809 Adriano Cruz (DCC-UFRJ) AGs Maio 2013 38 / 155

Problemas com Binários Representação binária pode introduzir problemas quando testamos soluções. Considere por exemplo as representações de 7 e 8 com 4 bits: 0111 e 1000. A distância de Hamming entre os dois números é 4. Uma pequena mudança na variável deveria deveria resultar em pequena mudança na representação. Neste caso quatro bits devem ser modificados para uma pequena modificação na representação. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 39 / 155 Código Gray I No código Gray somente um bit é alterado entre dois números sucessivos. Conversão de binário para gray é simples. b 0...b n 2 b n 1 = g 0 g 1...g n 1 g 0 = b 0 g i = (b i 1 b i ) ( b i 1 b i ) = b i b i 1 Adriano Cruz (DCC-UFRJ) AGs Maio 2013 40 / 155

Código Gray II Binário Gray 0 000 000 1 001 001 2 010 011 3 011 010 4 100 110 5 101 111 6 110 101 7 111 100 Adriano Cruz (DCC-UFRJ) AGs Maio 2013 41 / 155 Conversão Gray para Binário g 0 g 1... g n 1 = b 0 b 1...b n 1 b 0 = g 0 b i = (b i 1 ḡ i ) ( b i 1 g i ) = b i 1 g i Adriano Cruz (DCC-UFRJ) AGs Maio 2013 42 / 155

Outras Representações Reais. Inteiros. Permutações. Estados Finitos. Árvores. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 43 / 155 Section Summary 1 Introdução 2 Termos e Definições 3 Algoritmo Genético 4 Codificação 5 População 6 Seleção 7 Cruzamento 8 Mutação 9 Condições de Parada 10 Island Genetic Algorithms 11 Separação de Gerações 12 Um exemplo simples 13 Elitismo 14 Exemplo simples com Matlab 15 Outro exemplo 16 Ambientes Dinâmicos 17 O FIM Adriano Cruz (DCC-UFRJ) AGs Maio 2013 44 / 155

População Inicial Uma estratégia simples é gerar a população inicial aleatoriamente. O tamanho da população deve ser grande o suficiente para permitir variabilidade genética sem atrapalhar o desempenho. Em algumas soluções várias populações são criadas. Estas populações podem evoluir paralelamente de forma cooperativa ou não. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 45 / 155 População: Observações Grande número de individuos aumenta a diversidade, portanto permite explorar melhor as habilidades da população. Grandes populações exigem maior poder computacional. O maior tempo gasto em cada geração pode ser compensado pelo menor número de gerações para atingir o objetivo. Populações menores representam um pedaço menor do espaço de soluções. Em populações menores pode ser necessário aumentar a taxa de mutação para permitir a exploração de um espaço maior. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 46 / 155

Avaliação da Aptidão O primeiro passo após gerar uma população de soluções e calcular a aptidão de cada solução. Ela deve procurar abarcar todo o conhecimento que se possui sobre o problema, já que é a única ligação com a realidade. A função de aptidão f mapeia um cromossomo em um valor escalar. f : C n R, onde C n representa os dados contidos em um cromossomo com n dimensões. Esta função representa a função objetivo Ψ, que descreve o problema de otimização a ser resolvido. No caso de uma representação binária isto é feito em etapas. Temos: f : {0,1} n Φ R n Ψ Υ R R+ Adriano Cruz (DCC-UFRJ) AGs Maio 2013 47 / 155 Função de Aptidão A função de aptidão fornece uma avaliação absoluta de cada um dos indivíduos da solução. Em alguns problemas uma função que permita a avaliação absoluta não existe, por exemplo aprendizado em jogos. Neste caso são usadas funções que permitem avaliações relativas dos indivíduos. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 48 / 155

Tipos de Problemas de Otimização Otimização sem Restrições: A função de aptidão é simplesmente a função objetivo. Otimização com Restrições: A função de aptidão contém duas funções. Uma é a função objetivo original e a outra uma função de restrição. Multi-Objetivo: Podem ser resolvidos usando-se uma função de agregação ponderada dos resultados das várias sub-funções objetivo. Problemas Dinâmicos e Ruidosos: Problemas em que os valores da função variam com o tempo ou apresentam ruído adicionado. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 49 / 155 Section Summary 1 Introdução 2 Termos e Definições 3 Algoritmo Genético 4 Codificação 5 População 6 Seleção 7 Cruzamento 8 Mutação 9 Condições de Parada 10 Island Genetic Algorithms 11 Separação de Gerações 12 Um exemplo simples 13 Elitismo 14 Exemplo simples com Matlab 15 Outro exemplo 16 Ambientes Dinâmicos 17 O FIM Adriano Cruz (DCC-UFRJ) AGs Maio 2013 50 / 155

Seleção Após a avaliação deve-se gerar uma nova população a partir da atual. A seleção escolhe que indivíduos participarão deste processo. Na seleção proporcional a probabilidade de um indivíduo ser selecionado é função direta da sua aptidão. No entanto, mesmo os menos aptos devem ter a possibilidade de passarem para a próxima geração suas características. Existem diversos métodos de seleção. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 51 / 155 Pressão Seletiva Pressão seletiva está relacionado com o tempo necessário para que uma população uniforme seja gerada. É definida pela velocidade com que os genes da melhor solução levam para se espalhar por toda a população quando somente o operador de seleção é aplicado. Um operador com alta pressão seletiva diminui com rapidez a diversidade genética da população. Portanto, limita a capacidade do algoritmo explorar o espaço de soluções. Isto pode levar a convergência para mínimos locais. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 52 / 155

Exemplo Considere a função y = x 2 no intervalo [0,15]. Considere uma representação com 4 bits. Sabemos que o máximo está em 15 ou b = 1111. Considere a população: b 0 = 0001 com y = 1 b 1 = 0011 com y = 9 b 2 = 0100 com y = 16 b 3 = 0110 com y = 36 Os dois melhores indivíduos b 2,b 3 não contém uma boa característica que é o bit mais à direita igual a 1. Se somente os dois melhores fossem escolhidos para reprodução não chegaríamos a solução. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 53 / 155 Seleção Aleatória É o método mais simples. Cada indivíduo x i (t) tem a mesma probabilidade de ser escolhido ϕ s (x i (t)) = 1 n, onde n é o tamanho da população e x i(t) é o indivíduo i na iteração t. Nenhuma informação sobre a avaliação de cada indivíduo é usada. Este método é o que tem a menor pressão seletiva. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 54 / 155

Seleção Proporcional a Avaliação Proposta por Holland. Cria uma distribuição de probabilidades proporcional a avaliação de cada indivíduo. Indivíduos são escolhidos com base na distribuição. ϕ s (x i (t)) = f Υ (x i (t)) n 1 l=0 f Υ(x l (t)) ϕ s (x i (t)) é a probabilidade de x i (t) ser escolhido. f Υ (x i (t)) é uma função de avaliação para o indivíduo x i (t) escalada para produzir um valor real positivo. O tempo t refere-se a iteração, ou geração, t do algoritmo genético. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 55 / 155 Funções de Distribuição Proporcional I Em problemas de minimização uma função possível seria f Υ (x i (t)) = f max f Ψ (x i (t)) onde f Ψ (x i (t)) = Ψ(x i (t)) a própria função de avaliação. No entanto, nem sempre o valor f max é conhecido. Uma alternativa é usar f max (t), que é o máximo valor de f até a geração t. Outra função possível é: f Υ (x i (t)) = 1 1+f Ψ (x i (t)) f min Neste caso f Υ (x i (t)) (0,1] Adriano Cruz (DCC-UFRJ) AGs Maio 2013 56 / 155

Funções de Distribuição Proporcional II No caso de maximização as funções seriam: A função escalável entre (0,1] é f Υ (x i (t)) = f Ψ (x i (t)) f min f Υ (x i (t)) = 1 1+f max f Ψ (x i (t)) Adriano Cruz (DCC-UFRJ) AGs Maio 2013 57 / 155 Funções de Distribuição Proporcional III Uma função bastante usada é: f Υ (x i (t)) = f Ψ (x i (t)) onde f Ψ (x i (t)) = Ψ(x i (t)) a própria função de avaliação. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 58 / 155

Roleta na Seleção Proporcional A roleta é um método de seleção proporcional. Cada cromossomo recebe uma fatia proporcional à sua avaliação. Ao girar a roleta o selecionado será o indivíduo sobre o qual bolinha da roleta parar. Indivíduos com fatias maiores têm mais probabilidade de serem escolhidos. Indivíduos selecionados continuam no sorteio. Portanto, indivíduos podem ser escolhidos mais de uma vez. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 59 / 155 Criando a Roleta Calcular a avaliação de cada indivíduo, f Υ (x i (t)) Calcular a avaliação total da população, S = n 1 l=0 f Υ (x l (t)) Calcular a probabilidade da seleção de cada indivíduo ϕ s (x i (t)) = f Υ (x i (t)) n 1 l=0 f Υ(x l (t)) Calcular a probabilidade cumulativa para cada indivíduo Θ s (x i (t)) = n 1 l=0 ϕ s (x l (t)) Adriano Cruz (DCC-UFRJ) AGs Maio 2013 60 / 155

Exemplo de Roleta x f Ψ (x i (t)) f Ψ (x i (t)) f min ϕ s (x i (t)) Θ s (x i (t)) 0.0 5.00 5.5 0.149 0.149 0.5 5.75 6.25 0.169 0.318 1.0 6.00 6.50 0.176 0.493 1.5 5.75 6.25 0.169 0.662 2.0 5.00 5.50 0.149 0.811 2.5 3.75 4.25 0.115 0.926 3.0 2.00 2.50 0.068 0.993 3.5-0.25 0.25 0.007 1.000 37.00 Obs. Considere que f min = 0.5 Adriano Cruz (DCC-UFRJ) AGs Maio 2013 61 / 155 A Roleta x ϕ s (x i (t)) 0.0 0.149 0.5 0.169 1.0 0.176 1.5 0.169 2.0 0.149 2.5 0.115 3.0 0.068 3.5 0.007 Adriano Cruz (DCC-UFRJ) AGs Maio 2013 62 / 155

Rodando a Roleta Entrada: ϕ s (x i (t)) para i = 0...n 1 Saída: Índice i do indivíduo escolhido início i = 0 soma = ϕ s (x i (t)) r = rand() enquanto soma < r faça i = i + 1 soma = soma+ϕ s (x i (t)) fim enqto Selecione indivíduo i fim Adriano Cruz (DCC-UFRJ) AGs Maio 2013 63 / 155 Exemplo de Seleção através da Roleta Considere que o valor r sorteado foi 0.795. Então o valor selecionado foi 2.0. x f Ψ (x i (t)) f Ψ (x i (t)) f min ϕ s (x i (t)) Θ s (x i (t)) 0.0 5.00 5.5 0.149 0.149 0.5 5.75 6.25 0.169 0.318 1.0 6.00 6.50 0.176 0.493 1.5 5.75 6.25 0.169 0.662 2.0 5.00 5.50 0.149 0.811 2.5 3.75 4.25 0.115 0.926 3.0 2.00 2.50 0.068 0.993 3.5-0.25 0.25 0.007 1.000 37.00 Adriano Cruz (DCC-UFRJ) AGs Maio 2013 64 / 155

Problemas com Roletas Pode acontecer do melhor indivíduo da população não ser escolhido para gerar filhos. Como a seleção é baseada na aptidão de cada indivíduo, pode ocorrer que indivíduos fortes dominem a produção de filhos. Portanto, a seleção proporcional tem uma grande pressão seletiva. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 65 / 155 Seleção por Amostragem Estocástica Para evitar estes problemas Baker propôs um algoritmo de amostragem estocástico. Este algoritmo determina o número de filhos que cada indivíduo irá gerar. J. E. Baker. Reducing Bias and Inefficiency in The Selection Algorithm. In J. Grefenstette, editor, Proceedings of the Second International Conference of Genetic Algorithms, pages 14-21, Hillsdale, N. J. 1987, Erlbaum. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 66 / 155

Algoritmo Estocástico de Seleção Universal Entrada: ϕ s (x i (t)),λ total filhos a serem gerados Saída: λ i número de filhos que cada indivíduo pode gerar início para i = 0,...,n 1 faça λ i (t) = 0 fim para r = rand(0, 1 λ ) soma = 0.0 para i = 0,...,n 1 faça soma = soma+ϕ s (x i ) enquanto r < soma faça λ i ++ r = r + 1 λ fim enqto fim para Retorne λ = (λ 0,...,λ n 1 ) fim Adriano Cruz (DCC-UFRJ) AGs Maio 2013 67 / 155 Seleção por Torneio Selecionar aleatoriamente um subconjunto dos indivíduos da população. Competição entre estes indivíduos para ver quem ganha o direito de gerar filhos. Tamanho do torneio (k) é o número de indivíduos que irão competir. Dentre os selecionados o que tiver a melhor avaliação é o selecionado. Para cruzamento entre dois pais, este processo deve ser repetido duas vezes. Este processo de torneio, seleção e cruzamento é repetido até completar a população. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 68 / 155

Pressão Seletiva no Torneio Os k indivíduos em um torneio podem ser todos iguais. Este método diminui o favorecimento para os melhores indivíduos devido ao sorteio para entrar no torneio. Se k não é muito grande então o melhor indivíduo não irá dominar. Se k é muito pequeno então as chances de indivíduos ruins serem selecionados aumenta. Se k = 1 temos a seleção randômica. Se k = n o melhor indivíduo será sempre selecionado. Um problema é que o pior indivíduo somente será selecionado se ele for o único no torneio (k iguais). Se há n indivíduos a probabilidade disto ocorrer é 1 n k. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 69 / 155 Comparando Probabilidades de Escolha I Vamos considerar o exemplo abaixo. Indivíduo f Ψ (x i (t)) ϕ s (x i (t)) (em %) x 1 180 0.9 x 2 120 0.6 x 3 8000 43.1 x 4 120 0.6 x 5 80 0.4 x 6 10000 53.1 x 7 10 0.05 x 8 60 0.3 total 18750 Adriano Cruz (DCC-UFRJ) AGs Maio 2013 70 / 155

Comparando Probabilidades de Escolha II Considere K = 2 para n = 8. Existem 64 combinações possíveis. Com o x 6 (o melhor) e outro indivíduo ele ganhará em 14 possibilidades (x 6, 7 outros) + (7 outros, x 6 ) Com o par (x 6,x 6 ) ele ganhará uma vez. Portanto, temos a probabilidade de 15 64 = 23.48% Valor menor que na roleta, que é igual a 53.1%. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 71 / 155 Seleção Baseada na Classificação Indivíduos são colocados em ordem de acordo com sua função de aptidão. A probabilidade de seleção é baseada nesta ordem e não nos valores absolutos das aptidões. Uma possível vantagem é que o mais apto não domina o processo de seleção. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 72 / 155

Seleção não Determinística Baseada na Classificação Indivíduos são colocados em ordem de acordo com sua função de aptidão. O indivíduo x i é selecionado de acordo com a função i rand(0,rand(0,n 1)) O melhor indivíduo assume a classificação 0 e o pior a n 1. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 73 / 155 Seleção Baseada em Classificação Linear Os n indivíduos são colocados em ordem de acordo com sua função de aptidão. Na seleçao por classificação linear é assumido que a pressão seletiva τ pode variar entre [1.0... 2.0]. Para calcular a probabilidade de cada indivíduo ser selecionado podemos usar a fórmula ϕ((x) i (t)) = 2 τ + 2(τ 1)f c(x i (t)) n 1 n onde f c (x i (t)) é a classificação de x i (t) o melhor classificado tem classificação n 1 e o pior 0. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 74 / 155

Probabilidade de Seleção na Classificação Linear Cada uma das curvas foi gerada com uma pressão seletiva. Para pressão seletiva 1 a probabilidade é igual para todos. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 75 / 155 Elitismo Modificação no algoritmo de geração da população. Os n melhores indivíduos de cada geração são levados para a próxima geração. Por exemplo, em uma população de p indivíduos com elitismo n somente p n indivíduos precisam ser gerados por cruzamentos. Quanto mais indivíduos sobrevivem para a próxima geração menor será a diversidade genética na próxima geração. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 76 / 155

Galeria da Fama Guarda os melhores jogadores de cada geração. A galeria da fama pode ser usada como fonte de bons cromossomos durante o processo de cruzamento. Na última geração o melhor indivíduo na galeria da fama corresponde a melhor solução. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 77 / 155 Section Summary 1 Introdução 2 Termos e Definições 3 Algoritmo Genético 4 Codificação 5 População 6 Seleção 7 Cruzamento 8 Mutação 9 Condições de Parada 10 Island Genetic Algorithms 11 Separação de Gerações 12 Um exemplo simples 13 Elitismo 14 Exemplo simples com Matlab 15 Outro exemplo 16 Ambientes Dinâmicos 17 O FIM Adriano Cruz (DCC-UFRJ) AGs Maio 2013 78 / 155

Cruzamento Cruzamento é o operador genético aplicado aos pais selecionados para gerar os filhos. Deste cruzamento espera-se que as boas características de prévias gerações sejam passadas as próximas. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 79 / 155 Tipos de Cruzamento Assexuada: o filho é gerado a partir de um pai. Sexuada: dois pais são usados para produzir o filho. Multi-recombinação: o filho é gerado a partir de mais de dois pais. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 80 / 155

Seleção dos Pais Pais são selecionados usando um dos esquemas existentes. Cruzamento é aplicado com um critério probabilístico. Cada par de pais tem uma probabilidade p c de gerar filhos. Usualmente a probabilidade de cruzamento é alta. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 81 / 155 Ponto de Corte em Representações Binárias Vamos considerar cromossomos binários. Pais são selecionados para gerar os filhos. Ponto de corte é uma posição no cromossomo onde este será separado para ser ligado no cromossomo do outro pai. Cromossomos podem ser cortados de diversas maneiras. Cruzamentos com um ponto de corte único é o modo mais comum. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 82 / 155

Exemplo de Cruzamento em um Ponto Considere os dois indivíduos abaixo, cada um com 8 bits (7 até 0). Considere um ponto de corte no bit 5. Pais Filhos 10110111 X 01100010 10100010 X 01110111 Adriano Cruz (DCC-UFRJ) AGs Maio 2013 83 / 155 Algoritmo de Cruzamento Entrada: Cromossomos pais b 1 e b 2 Saída: Cromossomos filhos ~ b 1 e ~ b 2 início /* somos como nossos pais */ ~ b1 = b 1 ~ b2 = b 2 se rand() < p c então m = GerarMascaraBinaria() para i = 0 até i < n faça se m(i) = 1 então /* Troca bits */ ~ b1 (i) = b 2 (i) ~ b2 (i) = b 1 (i) fim se fim para fim se fim Adriano Cruz (DCC-UFRJ) AGs Maio 2013 84 / 155

Geração de Máscara em Cruzamentos com um Ponto Saída: Máscara m para cruzamento início // Seleciona ponto de cruzamento entre 0 e n 1 c = rand(0, n 1) // Zera n bits da máscara m(i) = 0, i = 0...n 1 para i = c + 1 até i < n faça m(i) = 1 fim para fim Adriano Cruz (DCC-UFRJ) AGs Maio 2013 85 / 155 Cruzamento em dois pontos I Existem alguns esquemas interessantes que o cruzamento em um ponto não consegue preservar. Considere que a solução de um problema, codificada em 8 bits tem o seguinte esquema: 1******1 Um operador de cruzamento em um ponto irá separar estes bits. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 86 / 155

Cruzamento em dois pontos II Pais 10 0010 X 11 0100 11 10 01 11 Filhos 0100 X 0010 11 01 Neste exemplo podemos preservar os esquemas 10 **** 11 e 11 **** 01. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 87 / 155 Geração de Máscara em Cruzamentos com dois Pontos Saída: Máscara m para cruzamento início // Seleciona primeiro ponto de cruzamento entre 0 e n 1 c 1 = rand(0, n 1) // Seleciona segundo ponto de cruzamento entre 0 e n 1 c 2 = rand(0, n 1) // Zera n bits da máscara m(i) = 0, i = 0...n 1 para i = c 1 + 1 até c 2 faça m(i) = 1 fim para fim Adriano Cruz (DCC-UFRJ) AGs Maio 2013 88 / 155

Cruzamento Uniforme Uma máscara com n bits é criada aleatoriamente. p c é a probabilidade de troca dos bits. Se p c = 0.5 tem cada bit tem uma chance igual de ser trocado. Algoritmo para gerar a máscara no cruzamento uniforme. início //Zera os n bits da máscara m(i) = 0, i = 0...n 1 para i = 0 até i < n faça se rand() p c então m(i) = 1 fim se fim para fim Adriano Cruz (DCC-UFRJ) AGs Maio 2013 89 / 155 Exemplo de Cruzamento Uniforme Pais 10110111 01100010 Máscara 00101011 Filhos 10110110 01100011 Adriano Cruz (DCC-UFRJ) AGs Maio 2013 90 / 155

Representação em Ponto Flutuante Números em ponto flutuante são usados para representar os indivíduos. Esta forma pode ser mais rápida e mais precisa. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 91 / 155 Operador de Cruzamento I Considerar dois pais x 1 e x 2. Gerar três candidatos: x 1 + x 2. 1.5x 1 0.5x 2. 0.5x 1 + 1.5x 2. Escolher os dois melhores candidatos. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 92 / 155

Operador de Cruzamento II Considerar dois pais x 1 e x 2. x 2 deve ser melhor que x 1, ou seja f(x 2 ) > f(x 1 ) se for para achar máximo de f. ~x i = rand()(x 2 x 1 )+x 2 Operador direcional, sempre ~x i > x 2. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 93 / 155 Operador de Cruzamento III - Cruzamento Aritmético Este é um operador que combina vários pais. Vamos considerar l pais. onde ~x i = l 1 k=0 l 1 k=0 γ k x k γ k = 1 No caso de l = 2 temos ~x i = γx 1 +(1 γ)x 2. Se γ = 0.5 então o filho é a média aritmética dos dois valores. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 94 / 155

Section Summary 1 Introdução 2 Termos e Definições 3 Algoritmo Genético 4 Codificação 5 População 6 Seleção 7 Cruzamento 8 Mutação 9 Condições de Parada 10 Island Genetic Algorithms 11 Separação de Gerações 12 Um exemplo simples 13 Elitismo 14 Exemplo simples com Matlab 15 Outro exemplo 16 Ambientes Dinâmicos 17 O FIM Adriano Cruz (DCC-UFRJ) AGs Maio 2013 95 / 155 Por que? Filhos podem ultrapassar seus pais caso herdem as melhores características de cada pai. E se os indivíduos atuais não contém os genes da solução? Será que temos os genes para telepatia? A ideia é aumentar a diversidade genética da população. Evita que a população entre em estagnação. O valor da probabilidade da mutação deve ser muito baixo para evitar que boas soluções sejam muito distorcidas. Cuidado deve ser tomado para evitar que a mutação gere um cromossomo inválido. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 96 / 155

Problemas Mutação é capaz de alterar os cromossomos gerados por cruzamento. Para representações binárias a troca faz com que o valor passe de 0(1) para 1(0). A maneira mais comum é trocar o valor do gene com uma probabilidade baixa (taxa de mutação) p m. Cada gene do cromossomo deve ser testado para verificar se pode ocorrer uma mutação. O valor da probabilidade da mutação deve ser muito baixa para evitar que boas soluções sejam muito distorcidas. A probabilidade que um indivíduo x i de n genes sofra mutação é igual P(x i ) = 1 (1 p m ) n Adriano Cruz (DCC-UFRJ) AGs Maio 2013 97 / 155 Mutações em binários Uniforme: posições de bits são escolhidas e estes bits são complementados ou não com um probabilidade p m. Ordenadamente: dois pontos do cromossomo sao escolhidos aleatoriamente e somente os bits entre estes dois limites podem sofrem mutação. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 98 / 155

Algoritmo para Mutação Uniforme Entrada: Novo indivíduo ~ b i Saída: Novo indivíduo b i após sofrer mutação uniforme início para j = 0 até n 1 faça se rand() p m então // complementa bit b i (j) = b i (j) fim se fim para fim Adriano Cruz (DCC-UFRJ) AGs Maio 2013 99 / 155 Algoritmo para Mutação Ordenada Entrada: Novo indivíduo ~ b i Saída: Novo indivíduo b i após sofrer mutação uniforme início // Seleciona primeiro ponto de mutação entre 0 e n 1 t 1 = rand(0, n 1) // Seleciona segundo ponto de mutação entre 0 e n 1 t 2 = rand(0, n 1) para j = t 1 até t 2 faça se rand() p m então // complementa bit b i (j) = b i (j) fim se fim para fim Adriano Cruz (DCC-UFRJ) AGs Maio 2013 100 / 155

Mutação Uniforme em Representações Ponto Flutuante x i = { xi + rand(0,x max,i x i ) if rand() 0.5 x i rand(0, x i x min,i ) if rand() > 0.5 Entrada: Novo indivíduo x i Saída: Novo indivíduo x i após sofrer mutação uniforme início // Gera um número randômico entre 0 e 1. t = rand() se t 0.5 então x i = x i + rand(0, x max,i x i ) senão x i = x i rand(0, x i x min,i ) fim se fim Adriano Cruz (DCC-UFRJ) AGs Maio 2013 101 / 155 Section Summary 1 Introdução 2 Termos e Definições 3 Algoritmo Genético 4 Codificação 5 População 6 Seleção 7 Cruzamento 8 Mutação 9 Condições de Parada 10 Island Genetic Algorithms 11 Separação de Gerações 12 Um exemplo simples 13 Elitismo 14 Exemplo simples com Matlab 15 Outro exemplo 16 Ambientes Dinâmicos 17 O FIM Adriano Cruz (DCC-UFRJ) AGs Maio 2013 102 / 155

Condições de Parada I Limite de Gerações: o algoritmo para quando um número de gerações predefinido é atingido. Limite de Tempo: o algoritmo para quando um tempo máximo predefinido foi ultrapassado. Limite de Aptidão: o algoritmo para quando uma solução aceitável for encontrada. Considere que x (t) representa um valor aceitável de solução, se f(x i (t)) f(x (t)) ǫ o algoritmo pode parar. Se o valor de ǫ for muito pequeno então o algoritmo pode não terminar. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 103 / 155 Condições de Parada II Sem melhor: Se durante um número determinado de gerações nenhum indivíduo supera o melhor atual então o algoritmo pode ser interrompido. Sem mudanças: Se durante um número determinado de gerações não há mudanças na informação contida nos genótipos o algoritmo pode parar. Solução não satisfatória: Se o melhor indivíduo encontrado não agrada então alternativas podem ser procuradas. Aumentar a taxa de mutação para expandir o espaço de exploração do algoritmo e tentar sair do possíve mínimo local. Aplicar a técnica do dilúvio e destruir a população atual começando do zero. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 104 / 155

Section Summary 1 Introdução 2 Termos e Definições 3 Algoritmo Genético 4 Codificação 5 População 6 Seleção 7 Cruzamento 8 Mutação 9 Condições de Parada 10 Island Genetic Algorithms 11 Separação de Gerações 12 Um exemplo simples 13 Elitismo 14 Exemplo simples com Matlab 15 Outro exemplo 16 Ambientes Dinâmicos 17 O FIM Adriano Cruz (DCC-UFRJ) AGs Maio 2013 105 / 155 Paralelismo Algoritmos genéticos são facilmente paralelizáveis. Três categorias principais podem ser identificadas: Populações únicas com avaliação de aptidão sendo distribuída entre vários processadores. Populações únicas com cada indivíduo avaliado por um processador. Multipopulações ou algoritmos genéticos em ilhas. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 106 / 155

Ilhas Adriano Cruz (DCC-UFRJ) AGs Maio 2013 107 / 155 Ilhas Adriano Cruz (DCC-UFRJ) AGs Maio 2013 108 / 155

Ilhas Múltiplas populações são usadas, cada uma podendo ser resolvida em paralelo. Informação é trocada entre populações com uma política de migração definida. Este método também pode ser executado serialmente. Seleção, cruzamento e mutação ocorrem independentemente nas populações das ilhas. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 109 / 155 Políticas de Migração Topologia da comunicação entre as ilhas. Populações isoladas dificultam troca de informações Permitem aparecimento de múltiplas soluções. Comunicação facilitada pode levar a convergência prematura. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 110 / 155

Topologias Exemplo simples: um anel. Trocas entre vizinhos. Trocas dinâmicas Origem e destino são encontrados probabilisticamente (por exemplo, torneios). Políticas de aceitação de migrantes são possíveis. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 111 / 155 Taxa de migração Determina a frequência da migração. Também é necessário determinar quando a migração irá ocorrer. Migração usualmente ocorre quando cada população convergiu. Após a troca de indivíduos todas as populações são reiniciadas. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 112 / 155

Seleção e Substituição Quem irá migrar? Quem será substituído? Um bom migrante substitui um indivíduo ruim. Um bom migrante substitui um indivíduo qualquer. Um migrante qualquer substitui um indivíduo ruim. Um migrante qualquer substitui um indivíduo qualquer. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 113 / 155 Section Summary 1 Introdução 2 Termos e Definições 3 Algoritmo Genético 4 Codificação 5 População 6 Seleção 7 Cruzamento 8 Mutação 9 Condições de Parada 10 Island Genetic Algorithms 11 Separação de Gerações 12 Um exemplo simples 13 Elitismo 14 Exemplo simples com Matlab 15 Outro exemplo 16 Ambientes Dinâmicos 17 O FIM Adriano Cruz (DCC-UFRJ) AGs Maio 2013 114 / 155

Algoritmos Genéticos Geracionais Nos algoritmos mostrados até agora toda uma geração de indivíduos é substituída na fase de reprodução. Este tipo de estratégia para reposição de indivíduos é chamada geracional. Algoritmos Genéticos que empregam esta estratégia são chamados Algoritmos Genéticos Geracionais (AGG). Isto não é o que normalmente ocorre na natureza. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 115 / 155 Algoritmos Genéticos de Estado Estacionário Nos algoritmos genéticos de estado estacionário (AGEE) há cohabitação entre indivíduos de gerações diversas. Uma vez que um indivíduo é gerado e sofre mutação ocorre uma decisão sobre entre a sobrevivência do novo indivíduo e algum da população atual. O grau de cohabitação é chamado de diferença entre gerações. Isto não é o que normalmente ocorre na natureza. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 116 / 155

Estratégias de Substituição Pior: o novo indivíduo substitui o pior indivíduo da população. Aleatório: o novo indivíduo substitui um indivíduo escolhido aleatoriamente da população atual. Torneio da Morte: um grupo de indivíduos é selecionado aleatoriamente e o pior indivíduo deste grupo é substituído. Torneio com Dupla: dois indivíduos são selecionados e o pior indivíduo é substituído com probabilidade, 0.5 p s 1. Substitui o mais Antigo: Substituir o indivíduo mais antigo da população. Esta estratégia tem o inconveniente de ter alta probabilidade de substituir um dos melhores. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 117 / 155 Estratégias de Substituição Seleção Conservadora: Combina a substituição do mais antigo com o torneio com duplas. Nesta estratégia ocorre um torneio entre dois indivíduos em que um deles é sempre o mais antigo e o pior é substituído pelo novo indivíduo. Isto garante que o mais antigo não será substituído se for o melhor de todos. Pai-Filho: Uma estratégia de seleção qualquer é usada para decidir se o filho substitui um dos pais. Elitismo: As estratégias acima podem usar elitismo para evitar que os melhores indivíduos são excluídos do processo de substituição. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 118 / 155

O Algoritmo Estado Estacionário início Gera população inicial P Avalie cada indivíduo da população t = 0 enquanto condição de parada não satisfeita faça Seleciona pais a partir de P Recombine pais e gere filho Aplique mutação no filho Selecione indivíduo a ser substituído Insira filho em P t = t + 1 fim enqto Retorne melhor indivíduo de P como solução fim Adriano Cruz (DCC-UFRJ) AGs Maio 2013 119 / 155 Section Summary 1 Introdução 2 Termos e Definições 3 Algoritmo Genético 4 Codificação 5 População 6 Seleção 7 Cruzamento 8 Mutação 9 Condições de Parada 10 Island Genetic Algorithms 11 Separação de Gerações 12 Um exemplo simples 13 Elitismo 14 Exemplo simples com Matlab 15 Outro exemplo 16 Ambientes Dinâmicos 17 O FIM Adriano Cruz (DCC-UFRJ) AGs Maio 2013 120 / 155

Exemplo Considere o problema de achar o máximo da função y = sin(10 x) sin(x). Parâmetros: População = 20 Gerações = 30 Probabilidade de cruzamento=0.85 Probabilidade de mutação = 0.01 Bits para codificação = 8 Ex:./ex1/roda.m Adriano Cruz (DCC-UFRJ) AGs Maio 2013 121 / 155 Representação Usaremos um vetor binário de 8 bits para representar os valores reais da variável x. O domínio da variável x = [0... 3] tem comprimento 3 e escolhemos uma representação com 8 bits. 8 bits dividem o domínio em 2 8 1 fatias A conversão de vetor binário para real se faz em dois passos: Converte o vetor binário da base 2 para 10 (valor x ). Acha o valor de x: x = 0+x (3/(2 8 1)) Adriano Cruz (DCC-UFRJ) AGs Maio 2013 122 / 155

Representação: exemplo Considere x = 00010001. Portanto: x = 17. Logo: x = 0+17 (3/255) = 0.2 Adriano Cruz (DCC-UFRJ) AGs Maio 2013 123 / 155 População inicial Considere o tamanho da população igual a 20. Gerar aleatoriamente 20 números binários com 8 bits. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 124 / 155

Exemplo de população inicial y 1 0.8 0.6 0.4 0.2 0 Geracao: 1 Melhor: 01111111 > 0.69179 Media: 0.10544 y = sin(10x) * sin(x) 2 1 3 4 5 6 8 7 11 9 12 1310 14 15 0.2 0.4 0.6 16 17 18 19 0.8 20 1 0 0.5 1 1.5 2 2.5 3 3.5 x Figura: Exemplo de população inicial. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 125 / 155 Exemplo de final ruim y 1 0.8 0.6 0.4 0.2 0 0.2 0.4 Geracao: 30 Melhor: 01111101 > 0.83837 Media: 0.51607 45678910 11 12 13 14 15 16 17 18 19 20 123 y = sin(10x) * sin(x) 0.6 0.8 1 0 0.5 1 1.5 2 2.5 3 3.5 x Figura: Exemplo de final ruim. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 126 / 155

Evolução até final ruim 1 0.8 0.6 0.4 0.2 Fitness 0 0.2 0.4 0.6 0.8 Best Average Poorest 1 0 5 10 15 20 25 30 Generations Figura: Evolução até final ruim. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 127 / 155 Exemplo de final bom 1 0.8 0.6 Geracao: 30 Melhor: 01111001 > 0.98442 Media: 0.53111 3 7812 456 910 11 12 y = sin(10x) * sin(x) y 0.4 0.2 0 16 17 13 14 15 18 0.2 0.4 19 20 0.6 0.8 1 0 0.5 1 1.5 2 2.5 3 3.5 x Figura: Exemplo de final bom. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 128 / 155

Evolução até final bom 1 0.8 0.6 0.4 0.2 Fitness 0 0.2 0.4 Best Average Poorest 0.6 0.8 1 0 5 10 15 20 25 30 Generations Figura: Evolução até final bom. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 129 / 155 Section Summary 1 Introdução 2 Termos e Definições 3 Algoritmo Genético 4 Codificação 5 População 6 Seleção 7 Cruzamento 8 Mutação 9 Condições de Parada 10 Island Genetic Algorithms 11 Separação de Gerações 12 Um exemplo simples 13 Elitismo 14 Exemplo simples com Matlab 15 Outro exemplo 16 Ambientes Dinâmicos 17 O FIM Adriano Cruz (DCC-UFRJ) AGs Maio 2013 130 / 155

Elitismo Modificação no algoritmo de geração da população. Os n melhores indivíduos de cada geração são levados para a próxima geração. Por exemplo, em uma população de p indivíduos com elitismo n somente p n indivíduos precisam ser gerados por cruzamentos. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 131 / 155 Tabela de elitismo Elitismo = 2. Indivíduo Ação 1 Mantido 2 Mantido 3 Livre para cruzamento 4 Livre para cruzamento 5 Livre para cruzamento 6 Livre para cruzamento 7 Livre para cruzamento 8 Livre para cruzamento Adriano Cruz (DCC-UFRJ) AGs Maio 2013 132 / 155

Exemplo com elitismo População = 20, Elitismo = 2. 1 0.8 Geracao: 30 Melhor: 01111000 > 0.98719 Media: 0.97313 12345678910 11 13 14 15 16 17 18 19 20 y = sin(10x) * sin(x) 0.6 0.4 0.2 y 0 0.2 0.4 0.6 0.8 1 0 0.5 1 1.5 2 2.5 3 3.5 x Figura: Exemplo com elitismo. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 133 / 155 Evolução com elitismo 1 0.8 0.6 0.4 0.2 Fitness 0 0.2 0.4 Best Average Poorest 0.6 0.8 1 0 5 10 15 20 25 30 Generations Figura: Evolução com elitismo. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 134 / 155

Section Summary 1 Introdução 2 Termos e Definições 3 Algoritmo Genético 4 Codificação 5 População 6 Seleção 7 Cruzamento 8 Mutação 9 Condições de Parada 10 Island Genetic Algorithms 11 Separação de Gerações 12 Um exemplo simples 13 Elitismo 14 Exemplo simples com Matlab 15 Outro exemplo 16 Ambientes Dinâmicos 17 O FIM Adriano Cruz (DCC-UFRJ) AGs Maio 2013 135 / 155 Função ga Encontra o mínimo de uma função usando algoritmos genéticos. Sintaxe básica: x = ga(fitnessfcn, nvars) Encontra um mínimo x local sem restrições, sujeito a função fitnessfcn. nvars é o número de variáveis da função. A função objetivo, fitnessfcn, aceita um vetor x de tamanho 1 por nvars e retorna um escalar avaliado no ponto x. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 136 / 155

Função ga completa x = ga(fitnessfcn,nvars,a,b,aeq,neq,lb,ub,nonlcon,options) Restrições: A x b, A tem tamanho m nvars e b é vetor de comprimento m. Igualdades lineares: Aeq x = beq Aeq tem tamanho r nvars e beq é vetor de comprimento r. Limites: LB e UB limites superiores e inferiores das variáveis x. Restrições não lineares definidas em nonlincon Opções: estrutura options com diversos parâmetros que definem como o algoritmo será executado. Esta estrutura pode ser criada com a função gaoptimset. Rodar ex1cmatlab.m Adriano Cruz (DCC-UFRJ) AGs Maio 2013 137 / 155 Section Summary 1 Introdução 2 Termos e Definições 3 Algoritmo Genético 4 Codificação 5 População 6 Seleção 7 Cruzamento 8 Mutação 9 Condições de Parada 10 Island Genetic Algorithms 11 Separação de Gerações 12 Um exemplo simples 13 Elitismo 14 Exemplo simples com Matlab 15 Outro exemplo 16 Ambientes Dinâmicos 17 O FIM Adriano Cruz (DCC-UFRJ) AGs Maio 2013 138 / 155

Aprendendo estratégia O dilema dos prisioneiros. Dois prisioneiros em celas diferentes. Impossível se comunicarem. Cada um deles pode acusar o outro (A) ou ficar calado/cooperar (C). Resultados em Michalewicz apud Axelrod Adriano Cruz (DCC-UFRJ) AGs Maio 2013 139 / 155 Punições Prêmios Jogador 1 Jogador 2 Pontos J1 Pontos J2 Comentário Acusa Acusa 1 1 Punição Acusa Coopera 5 0 Tentação Coopera Acusa 0 5 Tentação Coopera Coopera 3 3 Prêmio Adriano Cruz (DCC-UFRJ) AGs Maio 2013 140 / 155

O dilema Cada um dos prisioneiros deve decidir se deve cooperar com o outro prisioneiro ou trair e procurar uma pena menor. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 141 / 155 Como jogar? Jogo entre dois jogadores. Em cada jogada os jogadores decidem o que fazer. Pontos são atribuídos de acordo com a tabela. Após um certo número de jogadas, o jogador com mais pontos vence. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 142 / 155

Representando as estratégias I Considerar estratégias determinísticas. Considerar os resultados das três últimas jogadas para decidir o que fazer. Desde que há 4 possibilidades temos 4x4x4=64 histórias diferentes. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 143 / 155 Representando as estratégias II 64 bits indicam o que fazer para cada uma história possível (acusar ou cooperar) Podemos usar seis bits para representar as três jogadas iniciais (imaginárias) para a primeira jogada. Total de 70 bits. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 144 / 155

Representando as estratégias III Possível cromossomo: AACCA...ACC Considerando o bit mais à direita como a estratégia 1 (= C cooperar) e o mais à esquerda como estratégia 70 (=A acusar). A estratégia 3 tem como próxima jogada A=acusar Esta estratégia pode estar representando a história: CC; AC; CA Adriano Cruz (DCC-UFRJ) AGs Maio 2013 145 / 155 Algoritmo I Escolha uma população inicial. Cada jogador recebe uma cadeia aleatória de bits (As e Cs), representando uma estratégia. Teste cada jogador para testar sua eficácia. O resultado de cada jogador é a média de todos os jogos. Selecione os jogadores que irão reproduzir. Um jogador mediano recebe um parceiro; um jogador acima de um desvio padrão acima da média recebe dois; um ruim nada. Os jogadores são casados e usa-se mutação. Assim temos uma nova geração. Adriano Cruz (DCC-UFRJ) AGs Maio 2013 146 / 155