técnicas de inteligência artificial aplicadas ao jogo othello

33
VINÍCIUS GOMES QUAGLIO TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO OTHELLO: UM ESTUDO COMPARATIVO LONDRINA–PR 2013

Upload: lenguyet

Post on 10-Jan-2017

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: técnicas de inteligência artificial aplicadas ao jogo othello

VINÍCIUS GOMES QUAGLIO

TÉCNICAS DE INTELIGÊNCIA ARTIFICIALAPLICADAS AO JOGO OTHELLO: UM ESTUDO

COMPARATIVO

LONDRINA–PR

2013

Page 2: técnicas de inteligência artificial aplicadas ao jogo othello
Page 3: técnicas de inteligência artificial aplicadas ao jogo othello

VINÍCIUS GOMES QUAGLIO

TÉCNICAS DE INTELIGÊNCIA ARTIFICIALAPLICADAS AO JOGO OTHELLO: UM ESTUDO

COMPARATIVO

Trabalho de Conclusão de Curso apresentadoao curso de Bacharelado em Ciência da Com-putação da Universidade Estadual de Lon-drina para obtenção do título de Bacharel emCiência da Computação.

Orientador: Profa. Ms. Helen Cristina de M.Senefonte

LONDRINA–PR

2013

Page 4: técnicas de inteligência artificial aplicadas ao jogo othello

QUAGLIO, V. G.. Técnicas de Inteligência Artificial aplicadas ao JogoOthello: Um estudo comparativo. 31 p. Trabalho de Conclusão de Curso(Graduação). Bacharelado em Ciência da Computação – Universidade Esta-dual de Londrina, 2013.

RESUMO

Othello é um jogo determinístico soma-zero de dois jogadores com infor-mação perfeita, jogado em um tabuleiro 8 X 8. Este trabalho ter por objetivo im-plementar um agente inteligente jogador de Othello, a fim de investigar o uso edesempenho de técnicas de inteligência artificial aplicadas à jogos, disponibilizandoum estudo comparativo prático para futuros testes de agentes inteligentes de jo-gos. Para realizar este estudo, algumas técnicas serão implementadas e observadasdurante jogos, extraindo assim informações sobre estas.

Palavras-chave: othello. inteligência artificial. q-learning.

Page 5: técnicas de inteligência artificial aplicadas ao jogo othello

QUAGLIO, V. G.. Artificial Intelligence techniques applied to theOthello game: a comparative study. 31 p. Final Project (Undergradua-tion). Bachelor of Science in Computer Science – State University of Londrina,2013.

ABSTRACT

Othello is a deterministic zero-sum game of two players with perfect in-formation, played on a board 8 X 8. This work aims to implement an intelligentagent player Othello in order to investigate the use and performance of artificialintelligence techniques applied to games, providing a comparative study for futurepractical tests of intelligent agents games. To conduct this study, some techniquesare implemented and observed during games, thereby extracting information aboutthese.

Keywords: othello. artificial intelligence. q-learning.

Page 6: técnicas de inteligência artificial aplicadas ao jogo othello
Page 7: técnicas de inteligência artificial aplicadas ao jogo othello

LISTA DE ILUSTRAÇÕES

Figura 1 – Início da Árvore de Jogo 8-puzzle. . . . . . . . . . . . . . . . . . . . . . 16Figura 2 – Aprendizado por Reforço. . . . . . . . . . . . . . . . . . . . . . . . . . 20Figura 3 – Configuração Inicial do Otthelo. . . . . . . . . . . . . . . . . . . . . . . 21

Figura 4 – Ambiente Padrão Othello. . . . . . . . . . . . . . . . . . . . . . . . . . 23

Page 8: técnicas de inteligência artificial aplicadas ao jogo othello
Page 9: técnicas de inteligência artificial aplicadas ao jogo othello

LISTA DE TABELAS

Tabela 1 – Avanços em Programas para Othello . . . . . . . . . . . . . . . . . . . 21

Page 10: técnicas de inteligência artificial aplicadas ao jogo othello
Page 11: técnicas de inteligência artificial aplicadas ao jogo othello

LISTA DE ABREVIATURAS E SIGLAS

IA Inteligência Artificial

Page 12: técnicas de inteligência artificial aplicadas ao jogo othello
Page 13: técnicas de inteligência artificial aplicadas ao jogo othello

