Você está na página 1de 2

Utilizando Algoritmos Genticos para Evoluir uma estratgia para Mastermind

Fabrcio H. Rodrigues1, Michelle D. Leonhardt2


1 2

ICET Universidade Feevale - Novo Hamburgo RS Brasil

Instituto de Informtica - Universidade Federal do Rio Grande de Sul (UFRGS) Porto Alegre RS Brasil
fabriciohr@feevale.br, mdleonhardt@inf.ufrgs.br

Abstract. The present work shows our efforts towards the use of genetic algorithms to evolve a new strategy to play Mastermind, based on human-like acting during the game solving. Keywords: Artificial Intelligence, Genetic Algorithms, Games, Strategy. Resumo. Este trabalho apresenta nossos esforos na utilizao de algoritmos genticos para evoluir uma estratgia para o jogo Mastermind, baseada na forma de interao normalmente adotada pelas pessoas durante o jogo. Palavras-chave: Estratgia. Inteligncia Artificial, Algoritmos Genticos, Jogos,

1. Introduo
Mastermind (A Senha, em portugus) um jogo de tabuleiro para dois jogadores. Um deles, o codificador, deve criar uma senha de cores de tamanho N escolhidas de um universo de M cores possveis. O outro deve descobri-la arriscando cdigos no mesmo formato da senha. Aps cada palpite, o codificador fornece uma dica da forma {A,B}, sendo A o nmero de cores do palpite que esto no lugar correto em relao senha real e B o nmero de cores do palpite que pertencem senha real, mas esto no lugar errado. Para ganhar o jogo, o decodificador deve descobrir a senha em um limite de tentativas. Esse um jogo simples, mas que tem interessado os pesquisadores da rea de Inteligncia Artificial (IA), como pode ser visto em [Berghman et al 2009] [Temporel et al 2003]. Esses trabalhos consistem na implementao pelos pesquisadores de tcnicas de Inteligncia Artificial como estratgias para jogar Mastermind no papel do decodificador. Diferentemente dessa aordagem, em nosso trabalho propomos o uso de algoritmos genticos (GA) para a evoluo de uma nova estratgia para jogar Mastermind baseada na forma como uma pessoa comum interage com o jogo.

2. Nossa Abordagem
Como a estratgia a ser evoluda em nossa abordagem baseia-se na forma como uma pessoa comum interage com o jogo, comeamos por observar esse comportamento. Antes de cada nova tentativa, as pessoas normalmente avaliam uma ou mais das senhas anteriormente arriscadas e a dica recebida por cada uma delas. Ento, para elaborar o palpite a ser submetido, elas executam uma das seguintes aes: (1) escolher um cdigo completamente novo; (2) escolher um dos cdigos anteriormente arriscados e trocar a

ordem de suas cores para gerar um novo cdigo; (3) escolher um dos cdigos anteriormente arriscados e trocar uma ou mais de suas cores por outras no presentes no cdigo; (4) uma mescla das aes (2) e (3). Para simular essas aes, criamos 44 funes bsicas que executam tais tarefas. O formato da estratgia a ser evoluda foi implementado como uma matriz com as linhas sendo indexadas pelas possveis dicas dadas pelo codificador e as colunas pelo nmero de vezes que o jogador j recebeu uma determinada dica no jogo. Em cada posio da matriz guardado o nmero que corresponde a uma funo bsica. Para que o jogador faa uso dessa estratgia foram implementadas, tambm, uma memria para guardar o nmero de vezes que o jogador j recebeu cada uma das possveis dicas e outra para armazenar o ltimo palpite arriscado e a dica recebida. A utilizao dessa estratgia pelo jogador consiste em, antes de cada nova tentativa, buscar em sua memria a ltima dica recebida e o nmero de vezes que ela foi recebida no jogo corrente. Ento ele vai interseco entre a linha da tabela correspondente dica recebida e a coluna correspondente ao nmero de vezes que tal dica j foi recebida e obtm o nmero armazenado. Ele aplica a funo bsica correspondente a esse nmero ao cdigo armazenado em sua memria, gerando um novo palpite que submetido. Esse palpite ento armazenado na memria, juntamente com a dica recebida por ele. O nmero de vezes que a dica corrente foi recebida incrementado e o processo inicia novamente. A tarefa dos GA evoluir uma boa combinao de funes dispostas nesse formato de estratgia. Para tanto, consideramos cada estratgia como um indivduo, cada linha da matriz como um cromossomo do indivduo e as 44 funes bsicas como os genes. A avaliao dos indivduos dada pela taxa de vitrias obtidas jogando-se contra um conjunto de 100 senhas diferentes. A populao de estratgias ordenada segundo sua taxa de vitrias e aquelas com melhor avaliao tem maiores chances de serem selecionadas tanto para reproduzirem-se quanto para sobreviverem para a prxima gerao. A reproduo feita pegando-se um pedao de cada cromossomo de um indivduo e fundindo-o com um pedao do cromossomo correspondente de outro indivduo. Tambm aplicada uma pequena taxa de mutao (cerca de 1%) aos indivduos gerados.

3. Concluses
As estratgias de jogo adotadas nos trabalhos referenciados so eficientes, mas exigem um intensivo processamento. Em geral, as pessoas, por no possurem o mesmo poder de processamento de um computador (ou ao menos no da mesma natureza) utilizam estratgias menos elaboradas para enfrentar esse jogo. Apesar disso, no incomum encontrar pessoas que obtenham desempenho comparvel aos trabalhos citados utilizando estratgias simples, como a proposta neste trabalho. Esse um indcio de que nossa abordagem promissora e pode vir a gerar uma estratgia equiparvel aos trabalhos j feitos na rea.

4. Referncias
Berghman, L., Goossens, D., Leus, R. (2009) Efficient solutions for Mastermind using genetic algorithms, Computers & operations research, v.36, p.1880-1885. Temporel, A., Kovacs, T. (2003) A heuristic hill climbing algorithm for Mastermind, 2003 UK Workshop on Computational Intelligence proceedings, pp. 189-196.