Você está na página 1de 84

Coevoluo

Computao Evolucionria
Bruno Yamashita Othon Oliveira Rodrigo Augusto

Coevoluo?

Definio na natureza
o

Evoluo complementar de duas espcies

Estudo iniciado por John Holland, em 1990


o
o

"Explorations of Evolution in a Miniature World" Flores e insetos: Cooperao

Em computao, deve ser aplicado quando existir caractersticas de cooperao ou competio


o

Problemas multi-objetivos

Inspirao

Alguns exemplos na natureza


o

Crocodilo e Pssaro palito Orqudea e Abelha

Mecanismos
o

Competitivo Cooperativo

Inspirao

Tipos de interao
Interao Espcie 1 Espcie 2

Neutralismo
Competio

Amensalismo
Parasitismo

Predao
Comensalismo

Protocooperao
Mutualismo

Motivao

Condio para Coevoluo? o Haver evoluo de todas as espcies envolvidas


Foi ento construda uma nova classe de algoritmos: os CoEA

Algoritmos evolucionrios avaliam a aptido a partir de um determinado invidduo em relao a populao


Em CoEA, a aptido medida selecionando indivduos de outra populao: "Aptido Relativa"

Viso Geral da Tcnica

Mecanismos utilizados so genricos


o

So perfeitamente aplicveis s outras tcnicas j conhecidas

Diferena
o o

Algoritmos formados por duas ou mais populaes Cada populao possui mecanismo de avaliao de aptido influenciado pela populao concorrente ou parceira

Inicializao e Representao

Inicializao
o

o o

Cada populao possui mecanismo independente Indivduos posicionados uniformemente no espao de busca Uniformidade evita condies distintas entre as populaes (convergncia antecipada)

Representao do indivduo
o

herdado do algoritmo evolucionrio utilizado

Em um algoritmo gentico coevolucionrio, o indivduo de cada populao um vetor de caractersticas

Mecanismos de Amostragem

As aptides dos indivduos de P1 so calculadas em relao a aptido dos indivduos de P2


Como definir o clculo da aptido?
o
o

Comparar todos bastante custoso Soluo??

Tcnicas de Amostragem!

Tcnicas de Amostragem

A seleo utilizada deve ser capaz de representar toda a populao em anlise Quanto menor e mais diversificada for a amostra, melhor ser a efetividade do algoritmo

Estratgias de amostragem
o

o
o

o
o

Todos contra todos Aleatria Torneio Todos contra melhores Compartilhada *

Avaliao de Sucesso

Nos EAs tradicionais a funo de aptido avalia cada indivduo (independente dos outros) na populao
o

Funo absoluta = Mapeamento direto

Em CoEA a medio da aptido feita por uma funo de "Aptido Relativa" (AR) Esta medida indica quantos indivduos da outra populao so menos aptos que um dado indivduo

Clculo da Aptido Relativa

preciso analisar... Quais indivduos da outra populao sero usados para que a avaliao seja feita?
Como esses indivduos sero usados para calcular a aptido relativa?

Clculo da Aptido Relativa

Fitness Simples
o

Quantidade de indivduos da populao concorrente que so superados pelo indivduo avaliado.

Fitness Compartilhado
o

Leva em considerao as similaridades. Quanto menos comum, mais peso ele tem na aptido.

Fitness por torneio


o

Cria-se uma rvore binria. Indivduos da populao concorrente so colocados em cada folha.

Clculo da Aptido Relativa

Detalhe IMPORTANTE
o

Para evitar elitismo CoEA utilizam o conceito de Hall da Fama

Relembrando...

Hall da Fama
Melhores indivduos so armazenados em uma regio de tamanho limitado. Se um novo indivduo for inserido e o hall da fama estiver cheio, o indivduo menos apto removido para que o novo tome seu lugar.

Critrio de Parada

Semelhante inicializao, as possibilidades de critrio de parada herdam das tcnicas base do CoEA Geralmente baseada na melhora significativa da soluo
o

Se no houver melhora por um nmero n de iteraes o algoritmo para

Critrio de parada avaliado para todas as populaes

Por que Coevoluo to importante?

Interagir com outros um processo natural

Algoritmo Coevolucionrio por Competio

Duas populaes se desenvolvem atravs da competio

Caractersticas desta abordagem


o

Indivduos de P1 representam as solues do problema Indivduos de P2, casos de teste

A P1 procura resolver o mximo de nmero de testes possveis de P2

Algoritmo Coevolucionrio por Competio

P1 resolve problemas cada vez mais complexos de P2

Aptido P1 ~ #Casos de testes resolvidos Aptido P2 #Solues resolvidas

Para cada P, um algoritmo evolucionrio diferente pode ser utilizado: Hibridizao

Algoritmo Coevolucionrio por Competio

Algoritmo Coevolucionrio por Cooperao

Diferente do anterior, populaes agem por benefcio de ambas

Caracterstica desta abordagem


o o o

Separao de componentes (dimenses) que formam a soluo Avaliao de um indivduo em P1 dada em relao a uma amostra em P2 Indivduos que formaram o conjunto com melhores solues so preservados para novas iteraes

Algoritmo Coevolucionrio por Cooperao

Exemplos de uso dos CoEA

Amplamente aplicada para IA de jogos Algumas abordagens de inteligncia de enxames utilizam CoEA Dilema do prisioneiro

Dilema do Prisioneiro

