UM JOGO DE DAMAS EVOLUTIVO

Documentos relacionados
PARCERIA APEA/SP E APCEF/SP

LOCAL: ASSOCIAÇÃO ATLÉTICA DO BANCO DO BRASIL A.A.B.B ENDEREÇO: AVENIDA SANTOS DUMONT S/N DATA: 29 DE OUTUBRO HORÁRIO: 8:00 HS

XADREZ REGRAS BÁSICAS INTRODUÇÃO O xadrez, diferentemente de muitos jogos, não depende de sorte. O desenvolver do jogo não depende do resultado de

Inteligência Computacional para Jogos Eletrônicos

1ª Colocação 10 pontos. 2ª Colocação 08 pontos. 3ª Colocação 06 pontos

Máquinas de Turing para construção: Foram encontrados dois modelos que se destacaram em nossas pesquisas.

Professor: Paulo Adolfo Kepler (Zé)

Paradigma Simbólico. Sistemas de Informação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 2)

Jogo de Damas. Alunos: Sávio Mendes de Figueiredo Sômulo Nogueira Mafra

Algoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva

Manual do Kiriki. Albert Astals Cid Eugene Trounev Tradução: Luiz Fernando Ranghetti

Departamento de Ciência de Computadores - FCUP Primeiro Teste de Inteligência Artificial / Sistemas Inteligentes (Duração: 2 horas)

ESTUDO DOS PARAMETROS DE UM ALGORITMO GENÉTICO PARA POSTERIOR USO NA SOLUÇÃO DE PROBLEMAS DO TIPO JOB-SHOP

d) A dama pode mover-se para qualquer casa ao longo da coluna, fileira ou diagonal em que se encontra.

JOGOS LIVRO REGRAS M AT E M Á T I CO S. 11.º Campeonato Nacional


Distribuição de Jogos por Ciclo

livro das regras (provisório)

Semáforo. Um tabuleiro retangular 4 por 3. 8 peças verdes, 8 amarelas e 8 vermelhas partilhadas pelos jogadores.

ALGORITMO GENÉTICO COMO REPRESENTAÇÃO DAS MUTAÇÕES NA BIOLOGIA

Gatos & Cães Simon Norton, 1970s

Gatos & Cães Simon Norton, 1970s

3. Resolução de problemas por meio de busca

Aula 6 TECNOLOGIA EM JOGOS DIGITAIS INTELIGÊNCIA ARTIFICIAL PARA JOGOS. Marcelo Henrique dos Santos

Aprendendo a jogar Xadrez

CAPÍTULO 1. Os elementos. O jogo de xadrez é um desafio para a mente. J. W. von Goethe O TABULEIRO DE XADREZ

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução

REGRAS DOS JOGOS do CNJM15

APÊNDICE C. Produto da Dissertação: Sequência de Atividades. Encontro 1 ( 2 períodos de 50 minutos)

ABC DO XADREZ GUIA DE APRENDIZAGEM

4 Implementação Computacional

Um Middleware de Inteligência Artificial para Jogos Digitais 105

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

Algoritmos Evolutivos Aplicados no Aprendizado em Jogos de Estratégia em Tempo Real

IF-705 Automação Inteligente Sistemas de Controle - Fundamentos

Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade,

Figura: Capa do Livro Hamburger, H., Richards, D. Logic and Language Models for Computer Science, Prentice Hall.

6 Estudos de Casos Porta Lógica OU de 4 Entradas

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 5. Aplicação Prática de Autômatos Finitos

5 Estudo de Caso e Resultados

Regulamento do Torneio de Matraquilhos

3 Algoritmos Genéticos

ENSINO MÉDIO INTEGRADO INFORMÁTICA LINGUAGEM DE PROGRAMAÇÃO Trabalho Semestral

MODELAGEM E IMPLEMENTAÇÃO DE JOGOS APLICADOS A APRENDIZAGEM DE MÁQUINA 1

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Tabuleiro. Movimento das peças (torre)

Introdução à Inteligência Artificial. Procura em contextos competitivos jogos (cont.)

Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

USO DE JOGOS LÓGICOS APLICADOS A APRENDIZAGEM DE MÁQUINA. 1

Inteligência Artificial Agentes Inteligentes

Campeonato de Gamão. 1. Regras. 2. Servidor

Max Pereira. Inteligência Artificial