SUMÁRIO

Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1 Fundamentação Teórica . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.1 Inteligência Artificial em Jogos . . . . . . . . . . . . . . . . . . . . . . . 15

1.1.1 Árvores de Jogos . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.1.2 Algoritmo Minimax . . . . . . . . . . . . . . . . . . . . . . . . . . 161.1.3 Algoritmo Poda Alfa-Beta . . . . . . . . . . . . . . . . . . . . . . 17

1.2 Aprendizado de Máquina . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.2.1 Aprendizado Supervisionado . . . . . . . . . . . . . . . . . . . . . 191.2.2 Aprendizado Não Supervisionado . . . . . . . . . . . . . . . . . . 191.2.3 Aprendizado por Reforço . . . . . . . . . . . . . . . . . . . . . . . 19

1.3 O Jogo Othello . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.3.1 Regras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

1.4 Othello e IA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2 Ambiente Othello e técnicas de Inteligência Artificial . . . . . . . . . . 232.1 Ambiente Padrão Othello . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2 MiniMax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.3 Jogador Artificial de Teste . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4 Próximas Etapas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.1 Poda Alpha-Beta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.2 Q-Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.3 Competições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.4 Análise dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5 Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Page 14: técnicas de inteligência artificial aplicadas ao jogo othello
Page 15: técnicas de inteligência artificial aplicadas ao jogo othello

13

INTRODUÇÃO

Em meados do século anterior, começaram as primeiras tentativas científicas parainventar máquinas inteligentes [1]. Entre os pioneiros, estão Shannon [2] que, em seuartigo de 1950, propõe um programa capaz de jogar xadrez, Turing [3] em 1953 tambémabordou xadrez e busca em árvore de jogos. Desde então, jogos populares em todo mundocomo Xadrez, Damas, Othello, Go, Poker, entre outros, têm sido alvo de pesquisas emInteligência Artificial, sempre no intuito de superar a supremacia humana [1].

Othello é um jogo de dois jogadores, com um tabuleiro 8 x 8 e 64 discos que sãobrancos de um lado e pretos no outro. Em cada movimento, o jogador deve necessaria-mente fazer com que pelo menos uma peça adversária seja cercada dos dois lados pelassuas peças, transformando a peça cercada em peça própria. O objetivo é terminar o jogopossuindo maior número de peças que o adversário.

Esse trabalho tem como objetivo investigar o uso de técnicas de inteligência ar-tificial aplicada à jogos, realizando um estudo comparativo através de implementações etestes práticos no jogo Othello.

No Capítulo 1 são descritos os principais conceitos de Inteligência artificial aplicadaà jogos, características e funcionamento do jogo Othello bem como os avanços da áreade IA relacionados ao Othello. No Capítulo 2 é descrita a evolução do trabalho até omomento e no Capítulo 3 são apresentadas os primeiros resultados. As próximas etapase Considerações Finais se encontram nos Capítulos 4 e 5, respectivamente, e por fim, asreferências bibliográficas.

Page 16: técnicas de inteligência artificial aplicadas ao jogo othello
Page 17: técnicas de inteligência artificial aplicadas ao jogo othello

15

1 FUNDAMENTAÇÃO TEÓRICA

1.1 INTELIGÊNCIA ARTIFICIAL EM JOGOS

Uma das primeiras tarefas empreendidas em Inteligência Artificial (IA) foi a parti-cipação em jogos [4]. Por anos tem sido um tópico fascinante para IA, rendendo, nasúltimas duas décadas, grandes avanços em jogos clássicos de tabuleiro [5]. De acordo comMandziuk [5], algumas questões ainda podem ser exploradas, na área de IA em relaçãoaos jogos, tais como:

∙ A implementação de mecanismos autônomos capazes de descobrir conhecimento como propósito de criar novas estratégias de jogo;

∙ A melhoria do comportamento do jogador artificial baseado apenas no conhecimentoobtido através de jogos anteriores;

∙ E a implementação de mecanismos que simulem a intuição humana.

O objetivo final, no uso de técnicas de IA em jogos é a construção de um agente jogadorde vários jogos, verdadeiramente autônomo, como o ser humano [5].

