Title: Luiz Eduardo S. Oliveira, Ph.D.
1Computação Evolutiva Programação Evolutiva
Pontifícia Universidade Católica do Paraná Curso
de Especialização em Inteligência Computacional
2004/2005
- Luiz Eduardo S. Oliveira, Ph.D.
- soares_at_ppgia.pucpr.br
- http//www.ppgia.pucpr.br/soares
2Introdução
- A Programação Evolutiva (PE) foi proposta por
Fogel, Owens e Walsh em meados da década de 60 - Artificial Intelligence Through Simulated
Evolution - Proposta original
- Predição de comportamento de máquinas de estado
finito. - Predição
3Introdução
- Procedure EC
- t 0
- Initialize P(t)
- Evaluate P(t)
- While (Not Done)
-
- Parents(t) Select_Parents(P(t))
- Offspring(t) Procreate(Parents(t))
- Evaluate(Offspring(t))
- P(t1) Select_Survivors(P(t),Offspring(t))
- t t 1
-
Não existe cruzamento, somente mutação
4Introdução
- Na PE, cada indivíduo gera um único descendente
através de mutação. - A melhor metade da população ascendente e a
melhor metade da população descendente são
reunidas para formar a nova geração
5Introdução
- Diferentemente dos AGs, a PE enfatiza os
desenvolvimento de modelos comportamentais - Modelar o comportamento afim de prever o que pode
acontecer (PREDIÇÃO). - Capturar a interação do sistema com seu ambiente.
6Maquinas de Estado Finito
- Uma maneira comum de se prever uma ação consiste
na análise de ações passadas. - No contexto de uma máquina de estado finito, cada
ação pode ser representada por um símbolo. - Dado uma seqüência de símbolos, deve-se prever
qual será o próximo símbolo.
7Máquinas de Estado Finito
- Assim como nos AGs, os símbolos devem pertencer a
um alfabeto finito. - Máquina de Estado Finito
- Analisar a seqüência de símbolos
- Gerar uma saída que otimize uma dada função de
fitness, a qual envolve a previsão do próximo
símbolo da seqüência. - Mercado financeiro, previsão do tempo, etc...
8Máquinas de Estado Finito
- Podem ser vistas como transdutores
- Quando estimulado por um alfabeto finito de
símbolos, responde com um outro alfabeto finito
de símbolos e possui um número finito de estados. - Alfabetos de entrada e saída não são
necessariamente idênticos.
9Máquinas de Estado Finito Um Exemplo
Alfabeto de entrada de dois símbolos I 1,
0 Alfabeto de saída de três símbolos O X,
Y, Z
Máquina de três estados S A, B, C
10Máquinas de Estado Finito
- Sub-conjunto das máquinas de Turing
- Capazes de resolver todos os problemas
matemáticos de uma classe definida. - Capazes de modelar ou representar um organismo ou
um sistema.
11Máquinas de Estado FinitoTarefa Prever a
próxima entrada
- Medida da Qualidade
- Número de previsões corretas
- Estado Inical C
- Sequência de Entrada
- 011101
- Sequência de Saida
- 110111
- Qualidade 3 de 5
S A,B,C I 0,1 O 0,1
12Operados usados na PE
- Diferentemente dos AGs onde o cruzamento é um
importante componente para a produção de uma nova
geração, a mutação é o ÚNICO operador usado na
PE. - Cada membro da população sobre mutação e produz
UM filho.
13Mutação
- Cinco tipos de mutação podem ocorrer em uma
máquina de estado finitos - O estado inicial pode mudar.
- O estado inicial pode ser eliminado.
- Um estado pode ser adicionado.
- Uma transição entre estados pode ser mudada.
- O símbolo de saída para um determinado estado e
símbolo de entrada pode ser mudado.
14Seleção
- Uma vez que cada pai gera um filho após a
mutação, a população dobra de tamanho a cada
geração. - Após o cálculo da fitness, conserva-se a melhor
metade dos pais e a melhor metade dos filhos. - População de tamanho constante.
15Seleção
Nova População
Pais
Filhos
Mutação
Ranking
16Critério de Parada
- Fazer a predição utilizando o melhor indivíduo da
população. - Isso pode ocorrer a qualquer instante
- Se a fitness for satisfatória (Lei da
Suficiência) o algoritmo pode ser terminado. - Fixar um número de gerações.
17Alterando o Tamanho do Indivíduo
- Diferentemente de outros paradigmas evolutivos,
na PE a mutação pode mudar o tamanho do
indivíduo. - Estados podem ser adicionados ou eliminados, de
acordo com as regras vistas anteriormente. - Isso pode causar alguns espaços na tabela
- Mutações neutras.
18Alterando o Tamanho do Indivíduo
- A mutação ainda pode criar uma transição que não
seja possível, pois um estado pode ter sido
eliminado durante a mutação. - Esses problemas devem ser identificados e
corrigidos durante a implementação - Menos freqüentes em máquina com bastante estados.
19PE com Indivíduos de Tamanho Fixo
- Embora PE possa ter indivíduos de tamanho
variável, é possível evoluir uma máquina de
estado finitos com PE onde os indivíduos tem
tamanho fixo. - Definir um número máximo de estados.
- Para exemplificar, vamos considerar a máquina de
predição apresentada anteriormente, a qual pode
ter no máximo 4 estados.
20Exemplo
Cada estado pode ser representado por 7 bits
Bit No. Representação
0 1 ativo 0 não ativo
1 símbolo de entrada
2 símbolo de entrada
3 símbolo de saída
4 símbolo de saída
5 estado de saída
6 estado de saída
B
C
D
A
1 1 0 1 1 A B 1 0 1 0 1 B C 1 1 0 0 1 A B 0 0 0 0
0 D A
21Exemplo
- Como visto,cada estado pode ser representado por
uma string de 7 bits. - Sendo assim, cada indivíduo possui 28 bits
- Cada um representa uma máquina completa.
B
C
D
A
1 1 0 1 1 A B 1 0 1 0 1 B C 1 1 0 0 1 A B 0 0 0 0
0 D A
22Exemplo II
- Máquina de estado finito para jogar o Dilema do
Prisioneiro. - O prisioneiro tem que tomar uma decisão em face
da decisão do outro. - Questão de altruísmo ou egoísmo.
23Dilema do Prisioneiro
- Dois comparsas são pegos cometendo um crime.
Levados à delegacia e colocados em salas
separadas, lhes é colocada a seguinte situação
com as respectivas opções de decisão - Se ambos ficarem quietos, cada um deles pode ser
condenado a um mês de prisão. - Se apenas um acusa o outro, o acusador sai livre.
O outro, condenado em 1 ano. - Se os dois se acusarem, ambos pegam seis meses.
24Dilema do Prisioneiro
- As decisões são simultâneas e um não sabe nada
sobre a decisão do outro. - Esse jogo mostra que, em cada decisão, o
prisioneiro pode satisfazer seu próprio interesse
(desertar) ou atender ao interesse do grupo
(cooperar).
25Dilema do Prisioneiro
- Dilema
- Admito inicialmente que meu colega planeja
cooperar. Se eu cooperar também ambos pegamos 1
mês (nada mau) - Supondo a cooperação do meu colega, eu posso
acusá-lo e sair livre (melhor situação) - Porém se eu coopero e ele me acusa, eu pego 1
ano! - Se eu acusar também, aí eu fico seis meses.
- Logo, ele cooperando ou não o melhor a fazer é
desertar!
26Dilema do Prisioneiro
- O problema é que seu colega pensa da mesma
maneira, e ambos desertam. - Se ambos cooperassem, haveria um ganho maior para
ambos, mas na otimização dos resultados não é o
que acontece. - Ao invés de ficar um mês presos, ambos ficam 6
meses para evitar o risco de ficar 1 ano.
27Dilema do Prisioneiro
- A repetição do jogo, entretanto, muda
radicalmente a forma de pensar. - Dois comparsas de longa data terão uma tendência
muito maior à cooperação. - Com isso formam-se outras opções de estratégias.
- A teoria dos jogos (John Nash) é bastante
utilizada na economia para descrever e prever o
comportamento econômico.
28Máquina de estado finito para o dilema do
prisioneiro Fogel 95
Por exemplo O rótulo C,D/C na flexa que vai
de um estado X para um estado Y significa que o
sistema está no estado X e no movimento
anterior a máquina cooperou e o oponente
desertou. Então coopere e vá para o estado Y.
C Cooperar D Desertar
29Exercício
- Evolua a máquina de estados finitos vista
anteriormente - Considerar 4 estados no máximo.
- Utilizar a codificação vista anteriormente.
- Considerar 5 indivíduos de 28 bits
- Considerar que somente os indivíduos que tenham
pelo menos dois estados ativos sejam admitidos na
população inicial. - Para cada indivíduo, construa a máquina e calcule
a qualidade da predição.
30Realizando a Mutação
- Para cada indivíduo, gere um número aleatório
entre 0 e 1. Escolha um gene aleatoriamente e
tome uma das seguintes ações.
Valor Ação
0.0 0.2 Eliminar estado
0.2 0.4 Mude o estado inicial
0.4 0.6 Mude o símbolo de entrada
0.6 0.8 Mude o símbolo de saída
0.8 0.1 Ativar estado
31Nova População
- Avaliar a fitness e manter os melhores 50,
resultando assim uma nova população do tamanho da
inicial.