Instituto de Informática. Departamento de Informática Aplicada

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula VI Busca Competitiva

Aprendizado por Árvores de Decisão

Microsoft Faculty Connection

APLICAÇÃO DE ALGORITMOS BIO-INSPIRADOS EM CONTROLE ÓTIMO

Técnicas de Inteligência Artificial

O Manual do Kiriki. Albert Astals Cid Eugene Trounev Tradução: José Pires

Organização e Arquitetura de Computadores

Implementação e Avaliação do Algoritmo MCTS-UCT para o jogo Chinese Checkers. Jhonny Moreira

Jogos. Geralmente o oponente tentará, na medida do possível, fazer o movimento menos benéfico para o adversário.

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 02

Técnicas de Inteligência Artificial

Turing to Norma, uma ferramenta para auxiliar o estudo da equivalência entre Máquina de Turing e Máquina Norma

Algoritmos Genéticos. Pontos fracos dos métodos tradicionais. Características de alguns problemas. Tamanho do espaço de busca- Ex. caixeiro viajante:

Sistemas de Numeração

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO

3 Métodos de Otimização

XADREZ NA UFG. Módulo I -Introdução. Prof. Dr. André Carlos Silva Profa. MSc. Elenice Maria Schons Silva

PROFESSORA: GEÓRGIA SOARES DISCIPLINA: EDUCAÇÃO FÍSICA CONTEÚDO: XADREZ AULA 2

INF 1771 Inteligência Artificial

4 Modelagem do jogador

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

INF INTELIGÊNCIA ARTIFICIAL TRABALHO 1 BUSCA HEURÍSTICA

Projeto Xadrez Entrega 01: Polimorfismo e Herança

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Desde o surgimento dos primeiros jogos eletrônicos em meados dos anos 50, uma infinidade de aparatos eletrônicos foram desenvolvidos, principalmente

21090 Programação e-fólio A 2016/2017. E-fólio A

Agentes Inteligentes. Inteligência Artificial

INF 1771 Inteligência Artificial

Algoritmos Genéticos

5ª Lista de Exercícios de Programação I

Manual do Bovo. Aron Bostrom Eugene Trounev Tradução: Luiz Fernando Ranghetti BOVO N 5

O JOGO DE XADREZ. Vamos conhecer as peças que compõe o jogo: O Tabuleiro

Design de Interface - Avaliação Final

I1, I2 e In são instruções simples ou estruturadas da linguagem Pascal.

Fabrício Jailson Barth BandTec

Jogo de Gamão. Introdução

Anatomia do motor de um programa de xadrez. Hugo Vinicius M. D. Santana Orientador: José Coelho de Pina

LINGUAGENS FORMAIS E AUTÔMATOS

Linguagens Regulares. Prof. Daniel Oliveira

Manual do KFourInLine. Martin Heni Eugene Trounev Benjamin Meyer Johann Ollivier Lapeyre Anton Brondz Tradução: Marcus Gama Revisão: Stephen Killing

Inteligência Artificial. Conceitos Gerais

Transcrição:

