Prof. Frederico Brito Fernandes
asper@fredbf.com
Algoritmos
Genéticos
1. Problema das 8 Rainhas
2. Algoritmo Genético
3. AG aplicado nas 8
rainhas
Objetivo: colocar 8 rainhas no tabuleiro, de forma que
elas não se ataquem
7
4
1
2
3
5
6
8
Idéia 1
: colocar uma rainha
em cada coluna
Objetivo: colocar 8 rainhas no tabuleiro, de forma que
elas não se ataquem
6
5
4
3
2
1
7
8
Idéia 1
: colocar uma rainha
em cada coluna
Idéia 2
: tentar livrar a
rainha
1
de ataque
Impossível!
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)
6
5
4
3
2
1
7
8
Objetivo: colocar 8 rainhas no tabuleiro, de forma que
elas não se ataquem
6
5
4
3
2
1
7
8
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
Espaço de estados muito grande e heurística fraca
Qual desses estados é o melhor? (
maior nº de pares de rainhas que
não se atacam
)
23
24
26
A
B
D
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
21
C
E se cruzássemos os melhores estados? (B e D)
B
D
E se cruzássemos os melhores estados? (B e D)
D
B
F(
Filho(BD)
) = 56 (máximo, estado ótimo)
Filho(BD)
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
(1)
Definição de um indivíduo
(2)
Geração aleatória
da população
(3)Seleção
(4) Pareamento
(5) Crossover
(6) Mutação
(7)
Nova
População
Simulação do Algoritmo Genético
Função Objetivo
(1)
Definição de um indivíduo
(2)
Geração aleatória
da população
(3)Seleção
(4) Pareamento
(5) Crossover
(6) Mutação
(7)
Nova
População
Simulação do Algoritmo Genético
Função Objetivo
Definição de um indivíduo
7 6 5 4 3 2 1 0
A
(1)• O indivíduo (ou cromossomo) deve ser codificado em uma string de tamanho fixo e um conjunto finito de gene
Ex:
Gene={B,C} Tam = 8
A
=
7 5 2 0
4 6 1 3
Ex
1:
Gene={0,..,7} Tam=8
A
= 111 101 010 000
100 110 001 011
Ex
2:
Gene={0,1} Tam=8
B C C B C C B B
(1)
Definição de um indivíduo
(2)
Geração aleatória
da população
(3)Seleção
(4) Pareamento
(5) Crossover
(6) Mutação
(7)
Nova
População
Simulação do Algoritmo Genético
Função Objetivo
Geração da População
(2)• Devemos produzir um conjunto de indivíduos de forma aleatória
Ex:
Por motivos didáticos, essa é a representação dos estados do slide 7 dessaapresentação
A =
B =
C =
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 =
B =
C =
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
só tenha 0’s ou 1’s
Solução: gerar metade da população e depois pegar essa metade, inverter os bits para gerar a segunda metade (processo de diversificação)
(1)
Definição de um indivíduo
(2)
Geração aleatória
da população
(3)Seleção
(4) Pareamento
(5) Crossover
(6) Mutação
(7)
Nova
População
Simulação do Algoritmo Genético
Função Objetivo
Seleção
(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ção
A 24%
B 26% C
22% D 28%
Escolhidos:
A, D, B, A
Duas abordagens:
(1) Seleção Probabilística Simples: um ponteiro (2) Amostragem Universal Estocástica: n ponteiros
(1)
Definição de um indivíduo
(2)
Geração aleatória
da população
(3)Seleção
(4) Pareamento
(5) Crossover
(6) Mutação
(7)
Nova
População
Simulação do Algoritmo Genético
Função Objetivo
Pareamento
(4)• Os indivíduos escolhidos são dispostos aleatoriamente dois a dois, para se reproduzirem
A =
B =
A =
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 escolhido no processo de SELEÇÃO anterior
(1)
Definição de um indivíduo
(2)
Geração aleatória
da população
(3)Seleção
(4) Pareamento
(5) Crossover
(6) Mutação
(7)
Nova
População
Simulação do Algoritmo Genético
Função Objetivo
Crossover
(5)• Processo pelo qual os filhos gerados possuem partes do cromossomo dos pais
Em geral, um filho tem 50% dos cromossomos de cada pai
A =
B =
A =
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
AB
1=
AB
2=
AD
1=
AD
2=
111 101 010 000 011 001 101 000 111 010 000 101 100 110 001 011• Espera-se que os filhos gerados tenham maior capacidade de adaptação ao ambiente (melhor Função Objetivo)
(1)
Definição de um indivíduo
(2)
Geração aleatória
da população
(3)Seleção
(4) Pareamento
(5) Crossover
(6) Mutação
(7)
Nova
População
Simulação do Algoritmo Genético
Função Objetivo
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
111 010 000 101 101 111 000 011 110 100 001 011 011 001 101 000
AB
1=
AB
2=
AD
1=
AD
2=
111 101 010 000 011 001 101 000 111 010 000 101 100 110 001 011 110 100 001 011 111 001 101 000AB
2=
(1)
Definição de um indivíduo
(2)
Geração aleatória
da população
(3)Seleção
(4) Pareamento
(5) Crossover
(6) Mutação
(7)
Nova
População
Simulação do Algoritmo Genético
Função Objetivo
Nova População
(7)• Uma nova população é gerada
111 010 000 101 101 111 000 011 110 100 001 011 111 001 101 000
AB
1=
AB
2=
AD
1=
AD
2=
111 101 010 000 011 001 101 000 111 010 000 101 100 110 001 011• 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