Algoritmos Genéticos Fundamentos e Aplicações Prof. Juan Moisés Mauricio Villanueva [email protected] Conteúdo • Introdução • Inteligência Artificial (IA) • Algoritmos Genéticos • Aplicações de Algoritmos Genéticos • Conclusões e Recomendações 2 Introdução • Diversos problemas de ciência e engenharia requerem aplicar técnicas de optimização. Optimização de parâmetros Consideração de restrições dos parâmetros Um amplo espaço de busca de soluções 3 Introdução • Exemplos de problemas em que se implementar procedimentos de optimização requer Optimização de funções matemáticas Problema do carteiro viajante Optimização de rotas de veículos Optimização de projeto de circuitos eletrônicos Optimização de planejamento e distribuição 4 Introdução Optimização de funções matemáticas Problema do carteiro viajante Optimização de rotas de veículos Optimização de projeto de circuitos eletrônicos Optimização de planejamento e distribuição Uma grande quantidade de possíveis soluções Restrições das variáveis Problemas de Minimização/Maximização 5 Inteligência Artificial (IA) • São técnicas e sistemas computacionais que imitan aspectos humanos em computadores, tais como: Percepção Raciocinio Aprendizajem Evolução Adaptação 6 Inteligência Artificial (IA) • As técnicas de inteligência computacional estão inspiradas na natureza e compreendem: Algoritmos Genéticos Evolução Biológica Redes Neurais Neurônios Biológicas Lógica Fuzzy Processamento Linguístico Sistemas Especialistas Inferência Humana 7 Algoritmos Genéticos • Algoritmo de busca e optimização inspirado na seleção natural e reprodução genética Seleção do mais apto Reprodução Genética 8 Algoritmos Genéticos Seleção do mais apto Reprodução Genética Paradigma utilizado para a implementação de algoritmos evolutivos para optimização 9 Algoritmos Genéticos • Problema de minimização de uma função matemática y_max y x2 y min f ( x) 31 x 31 0 y 961 x 0, y 0 y_min x_min 0 x_max 10 Ciclo de um Algoritmo Genético x 10 8 -3 7 -6 População Inicial de Indivíduos Codificação Avaliação y=f(x) 0 01010 100 0 01000 64 1 00011 9 0 00111 49 1 00110 36 Pais 11 Ciclo de um Algoritmo Genético x 10 8 -3 7 -6 x -3 -6 População Inicial de Indivíduos Codificação Avaliação y=f(x) 0 01010 100 0 01000 64 1 00011 9 0 00111 49 1 00110 36 Codificação Avaliação y=f(x) 1 00011 9 1 00110 36 12 Ciclo de um Algoritmo Genético x 10 8 -3 7 -6 População Inicial de Indivíduos Codificação Avaliação y=f(x) 0 01010 100 0 01000 64 1 00011 9 0 00111 49 1 00110 36 1 000 11 1 0 0 0 1 0 =-2 1 00 110 1 0 0 1 1 1 =-7 1 00 111 1 1 0 1 1 1 =-23 13 Ciclo de um Algoritmo Genético x 10 8 -3 7 -6 1 0 0 0 1 0 =-2 1 0 0 1 1 1 =-7 1 1 0 1 1 1 =-23 População Inicial de Indivíduos Codificação Avaliação y=f(x) 0 01010 100 0 01000 64 1 00011 9 0 00111 49 1 00110 36 1 000 11 1 0 0 0 1 0 =-2 1 00 110 1 0 0 1 1 1 =-7 1 00 111 1 1 0 1 1 1 =-23 14 Ciclo de um Algoritmo Genético y1 f (7) 49 y2 f (2) 4 y3 f (23) 529 x 10 8 -3 7 -6 População Inicial de Individuos Codificação Avaliação y=f(x) 0 01010 100 0 01000 64 1 00011 9 0 00111 49 1 00110 36 y=f(x) 1 0 0 0 1 0 =-2 1 0 0 1 1 1 =-7 1 0 0 1 1 1 =-7 1 0 0 0 1 0 =-2 1 1 0 1 1 1 =-23 1 1 0 1 1 1 =-23 15 Ciclo de um Algoritmo Genético y1 f (7) 49 y2 f (2) 4 y3 f (23) 529 x 10 8 -3 7 -6 População Inicial de Indivíduos Codificação Avaliação y=f(x) 0 01010 100 0 01000 64 1 00011 9 0 00111 49 1 00110 36 y=f(x) 1 0 0 0 1 0 =-2 1 0 0 1 1 1 =-7 1 0 0 1 1 1 =-7 1 0 0 0 1 0 =-2 1 1 0 1 1 1 =-23 1 1 0 1 1 1 =-23 16 Ciclo de um Algoritmo Genético x -2 8 -3 7 -6 Nova População de Indivíduos Codificação Avaliação y=f(x) 0 00010 4 0 01000 64 1 00011 9 0 00111 49 1 00110 36 y=f(x) 17 Evolução do AG • A evolução da optimização é observada através da função de fitness (Função de Avaliação) y x2 18 Algoritmos Genéticos • Algoritmo de busca e optimização inspirado na seleção natural e reprodução genética • Algoritmos Genéticos empregam um processo adaptativo e paralelo de busca de soluções em problemas complexos • Combina a sobrevivência do individuo mais apto e o cruzamento aleatório da informação 19 Aplicações de AGs Optimização de funções matemáticas Problema do carteiro viajante Optimização de rotas de veículos Optimização de projeto de circuitos eletrônicos Optimização de planejamento e distribuição 20 Optimização de Funções Matemáticas • Maximizar a função F6(x,y) sen F 6( x, y ) 0.5 2 0.5 2 y x y 2 1 0.001 x 2 2 2 100 x 100 100 y 100 21 Problema do Carteiro Viajante • Se desejam visitar as cidades desde um ponto de partida, com a menor distância e sem passar dois vezes pela mesma cidade ( N 1)! 2 Para N 50 cidades Rotas Distintas (50 1)! Rotas Distintas 3.0414 1062 2 Cidade de partida 22 Problema do Carteiro Viajante Cidade de partida e chegada com a menor distância recorrida, sem passar por dois vezes pela mesma cidade 23 Optimização de Projeto de Circuitos Eletrõnicos • Para uma resposta de saída desejada, é possível otimizar o projeto do circuito eletrônico usando AG Vout 24 Optimização Planejamento e Distribuição • Planejamento de Horários de aulas em Universidades em função das disponibilidades dos docentes e salas disponíveis 25 Conclusões • Algoritmos Genéticos permitem encontrar soluções ótimas e em tempos curtos quando o espaço de busca é muito amplo. • Os AGs realizam buscas de soluções de forma direcionada de forma adaptativa e paralela. • Deve-se considerar a construção de uma função de adaptação (Fitness) que permita diferenciar aos indivíduos mais aptos. 26 Conclusões • Os AGs não garantem uma solução global (Problema de estagnação) 27 Software para a Implementação de AG • GEATbx: Genetic and Evolutionary Algorithm Toolbox for use with MATLAB www.geatbx.com • GPLab: Genetic Programming Toolbox for use with MATLAB http.//gplab.sourceforge.net 28