1 UM JOGO DE DAMAS EVOLUTIVO Leonardo Filipe Batista Silva de Carvalho 1*, Helio Cavalcante Silva Neto 1**, Roberta Vilhena Vieira Lopes 1*** 1 Mestrado em Modelagem Computacional de Conhecimento Universidade Federal de Alagoas (UFAL) Caixa Postal 57072-970 Maceió AL Brasil {*lfilipebsc, **helio.hx}@gmail.com, ***rvvl@fapeal.br Data de Submissão: 10/2009 GT1 - Jogos digitais e desenvolvimento Resumo. O aumento da capacidade computacional e da exigência dos usuários por jogos com comportamentos mais realistas fez crescer a importância das técnicas de Inteligência Artificial no ramo de jogos eletrônicos. Acadêmica e comercialmente, os jogos representam um importante nicho para a aplicação de variadas técnicas de inteligência artificial, devido a seu alto nível de interação com o usuário e sua variedade de gêneros de jogo. Buscando simular um adversário convincente ao usuário, optou-se pela abordagem evolucionária dos Algoritmos Genéticos, AG, que procuram realizar a melhor ação humana possível para uma dada situação. O presente artigo objetiva demonstrar o uso do AG no processo de tomada de decisão de um Jogo de Damas. Palavras-Chaves: Inteligência Artificial, Algoritmos Genéticos, Jogos e Jogo de Damas. 1. Introdução O termo Inteligência Artificial (IA) tem uso muito amplo na indústria de jogos, podendo referir-se a qualquer módulo de software responsável por comportamentos inteligentes realizados por componentes do jogo. Nesse contexto, o comportamento de jogadores virtuais, conhecido como NPCs (Non-Player Characters - personagens não jogáveis), é rotulado como IA (TATAI, 2003). A definição de IA dada por Russuell & Norvig (2004) pode ser entendida como o conjunto de programas de computador capazes de emular ações e pensamentos humanos. Essa definição não satisfaz plenamente a aplicação da IA a jogos, na qual pode-se definir a IA como o código dentro do jogo responsável por controlar jogadores virtuais (oponentes ou aliados) para que os mesmos aparentem tomar decisões inteligentes quando o jogo apresenta diversas opções para uma determinada situação (SCHWAB, 2004). Em tal contexto, o valor atribuído à aplicação de IA é que um jogador humano não consiga fazer diferença entre jogadores reais e virtuais (STERRETT, 2000). Esta perspectiva reflete-se juntamente à evolução da capacidade computacional, que não só tornou os jogos de computador/entretenimento eletrônico um mercado mundial de bilhões de dólares, como também, gradualmente, traz o foco da indústria de jogos para a aplicação de técnicas de IA. Desta forma, o uso de recursos de IA mais elaborados do que simples bases de regras tradicionais 1 pode constituir uma grande vantagem competitiva. Entretanto, a grande maioria dos jogos continua a ter uma

2 aplicação de IA baseada em métodos tradicionais como máquinas de estados, sistemas de regras e o uso de scripts, já que a própria estrutura destas técnicas possibilita sua aplicação a uma maior variedade de jogos. Por essa razão, o uso de técnicas mais avançadas em jogos comerciais, como redes neurais, algoritmos genéticos, lógica fuzzy, aprendizado de máquina e tantas outras, costuma restringir-se a casos isolados (TATAI, 2003). Tal evolução aumenta também a capacidade computacional das plataformas utilizadas, o que além dos perceptíveis avanços nas áreas lógicas e gráficas, permite um maior volume de dados processados para a inteligência dos jogos e reforça as afirmações de Peter Molyneux, um dos maiores projetistas de jogos da atualidade, que destaca em entrevistas e conferências que a IA é o futuro dos jogos (D.I.C.E, 2004) (TATAI, 2003). Partindo deste raciocínio, o presente artigo objetiva mostrar como um AG pode ser usado em um ambiente voltado a jogos de tabuleiro, para controlar o comportamento de um jogador virtual que procura, por meio da variação de sua estratégia de jogo, gerar diferentes configurações para uma dada configuração do tabuleiro, forçando seu adversário a considerar novas percepções sobre uma mesma configuração do tabuleiro. Note que o jogador virtual desta aplicação é passível de cometer erros em sua estratégia ou mesmo na avaliação do seu adversário, o que se deve ao foco da aplicação que não está em gerar um jogador virtual expert, ou, muito menos, imbatível. O foco está em gerar um jogador virtual que ajude o seu oponente (jogador humano) a aguçar seu raciocínio e desenvolver novas estratégias para o jogo. Neste contexto, foi desenvolvido um jogo de Damas baseado em computação evolucionária, onde o jogador disputa uma partida contra um oponente controlado por computador, cujo sistema de tomada de decisão para as jogadas é implementado por AG. A interação entre o jogador e a aplicação pode ser abstraída a partir do modelo da Figura 1. Figura 1. Modelo de Jogabilidade. O presente artigo está dividido em 6 seções. A seção 2 trata das regras do Jogo de Damas. A seção 3 discute a aplicação, em particular, suas funcionalidades e técnicas de IA secundárias que foram usadas no seu desenvolvimento. A seção 4 trata especificamente dos conceitos básicos de AG e do AG que foi implementado para esta aplicação, sendo que a seção 5 trata do desempenho da mesma. Por fim, a seção 6 discute as conclusões tiradas a partir do conhecimento adquirido neste artigo. 2. As regras do Jogo de Damas A aplicação de que trata este artigo foi desenvolvida usando o conjunto de regras adotadas no Brasil, sendo tal qual (XADREZ REGIONAL, 2002): i. Utiliza-se um tabuleiro de 64 casas, claras e escuras. A grande diagonal (a mais longa diagonal de casas escuras do tabuleiro) fica à esquerda

