1. Computação Evolutiva

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

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

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

Introdução a Algoritmos Genéticos

3 Algoritmos Genéticos

Introdução aos Algoritmos Genéticos

Inteligência Artificial

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

Inteligência Artificial

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

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

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

Computação Evolutiva Parte 2

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

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

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

Algoritmos genéticos Abordagem unificada de algoritmos evolutivos simples

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

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

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

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

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

3. ALGORITMOS GENÉTICOS

Algoritmos Genéticos e Evolucionários

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

- Computação Evolutiva -

Implementação De Um Algoritmo Genético Codificado Para A Solução do Problema do Caixeiro Viajante

Introdução ao Algoritmo Genético

4 Métodos Existentes. 4.1 Algoritmo Genético

Metaheurísticas Populacionais Baseado no livro METAHEURISTICS - From Design to Implementation El-Ghazali Talbi. Gustavo Peixoto Silva

Airton Motoki Tamakoshi. Abordagem Coevolutiva com Processamento Paralelo para a Obtenção de Sistemas Fuzzy

4 Metáforas de Optimização

Computação Evolucionária. Fundamentos Teóricos de AG. Prof. Rafael Stubs Parpinelli DCC / UDESC-Joinville

SOLUÇÕES HEURÍSTICAS PARA O JOGO DE DAMAS

O USO DE ALGORITMOS GENÉTICOS PARA DETERMINAR ZEROS DE FUNÇÕES NÃO LINEARES

Um Algoritmo Genético para o Problema de Roteamento de Veículos com Janelas de Tempo

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

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados

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

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso:

Algoritmos Genéticos em Ambientes Paralelos

ALGORITMOS GENÉTICOS SEMINÁRIO APRESENTADO PARA A DISCIPLINA OTIMIZAÇÃO COMBINATÓRIA E

CONSTRUÇÃO AUTOMÁTICA DE OPERADORES MORFOLÓGICOS UTILIZANDO PROGRAMAÇÃO GENÉTICA.

Sistemas Neurais Híbridos: Redes Neurais Artificias e Algoritmos Genéticos. Leonardo Nascimento Ferreira

Buscas Informadas ou Heurísticas - Parte III

Complemento IV Introdução aos Algoritmos Genéticos

Reconhecimento de Padrões

Implementação de um Algoritmo Genético

Algoritmos Genéticos

Resolvendo o Problema do Cavalo do Xadrez Utilizando Algoritmo Genético

Buscas Informadas ou Heurísticas - Parte II

Sistemas numéricos e a Representação Interna dos Dado no Computador

UTILIZANDO TÉCNICAS DE ALGORITMO GENÉTICO PARA RESOLUÇÃO DO PROBLEMA DE GERAÇÃO DE GRADE HORÁRIA PARA ENFERMARIAS

Otimização de funções reais multidimensionais utilizando algoritmo genético contínuo

2 Teoria da Informação

UMA COMPARAÇÃO EMPÍRICA DE OPERADORES DE CROSSOVER PARA O PROBLEMA DE JOB SHOP COM DATAS DE ENTREGAS

Otimização por Enxame de Partículas (PSO) e Otimização por Colônias de Formigas (ASO) aplicadas ao Problema do Caixeiro Viajante (TSP)

Sistemas de Numeração. Sistemas de Numeração. Sistemas de Numeração. RUIDO em Sistemas Computacionais. Arquiteturas de Computadores

Introdução às Redes Neurais Artificiais

Para essa conversão utiliza-se o valor posicional

1.1 Etapas na solução de um problema. 1.3 Tipos de erros. 1.4 Aritmética de ponto flutuante.

Resumo. Como um agente busca de seqüência de ações para alcançar seus objetivos.

Busca com informação e exploração. Inteligência Artificial. Revisão da aula passada: Heurística Admissível. Revisão da aula passada: Busca A *

Uma Ferramenta Baseada em Algoritmos Genéticos para a Geração de Tabela de Horário Escolar

Aula 10: Tratabilidade

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:

Computação Bioinspirada - 5955010-1 1. Computação Evolutiva Prof. Renato Tinós Programa de Pós-Graduação Em Computação Aplicada Depto. de Computação e Matemática (FFCLRP/USP)

2 Computação Bioinspirada - 5955010-1 1.2. Algoritmos Genéticos 1.2.1. Introdução 1.2.2. Elementos de Algoritmos Genéticos (AGs) 1.2.3. Projeto de AGs 1.2.4. Exemplos 1.2.5. Implementação Computacional