As diversas técnicas de IA aplicadas em jogos podem variar e apresentar desempe-nhos diferentes de acordo com as características do problema. Por exemplo, considerandoa classe dos jogos com dois jogadores, em que um faz o primeiro movimento, seguido dooutro jogador, e revezam-se até o jogo terminar, Russell e Norvig [4] definem um jogocomo um problema de busca com os componentes a seguir:

∙ Estado Inicial - Determina a posição das peças no tabuleiro e o jogador que fará omovimento inicial.

∙ Função Sucessor - Retorna uma lista de pares com as ações válidas e o respectivoestado resultante.

∙ Teste de Término - Indica quando o jogo acabou. Estados terminais são os estadosonde o jogo é encerrado.

∙ Função Utilidade - Retorna o resultado do jogo. Pode ser vitória, derrota ou empateem alguns jogos. Mas existem outros com mais variedade de resultados.

Através destes componentes é possível construir uma árvore, estrutura de dadoscomumente utilizada para representar o conjunto de estados de um jogo.

Page 18: técnicas de inteligência artificial aplicadas ao jogo othello

16 Capítulo 1. Fundamentação Teórica

1.1.1 Árvores de Jogos

A configuração inicial e os movimentos válidos para dois jogadores definem umaárvore, em que as folhas são os estados terminais e a raiz é o estado inicial. Essa árvore échamada árvore do jogo. Os dois jogadores podem ser chamados de MIN e MAX1, sendoque o último faz o primeiro movimento e prosseguem com turnos alternados. Cada folhapossui um valor associado que representa o resultado do jogo pelo ponto de vista de MAX.[4]

Na figura 1, são mostrados os primeiros níveis da árvore de jogo do quebra cabeça8-puzzle, que consiste em um jogo de tabuleiro com blocos deslizáveis. O objetivo do jogoé mover as peças a partir de um estado inicial até que esteja em seu estado final e só épossível deslizar o bloco vazio.

Figura 1 – Início da Árvore de Jogo 8-puzzle.

Uma estratégia ótima é aquela em que o estado terminal alcançado representeum estado objetivo, uma vitória. Portanto, para o jogo, a estratégia deve especificar omovimento inicial de MAX e seus movimentos seguintes a cada possível resposta de MIN.[4]

O valor minimax em cada nó, dada uma árvore de jogo, é a utilidade de seencontrar no estado que leve ao melhor estado final, ou seja, uma pontuação. Através dovalor minimax é possível definir uma estratégia ótima.

1.1.2 Algoritmo Minimax

O algoritmo minimax utiliza computação recursiva dos valores de minimax decada estado sucessor para calcular a decisão minimax a partir do estado corrente [4].A estratégia é, em cada nível da árvore, tentar maximizar a pontuação do jogo (para1 O motivo dos nomes MIN e MAX dos jogadores ficarão mais claros na seção 1.1.2.

Page 19: técnicas de inteligência artificial aplicadas ao jogo othello

1.1. Inteligência Artificial em Jogos 17

MAX) e minimizar a pontuação do adversário (MIN). Por isso, o algoritmo é denominadoMiniMax.

O algoritmo percorre em profundidade a árvore completa do jogo. A complexidadede tempo é 𝑂(𝑏𝑚), onde m é a profundidade máxima e b o número de movimentos válidosem cada ponto. [4]

O código do Minimax é apresentado no Algoritmo 1.

Algoritmo 1: MiniMaxbegin miniMax (no_corrente)

if ehFolha(no_corrente) thenreturn pontuacao(no_corrente);

endif ehNoMin(no_corrente) then

return min(miniMax(filhosDe(no_corrente)));endif ehNoMax(no_corrente) then

return max(miniMax(filhosDe(no_corrente)));end

end

Apesar da utilização do algoritmo MiniMax garantir a estratégia ótima, a buscapela árvore completa do jogo pode não ser viável para a maioria dos jogos, pois o número deestados que a busca tem que examinar é exponencial em relação ao número de movimentos.

1.1.3 Algoritmo Poda Alfa-Beta

Através da poda alfa-beta, é possível tornar a busca por um bom movimento maiseficiente removendo seções da árvore de jogo que não compensam examinar [6], ou seja,aquelas seções onde sabemos que o melhor movimento já não pode mais ser encontrado.Esse artifício pode reduzir o expoente de tempo do algoritmo MiniMax, retornando omesmo movimento [4].