3 de cada jogador. O objetivo do jogo é imobilizar ou capturar todas as peças 2 do adversário. ii. O jogo é praticado entre dois parceiros: um com 12 pedras brancas de um lado; e outro com 12 pedras pretas do lado oposto. O lance inicial cabe sempre às pedras brancas. A Figura 2 ilustra essa situação. Figura 2. Disposição inicial do tabuleiro. Figura 3. Da captura de peças no Jogo de Damas. iii. A pedra anda para frente apenas uma casa de cada vez. Quando a pedra atinge a oitava linha do tabuleiro, é promovida à dama. iv. A dama anda para frente ou para trás quantas casas desejar. A dama não pode saltar sobre uma peça da mesma cor. v. A captura é obrigatória, não existe sopro (perda de uma peça devido a não realização de uma captura quando possível). Duas ou mais peças juntas na mesma diagonal não podem ser capturadas. Estes dois casos estão ilustrados na Figura 3. A dama ilustra a captura não permitida. vi. A pedra captura a dama e a dama captura a pedra. Pedra e dama têm o mesmo valor para capturar ou ser capturada. vii. A pedra e a dama podem capturar tanto para frente como para trás uma ou mais peças. viii. Se no mesmo lance se apresentar mais de um modo de captura, é obrigatório executar o lance que capture o maior número de peças. ix. A pedra que, durante o lance de captura de várias peças apenas passe por qualquer casa de coroação, sem aí parar, não será promovida à dama, como ilustrado na Figura 4. Figura 4. Captura passando por casa de coroação. Figura 5. Captura de várias peças. x. Na execução do lance de captura, é permitido passar mais de uma vez pela mesma casa vazia, mas não é permitido capturar duas vezes a mesma peça. Esta situação está ilustrada na Figura 5. xi. Além de não ser permitido capturar a mesma peça mais de uma vez na execução do lance de captura, peças que foram capturadas não podem ser retiradas do tabuleiro antes de se completar o lance de captura, como ilustrado na Figura 6. Figura 6. Captura e remoção de várias peças. xii. Após 20 lances sucessivos de damas, sem captura ou deslocamento de pedra, a partida é declarada empatada. xiii. Finais de partida de 2 damas contra 2 damas; 2 damas contra uma dama; 2 damas contra uma dama e uma pedra; uma dama contra uma dama; ou uma dama contra uma dama e uma pedra são declarados empatados após 5 lances.