3 Computação Bioinspirada - 5955010-1 1.2.1. Introdução Início Desenvolvido inicialmente por John Holland Uso em problemas de otimização: Keneth DeJong Popularizado por David Goldberg Aplicado tipicamente em problemas discretos Foi originalmente desenvolvido para lidar com cromossomos binários

4 Computação Bioinspirada - 5955010-1 1.2.1. Introdução População inicial População final Avaliação População atual Seleção Reprodução

5 Computação Bioinspirada - 5955010-1 1.2.1. Introdução Algoritmo Genético Básico Início inicialize a população avalie a população inicial repita se critério de convergência for satisfeito interrompa fim se selecione indivíduos para a nova população aplique mutação e cruzamento nos indivíduos selecionados avalie os indivíduos da nova população fim repita Fim

6 Computação Bioinspirada - 5955010-1 Elementos População Codificação Função de avaliação Reprodução

7 Computação Bioinspirada - 5955010-1 População Formada por indivíduos Possíveis soluções para um dado problema Codificados em cromossomos strings (vetores) Apesar de algumas implementações considerarem indivíduos com mais de um cromossomo, o AG padrão considera que um indivíduo é formado por apenas um cromossomo Cada elemento do cromossomo do AG é chamado de gene Os genes podem assumir valores ou símbolos ( alelos )

8 Computação Bioinspirada - 5955010-1 População Existe geralmente um número fixo de indivíduos em uma população Em cada geração, a população velha é substituída por uma população nova (com novos indivíduos) Pop. antiga (ger. i) Pop. nova (ger. i +1) Ind. 1 (ger. i) Ind. 2 (ger. i) Ind. 1 (ger. i+1) Ind. 2 (ger. i+1) Ind. N (ger. i) Ind. N (ger. i+1)

9 Computação Bioinspirada - 5955010-1 População AG Padrão usa o modelo geracional Cada indivíduo sobrevive por exatamente uma geração Toda a população de pais é substituída pelos filhos No outro extremo, está o modelo estacionário (Steadystate) no qual um filho é gerado por geração para substituir um pai

10 Computação Bioinspirada - 5955010-1 Algoritmo Evolutivo Geracional Início t 1 inicializepopulacao( P t ) avaliepopulacao( P t ) enquanto ( criterioconvergencia == 0 ) P t+1 selecao( P t ) P t+1 transformepopulacao( P t+1 ) avaliepopulacao( P t+1 ) t t + 1 fim enquanto Fim

11 Computação Bioinspirada - 5955010-1 Algoritmo Evolutivo Estacionário Início t 1 inicializepopulacao( P t ) avaliepopulacao( P t ) enquanto ( criterioconvergencia == 0 ) Q t transformepopulacao( P t ) avaliepopulacao( Q t ) P t+1 selecao( P t U Q t ) t t + 1 fim enquanto Fim

12 Computação Bioinspirada - 5955010-1 Codificação Cada indivíduo é codificado por um conjunto de genes que definem as características do indivíduo Genótipo Conjunto de parâmetros (genes) que define um indivíduo Fenótipo Produto da interação de todos os genes

13 Computação Bioinspirada - 5955010-1 Codificação Genes são combinados para formar strings ou vetores Exemplo: x i = [ 2 1 8 0 3 ] T 2 1 8 0 3

14 Computação Bioinspirada - 5955010-1 Espaço do Fenótipo Codificação (representação) Espaço do genótipo = {0,1} n 10010001 Decodificação (representação inversa) 10010010 010001001 011101001

15 Computação Bioinspirada - 5955010-1 Codificação Genes podem ser representados por: Números Binários ( 0 ; 1 ) São tradicionalmente usados Exemplo: x i = [ 0 1 0 1 1 1 ] T Podem ser utilizados para codificar outras representações Inteiros. Exemplo: x i = [ 0 1 0 ] T pode codificar o número inteiro 2 Reais Caracteres: BCD, ASCII,... Etc...

16 Computação Bioinspirada - 5955010-1 Codificação Genes podem ser representados por: Números Inteiros (... ; -1 ; 0 ; 1 ; 2 ;...) Exemplo: x i = [ -1 10 2-3 -98 1 ] T Números Reais Exemplo: x i = [ -1,23 10,65 2,99 ] T Caracteres ( A ; B ;... ) Exemplo: x i = [ t e s t e ] T Outros combinação de outras representações números complexos etc...

17 Computação Bioinspirada - 5955010-1 Codificação Permutação Tarefas no qual uma sequência de objetos aparece em uma certa ordem Se existe n variáveis, então a representação é uma lista de n inteiros, cada qual aparecendo apenas uma vez

