algoritmo genetico

19
Prof. Frederico Brito Fernandes [email protected] 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

Upload: euler-goncalves

Post on 17-Dec-2014

1.073 views

Category:

Technology


3 download

DESCRIPTION

AL -8 rainhas

TRANSCRIPT

Page 1: algoritmo genetico

Prof. Frederico Brito [email protected]

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

Page 2: algoritmo genetico

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

Page 3: algoritmo genetico

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

Page 4: algoritmo genetico

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

Page 5: algoritmo genetico

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

Page 6: algoritmo genetico

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

Page 7: algoritmo genetico

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

Page 8: algoritmo genetico

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

Page 9: algoritmo genetico

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

Page 10: algoritmo genetico

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

Page 11: algoritmo genetico

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

Page 12: algoritmo genetico

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

Page 13: algoritmo genetico

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

Page 14: algoritmo genetico

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

Page 15: algoritmo genetico

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

Page 16: algoritmo genetico

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

Page 17: algoritmo genetico

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

Page 18: algoritmo genetico

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

Page 19: algoritmo genetico

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