Algoritmos Genéticos Prof. Frederico Brito Fernandes [email protected] 1. Problema das 8 Rainhas 2. Algoritmo Genético 3. AG aplicado nas 8 rainhas 4. Exercício: Coloração de Mapas (1) Problema das Oito Rainhas Objetivo: colocar 8 rainhas no tabuleiro, de forma que elas não se ataquem Idéia 1: colocar uma rainha em cada coluna Disciplina: Inteligência Artificial 1 2 3 4 5 6 7 8 Professor: Frederico Brito Fernandes 2/19 (1) Problema das Oito Rainhas Objetivo: colocar 8 rainhas no tabuleiro, de forma que elas não se ataquem Idéia 1: colocar uma rainha em cada coluna 1 2 3 4 5 6 7 8 Idéia 2: tentar livrar a rainha 1 de ataque Impossível! Disciplina: Inteligência Artificial Professor: Frederico Brito Fernandes 3/19 (1) Problema das Oito Rainhas Objetivo: colocar 8 rainhas no tabuleiro, de forma que elas não se ataquem Idéia 1: colocar uma rainha em cada coluna 2 3 4 5 6 7 8 Idéia 2: tentar livrar a rainha 1 de ataque Impossível! Retroceder (estado raiz) Idéia 3: tentar livrar a rainha 2 do ataque das anteriores • Técnica conhecida como relaxamento do problema (heurística) 1 Disciplina: Inteligência Artificial Professor: Frederico Brito Fernandes 4/19 (1) Problema das Oito Rainhas Objetivo: colocar 8 rainhas no tabuleiro, de forma que elas não se ataquem Idéia 1: colocar uma rainha em cada coluna Idéia 2: tentar livrar a rainha 1 de ataque Impossível! Retroceder (estado raiz) 1 3 4 5 6 7 8 2 Idéia 3: tentar livrar a rainha 2 do ataque das anteriores • Técnica conhecida como relaxamento do problema (heurística) Idéia 4: repetir para o resto Disciplina: Inteligência Artificial Professor: Frederico Brito Fernandes 5/19 (1) Problema das Oito Rainhas Espaço de estados muito grande e heurística fraca Qual desses estados é o melhor? (menor nº de pares de rainhas que não se atacam) A B C D 23 24 Disciplina: Inteligência Artificial 21 Função do melhor estado (função um estado mais próximo do final F(A) = 23 F(B) = 24 fitness): F(C) = 21 Professor: Frederico Brito Fernandes 26 tenta encontrar F(D) = 26 6/19 (1) Problema das Oito Rainhas E se cruzássemos os melhores estados? (B e D) B D Disciplina: Inteligência Artificial Professor: Frederico Brito Fernandes 7/19 (1) Problema das Oito Rainhas E se cruzássemos os melhores estados? (B e D) B Filho(BD) D F(Filho(BD)) = 56 (máximo, estado ótimo) Disciplina: Inteligência Artificial Professor: Frederico Brito Fernandes 8/19 (2) Algoritmo Genético: definição Publicados inicialmente em 1975 pelo professor Jonh Holland, da Universidade de Michigam OBJETIVO São algoritmos de busca e otimização baseados em mecanismos de seleção natural e estruturas genéticas TERMINOLOGIA Indivíduo ou Cromossomo Estado População Conjunto de estados Seleção Escolha probabilística de alguns estados Pareamento Estados são distribuídos em pares (pais) Crossover Pais são mesclados para gerar filhos Mutação Algum bit do filho é modificado Disciplina: Inteligência Artificial Professor: Frederico Brito Fernandes 9/19 (2) Algoritmo Genético: ciclo evolutivo Simulação do Algoritmo Genético (1) Definição de um indivíduo (2) Geração aleatória da população Função Objetivo (3)Seleção (7) Nova População (4) Pareamento (6) Mutação (5) Crossover Disciplina: Inteligência Artificial Professor: Frederico Brito Fernandes 10/19 (3) Algoritmo Genético: 8 rainhas Simulação do Algoritmo Genético Definição de um indivíduo (1) • O indivíduo (ou cromossomo) deve ser codificado em uma string de tamanho fixo e um conjunto finito de gene A (1) Definição de um indivíduo (2) Geração aleatória da população Ex: Gene={B,C} Tam = 8 Função Objetivo (3)Seleção (4) Pareamento (7) Nova População B C C B C C B B Ex1: (6) Mutação Gene={0,..,7} Tam=8 Ex2: (5) Crossover Disciplina: Inteligência Artificial Gene={0,1} Tam=8 Professor: Frederico Brito Fernandes 7 6 5 4 3 2 1 0 A= 7 4 5 6 2 1 0 3 A = 111 101 010 000 100 110 001 011 11/19 (3) Algoritmo Genético: 8 rainhas Simulação do Algoritmo Genético Geração da População (2) • Devemos produzir um conjunto de indivíduos de forma aleatória (1) Definição de um indivíduo Ex: Por motivos didáticos, essa é a representação dos estados do slide 7 dessa apresentação (2) Geração aleatória da população Função Objetivo (3)Seleção (7) Nova População A= 7 2 0 5 3 1 5 0 B= 6 4 1 3 5 7 0 3 C= 6 4 0 6 1 7 0 5 D= 7 5 2 0 4 6 1 3 (4) Pareamento Cuidado ao gerar uma população que (6) Mutação A= 111 010 000 101 011 001 101 000 B= 110 100 001 011 101 111 000 011 Solução: gerar metade da população e depois pegar essa metade, inverter os bits para gerar a (5) Crossover segunda metade (processo de diversificação) C= 110 100 000 110 001 111 000 101 D= 111 101 010 000 100 110 001 011 só tenha 0’s ou 1’s Disciplina: Inteligência Artificial Professor: Frederico Brito Fernandes 12/19 (3) Algoritmo Genético: 8 rainhas Simulação do Algoritmo Genético Seleção (3) (a) Função Objetivo F(A) = 23 F(B) = 24 F(C) = 21 F(D) = 26 (1) Definição de um indivíduo (2) Geração aleatória da população (~%) 24,4% 25,5% 22,3% 27,7% (b) Seleção Função Objetivo D 28% A 24% (3)Seleção (7) Nova Duas abordagens: População (1) Seleção Probabilística Simples: um ponteiro (2) Amostragem Universal Estocástica: n ponteiros (4) Pareamento (6) Mutação C 22% Escolhidos: A, D, B, A (5) Crossover Disciplina: Inteligência Artificial B 26% Professor: Frederico Brito Fernandes 13/19 (3) Algoritmo Genético: 8 rainhas Simulação do Algoritmo Genético Pareamento (4) • Os indivíduos escolhidos são dispostos aleatoriamente dois a dois, para se reproduzirem (1) Definição de um indivíduo (2) Geração aleatória da população A= 111 010 000 101 011 001 101 000 B= 110 100 001 011 101 111 000 011 A= 111 010 000 101 011 001 101 000 D= 111 101 010 000 100 110 001 011 Função Objetivo (3)Seleção (4) Pareamento (7) Nova População (6) Mutação • Observe que o indivíduo C não foi escolhido no processo de SELEÇÃO anterior (5) Crossover Disciplina: Inteligência Artificial Professor: Frederico Brito Fernandes 14/19 (3) Algoritmo Genético: 8 rainhas Simulação do Algoritmo Genético • Processo pelo qual os filhos gerados possuem partes do cromossomo dos pais Em geral, um filho tem 50% dos cromossomos de cada pai (1) Definição de um indivíduo (2) Geração aleatória da população A= Função Objetivo (3)Seleção (7) Nova População • Espera-se que os filhos gerados tenham maior capacidade de adaptação ao (4) Pareamento (6)Objetivo) Mutação ambiente (melhor Função (5) Crossover Disciplina: Inteligência Artificial Crossover (5) 111 010 000 101 011 001 101 000 B= AB1 = 110 100 001 011 101 111 000 011 111 010 000 101 101 111 000 011 AB2 = 110 100 001 011 011 001 101 000 A= 111 010 000 101 011 001 101 000 D= AD1 = 111 101 010 000 100 110 001 011 111 010 000 101 100 110 001 011 111 101 010 000 011 001 101 000 AD2 = Professor: Frederico Brito Fernandes 15/19 (3) Algoritmo Genético: 8 rainhas Simulação do Algoritmo Genético Mutação (6) • Processo pelo qual os bits dos filhos (em pequena probabilidade) são invertidos • Objetivos: • Acelerar a busca • Recuperar parte do código genético perdido (1) Definição de um indivíduo (2) Geração aleatória da população Função Objetivo (3)Seleção (4) Pareamento (5) Crossover Disciplina: Inteligência Artificial AB1 = (7) Nova População 111 010 000 101 101 111 000 011 AB2 = 110 100 001 011 011 001 101 000 AB2= 110 100 001 011 111 001 101 000 AD1 = 111 010 000 101 100 110 001 011 AD2 = 111 101 010 000 011 001 101 000 (6) Mutação Professor: Frederico Brito Fernandes 16/19 (3) Algoritmo Genético: 8 rainhas Simulação do Algoritmo Genético Nova População (7) • Uma nova população é gerada (1) Definição de um indivíduo AB1 = (2) Geração aleatória da população Função Objetivo (3)Seleção (4) Pareamento (7) Nova População (6) Mutação 111 010 000 101 101 111 000 011 AB2 = 110 100 001 011 111 001 101 000 AD1 = 111 010 000 101 100 110 001 011 AD2 = 111 101 010 000 011 001 101 000 • Verifica-se se o indivíduo de maior adaptabilidade possível se encontra, ou seja, que possua a Função Objetivo máxima • Caso contrário, continua-se executando o ciclo até um determinado número de voltas (5) Crossover Disciplina: Inteligência Artificial Professor: Frederico Brito Fernandes 17/19 (3) Algoritmo Genético: conclusões Conclusões Outros processos de seleção: Elitismo Empregado com Redes Neurais, para selecionar a topologia ideal Útil quando empregado em um problema com um grande espaço de soluções Disciplina: Inteligência Artificial Professor: Frederico Brito Fernandes 18/19 (4) Algoritmo Genético: exercício Modele o problema de Coloração de Mapas, visto nas aulas anteriores, com Algoritmo Genético Disciplina: Inteligência Artificial Professor: Frederico Brito Fernandes 19/19