Segundo Coppin [6], o algoritmo é implementado da seguinte forma:

∙ A árvore de jogo é percorrida em profundidade. Para cada nó que não seja um folha,é armazenado um valor, chamado 𝛼 para nós Max e 𝛽 para nós Min.

∙ 𝛼 é o valor máximo encontrado até o momento entre os descendentes dos nós Max

∙ 𝛽 é o valor mínimo encontrado até o momento entre os descendentes dos nós Min

Os parâmetros 𝛼 e 𝛽 dão nome à técnica, que atualiza os valores de 𝛼 e 𝛽 e encerraa chamada recursiva de um nó corrente se o valor deste for pior que o valor de 𝛼 paraMax ou pior que 𝛽 para Min [4].

Page 20: técnicas de inteligência artificial aplicadas ao jogo othello

18 Capítulo 1. Fundamentação Teórica

O código pode ser encontrado no Algoritmo 2.

Algoritmo 2: Poda Alfa Betabegin alfaBeta (no_corrente, alfa, beta)

if ehRaiz(no_corrente) thenalfa = −∞;beta = ∞;

endif ehFolha(no_corrente) then

return pontuacao(no_corrente)endif ehNoMax(no_corrente) then

alfa = max(alfa, alfaBeta(filhos, alfa, beta));if alfa >= beta then

cortarBuscaAbaixo(no_corrente);end

endif ehNoMin(no_corrente) then

beta = min(beta, alfaBeta(filhos, alfa, beta));if beta <= alfa then

cortarBuscaAbaixo(no_corrente);end

endend

1.2 APRENDIZADO DE MÁQUINA

O objetivo do aprendizado é que o agente utilize as percepções ou interações como ambiente para, além de agir ou tomar decisões, melhorar sua habilidade de realizaressas atividades no futuro. O aprendizado pode variar desde a memorização trivial daexperiência até a criação de teorias científicas inteiras. [4] O aprendizado de máquina éútil quando não é possível ou não é viável descrever detalhadamente todo o ambiente edecisões do agente. [4]

A adaptação do jogo para ações do jogador e a capacidade de um personagemdo jogo melhorar de acordo com a experiência são alguns benefícios ou razões para autilização do aprendizado de máquina em jogos.

Em alguns problemas de aprendizado de máquina, a tarefa é aprender a classificarentradas, para isso, o sistema de aprendizado possui um conjunto de dados de treinamento.Então, a partir dos dados de treinamento, o sistema tenta aprender a classificar estesmesmos dados e também novos dados não observados. [6]

O aprendizado de máquina normalmente é classificada de três formas: aprendi-zado supervisionado, aprendizado não supervisionado e aprendizado por reforço. [4] A

Page 21: técnicas de inteligência artificial aplicadas ao jogo othello

1.2. Aprendizado de Máquina 19

investigação inicial deste trabalho será no contexto do aprendizado por reforço.

1.2.1 Aprendizado Supervisionado

Aprendizado supervisionado consiste na aprendizagem de uma função a partir deexemplos de entradas e saídas. Em ambientes completamente observáveis, o agente poderáobservar os efeitos causados por suas ações, e poderá utilizar métodos de aprendizadosupervisionado para aprender a prevê-los. Em ambientes parcialmente observáveis, osefeitos imediatos podem não ser visualizados pelo agente, dificultando o problema. [4]Alguns exemplos de utilização são o diagnóstico de casos médicos e a avaliação de riscode crédito de candidatos a empréstimos.

1.2.2 Aprendizado Não Supervisionado

No aprendizado não supervisionado, o problema consiste em aprender padrõesquando não são fornecidos valores de saídas específicos, ou seja, os métodos de aprendizadonão supervisionado aprendem sem a intervenção de um supervisor. [6, 4]

Um exemplo é o mapa de Kohonen, uma rede neural capaz de aprender a clas-sificar um conjunto de dados de entrada sem receber dados de treinamento e sem terconhecimento de quais são as classificações. [6]

1.2.3 Aprendizado por Reforço

No aprendizado por reforço (AR), o agente observa o ambiente e toma uma ação. Oambiente então responde com um reforço e segue para um próximo estado. Em seguida,com o ambiente em um novo estado, o agente deve tomar outra ação, recebendo doambiente outro reforço, e assim segue o ciclo. A tarefa do agente é aprender de acordocom os reforços recebidos. [7] A Figura 2 exemplifica este processo.