4 Das regras apresentadas, apenas a regra viii conhecida como lei da maioria não foi implementada. A não implementação desta regra visa, principalmente, permitir ao AG uma maior liberdade de escolha da ação a se tomar, de forma a melhor avaliar se a ação que ele venha a escolher é realmente a que lhe trará mais benefícios. 3. Aplicação Ao iniciar a aplicação, o usuário é questionado se deseja ou não realizar o lance inicial. Respondendo sim, são atribuídas a ele as peças amarelas, caso contrário, ele recebe as peças cinza. Pode-se também optar por encerrar a aplicação, selecionando sair. Figura 7. Interface da aplicação. Figura 8. Parte superior esquerda. Iniciado o jogo, o usuário manipula a aplicação por meio da interface gráfica exibida na Figura 7, arrastando suas peças da origem ao destino desejado. Usuário e computador compartilham do mecanismo de validação dos lances, que usa as regras apresentadas na seção 2. A parte superior esquerda da interface exibe o número de peças atuais dos participantes, de 12 a zero para cada um, além de uma miniatura de suas respectivas damas, mostrada na Figura 8. A parte superior direita informa de quem é a jogada atual, bem como o resultado da partida ao seu término. Há também um botão para reiniciar a aplicação, como pode ser visto na Figura 9. A parte central direita exibe o histórico de jogadas de acordo com os caracteres que serão apresentados na seção 4, como ilustrado na Figura 10. Figura 9. Parte superior direita. Figura 10. Parte central direita. 3.1. Do controle da vez atual e do encerramento da partida O modelo tradicional de uma máquina de estados é um modelo de aceitação/reconhecimento de palavras, não trabalhando com ações e não sendo, portanto, adequado ao uso em jogos eletrônicos. Dois modelos incluem o uso de ações, o modelo de Moore e o modelo de Mealy. A definição dos dois modelos difere apenas com relação às saídas (as ações executadas pelos

5 estados). Formalmente estes modelos são definidos como uma tupla <Σ, Γ, S, S 0, δ, ω>, onde (Wagner et. al., 2006): Σ é o alfabeto de entrada (um conjunto de símbolos finitos não vazio); Γ é o alfabeto de saída (um conjunto de símbolos finitos não vazio); S é um conjunto finito de estados não vazio; S 0 é o estado inicial, um elemento de S; δ é a função de transição de estados: δ: S x Σ S; ω é a função de saída. Moore: A função de saída depende apenas do estado atual (ω: S Γ); Mealy: A saída é uma função composta pelo estado atual e o alfabeto de entrada (ω: S x Σ Γ). O ato de controlar quem tem a vez de jogar é feito pela máquina de estados finitos da aplicação. Nesta, a vez de cada participante constitui um estado. Foi necessária a implementação de uma estrutura própria ao controle das jogadas em razão de que, características, como qualidade e quantidade das peças do usuário e do computador, em conjunto com o número de lances realizados, deveriam ser verificadas a fim de dar ou não continuidade ao jogo. Figura 11. Modelo de máquina de estado da aplicação. A máquina de estados da aplicação desenvolvida aqui segue o modelo de Moore. É definida pelo modelo da Figura 11 e possui quatro estados de jogo que podem ser identificados como: o início da partida; a vez do usuário; a vez do computador; e o encerramento da partida. A implementação deste modelo respeita as seguintes características: A função de transição entre os estados da aplicação não é explícita, podendo ser considerada como o conjunto das operações de validação de uma jogada. As ações são tomadas pelos estados do jogo, que gerenciam quando e como cada ação é tomada. Cada estado tem seu conjunto de ações implementado em classes privadas da classe da máquina de estados. Início da partida: é o estado inicial da aplicação e questiona o usuário sobre quem deve ter o primeiro lance. A resposta é tomada como entrada e, com base nisso, define-se quem tem a vez de jogada. A vez do usuário: estado que efetiva um movimento realizado pelo usuário na interface gráfica, e verifica se houve ou não a conclusão da jogada. A jogada não é dada como concluída apenas na hipótese de um dos participantes - neste caso o usuário - estar efetuando a captura de vários adversários em uma única jogada. Também se verifica o encerramento da partida.

6 A vez do computador: neste estado efetua-se a jogada do computador e as demais operações pertinentes a esta ação. Corresponde à tomada de decisão do computador, realizada por meio de um AG e que será explicado na seção 4. Após a tomada de decisão, o estado verifica se houve o encerramento da partida. O encerramento da partida: a transição para este estado se dá quando o estado da vez usuário ou computador identifica que a partida chegou ao fim. Removem-se do tabuleiro de jogo quaisquer peças capturadas que ainda estejam em campo e encerra-se a execução da máquina de estados finitos, impedindo que os participantes realizem lances posteriores. 4. O algoritmo Genético O algoritmo genético, AG, usa uma metáfora com respeito ao seu material genético básico, de forma que gene e cromossomo são utilizados aqui para representar os insumos do problema em questão. Abaixo é apresentada a definição dos termos biológicos que serão usados no restante deste artigo, tomando como contexto o problema de um Jogo de Damas (CARVALHO, 2008): Indivíduo representação de uma possível configuração do tabuleiro; Cromossomo representação da estrutura de dados que constitui o indivíduo; População vetor de cromossomos, ou seja, o conjunto de possíveis resultados; Adaptação do indivíduo grau de qualidade do cromossomo como resultado para um dado problema; Seleção conjunto de critérios para determinar quais indivíduos da população terão seu material genético reaproveitado na busca de um resultado de melhor qualidade. Um AG atua sobre uma população P de indivíduos, que evolui através da ação de operadores genéticos, de forma a gerar uma nova população P tal que, os indivíduos de P sejam descendentes dos indivíduos de P (LOPES, 2003 apud HOLLAND, 1975). O modelo de AG proposto para este artigo considera uma população inicial formada por indivíduos que correspondem à configuração atual do tabuleiro. Novos indivíduos são gerados por meio da aplicação de operadores genéticos sobre os indivíduos da população atual, cada um correspondendo a uma possível jogada do computador. O AG implementado para este artigo usa de uma convenção para a construção de seus cromossomos, na qual, cada um é representado por um vetor de 64 caracteres, sendo que cada posição do vetor pode assumir um valor equivalente aos caracteres -, B, P, A, E, X ou Y; onde - representa uma casa desocupada; # representa uma casa que não pode ser ocupada; B representa uma casa ocupada com uma pedra branca; P representa uma casa ocupada com uma pedra preta; A representa uma casa ocupada com uma dama branca; E representa uma casa ocupada com uma dama preta; X representa uma casa ocupada com uma peça do jogador computador capturada; e Y representa uma casa ocupada com uma peça do jogador humano capturada. Para esta aplicação, convenciona-se ainda que o cromossomo deve obedecer as seguintes restrições:

7 O número de peças pretas ou brancas não pode ultrapassar 12; Cada caractere ocupa uma posição i do vetor que representa o cromossomo, tal que 0 i < 64; Se o quociente de i por 8 for par: As posições ímpares serão ocupadas pelo caractere #; As posições pares poderão ser ocupadas pelos caracteres P, B, A, E, X, Y, -. Se o quociente de i por 8 for impar: As posições pares serão ocupadas pelo caractere #; As posições ímpares poderão ser ocupadas pelos caracteres P, B, A, E, X, Y, -. Assim o cromossomo correspondente a configuração inicial do tabuleiro pode ser representado como <#, P, #, P, #, P, #, P, P, #, P, #, P, #, P, #, #, P, #, P, #, P, #, P, -, #, -, #, -, #, -, #, #, -, #, -, #, -, #, -, B, #, B, #, B, #, B, #, #, B, #, B, #, B, #, B, B, #, B, #, B, #, B, #>, separando-se os caracteres de oito em oito posições e substituindo a vírgula por um espaço em branco. Esta configuração corresponde à exibida na Figura 2. É importante destacar que esta seção utiliza a convenção tradicional de cores adotadas para as peças do Jogo de Damas. Para a aplicação, considere que as peças brancas são representadas na cor amarela e as peças pretas são representadas na cor cinza. Diferente do modelo tradicional de Holland (LOPES, 2003 apud HOLLAND, 1975), nesta aplicação, não há o cálculo do fator de adaptação antes da operação de seleção, visto que uma nova jogada sempre deve ser gerada. Por esta mesma razão, a operação de seleção atua sobre toda população e, basicamente, seleciona os indivíduos que representem peças que possuam ao menos uma casa de suas diagonais para onde seja possível realizar um movimento. No que diz respeito ao uso dos operadores responsáveis por alterar o material genético dos cromossomos da população P, na busca por novos cromossomos que melhor atendam ao problema, o AG deste artigo faz uso apenas do operador de mutação, utilizando dois tipos distintos do operador: a mutação por troca e a mutação por substituição. A mutação por troca (LOPES, 2003), recebe um cromossomo a=<a 1,a 2,...,a i,a j,...,a 64 > e retorna um cromossomo a =<a 1,a 2,...,a j,a i,...,a 64 >, onde 1 i < j 64. Já a mutação por substituição trata-se de uma extensão daquela proposta por Holland com alfabeto binário (LOPES, 2003 apud HOLLAND, 1975). A operação recebe um cromossomo a=<a 1,a 2,...,a i,a j,...,a 64 > e um alfabeto U e devolve um cromossomo a=<a 1,..., a i,..., a j,..., a 64 >, no qual as posições aleatórias i e j selecionadas, com 1 i < j 64, e os caracteres que ocupam tais posições em negrito no cromossomo correspondem aos caracteres complemento dos caracteres a i e a j no alfabeto U. O grau de adaptação de um cromossomo é calculado avaliando o quão bom é o movimento que ele representa, tomando-se pesos cumulativamente maiores para captura de peças adversárias e cumulativamente menores para a perda das próprias peças. Os pesos usados na implementação foram: -5 para uma peça perdida para o usuário; 2 para um lance simples que não resulta em captura; e 3 para um lance que resulta na captura de uma peça do usuário. Tais valores foram atribuídos de acordo com testes que visavam o melhor desempenho do computador em resposta às jogadas do usuário.

