Buscar

Algoritmos_Geneticos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
Inteligência Artificial Prof. Álvaro Guarda Técnicas Evolucionistas - 1
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.
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 Técnicas
� Programação Evolucionista
� Estratégia Evolucionista
� Sistemas Classificadores
� Algoritmos Genéticos
� Programação Genética
ComputaComputaçção Evolucionista ão Evolucionista 
Nota:
O espaço de busca é um
espaço de soluções
Nota:Nota:
O espaço de busca é um
espaço de soluções
Inteligência Artificial Prof. Álvaro Guarda Técnicas Evolucionistas - 2
IntroduIntroduççãoão
� 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.
Principais ConceitosPrincipais Conceitos
� Indivíduo -> Hipótese de Solução
� Fenótipo x Genótipo
� Aptidão (“Fitness”) de um Indivíduo -> aplicação da Função Heurística
� População -> Os AG vasculham várias regiões do espaço de busca de cada vez
� Geração
Algoritmos GenAlgoritmos Genééticos ticos -- IntroduIntroduççãoão
Notas:
Em Resolução de Problemas a 
cadeia genética é uma cadeia 
binária de tamanho fixo.
Em alguns casos a representação
binária não é adequada.
Notas:Notas:
Em Resolução de Problemas a 
cadeia genética é uma cadeia 
binária de tamanho fixo.
Em alguns casos a representação
binária não é adequada.
Inteligência Artificial Prof. Álvaro Guarda Técnicas Evolucionistas - 3
Algoritmo GenAlgoritmo Genéético tico -- Exemplo de ModelagemExemplo de Modelagem
Problema das NProblema das N--Rainhas:Rainhas:
A posição de cada rainha é dada pelo número da coluna que ela ocupa.
Exemplo para N = 4:Exemplo para N = 4:
Cadeia GenCadeia Genéética: tica: 01 11 00 10 
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]
RepresentaRepresentaçção de uma Hipão de uma Hipóótese de Solutese de Soluçção:ão:
Lista onde o primeiro elemento 
corresponde à Rainha da Linha 1 
e assim sucessivamente.
[ 2; 4; 1; 3]
Nota:
A partir da cadeia genética 
é possível reconstruir o 
indivíduo.
Nota:Nota:
A partir da cadeia genética 
é possível reconstruir o 
indivíduo.
Inteligência Artificial Prof. Álvaro Guarda Técnicas Evolucionistas - 4
SeleSeleçção (proporcional ão (proporcional àà aptidão)aptidão)
Probabilidade de que uma hipótese H seja selecionada:
Exemplo: Exemplo: 5 indivíduos
Algoritmos GenAlgoritmos Genééticos ticos -- Operadores GenOperadores Genééticosticos
( ) ( )( )∑
∈
=
PopH
i
i Hf
HfHp
E
D
C
B
A
Indivíduo 
Hi
3
10
5
12
20
Nota 
f(Hi)
0,06
0,20
0,10
0,24
0,40
P(Hi)
A
B
C
D
E
Roleta:Roleta:
Nota:
Regras de transição probabilísticas 
e não regras determinísticas
Nota:Nota:
Regras de transição probabilísticas 
e não regras determinísticas
2
Inteligência Artificial Prof. Álvaro Guarda Técnicas Evolucionistas - 5
Clonagem Clonagem 
Replica a Hipótese de Solução na próxima geração
MutaMutaççãoão
Gera uma nova Hipótese de Solução a partir de uma pequena modificação
� Operador randômico de manipulação
� Introduz e mantém a variedade genética da população
� Garante a possibilidade de se alcançar qualquer ponto do espaço de busca
� Contorna mínimos locais
CruzamentoCruzamento
Gera novas Hipóteses de Solução a partir de 2 pais
Algoritmos GenAlgoritmos Genééticos ticos -- Operadores GenOperadores Genééticosticos
Inteligência Artificial Prof. Álvaro Guarda Técnicas Evolucionistas - 6
Algoritmos GenAlgoritmos Genééticos ticos -- Operadores GenOperadores Genééticosticos
Cruzamento de um pontoCruzamento de um ponto
Corta os pais em uma posição aleatória e recombina as partes
001000111101001Pai 1Pai 1
011100010000111Pai 2Pai 2
011100010001001Filho 1Filho 1
001000111100111Filho 2Filho 2
001000111101001Pai 1Pai 1
011100010000111Pai 2Pai 2
001000010001001Filho 1Filho 1
011100111100111Filho 2Filho 2
CruzamentoCruzamento de de doisdois pontospontos
Corta os pais em duas posições aleatórias e recombina as partes
Inteligência Artificial Prof. Álvaro Guarda Técnicas Evolucionistas - 7
Algoritmos GenAlgoritmos Genééticos ticos -- Operadores GenOperadores Genééticosticos
001000111101001Pai 1Pai 1
011100010000111Pai 2Pai 2
011100110001001Filho 1Filho 1
001000011100111Filho 2Filho 2
CruzamentoCruzamento uniformeuniforme
Gera uma máscara de bits aleatórios e recombina os bits dos pais
de acordo com a máscara
100000110001111MMááscarascara
Inteligência Artificial Prof. Álvaro Guarda Técnicas Evolucionistas - 8
Algoritmo GenAlgoritmo Genéético tico ((TamPopTamPop, , NumGerNumGer,...),...)
1. Crie a popula1. Crie a populaçção inicial:ão inicial: Pop ← TamPop hipóteses geradas aleatoriamente
2.2. Avalie Pop:Avalie Pop: para cada hipótese H Є Pop, calcule a sua aptidão f(H)
3.3. Evolua a populaEvolua a populaççãoão Pop uma geração (faça até condição de término)
3.1.3.1. Crie a nova populaCrie a nova populaçção ão NovaPopNovaPop (faça até gerá-la completamente)
3.1.1. Escolha um operador gen3.1.1. Escolha um operador genééticotico
3.1.2. Selecione hip3.1.2. Selecione hipóótesesteses (a quantidade depende do operador)
3.1.3. Aplique o operador gen3.1.3. Aplique o operador genééticotico sobre as hipóteses selecionadas: 
Hnova ← operador(H)
3.1.4. Adicione a(s) hip3.1.4. Adicione a(s) hipóótese(s) resultante(s) na nova populatese(s) resultante(s) na nova populaçção:ão:
NovaPop ← NovaPop + Hnova
3.2.3.2. Atualize a populaAtualize a populaçção:ão: Pop ← NovaPop
3.3.3.3. Avalie Pop:Avalie Pop: calcule a aptidão f(H) de cada hipótese H 
4.4. Retorne resultado:Retorne resultado: a hipótese com a maior aptidão de todas as gerações.

Outros materiais