O reforço é uma medida de desempenho utilizado para avaliar a qualidade daação realizada pelo agente. Este pode ser positivo ou negativo, conhecido também comorecompensa ou punição, respectivamente. [8]

De acordo com [8], os principais elementos do aprendizado por reforço são:

∙ Agente - é a entidade que percebe o mundo à sua volta, aprende e decide qual açãotomar em cada estado.

∙ Ambiente - tudo que é exterior ao agente.

∙ Reforço - é a medida de desempenho dada ao agente em forma de punição ourecompensa por executar um ação.

Page 22: técnicas de inteligência artificial aplicadas ao jogo othello

20 Capítulo 1. Fundamentação Teórica

Figura 2 – Aprendizado por Reforço.

∙ Estado - representa o ambiente em determinado instante.

∙ Ação - ato realizado pelo agente.

Um exemplo de algoritmo de AR é o Q-learning, utilizado por um agente aprendizpara qualificar pares estado-ação de acordo com o objetivo do agente. Esta qualificação éatualizada a cada iteração com o ambiente. [8]

1.3 O JOGO OTHELLO

Othello é um jogo de tabuleiro determinístico soma-zero de dois jogadores cominformação perfeita [9]. Um jogo soma-zero é aquele em que o placar final para cada jogarpode ser uma vitória, derrota ou empate. Jogos com informação perfeita são aqueles emque é possível visualizar completamente o estado do jogo, diferente de jogos como o pôqueronde os jogadores escondem informações de seus oponentes. [6]

1.3.1 Regras

Othello é jogado em um tabuleiro 8 x 8 com 64 discos que são brancos de um ladoe pretos no outro. Enquanto um jogador coloca os discos no lado branco, o outro colocano lado preto.[7] O jogo se inicia com dois discos de cada cor, assim como na Figura 3.

Em cada movimento, o jogador deve necessariamente fazer com que pelo menosuma peça adversária seja cercada dos dois lados pelas suas peças. As peças adversáriascercadas são transformadas em peças próprias. O objetivo dos jogadores nesse jogo édeixar no tabuleiro o maior número de fichas com sua cor.

1.4 OTHELLO E IA

Em 1997, o então campeão mundial Takeshi Murakami foi derrotado pelo programade Michael Buro, o Logistello. Em seu discurso durante o evento, o Sr. Murakami disse

Page 23: técnicas de inteligência artificial aplicadas ao jogo othello

1.4. Othello e IA 21

Figura 3 – Configuração Inicial do Otthelo.

que não se sentiu em uma partida contra um simples programa de computador, massim contra gerações de engenheiros e matemáticos. [10] Buro [11], em 2002, descreve aevolução dos principais programas de Othelo, desde simples algoritmos até sistemas deaprendizado que superaram a habilidade humana de jogar. A tabela 1 sintetiza os avançosdescritos por Buro.

Ano Programa Característica1982 Iago Função de avaliação manual1990 Bill Padrão baseado em partes, utilização de pesos1994 Logistello 1 Aprendizagem independente de valores padrão1997 Logistello 2 Aprendizagem conjunta de valores padrão

Tabela 1 – Avanços em Programas para Othello

Gunawan et al [12] publicaram em 2012, um trabalho sobre Othello que une RedesNeurais e Algoritmos Genéticos formando Redes Neurais Evolutivas. Redes Neurais tam-bém podem ser encontradas em [9]. O uso do aprendizado por reforço no jogo othello éabordado por Eck e Wezel [7], em 2008 e por Kim et al [13] em 2007. Estudo comparativode dois algoritmos de aprendizado para aquisição de funções de avaliação para o jogoOthello pode ser encontrado em [14], de 2006.

Page 24: técnicas de inteligência artificial aplicadas ao jogo othello
Page 25: técnicas de inteligência artificial aplicadas ao jogo othello

23

2 AMBIENTE OTHELLO E TÉCNICAS DE IN-TELIGÊNCIA ARTIFICIAL

2.1 AMBIENTE PADRÃO OTHELLO

