ALGORITMOS GENÉTICOS Sandro Menezes [email protected] Universidade do Estado de Santa Catarina - UDESC/CCT Departamento de Ciência da Computação ̃ - DCC Programa de Pós-Graduaçao em Computação Aplicada PPGCA 1/39 TEORIA DA EVOLUÇÃO • Charles Darwin • Seleção Natural - Mais bem adaptados ao meio possuem mais chances de sobrevivência, produzindo mais descendentes. 2/39 SELEÇÃO NATURAL 3/39 SELEÇÃO NATURAL • Vídeo (01:58) 4/39 GENÉTICA • Gregor Mendel (Sec. XIX) ○ Transmissão hereditária de características • Operadores Genéticos ○ ○ Recombinação (crossover) Mutação 5/39 GENÉTICA • Estruturas Básicas 6/39 GENÉTICA 7/39 GENÉTICA • Genótipo => Contituição genética do indivíduo, ou seja, aos genes que ele possui(Cromossomos). • Fenótipo => Expressão física do genótipo com influencia do meio que o indivíduo vive. 8/39 ALGORITMOS GENÉTICOS • • • • John Holland, anos 60 Inspirado na Evolução Natural e Genética Um dos algoritmos mais populares Um dos primeiros algoritmos a utilizar uma população de soluções candidatas 9/39 ALGORITMOS GENÉTICOS • Relação de terminologia do AG com a biologia 10/39 AG - FLUXOGRAMA 11/39 AG - INDIVÍDUO • Codificação dos indivíduos (soluções candidatas) ○ ○ ○ ○ Definir modelo de codificação (binário, discreto, contínuo) Tamanho fixo Definir a faixa de valores que as soluções podem assumir Ponto crítico do algoritmo, codificação mal feita afeta diretamente a performance da otimização 12/39 AG - CODIFICAÇÃO BINÁRIA ● É a codificação mais popular em AG, sendo possível transformar os valores binários para qualquer outra representação. Valores inteiros ● Valores reais (quantidade de bits para precisão) ● 13/39 AG - CODIFICAÇÃO BINÁRIA ● Exercício ○ Definir tamanho da string de bits necessários para representar os valores inteiros que varia de [-5,5]. ○ Definir a string para valores [-5,5] com uma precisão de 2 casas decimais (0,01 ou 10^-2) 14/39 AG - CODIFICAÇÃO BINÁRIA ● Exercício ○ Definir tamanho da string de bits necessários para representar os valores inteiros que varia de [-5,5]. Resposta = 4 bits. Xmax - Xmin => -5- (-5) = 10 = 2^3,16 L-1 < 3,16 < L logo L = 4. 15/39 AG - CODIFICAÇÃO BINÁRIA ● Exercício ○ Definir a string para valores [-5,5] com uma precisão de 2 casas decimais (0,01 ou 10^-2). (Xmax - Xmin)/precisao = -5- (-5)/0,01 = 100 = 2^9,... L-1 < 9,16 < L, logo L = 10. Resposta = 10 bits. 16/39 AG - CODIFICAÇÃO BINÁRIA ● Ajuste de escala ○ Considerando a faixa de valores de [-5,5] (10 valores possíveis) é necessário utilizar 4 bits, ou seja, 2^4 = 16 opções. Assim 0000 → -5 , 1111 → 5 ● Mapeamento b → d → x ● Exercício ○ Mapear os valores 0100, 1001, 0111 considerando a faixa de valores inteiros [−5, 5] 17/39 AG - CODIFICAÇÃO BINÁRIA ● Exercício ○ ○ Mapear os valores 0100, 1001, 0111 considerando a faixa de valores inteiros [−5, 5]. Resposta Mapeamento b → d → x 0100 = 4 =-2 = -5 + (5 - (-5))/15* 4 = -5 + 2,66 = -2,33 = -2 ■ 1001 = 9 = 1 ■ 0111 = 7 = 0 ■ 18/39 AG - CODIFICAÇÃO BINÁRIA ● Exercício ○ ○ Mapear os valores 0100, 1001, 0111 considerando a faixa de valores inteiros [−5, 5]. Resposta Mapeamento b → d → x 0100 = 4 =-2 ■ 1001 = 9 = 1 = -5 + (5 - (-5))/15* 9 = -5 + 6 = -1 ■ 0111 = 7 = 0 ■ 19/39 AG - CODIFICAÇÃO BINÁRIA ● Exercício ○ ○ Mapear os valores 0100, 1001, 0111 considerando a faixa de valores inteiros [−5, 5]. Resposta Mapeamento b → d → x 0100 = 4 =-2 ■ 1001 = 9 = 1 ■ 0111 = 7 = 0 = -5 + (5 - (-5))/15* 7 = -5 + 4,66 = -0,33 = 0 ■ 20/39 AG - FLUXOGRAMA 21/39 AG - FUNÇÃO FITNESS • Função Objetivo - Essa função que reflete os objetivos a serem alcancados na resolução do problema. • Função Fistness ○ ○ ○ ○ O ponto mais crítico do algoritmo. Determina a qualidade de um indivíduo como solução Representa a adaptação do indivíduo no ambiente e a sua chance de sobrevivência e de reprodução Não existe fitness negativo e preferível que seja normalizada 22/39 AG - FLUXOGRAMA 23/39 AG - CRITÉRIO DE PARADA • Número máximo de gerações/iterações • Quantidade de Avaliações • Estagnação 24/39 AG - FLUXOGRAMA 25/39 AG - SELEÇÃO • Roleta • Torneio ○ ○ Seleciona T indivíduos aleatoriamente Vence aquele que tiver o maior fitness 26/39 AG - FLUXOGRAMA 27/39 AG - OPERADORES GENÉTICOS • Crossover uniforme 28/39 AG - OPERADORES GENÉTICOS • Crossover de um ponto 29/39 AG - OPERADORES GENÉTICOS • Crossover de dois pontos 30/39 AG - OPERADORES GENÉTICOS • Mutação 31/39 AG - FLUXOGRAMA 32/39 AG - NOVA GERAÇÃO • Os filhos produzidos são colocados em uma nova população (t + 1) • Quando se completa a nova população (t + 1), ela substitui a população atual (t) • Para evitar a perca do melhor indivduo, pode-se utilizar o elitismo • Elitismo - O melhor indivíduo da população atual e colocada diretamente na proxima geração (t + 1) sem sofrer modicações 33/39 AG - FLUXOGRAMA 34/39 AG - PARÂMETROS • Tamanho da população • Probabilidade de aplicar o crossover • Probabilidade de aplicar a mutação • O tamanho do torneio 35/39 AG - APLICAÇÃO • • • • • • Otimização de funções Mineração de dados Controle de processos Robótica Máquinas de estados finitos para jogos Modelo econômico ○ Modelo de processo Inovação ○ Estratégia de concorrencia. 36/39 REFERÊNCIAS - Lawrence Davis et al. “Handbook of genetic algorithms”, volume 115. Van Nostrand Reinhold New York, 1991. - Alexandre Ferreira de Pinho, José Arnaldo Barra, Fernando Augusto Silva Marins, and Rafael de Carvalho Miranda. ‘Algoritmos genéticos: Fundamentos e aplicações. - Ricardo Linden. “Algoritmos Geneticos” (2a edicao).Brasport, 2008. 37/39 REFERÊNCIAS - Melanie Mitchell. “An introduction to genetic algorithms.” MIT press, 1998. - TANOMARU, Julio. Motivação, fundamentos e aplicações de algoritmos genéticos. In: II Congresso Brasileiro de Redes Neurais. 1995. p. 373-403. 38/39 ALGORITMOS GENÉTICOS Sandro Menezes Universidade do Estado de Santa Catarina - UDESC/CCT Departamento de Ciência da Computação - DCC Programa de Pós-Graduação em Computação Aplicada PPGCA [email protected] 39/39