Post on 12-Jan-2016
description
Prof. Frederico Brito Fernandesunipe@fredbf.com
Algoritmo Genético
CONTEÚDO
(1) Problema das 8 Rainhas(2) Algoritmo Genético(3) AG aplicado nas 8 rainhas(4) Exercício: Coloração de Mapas
Disciplina: Inteligência Artificial
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 2/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
Objetivo: colocar 8 rainhas no tabuleiro, de forma que elas não se ataquem
77
44
11 22 33
55 66
88
Idéia 1: colocar uma rainha em cada coluna
(1) Problema das oito rainhas
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 3/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
Objetivo: colocar 8 rainhas no tabuleiro, de forma que elas não se ataquem
665544332211 77 88 Idéia 1: colocar uma rainha em cada coluna
Idéia 2: tentar livrar a rainha 1 de ataque
Impossível!
(1) Problema das oito rainhas
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 4/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
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)
Idéia 3: tentar livrar a rainha 2 do ataque das anteriores
• Técnica conhecida como relaxamento do problema (heurística)
6655443322
11
77 88
(1) Problema das oito rainhas
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 5/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
Objetivo: colocar 8 rainhas no tabuleiro, de forma que elas não se ataquem
66554433
22
11 77 88 Idéia 1: colocar uma rainha em cada coluna
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)
Idéia 4: repetir para o resto
ERROERRO
(1) Problema das oito rainhas
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 6/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
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)
2323 2424 2626
AA BB DD
Função do melhor estado (função fitness): tenta encontrar um estado mais próximo do final
F(A) = 23 F(B) = 24 F(C) = 21 F(D) = 26
2121
CC
(1) Problema das oito rainhas
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 7/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
E se cruzássemos os melhores estados? (B e D)
BB DD
(1) Problema das oito rainhas
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 8/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
E se cruzássemos os melhores estados? (B e D)
DDBB
F(Filho(BD)) = 56 (máximo, estado ótimo)
Filho(BD)Filho(BD)
(1) Problema das oito rainhas
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 9/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
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
TERMINOLOGIAIndiví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
(2) Algoritmo Genético: definição
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 10/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(1)(1) Definição de um indivíduo Definição de um indivíduo
(2)(2) Geração aleatória Geração aleatória da populaçãoda população
(3)Seleção
(4) Pareamento
(5) Crossover
(6) Mutação
(7) Nova População
Simulação do Algoritmo Genético
Função ObjetivoFunção Objetivo
(2) Algoritmo Genético: ciclo evolutivo
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 11/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(1)(1) Definição de um indivíduo Definição de um indivíduo
(2)(2) Geração aleatória Geração aleatória da populaçãoda população
(3)Seleção
(4) Pareamento
(5) Crossover
(6) Mutação
(7) Nova População
Simulação do Algoritmo Genético
Função ObjetivoFunção Objetivo
Definição de um indivíduoDefinição de um indivíduo
7766554433221100
AA
(1)(1)
• O indivíduo (ou cromossomo) deve O indivíduo (ou cromossomo) deve ser codificado em uma string de ser codificado em uma string de tamanho fixo e um conjunto finito de tamanho fixo e um conjunto finito de genegene
Ex:Ex:Gene={B,C}Gene={B,C}Tam = 8Tam = 8
A A == 7 5 2 07 5 2 0 4 6 1 34 6 1 3
ExEx11::Gene={0,..,7}Gene={0,..,7}Tam=8Tam=8
A A = 111 101 010 000= 111 101 010 000 100 110 001 011100 110 001 011
ExEx22::Gene={0,1}Gene={0,1}Tam=8Tam=8
B C C B
C C B B
(3) Algoritmo Genético: 8 rainhas
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 12/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(1)(1) Definição de um indivíduo Definição de um indivíduo
(2)(2) Geração aleatória Geração aleatória da populaçãoda população
(3)Seleção
(4) Pareamento
(5) Crossover
(6) Mutação
(7) Nova População
Simulação do Algoritmo Genético
Função ObjetivoFunção Objetivo
Geração da PopulaçãoGeração da População(2)(2)
• Devemos produzir um conjunto de Devemos produzir um conjunto de indivíduos de forma aleatóriaindivíduos de forma aleatória
Ex: Ex: Por motivos didáticos, essa é a Por motivos didáticos, essa é a representação dos estados do representação dos estados do slide 7slide 7 dessa dessa apresentaçãoapresentação
A =A =
B = B =
C = C =
D =D =
7 2 0 5 3 1 5 0
7 5 2 0 4 6 1 3
6 4 1 3 5 7 0 3
6 4 0 6 1 7 0 5
A =A =
B = B =
C = C =
D =D =
111 010 000 101 011 001 101 000
111 101 010 000 100 110 001 011
110 100 001 011 101 111 000 011
110 100 000 110 001 111 000 101
Cuidado ao gerar uma população que Cuidado ao gerar uma população que só tenha 0’s ou 1’ssó tenha 0’s ou 1’s
SoluçãoSolução: gerar metade da população e depois : gerar metade da população e depois pegar essa metade, inverter os bits para gerar a pegar essa metade, inverter os bits para gerar a segunda metade (processo de diversificação)segunda metade (processo de diversificação)
(3) Algoritmo Genético: 8 rainhas
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 13/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(1)(1) Definição de um indivíduo Definição de um indivíduo
(2)(2) Geração aleatória Geração aleatória da populaçãoda população
(3)Seleção
(4) Pareamento
(5) Crossover
(6) Mutação
(7) Nova População
Simulação do Algoritmo Genético
Função ObjetivoFunção Objetivo
SeleçãoSeleção(3)(3)
(a) Função Objetivo (~%) F(A) = 23 24,4% F(B) = 24 25,5% F(C) = 21 22,3% F(D) = 26 27,7%
(b) SeleçãoA
24%
B26%
C22%
D28%
Escolhidos:Escolhidos:A, D, B, AA, D, B, A
Duas abordagens:Duas abordagens:(1)(1) Seleção Probabilística Simples: um ponteiro Seleção Probabilística Simples: um ponteiro(2)(2) Amostragem Universal Estocástica: n ponteiros Amostragem Universal Estocástica: n ponteiros
(3) Algoritmo Genético: 8 rainhas
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 14/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(1)(1) Definição de um indivíduo Definição de um indivíduo
(2)(2) Geração aleatória Geração aleatória da populaçãoda população
(3)Seleção
(4) Pareamento
(5) Crossover
(6) Mutação
(7) Nova População
Simulação do Algoritmo Genético
Função ObjetivoFunção Objetivo
PareamentoPareamento(4)(4)
• Os indivíduos escolhidos são Os indivíduos escolhidos são dispostos aleatoriamente dois a dois, dispostos aleatoriamente dois a dois, para se reproduzirempara se reproduzirem
A =A =
B = B =
A = A =
D =D =
111 010 000 101 011 001 101 000
111 101 010 000 100 110 001 011
110 100 001 011 101 111 000 011
111 010 000 101 011 001 101 000
• Observe que o indivíduo C não foi Observe que o indivíduo C não foi escolhido no processo de SELEÇÃO escolhido no processo de SELEÇÃO anterioranterior
(3) Algoritmo Genético: 8 rainhas
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 15/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(1)(1) Definição de um indivíduo Definição de um indivíduo
(2)(2) Geração aleatória Geração aleatória da populaçãoda população
(3)Seleção
(4) Pareamento
(5) Crossover
(6) Mutação
(7) Nova População
Simulação do Algoritmo Genético
Função ObjetivoFunção Objetivo
CrossoverCrossover(5)(5)
• Processo pelo qual os filhos gerados Processo pelo qual os filhos gerados possuem partes do cromossomo dos possuem partes do cromossomo dos paispais
Em geral, um filho tem 50% Em geral, um filho tem 50% dos cromossomos de cada paidos cromossomos de cada pai
A =A =
B = B =
A = A =
D =D =
111 010 000 101 011 001 101 000
111 101 010 000 100 110 001 011
110 100 001 011 101 111 000 011
111 010 000 101 011 001 101 000
111 010 000 101 101 111 000 011
110 100 001 011 011 001 101 000
ABAB11 = =
ABAB22 = =
ADAD11 = =
ADAD22 = =111 101 010 000 011 001 101 000
111 010 000 101 100 110 001 011
• Espera-se que os filhos gerados tenham Espera-se que os filhos gerados tenham maior capacidade de adaptação ao maior capacidade de adaptação ao ambiente (melhor Função Objetivo)ambiente (melhor Função Objetivo)
(3) Algoritmo Genético: 8 rainhas
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 16/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(1)(1) Definição de um indivíduo Definição de um indivíduo
(2)(2) Geração aleatória Geração aleatória da populaçãoda população
(3)Seleção
(4) Pareamento
(5) Crossover
(6) Mutação
(7) Nova População
Simulação do Algoritmo Genético
Função ObjetivoFunção Objetivo
MutaçãoMutação(6)(6)
• Processo pelo qual os bits dos filhos Processo pelo qual os bits dos filhos (em pequena probabilidade) são (em pequena probabilidade) são invertidosinvertidos• Objetivos:Objetivos:
• Acelerar a buscaAcelerar a busca• Recuperar parte do código Recuperar parte do código genético perdidogenético perdido
111 010 000 101 101 111 000 011
110 100 001 011 011 001 101 000
ABAB11 = =
ABAB22 = =
ADAD11 = =
ADAD22 = =111 101 010 000 011 001 101 000
111 010 000 101 100 110 001 011
110 100 001 011 111 001 101 000ABAB22==
(3) Algoritmo Genético: 8 rainhas
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 17/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(1)(1) Definição de um indivíduo Definição de um indivíduo
(2)(2) Geração aleatória Geração aleatória da populaçãoda população
(3)Seleção
(4) Pareamento
(5) Crossover
(6) Mutação
(7) Nova População
Simulação do Algoritmo Genético
Função ObjetivoFunção Objetivo
Nova PopulaçãoNova População(7)(7)
• Uma nova população é geradaUma nova população é gerada
111 010 000 101 101 111 000 011
110 100 001 011 111 001 101 000
ABAB11 = =
ABAB22 = =
ADAD11 = =
ADAD22 = =111 101 010 000 011 001 101 000
111 010 000 101 100 110 001 011
• Verifica-se se o indivíduo de maior Verifica-se se o indivíduo de maior adaptabilidade possível se encontra, adaptabilidade possível se encontra, ou seja, que possua a Função ou seja, que possua a Função Objetivo máximaObjetivo máxima
• Caso contrário, continua-se Caso contrário, continua-se executando o ciclo até um executando o ciclo até um determinado número de voltasdeterminado número de voltas
(3) Algoritmo Genético: 8 rainhas
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 18/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
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
(3) Algoritmo Genético: conclusões
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 19/19Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
Modele o problema de Coloração de Mapas com Algoritmo Genético
Definição do Problema: Esse problema requer que você pinte a figura com o menor número de cores possível. Blocos adjacentes devem ter cores diferentes
(4) Exercício
A B
C
D
E
F