8 Só após a avaliação do melhor próximo movimento é que ocorre a operação de substituição, que leva em conta dois fatores. O primeiro analisa se é ou não possível mover uma peça. O segundo verifica se há a possibilidade de capturar uma peça adversária e tem prioridade sobre o primeiro fator, sendo que, quando satisfeito, dos cromossomos gerados, apenas aqueles que correspondam a uma captura irão fazer parte da nova população, garantindo a regra v da seção 2. Em ambos os casos, o novo indivíduo mais adaptado corresponderá a jogada do computador. 4.1. Da implementação do Algoritmo Genético. Além do que foi discutido no início desta seção, pontos relevantes ao AG da aplicação dizem respeito à representação do cromossomo, para a qual foi adotado o modelo proposto por Antonisse (1989), que representa o cromossomo por meio de vetores alfanuméricos de comprimento fixo com ou sem repetições, de forma a melhor representar o problema proposto (LOPES, 2003). Destaca-se também que quando o computador realiza a captura de várias peças adversárias em um único lance, ainda que a ação pudesse ser executada de forma continua pelo AG, o efeito visual para o usuário de várias peças desaparecendo do tabuleiro não é o ideal. Em razão disso, dois métodos de geração de cromossomos foram implementados (CARVALHO, 2008). O primeiro deles chama a geração da população e, após a mutação dos cromossomos de cada indivíduo, os encaminha para a avaliação que determinará seu fator de adaptação. Este método possui as seguintes funcionalidades: Varredura do tabuleiro para determinar se há peça do computador que possa capturar um adversário. Em caso afirmativo, a população é gerada unicamente por tal cromossomo ou cromossomos, os quais terão como destinos possíveis apenas as casas que possibilitem essa ação. Do contrário, o algoritmo gera uma população composta por cada peça do computador atualmente no tabuleiro de jogo. Devido ao grande espaço amostral, a aleatoriedade do AG ocorre após a diminuição do domínio de busca, restringindo-o apenas aos espaços diagonais à posição atual da peça. Para garantir um movimento de captura, o AG faz uso de um vetor de objetos com todas as informações sobre a peça ou peças que pode desempenhar tal ação, gerando uma população formada unicamente de cromossomos criados a partir dessa informação. Em ambos os casos, os valores gerados para as casas que a peça poderia acessar são individualmente avaliados de forma a atender as regras do jogo. A ocorrência do segundo método se dá apenas quando existe a possibilidade de continuar a jogada iniciada. Neste caso, cria-se um objeto que contém todas as informações pertinentes à que se está usando em tal jogada, sendo tal objeto usado pelo AG na criação de um indivíduo que possa efetivamente continuar o movimento. 5. Desempenho da Aplicação Na análise do desempenho da aplicação, tomando como base o tipo de peça utilizada nos movimentos do computador, pode-se perceber que as pedras mostram um desempenho superior sobre as damas. Situação que se

