Algoritmo Genético - ICEB-UFOP

Propaganda
Computação Evolucionista
Algoritmos Genéticos - Introdução
Definição
Conjunto de técnicas de otimização inspiradas na teoria da evolução natural.
Esta abordagem remonta o início da computação, entre os anos 50 e 60, quando
vários cientistas da computação estudaram sistemas evolucionários com a idéia de
que a evolução poderia ser usada como um ferramenta de otimização para
problemas na engenharia.
Introdução
Principal idéia da teoria da evolução
Uma população de indivíduos evolui durante as gerações, sendo que aqueles mais
aptos possuem uma probabilidade maior de terem uma prole mais numerosa,
resultando em indivíduos cada vez melhores (mais adaptados).
Principais Conceitos
Inventados por John Holland nos anos 60 e desenvolvidos por ele e seus alunos
na Universidade de Michigan em meados de 1970.
Nesta técnica a analogia com os sistemas biológicos é mais forte, pois, além de
ser baseado nos mecanismos de seleção natural, também se baseia na genética.
Indivíduo -> Hipótese de Solução
Fenótipo x Genótipo
Em alguns casos a representação
binária não é adequada.
Principais Técnicas
Nota:
Programação Evolucionista
Estratégia Evolucionista
O espaço de busca é um
espaço de soluções
Sistemas Classificadores
Notas:
Em Resolução de Problemas a
cadeia genética é uma cadeia
binária de tamanho fixo.
Aptidão (“Fitness”) de um Indivíduo -> aplicação da Função Heurística
Algoritmos Genéticos
População -> Os AG vasculham várias regiões do espaço de busca de cada vez
Programação Genética
Geração
Inteligência Artificial
Prof. Álvaro Guarda
Técnicas Evolucionistas
-
1
Técnicas Evolucionistas
Seleção (proporcional à aptidão)
Problema das N-Rainhas:
Probabilidade de que uma hipótese H seja selecionada:
A posição de cada rainha é dada pelo número da coluna que ela ocupa.
Representação de uma Hipótese de Solução:
Lista onde o primeiro elemento
corresponde à Rainha da Linha 1
e assim sucessivamente.
[ 2; 4; 1; 3]
01 11 00 10
Nota:
A partir da cadeia genética
é possível reconstruir o
indivíduo.
Prof. Álvaro Guarda
Técnicas Evolucionistas
-
2
p(Hi ) =
f (Hi )
∑ f (H )
H∈Pop
Exemplo: 5 indivíduos
Exemplo para N = 4:
Inteligência Artificial
Prof. Álvaro Guarda
Algoritmos Genéticos - Operadores Genéticos
Algoritmo Genético - Exemplo de Modelagem
Cadeia Genética:
Inteligência Artificial
Roleta:
Indivíduo
Hi
Nota
f(Hi)
P(Hi)
A
20
0,40
B
12
0,24
C
5
0,10
A
D
10
0,20
B
E
3
0,06
C
D
Nota:
E
Regras de transição probabilísticas
e não regras determinísticas
-
3
Inteligência Artificial
Prof. Álvaro Guarda
Técnicas Evolucionistas
-
4
1
Algoritmos Genéticos - Operadores Genéticos
Algoritmos Genéticos - Operadores Genéticos
Cruzamento de um ponto
Clonagem
Corta os pais em uma posição aleatória e recombina as partes
Replica a Hipótese de Solução na próxima geração
Mutação
Gera uma nova Hipótese de Solução a partir de uma pequena modificação
Pai 1
1 00 1 0 1 1 1 1 000 1 00
Pai 2
1 1 1 0000 1 000 1 1 1 0
Operador randômico de manipulação
Filho 1 1 0 0 1 0 0 0 1 0 0 0 1 1 1 0
Introduz e mantém a variedade genética da população
Filho 2 1 1 1 0 0 1 1 1 1 0 0 0 1 0 0
Garante a possibilidade de se alcançar qualquer ponto do espaço de busca
Cruzamento de dois pontos
Contorna mínimos locais
Corta os pais em duas posições aleatórias e recombina as partes
Cruzamento
Gera novas Hipóteses de Solução a partir de 2 pais
Pai 1
1 00 1 0 1 1 1 1 000 1 00
Pai 2
1 1 1 0000 1 000 1 1 1 0
Filho 1 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0
Filho 2 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0
Inteligência Artificial
Prof. Álvaro Guarda
Técnicas Evolucionistas
-
5
Algoritmos Genéticos - Operadores Genéticos
Inteligência Artificial
Prof. Álvaro Guarda
Técnicas Evolucionistas
-
6
Algoritmo Genético (TamPop, NumGer,...)
1. Crie a população inicial: Pop ← TamPop hipóteses geradas aleatoriamente
Cruzamento uniforme
Gera uma máscara de bits aleatórios e recombina os bits dos pais
2. Avalie Pop: para cada hipótese H Є Pop, calcule a sua aptidão f(H)
de acordo com a máscara
3. Evolua a população Pop uma geração (faça até condição de término)
3.1. Crie a nova população NovaPop (faça até gerá-la completamente)
Máscara
1 1 1 1 000 1 1 0 0000 1
Pai 1
1 00 1 0 1 1 1 1 000 1 00
Pai 2
1 1 1 0000 1 00 0 1 1 1 0
3.1.1. Escolha um operador genético
3.1.2. Selecione hipóteses (a quantidade depende do operador)
3.1.3. Aplique o operador genético sobre as hipóteses selecionadas:
Hnova ← operador(H)
3.1.4. Adicione a(s) hipótese(s) resultante(s) na nova população:
Filho 1 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0
NovaPop ← NovaPop + Hnova
Filho 2 1 1 1 0 0 1 1 1 0 0 0 0 1 0 0
3.2. Atualize a população: Pop ← NovaPop
3.3. Avalie Pop: calcule a aptidão f(H) de cada hipótese H
4. Retorne resultado: a hipótese com a maior aptidão de todas as gerações.
Inteligência Artificial
Prof. Álvaro Guarda
Técnicas Evolucionistas
-
7
Inteligência Artificial
Prof. Álvaro Guarda
Técnicas Evolucionistas
-
8
2
Download