Desenvolvido utilizando a linguagem Java, o ambiente padrão Othello tem sualógica principal na classe "Tabuleiro", onde o tabuleiro propriamente dito é uma matriz 8x 8 que, em cada posição, existe uma instância da classe "Casa", esta podendo estar nosestados "Vazio", "Disponível", "Branco"ou "Preto". O ambiente padrão Othello duranteuma partida é mostrado na figura 4.

Figura 4 – Ambiente Padrão Othello.

Só é permitido executar um movimento se a casa onde pretende-se jogar estiverno estado "Disponível", portanto, é possível afirmar que todas as jogadas executadas são

Page 26: técnicas de inteligência artificial aplicadas ao jogo othello

24 Capítulo 2. Ambiente Othello e técnicas de Inteligência Artificial

válidas. Feito um movimento, a primeira rotina é a de captura que, a partir da casa ondeo movimento foi realizado, percorre o tabuleiro em todos os sentidos e direções à procurade uma casa com o disco da mesma cor que a do jogador atual. Ao encontrar uma casacom um disco do jogador adversário, a busca continua, ao encontrar uma casa com umdisco do jogador atual, todas as casas que possuiam discos adversários entre essa casa e acasa de partida passam a ser do jogador atual e, ao encontrar uma casa vazia ou a bordado tabuleiro, a busca pára nessa direção e começa a próxima busca. Ao todo são oitobuscas, sendo estas: para direita, esquerda, para cima, para baixo, para diagonal superiordireita, diagonal superior esquerda, diagonal inferior direita e diagonal inferior esquerda.

Após a conclusão da captura, é feita a verificação de casas disponíveis para opróximo movimento. Para cada casa vazia do tabuleiro são feitas buscas similares à decaptura, marcando a casa como disponível se na próxima jogada um movimento nessa casacapture alguma peça adversária. Se no tabuleiro não houver nenhuma casa disponível, ojogador perderá a vez e a verificação é feita novamente. Se não houver nenhuma casadisponível mais uma vez, o jogo acabou e vence o jogador que possuir mais discos notabuleiro.

Para um jogador humano, é possivel executar uma jogada clicando em uma casadisponível, onde será disparado um evento que ativará a lógica do jogo. Os jogadores arti-ficiais são executados em threads, e ficam esperando sua vez para realizar um movimento.

2.2 MINIMAX

O algoritmo MiniMax foi implementado e também um jogador que o utiliza emtodas as rodadas. Como o algoritmo em si retorna apenas a pontuação de um movimento,nesse caso representado pelo número de discos da cor do jogador, foi desenvolvida tambémuma função que verifica todas as jogadas disponíveis e chama o MiniMax para cadauma delas, comparando e escolhendo a jogada de maior pontuação. Esta técnia estápraticamente pronta, passando por últimos ajustes.

2.3 JOGADOR ARTIFICIAL DE TESTE

Com o objetivo de testar os algoritmos que estão sendo implementados sem a ne-cessidade da intervenção humana, foi desenvolvido um jogador de teste que, simplesmenteexecuta uma jogada aleatória dentre as jogodas disponíveis.

Page 27: técnicas de inteligência artificial aplicadas ao jogo othello

25

3 RESULTADOS

Já é possível observar os primeiros resultados deste trabalho. Com o ambientepadrão Othello pronto e três possíveis jogadores, sendo estes, o jogador de teste, o jogadorminimax e o próprio jogador humano, já foram travadas algumas competições.

O algoritmo MiniMax em alguns momentos não conseguiu terminar a partida porfalta de memória, apesar de não estar concluído, já é notado seu alto custo. O número deestados que tem que examinar é exponencial em relação ao número de movimentos, com-prometendo o funcionamento do algoritmo para jogos com amplo número de movimentospossíveis.

Page 28: técnicas de inteligência artificial aplicadas ao jogo othello
Page 29: técnicas de inteligência artificial aplicadas ao jogo othello

27

4 PRÓXIMAS ETAPAS

4.1 PODA ALPHA-BETA

Como a poda Alpha-Beta é uma modificação do MiniMax, assim que este últimofor concluído, inicia-se a implementação da poda Alpha-Beta.

4.2 Q-LEARNING

Ainda pretende-se utilizar uma técnica de aprendizado de máquina no estudo com-parativo: O Q-Learning. Este algoritmo de aprendizado por reforço será implementadologo após a pode Alpha-Beta.

