Universidade Federal Fluminense Escola de Engenharia Departamento de Engenharia Elétrica INTRODUÇÃO À INTELIGÊNCIA COMPUTACIONAL Aula 06 Prof. Vitor Hugo Ferreira
Representação por cromossomos Codificação dos estados de um dado problema Binária, inteira, real e mista Mutação Perturbação nas soluções encontradas para evitar estagnação em mínimos locais Cruzamento ou recombinação Combinação de informações entre nós no espaço de busca
População Conjunto de indivíduos Conjunto de soluções Operadores Como escolher indivíduos para geração das próximas gerações?
Modelos de População Modelo de geração A partir de uma população com indivíduos, são selecionados indivíduos para cruzamento Mating pool A partir dos indivíduos selecionados para cruzamento, são gerados novos indivíduos que formam a nova geração
Modelos de População Modelo de regime permanente A partir de uma população com indivíduos, somente indivíduos são substituídos a cada nova geração
Modelos de População A seleção e substituição de indivíduos é feita com base na função de avaliação Função objetivo, fitness, adequabilidade ou aptidão Operadores independentes do tipo de representação cromossômica utilizada Os operadores apresentados fazem referência a problemas de maximização onde o valor da aptidão é sempre não negativo
Proporcional à aptidão do indivíduo Fitness proportional selection (FTS) p k i f k i i1 A probabilidade p i k de um indivíduo i da geração k ser selecionado para cruzamento é proporcional à aptidão f i k do indivíduo em relação à aptidão de todos os indivíduos da população f k i
Proporcional à aptidão do indivíduo Indivíduo k k f i p i S 1 2.23 0.14 S 2 7.27 0.47 S 3 1.05 0.07 S 4 3.35 0.21 S 5 1.69 0.11
Proporcional à aptidão do indivíduo Indivíduos superiores podem ser preferencialmente selecionados Convergência prematura Indivíduos com aptidão similar Convergência lenta A probabilidade de seleção é sensível a transformações na função aptidão
Proporcional à aptidão do indivíduo Indivíduo k k f i p i S 1 2.23 0.14 S 2 7.27 0.47 S 3 1.05 0.07 S 4 3.35 0.21 S 5 1.69 0.11 Indivíduo f i k + 10 p i k S 1 12.23 0.19 S 2 17.27 0.26 S 3 11.05 0.17 S 4 13.35 0.20 S 5 11.69 0.18
Escalonamento Objetivo: reduzir a sensibilidade a transformações na função objetivo k k k k fi ' max fi f c f,0 f k 1 i1 f 1 1 k i k k k f fi f i1 2
Baseada no ranking de indivíduos Melhor indivíduo Posição - 1 no ranking Pior indivíduo Posição 0 no ranking Diversas forma de mapear posição no ranking em probabilidade de seleção Linear, exponencial, etc...
Baseada no ranking de indivíduos Mapeamento linear p k i 2 s 2i s1 1 1s 2 i ranking do indivíduo
Baseada no ranking de indivíduos Mapeamento linear Indivíduo Ranking p k i - Roleta p k i - Ranking (s = 2) p k i - Ranking (s = 1.5) A 1 0 0.10 0.00 0.17 B 5 2 0.50 0.67 0.50 C 4 1 0.40 0.33 0.33 f i k Indivíduo Ranking p k i - Roleta p k i - Ranking (s = 2) p k i - Ranking (s = 1.5) A 10 0 0.26 0.00 0.17 B 15 2 0.38 0.67 0.50 C 14 1 0.36 0.33 0.33 f i k
Implementação das probabilidades de seleção Método da Roleta Os indivíduos são colocados em uma roleta, com a respectiva fatia proporcional à probabilidade de seleção A roleta é girada, sendo selecionado o indivíduo correspondente à fatia onde a agulha da roleta parou
função SELEÇÃO-ROLETA (população,, ) retorna mating_pool entradas: população % uma população do problema em particular variáveis estáticas:, % tamanho da população e tamanho do mating pool variáveis: funcao_aptidao % um vetor com posições representando a aptidão dos indivíduos probabilidade % um vetor com posições representando a probabilidade de seleção fatias_da_roleta % um vetor com posições representando as fatias da roleta membro_corrente % contador do número de indivíduos mating_pool % indivíduos selecionados para cruzamento i % indexador funcao_aptidao CALCULA-APTIDAO (população) probabilidade CALCULA-PROBABILIDADE-DE-SELECAO (população, ) fatias_da_roleta CALCULA-FATIAS-DA-ROLETA(probabilidade, ) membro_corrente 1 Enquanto membro_corrente faça r SORTEIA_ALEATORIO([0 1]) i 1 Enquanto fatias_da_roleta [i] < r faça i i + 1 mating_pool [membro_corrente] = população [i] membro_corrente membro_corrente + 1 retornar mating_pool
função CALCULA_FATIAS_DA_ROLETA (probabilidade, ) retorna fatias_da_roleta entradas: probabilidade % um vetor com posições representando a probabilidade de seleção variáveis estáticas: % tamanho da população variáveis: fatias_da_roleta % um vetor com posições representando as fatias da roleta i % indexador fatias_da_roleta [1] probabilidade [1] Para i = 2 até faça fatias_da_roleta [i] fatias_da_roleta [i - 1] + probabilidade [i] retornar fatias_da_roleta
Método da amostragem universal estocástica Stochastic Universal Sampling (SUS) Método da roleta considerando agulhas
Método do torneio Utiliza sucessivas disputas para realizar a seleção Para selecionar indivíduos, realiza disputas, cada disputa envolvendo k indivíduos escolhidos aleatoriamente O indivíduo de maior aptidão na disputa é selecionado
função SELEÇÃO-TORNEIO (população,,, k) retorna mating_pool entradas: população % uma população do problema em particular variáveis estáticas:, % tamanho da população e tamanho do mating pool k % número de indivíduos participantes de cada torneio variáveis: funcao_aptidao % um vetor com posições representando a aptidão dos indivíduos membro_corrente % contador do número de indivíduos participantes % indivíduos selecionados para o torneio vencedor % indivíduo vencedor do torneio mating_pool % indivíduos selecionados para cruzamento i % indexador funcao_aptidao CALCULA-APTIDAO (população) membro_corrente 1 Enquanto membro_corrente faça participantes SELECAO_ALEATORIA(população, k) vencedor ENCONTRA_MELHOR_APTIDAO(participantes) mating_pool [membro_corrente] = vencedor membro_corrente membro_corrente + 1 retornar mating_pool
Método do torneio Invariante a transformações na função aptidão A probabilidade de seleção depende de 4 fatores Ranking na população Tamanho do torneio Probabilidade do melhor ser selecionado p = 1 torneio determinístico Se os indivíduos são selecionados para o torneio com ou sem reposição Método mais utilizado
Sobrevivência ou reposição Criação da próxima geração a partir dos indivíduos selecionados para recombinação e dos indivíduos gerados a partir dos anteriores Reposição com base na idade Os indivíduos mais velhos são substituídos pelos mais novos Se forem gerados = indivíduos, os indivíduos da geração anterior são substituídos pelos da nova geração
Reposição com base na aptidão Se forem gerados < indivíduos, como escolher aqueles que devem ser substituídos na geração atual de forma a garantir que a próxima geração possua indivíduos? Substituição do pior Os piores indivíduos são substituídos Elitismo Os melhores indivíduos da geração são mantidos Operadores que podem causar convergência prematura
Os operadores genéticos apresentam diversos parâmetros a serem especificados Representação Tipo de representação População Tamanho da população Número de indivíduos para a próxima geração Número de indivíduos para participar do torneio
Cruzamento p c probabilidade de cruzamento Mutação p m probabilidade de mutação Como alterar estes parâmetros? Sugestão de leitura Capítulo 8 Parameter Control in Evolutionary Algorithms User Guide do Toolbox GATOOL do MATLAB
Próximos capítulos Otimização com restrições Condições de Otimalidade Algoritmos genéticos para solução de problemas de otimização com restrições
Dúvidas? Sala 403 Bloco D Horário de atendimento Segundas e quartas das 18 às 20 horas Após a aula