18 Computação Bioinspirada - 5955010-1 Codificação Permutação Exemplo: Problema do Caixeiro Viajante Nomeie as cidades como 1, 2,, n Um tour é uma permutação Ex.: para n=4 [1,2,3,4], [3,4,2,1] Espaço de busca é muito grande Ex.: para 30 cidades existe 30! 10 32 possíveis tours

19 Computação Bioinspirada - 5955010-1 Função de Avaliação Também conhecida como Função de Avaliação, Função de Aptidão ou Função de Fitness Mede o grau de aptidão (fitness) da solução (indivíduo) É aplicada ao fenótipo do indivíduo O genótipo deve ser decodificado para que a aptidão do indivíduo seja calculada. Exemplo genótipo: x i = [ 0 1 0 1] T fenótipo: z i = 0x2 3 + 1x2 2 + 0x2 1 + 1x2 0 = 5 aptidão: f (z i ) = 1 / (1 + z i 2 ) = 0,0385

20 Computação Bioinspirada - 5955010-1 Função de Avaliação Cada problema tem sua própria função de avaliação Dada de acordo com os requisitos para a solução do problema Exemplo: projeto de ponte Menor custo Menor tempo de construção Maior capacidade de carga

21 Computação Bioinspirada - 5955010-1 Função de Avaliação Muitas vezes, a função de avaliação não é conhecida (ou é difícil de ser computada com precisão) Deve ser possível, no entanto, obter a aptidão do indivíduo através do seu genótipo A aptidão de um indivíduo é importantíssima no processo de otimização Define quais indivíduos serão selecionados para se reproduzirem, gerando a nova população

22 Computação Bioinspirada - 5955010-1 Seleção Existem diversos métodos para a seleção de indivíduos para a fase de reprodução Exemplos: Elitismo Método da Roleta Rank Selection Seleção portorneio

23 Computação Bioinspirada - 5955010-1 Seleção Elitismo Indivíduos com maior aptidão são automaticamente selecionados Utilizado para que os melhores indivíduos não desapareçam do processo de otimização Geralmente, além de selecionar os melhores indivíduos, evita que estes sofram modificações pelos operadores genéticos

24 Computação Bioinspirada - 5955010-1 Seleção Método da Roleta A seleção natural Trabalha com probabilidades As vezes, um indivíduo muito bom não sobrevive porque algum processo externo o afetou Escolhe preferencialmente, embora não exclusivamente, indivíduos com maior aptidão Indivíduos mais aptos têm mais chances de serem reproduzidos As vezes, um indivíduo muito bom pode ser filho do cruzamento de um indivíduo bom com um ruim

25 Computação Bioinspirada - 5955010-1 Seleção Método da Roleta Indivíduos com maior aptidão tem mais chances de serem reproduzidos A probabilidade de um indivíduo ser escolhido para se reproduzir é dada por sua aptidão relativa Aptidão do indivíduo normalizada pela soma das aptidões de todos os indivíduos da população f r z i N f j 1 f z i z j

26 Computação Bioinspirada - 5955010-1 Método da Roleta baseado em Aptidão Relativa x i f (z i ) f r (z i ) x 5 x 1 x 1 10110 2,23 0,14 x 4 x 2 11000 7,27 0,47 x 3 11110 1,05 0,07 x 3 x 2 x 4 01001 3,35 0,21 x 5 00110 1,69 0,11

27 Computação Bioinspirada - 5955010-1 Seleção Método da Roleta Indivíduos são escolhidos pelo método da roleta até que o número máximo de indivíduos permitido em uma população seja alcançado O nível de diversidade da população é maior quando o método da roleta é empregado (em relação ao elitismo) No entanto, mesmo no método da roleta, o nível de diversidade da população decresce no decorrer do processo de otimização

28 Computação Bioinspirada - 5955010-1 Seleção Rank Selection Indivíduos são primeiramente ordenados de acordo com o fitness São então ranqueados, sendo que o pior indivíduo tem rank 0 e o melhor tem rank μ-1, sendo μ o número de indivíduos na população Probabilidade de seleção do i-ésimo indivíduo é dada por na qual o parâmero s: 1,0 < s 2,0 controla a pressão seletiva

29 Computação Bioinspirada - 5955010-1 Seleção Rank Selection Exemplo com três indivíduos 0 2 1

30 Computação Bioinspirada - 5955010-1 Seleção Torneio No modelo mais simples, k indivíduos são escolhidos aleatoriamente na população O indivíduo de maior aptidão entre eles é escolhido O parâmetro k controla a pressão seletiva É mais simples (computacionalmente) do que os métodos de seleção proporcionais à aptidão, como o método da roleta