9 deve ao fato de que a função de adaptação do AG implementado não gerou nenhuma especificidade para a dama, considerando simplesmente o controle do menor raio de ação da dama a ser movimentada. Tal fato pode mesmo gerar jogadas em que o computador entrega sua dama para o adversário, mesmo sendo notável a possibilidade de outro movimento que não resultasse nesta situação. Em outras palavras, ainda que fosse possível realizar uma jogada que mantivesse a dama em segurança, a escolha simplesmente recaiu nesta situação. Esta ocorrência é vista com menor freqüência nas pedras devido ao seu menor raio de ação. De forma análoga, o fator de escolha aleatório, em conjunto com o grande raio de ação de uma dama, dificulta às damas do computador a captura de vários adversários em uma única jogada, uma vez que, para isto, é necessário que o fator aleatório do AG recaia na posição exata do tabuleiro que permita tal ação. Um problema semelhante dificulta que as peças do computador se defendam de uma dama do jogador humano. Este conjunto de fatores levou a constatação de que a aplicação mostrou um desempenho satisfatório quando confrontada por adversários que poderiam ser grosseiramente rotulados como medianos, que seriam aqueles habituados às regras do jogo, mas que o praticam apenas esporadicamente. Para este caso, a aplicação mostrou-se capaz de derrotar o jogador humano na maioria das vezes. De forma análoga, a aplicação mostrou maior dificuldade ao enfrentar adversários mais avançados, que para este artigo, são aqueles que praticam o jogo com uma freqüência maior que os jogadores medianos, ou que simplesmente estão mais habituados a tarefas que exijam a ponderação de uma situação do ponto de vista do raciocínio lógico. Contra tais jogadores, a aplicação apresentou uma maior freqüência de derrotas do que de vitórias. O gráfico da Figura 12 apresenta a relação de vitórias e derrotas do jogador virtual, com base na estimativa de jogadores e partidas que foram presenciadas do momento da concepção da aplicação até a escrita deste artigo. 100% 50% 0% 8% 8% Avançado 84% 52% 22% 26% Mediano Vitória do Jogador Virtual Empate Derrota do Jogador Virtual Figura 12. Estimativa entre as vitórias e derrotas do jogador virtual. 6. Conclusão Este artigo propôs e implementou um AG diretamente na estrutura de tomada de decisão de um jogo eletrônico, no caso um Jogo de Damas baseado no conjunto de regras de jogo adotado no Brasil. Com isso, o que se procurou foi agilizar o tempo de resposta da IA em relação aos lances do usuário e avaliar se o desempenho adquirido é, ou não, suficientemente satisfatório para a adoção da técnica no lugar de outros mecanismos de busca. Contudo, o que se observou foi um jogador virtual instável e capaz de realizar alguns lances que poderiam mesmo ser considerados inadequados. Tais resultados são suficientes para voltarmos à atenção à forma como se deu o desenvolvimento da função de avaliação e da atuação dos operadores

10 genéticos, para garantir ao AG um comportamento mais instável e satisfatório no confronto com adversários humanos. Entretanto, isto precisaria ser feito com base em um sistema de aquisição de informação adaptada ao perfil do usurário para não eliminar a ocorrência de erros e enganos do jogador virtual, o que lhe atribui uma importante característica do comportamento humano. Notas 1 Por bases de regras tradicionais, entendam-se as primeiras regras de ação-reação, às quais os primeiros jogos normalmente respondiam, como por exemplo, estruturas if-then-else do tipo hardcoded, prática pouco flexível e que gera várias complicações caso seja necessário realizar alguma alteração no código. 2 Neste artigo, o termo peça pode referir-se a um componente do jogo que foi, ou não, promovido. O termo pedra referencia uma peça que não foi promovida e dama referencia uma peça que foi promovida. Referências ANTONISSE H. J. (1989), A New Interpretation of the Schema Notation that Overturns the Binary Encoding Constraint. Proc. 3 rd International Conf on Genetic Algorithms, Morgan-Kaufmann. CARVALHO, L. F. (2008), Um Jogo de Damas Evolutivo. Trabalho de conclusão de curso, Instituto de Computação - IC, Universidade Federal de Alagoas - UFAL. Maceió, 18 de abril de 2008. D.I.C.E. Summit (Design, Innovate, Communicate, Entertain) - Academy of Interactive Arts and Sciences, Las Vegas. Disponível em: <http://archive.gamespy.com/gdc2004/molyneux/>. Acessado em 19 out. de 2009. LOPES, R. V. V. (2003), Um Algoritmo Genético Baseado em Tipos Abstratos de Dados e sua Especificação em Z. Dissertação de doutorado em informática, Centro de Informática - CI, Universidade Federal de Pernambuco - UFPE. RUSSUEL, S. & NORVIG, P. (2004), Inteligência Artificial, 2ª edição, Campus. SCHWAB, B. (2004), AI Game Engine Programming, 1ª edição, Charles River Media. STERRETT, S. G. (2000), Turing's Two Tests for Intelligence. Minds and Machines 10. pag. 541 559. Holanda, 2000. TATAI, V. K. (2003), Técnicas de sistemas inteligentes aplicadas ao desenvolvimento de jogos de computador. Dissertação de mestrado em engenharia elétrica, Faculdade de Engenharia Elétrica e de Computação - Feec, Universidade Estadual de Campinas - UNICAMP. Campinas. WAGNER, F. SCHMUKI, R. WAGNER, T. WOLSTENHOLME, P. (2006), Modeling Software with Finite State Machines: A Practical Approach. CRC Press. XADREZ REGIONAL (2002), Jogo de Damas - Regras Oficias. Disponível em: http://www.xadrezregional.com.br/regrasdm.html, último acesso em 01 de abril de 2008.