um problema de teoria de jogos Cada jogador, de forma independente, quer aumentar sua vantagem sem se importar com os outros jogadores O que pode ocorrer neste problema?

Dilema do Prisioneiro

possvel obter equilbrio com cooperao Porm, como obter cooperao em um sistema que no a incentiva?
o

Castigo

Robert Axelrod (1984) estudou a extenso deste problema


o o

Jogadores podem castigar uns aos outros Jogadores com memria dos encontros

Dilema do Prisioneiro

Verificao do Equilbrio de Nash


o

Possibilidade de um jogador trair o outro

Curiosamente, os jogadores obtm melhores resultados sendo cooperativos

Infelizmente, para este problema, os prisioneiros so incentivados a enganar outros jogadores

Dilema do Prisioneiro

Axelrod verificou que havia nos algoritmos um padro similar


o

Hostilidade inicial Capacidade de perdo

Estratgias hostis tendiam a ser piores a longo prazo


Este experimento conseguiu mostrar que o altrusmo pode surgir de estratgias egostas

Modelagem Computacional do DP

Possveis aes do prisioneiro


o o

Denunciar o parceiro Ficar calado (cooperar)

Representao em tabela

Modelagem Computacional do DP

Resultados

Outras abordagens...

Maioria das tcnicas de jogadores autnomos


Necessitam de conhecimento de especialista Utilizam o conceito Minimax

Minimax
Cria uma uma rvore em que ramos representam possveis jogadas Eficaz, porm bastante custoso. Nmero de jogadas crescem muito rapidamente.

Algoritmo Minimax (1)

O algoritmo MiniMax determina a estratgia tima para o n MAX Gera-se toda a rvore de busca at os ns terminais Aplica-se a funo de avaliao f a cada n terminal(folhas); valor de fitness

Usar o valor de f dos ns terminais, atravs de um processo de roolback o f dos ns imediatamente acima na rvore de busca

Algoritmo Minimax (1)

Para o nvel MIN escolher o menor valor f dos ns sucessores (MIN = valor mnimo) Para o nvel MAX escolher o maior valor f dos ns sucessores (MAX = valor mximo)

Quando se chegar ao n inicial, aps todos os rollbacks, percorrer o caminho que tem o melhor valor de f para MAX ou seja que tem o valor de f igual ao valor do n inicial

Algoritmo Minimax (2) Pseudocdigo

Algoritmo Minimax (3) Pseudocdigo

Algoritmo AlfaBeta (1)

Melhorar a performance do algoritmo MiniMax de forma a no expandir todos os ns da rvore Faz uma procura do tipo depth-first O valor real do n contido no intervalo [ ;] A procura descontnua quando: ou

Algoritmo AlfaBeta (2)

No nvel do n MAX, escolhe-se o maior dentre os sucessores do n, e atualiza-se o valor de ;

Se o valor de , efetua-se o corte;

No nvel do n MIN, escolhe-se o menor valor dentre os sucessores do n, e atualiza-se o valor de ;

Se o valor de , efetua-se o corte;

Algoritmo AlfaBeta (3)


1) Se o n estiver no limite da profundidade g, retorna o n com o custo f atualizado;

2) Calcula os sucessores do n. Se o estado do n MIN vai para o passo 5, se no continua;


3) Para cada sucessor do n:

Atualiza o com o mximo entre o e o AlfaBeta_(s, , ) : = max(, AlfaBeta_(s, , ));

Se , devolve o ;

4) Devolve o ;

5) Para cada sucessor do n fazer:


Atualiza-se o com o mnimo entre atual e o AlfaBeta_(s, , ) : = min(, AlfaBeta_(s, , )); Se , devolve o ; Devolve o ;

Algoritmo AlfaBeta (4)


function AlfaBeta(raiz) return n ou null
begin
return AlfaBeta_(raiz,-, +, max)

end

Algoritmo AlfaBeta (5)

Algoritmo AlfaBeta Concluso

Admita-se que a rvore tem profundidade d e um fator de ramificao b (lances possveis) o AlfaBeta apenas precisa examinar O AlfaBeta consegue examinar o dobro dos nveis do MiniMax, com o mesmo custo

A eficcia depende da heurstica

Consideraes Finais

A coevoluo uma metaheurstica muito aplicada a jogos

O Minimax e o AlfaBeta so algoritmos essencialmente para jogos


Nosso desafio fazer com que a Tcnica de Coevoluo seja mais eficiente que o AlfaBeta, para o caso do Dilema do Prisioneiro

Referncias
An Introduction to Coevolution James Matthews http://www.generation5.org/content/2000/coevolution.asp Coevolution Tutorial CEC 2005 http://cs.gmu.edu/~eclab/papers/CEC05-CoevolutionTutorial.pdf Theory of coevolutionary genetic algorithms Lothar M. Schmitt http://dl.acm.org/citation.cfm?id=1761604 Introductory Tutorial on Coevolution E. de Jong, K. Stanley, R. Paul Wiegand http://www.ceng.metu.edu.tr/courses/ceng713/documents/gecco-coevolution.pdf Co-evolution and genetic algorithms Jason Morrison http://www.mediafire.com/view/?64jlu50x6s7gtyr Computao evolucionria Coevoluo Marcos lvares http://www.mediafire.com/view/?5cywyykr67obx6d

Coevoluo
Computao Evolucionria
Bruno Yamashita Othon Oliveira Rodrigo Augusto

Você também pode gostar