31 Computação Bioinspirada - 5955010-1 Reprodução Aplicado após a seleção de indivíduos Permite a obtenção de novos indivíduos O operadores genéticos de reprodução mais comuns são Crossover (cruzamento ou recombinação) Mutação

32 Computação Bioinspirada - 5955010-1 Reprodução Crossover Recombinação de características dos pais durante a reprodução Permite que as próximas gerações herdem essas características Troca trechos dos cromossomos de dois indivíduos escolhidos durante a seleção Ocorre com uma probabilidade definida pela taxa de crossover p c Para cada par de indivíduos selecionados, gera-se um número aleatório com distribuição uniforme Ocorre crossover no par dado se o valor deste número for menor que p c Tipicamente entre 0,6 e 0,9

33 Computação Bioinspirada - 5955010-1 Reprodução Crossover Permite a exploração rápida do espaço de busca Tipos Um ponto Troca trechos (entre os dois cromossomos) delimitados por um ponto escolhido aleatoriamente Dois pontos Troca trechos (entre os dois cromossomos) delimitados por dois pontos escolhidos aleatoriamente Uniforme Troca trechos (entre os dois cromossomos) gerados por uma máscara, geralmente gerada aleatoriamente

34 Computação Bioinspirada - 5955010-1 Crossover de 1 ponto Ponto de crossover Pai 1 Pai 2 0 1 0 0 0 1 1 Pais 0 0 1 0 1 0 1 Filho A Filho B 0 1 0 0 1 0 1 Filhos 0 0 1 0 0 1 1

35 Computação Bioinspirada - 5955010-1 Crossover de 2 pontos Pai 1 Pai 2 0 1 0 0 0 1 1 Pais 0 0 1 0 1 0 1 Filho A Filho B 0 1 0 0 1 1 1 Filhos 0 0 1 0 0 0 1

36 Computação Bioinspirada - 5955010-1 Crossover uniforme Máscara: 0 1 0 1 0 0 0 Pai 1 Pai 2 0 1 0 0 0 1 1 Pais 0 0 1 0 1 0 1 Filho A Filho B 0 1 1 0 1 0 1 Filhos 0 0 0 0 0 1 1

37 Computação Bioinspirada - 5955010-1 Reprodução Crossover Problemas de Permutação Crossover comum não pode ser aplicado 1 2 3 4 5 5 4 3 2 1 1 2 3 2 1 5 4 3 4 5 Operadores especializados têm assim sido propostos para combinar a informação de dois pais

38 Computação Bioinspirada - 5955010-1 Reprodução Crossover Problemas de Permutação Exemplo: Order 1 Crossover 1. Copie parte arbitrária do primeiro pai para o primeiro filho 2. Copie elementos (ex.: números) que não estão nesta primeira parte para o primeiro filho: Começando a direita do corte da parte copiada Usando a ordem do segundo pai Voltando para o começo, caso chegue no fim do cromossomo 3. Faça o mesmo para o segundo filho

39 Computação Bioinspirada - 5955010-1 Reprodução Crossover Problemas de Permutação Order 1 Crossover (exemplo) Copie parte aleatória do pai 1 Copie os números restantes na ordem do pai 2 (1,9,3,8,2)

40 Computação Bioinspirada - 5955010-1 Reprodução Mutação Gera diversidade genética Altera aleatoriamente um ou mais genes no cromossomo Assegura que a probabilidade de atingir qualquer ponto do espaço de busca nunca será zero

41 Computação Bioinspirada - 5955010-1 Reprodução Mutação Aplicada a cada gene de cada indivíduo após o crossover com uma taxa de mutação p m Para cada gene de cada indivíduo selecionado, gera-se um número aleatório com distribuição uniforme Ocorre mutação no gene dado se o valor deste número for menor que p m Taxa de mutação é geralmente pequena Tipicamente entre 1/tamanho_populacao e 1/tamanho_cromossomo Ex.: p m = 0,01 Gene tem probabilidade de 1% de sofrer mutação

42 Computação Bioinspirada - 5955010-1 Reprodução Mutação A alteração depende da representação do gene Binária (Bit Flip Mutation) O gene mutado recebe a negação de seu antigo valor (ou seja, se era igual a 0 fica igual a 1 e se era igual a 1 fica igual a zero)

43 Computação Bioinspirada - 5955010-1 Mutação Binária Antes da mutação 0 1 0 0 0 1 1 Após a mutação 0 1 1 0 0 1 1

