Prof. Frederico Brito Fernandes [email protected]Algoritmos Algoritmos Genéticos Genéticos 1. 1. Problema das 8 Problema das 8 Rainhas Rainhas 2. 2. Algoritmo Genético Algoritmo Genético 3. 3. AG aplicado nas 8 AG aplicado nas 8 rainhas rainhas 4. 4. Exercício: Exercício: Coloração de Mapas Coloração de Mapas
19
Embed
Prof. Frederico Brito Fernandes [email protected] Algoritmos Genéticos 1.Problema das 8 Rainhas 2.Algoritmo Genético 3.AG aplicado nas 8 rainhas 4.Exercício:
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
(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
(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)
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
(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
(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)
(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
(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