EA 072 Inteligência Artificial em Aplicações Industriais 7.4 Algoritmos Genéticos ProfFernandoGomide DCA-FEEC-Unicamp 7.4.1 Introdução Computação evolucionária – Algoritmos genéticos – Programação genética – Estratégias de evolução Motivação Métodos de otimização discreta – enumeração – relaxação – busca Maioria dos problemas práticos requer uso de heurísticas Busca: determinística e estocástica ProfFernandoGomide DCA-FEEC-Unicamp Enumeração Enumeração total: resolve problemas de otimização discreta comparando e verificando a factibilidade de todos os valores possíveis das variáveis de decisão (combinações dos valores discretos das variáveis de decisão). max 7 x1 + 4 x 2 + 19 x3 s.a. x1 + x3 ≤ 1 x 2 + x3 ≤ 1 x1 , x2 , x3 = 0 ou 1 ProfFernandoGomide solução (0, 0, 0) (0, 0, 1) (0, 1, 0) (0, 1, 1) (1, 0, 0) (1, 0, 1) (1, 1, 0) (1, 1, 1) objetivo 0 19 4 infactível 7 infactível 11 infactível solução ótima DCA-FEEC-Unicamp 7.4.2 Algoritmos genéticos P(t) : população de soluções candidatas ( x1, x2, ......, xp ) no passo t algoritmoGenético t ← 0; inicializar P(t); enquanto t ≤ tmax fazer inicio avaliar P(t); selecionar pares de soluções de acordo com função objetivo; produzir filhos de acordo com operadores genéticos; atualizar população; t ← t + 1; fim; fim ProfFernandoGomide DCA-FEEC-Unicamp AG: algoritmo de busca bio–inspirado – mecanismos da seleção natural – genética Combina melhores indivíduos de uma população – mecanismo estruturado – aleatório – troca de informações – fornece novas soluções Métodos de otimização – cálculo: diretos e indiretos – enumeração – estocásticos AG: algoritmo de busca estocástico ProfFernandoGomide DCA-FEEC-Unicamp Algoritmos genéticos × métodos clássicos de otimização – AG usa codificação e não as variáveis de decisão diretamente – AG realiza busca utilizando população ao invés de um ponto – AG usa valores da função e não dependem de derivadas – AG usa regras de transição probabilísticas ProfFernandoGomide DCA-FEEC-Unicamp Genética Genética Recombinação Analogia entre genética natural e AG ProfFernandoGomide – cromossomo cadeias (strings) – gen elemento de uma cadeia – alelo valor do gen – locus posição na cadeia – genótipo estrutura cromossômica – fenótipo solução – epistasis não linearidade – fitness função objetivo DCA-FEEC-Unicamp Codificação – binária – alfanumérica – real – Grey Operadores genéticos – seleção – recombinação (crossover)) – mutação ProfFernandoGomide DCA-FEEC-Unicamp Exemplo: problema das 8 rainhas 32752411 24 ProfFernandoGomide Cromossomo Fitness DCA-FEEC-Unicamp Crossover 32752411 + 24748552 + Mutação ProfFernandoGomide 32748552 = 32748552 = → 32748152 DCA-FEEC-Unicamp Exemplo: caixeiro viajante B C Menor caminho ??? E Cromossomo = [ A B C E D ] A Comprimento caminho = fitness D ProfFernandoGomide DCA-FEEC-Unicamp Caixeiro viajante Operadores Básicos B C Pais E Filhos [ABCDE] [CBADE] D pontos mutação mutação indivíduo [ABCDE] A [ABCED] Caminho fitness Menor caminho ??? ProfFernandoGomide [ABCED] [CBAED] x-over DCA-FEEC-Unicamp Exemplo max f (x) = x2 x∈S = {0, 1, 2, …, 31} 1200 1000 800 f (x ) 600 400 200 x ProfFernandoGomide 31 29 27 25 23 21 19 17 15 13 11 9 7 5 3 1 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 625 676 729 784 841 900 961 DCA-FEEC-Unicamp Codificação: número binário de 5 bits Fitness: f (x) = x2 função objetivo População inicial: No 1 2 3 4 Total Cadeia 01101 11000 01000 10011 f (x ) 169 576 64 361 1170 % Total 14 49 6 31 100 1 14% 4 31% pmutação = 0.001 3 6% ProfFernandoGomide 2 49% DCA-FEEC-Unicamp Crossover ProfFernandoGomide Mutação Pais Filhos Antes Depois 11|000 → 11011 11000 → 10011 10|011 10000 DCA-FEEC-Unicamp Cadeia População Inicial Valor x f (x ) fi /Sfi fi /f Roleta 1 2 3 4 01101 11000 01000 10011 13 24 8 19 169 576 64 361 0.14 0.49 0.06 0.31 0.58 1.97 0.22 1.23 1 2 0 1 11770 293 576 1.00 0.25 0.49 4.00 1.00 1.97 4.00 1.00 2.00 Soma Média Max População 0110|1 1100|0 11|000 10|011 Soma Média Max ProfFernandoGomide Par 2 1 4 3 Posição x-over Nova População 4 01100 4 11001 2 11011 2 10000 Valor x 12 25 27 16 f (x ) 144 625 729 256 1754.00 439.00 729.00 DCA-FEEC-Unicamp Robô genético Programação genética Instruções (Move) (Turn right) (Turn left) (While wall ahead) (Do X) (then Do Y) (Do X then do Y) robô (posição, orientação) (While wall ahead (Turn right), (Do (Move), then Do (Move))) While wall ahead Turn right While wall ahead Do, then Move Turn right Move Turn left Observação Este material refere-se às notas de aula do curso EA 072 Inteligência Artificial em Aplicações Industriais da Faculdade de Engenharia Elétrica e de Computação da Unicamp. Não substitui o livro texto, as referências recomendadas e nem as aulas expositivas. Este material não pode ser reproduzido sem autorização prévia dos autores. Quando autorizado, seu uso é exclusivo para atividades de ensino e pesquisa em instituições sem fins lucrativos. ProfFernandoGomide DCA-FEEC-Unicamp