44 Computação Bioinspirada - 5955010-1 Reprodução Mutação Inteiro ou Real O gene pode ser mutado para receber qualquer valor entre os seus limites máximos e mínimos (distribuição uniforme) O gene pode ser mutado adicionando um valor aleatório com distribuição normal com média zero e desvio padrão σ O gene pode ser mutado para receber um acréscimo ou decréscimo no ser valor corrente

45 Computação Bioinspirada - 5955010-1 Reprodução Mutação Problemas de Permutação Mutação inteira comum não pode ser aplicada [ 4 2 3 1} -> [ 3 2 3 1] Algumas soluções Trocar dois valores aleatoriamente Inversão Rearranjo

46 Computação Bioinspirada - 5955010-1 Convergência Se o AG estiver corretamente implementado, a população deve evoluir em gerações sucessivas Aptidão do melhor indivíduo e da média da população devem aumentar em direção a um ótimo global

-0,58-0,72-0,86-1 -0,62-0,44-0,24-0,02-0,16-0,3 0,14 0,12 0,52 0,26 0,9 0,68 0,54 0,4 0,96 0,82 47 Computação Bioinspirada - 5955010-1 1.2.3. Projeto de AGs f (x,y) 1 0,8 0,6 0,4 0,2 0-0,2-0,4-0,6-0,8-1 Genótipo: x y y x

48 Computação Bioinspirada - 5955010-1 1.2.3. Projeto de AGs Critérios de Parada Tempo de execução Número de gerações Valor de aptidão mínimo e/ou médio Convergência Nas últimas k iterações não houve melhora nas aptidões

49 Computação Bioinspirada - 5955010-1 1.2.3. Projeto de AGs Escolha dos parâmetros Quantos indivíduos em uma população? Poucos: diminuição rápida da diversidade Muitos: aumento do tempo de computação Qual a taxa de mutação? Baixa mudanças lentas Alta instabilidade, pois os traços não são mantidos por um período suficiente Qual a taxa de crossover?

50 Computação Bioinspirada - 5955010-1 1.2.3. Projeto de AGs Quais tipos de operadores genéticos devem ser utilizados? Depende do problema Em geral crossover e mutação Mutação sozinha pode ser utilizada, mas crossover sozinho não deve ser utilizado Crossover x Mutação Exploration: descoberta de áreas promissoras no espaço de busca ganho de informação sobre o problema Crossover Em geral, produz grandes saltos em uma área entre as regiões ocupadas pelos dois pais Exploitation: otimização dentro de uma área promissora uso da informação sobre o problema Mutação Em geral, cria pequenos desvios aleatórios na solução dada pelo pai (vasculha as soluções vizinhas à solução pai) Em geral, deve haver um compromisso entre exploration e exproitation Mas qual?

51 Computação Bioinspirada - 5955010-1 1.2.3. Projeto de AGs Qual codificação deve ser utilizada? Inteira, real ou binária? Binária ou Código Gray? Exemplo: 3 bits Decimal Gray Binária 0 000 000 1 001 001 2 011 010 3 010 011 4 110 100 5 111 101 6 101 110 7 100 111

52 Computação Bioinspirada - 5955010-1 1.2.3. Projeto de AGs População Inicial Geralmente a população inicial é aleatória Necessidade de executar o algoritmo várias vezes (com diferentes sementes aleatórias) Conhecimento pode ser inserido

53 Computação Bioinspirada - 5955010-1 1.2.3. Projeto de AGs Quando AGs geralmente não devem ser utilizados Em problemas que podem ser solucionados por algoritmos deterministas em tempo razoável (e geralmente menor do que para os AGs) Ou seja em que o ótimo global com certeza será encontrado Exemplos Grande parte dos problemas da Classe Polinomial (O(n k )) Grande parte dos problemas unimodais

54 Computação Bioinspirada - 5955010-1 1.2.3. Projeto de AGs Dificuldades Custo computacional geralmente alto quando comparado com algoritmos tradicionais Convergência prematura AGs comportam-se como algoritmos de busca local

55 Computação Bioinspirada - 5955010-1 Comentários Referências Mitchell, M. An introduction to genetic algorithms. MIT Press, 1996. Capítulos 1 e 5 Goldberg, D. E. Genetic algorithms in search, optimization, and machine learning. Addison-Wesley Pub. Co., 1989 Capítulo 1 Agradecimentos Parte do material desta apresentação foi obtida através de Material de apoio do livro Eiben, A. E. & Smith, J. E. Introduction to Evolutionary Computation. Springer, 2003.