4.3 COMPETIÇÕES

A fim de comparar desempenhos, serão promovidas competições entre as técnicasimplementadas, além da geração de gráficos e tabelas com informações relevantes para ascomparações, assim como tempo de resposta, número de movimentos, número de peçascapturadas, entre outros.

4.4 ANÁLISE DOS RESULTADOS

Após todas informações levantadas, serão feitas as análises, considerações, conclu-sões e elaboração de artigo científico.

Page 30: técnicas de inteligência artificial aplicadas ao jogo othello
Page 31: técnicas de inteligência artificial aplicadas ao jogo othello

29

5 CONSIDERAÇÕES FINAIS

Durante o desenvolvimento do ambiente padrão Othello houve uma dificuldadecom sincronização, pois para executar um movimento era necessário clicar na casa e ativarum evento que executaria a jogada, mas um evento iniciava antes que o outro terminasse,fazendo uma leitura errada de qual era o jogador da vez. Essa dificuldade foi superadacom algumas verificações a mais, não sendo necessário até o momento o uso de semáforos.

Também houve dificuldade em analisar o funcionamento do algoritmo minimaxdevido à grande ramificação e profundidade da árvore de jogo do Othelo.

Page 32: técnicas de inteligência artificial aplicadas ao jogo othello
Page 33: técnicas de inteligência artificial aplicadas ao jogo othello

31

REFERÊNCIAS

1 MANDZIUK, J. Computational intelligence in mind games. In: Challenges forComputational Intelligence. [S.l.: s.n.], 2007. p. 407–442.

2 SHANNON, C. E. XXII. Programming a computer for playing chess. PhilosophicalMagazine (Series 7), Taylor & Francis, v. 41, n. 314, p. 256–275, 1950.

3 TURING, A. M. Digital computers applied to games. Faster than thought: asymposium on digital computing machines, ed. B. V. Bowden, Pitman, London, UK,1953.

4 RUSSELL, S.; NORVIG, P. Inteligência Artificial. Elsevier, 2004.

5 MANDZIUK, J. Some thoughts on using computational intelligence methods inclassical mind board games. In: Neural Networks, 2008. IJCNN 2008. (IEEE WorldCongress on Computational Intelligence). IEEE International Joint Conference on. [S.l.:s.n.], 2008. p. 4002 –4008. ISSN 1098-7576.

6 COPPIN, B. Inteligência Artificial. [S.l.]: LTC, 2008. ISBN 9788521617297.

7 ECK, N. J. van; WEZEL, M. van. Application of reinforcement learning to the gameof othello. Computers & Operations Research, v. 35, n. 6, p. 1999 – 2017, 2008. PartSpecial Issue: OR Applications in the Military and in Counter-Terrorism.

8 SENEFONTE, H. C. M. Aceleração do aprendizado por reforço em sistemas commúltiplos objetivos. Dissertação (Mestrado) — Instituto Tecnológico de Aeronáutica,ITA, 2009.

9 CHONG, S.; TAN, M.; WHITE, J. Observing the evolution of neural networkslearning to play the game of othello. Evolutionary Computation, IEEE Transactions on,v. 9, n. 3, p. 240 – 251, june 2005. ISSN 1089-778X.

10 BURO, M. Takeshi murakami vs. logistello. ICCA Journal 20(3), p. 189–193, 1997.

11 BURO, M. The evolution of strong othello programs. In: IWEC-2002 Workshop onEntertainment Computing. [S.l.: s.n.], 2002.

12 GUNAWAN et al. Evolutionary neural network for othello game. Procedia - Socialand Behavioral Sciences, v. 57, n. 0, p. 419 – 425, 2012. International Conference on AsiaPacific Business Innovation and Technology Management.

13 KIM, K.-J.; CHOI, H.; CHO, S.-B. Hybrid of evolution and reinforcement learningfor othello players. In: Computational Intelligence and Games, 2007. CIG 2007. IEEESymposium on. [S.l.: s.n.], 2007. p. 203–209.

14 LUCAS, S.; RUNARSSON, T. Temporal difference learning versus co-evolution foracquiring othello position evaluation. In: Computational Intelligence and Games, 2006IEEE Symposium on. [S.l.: s.n.], 2006. p. 52–59.