tÉcnicas de inteligÊncia artificial aplicadas ao jogo

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

Upload: hakiet

Post on 10-Jan-2017

222 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

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
Page 3: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

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 C. de MattosSenefonte

LONDRINA–PR

2013

Page 4: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

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.

BANCA EXAMINADORA

Profa. Ms. Helen C. de Mattos SenefonteUniversidade Estadual de Londrina

Orientador

Profa. Dra. Cinthyan Renata Sachs C. deBarbosa

Universidade Estadual de Londrina

Prof. Dr. Jacques Duílio BrancherUniversidade Estadual de Londrina

Londrina–PR, 21 de novembro de 2013

LONDRINA–PR2013

Page 5: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

Dedico este trabalho à Rosângela Gomes Quaglio, minha mãe, pelo exemplo de vida,amor e fé.

Page 6: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO
Page 7: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

AGRADECIMENTOS

Primeiramente agradeço a Deus por tudo. Por ter me abençoado, me dado força esabedoria, me guiado até aqui e ajudado nos momentos difíceis.

Aos meus pais Rosângela e Luis, pelo apoio e incentivo. Por toda dedicação eimensuráveis esforços para me proporcionar o melhor.

À minha esposa Stephane pelo amor, carinho, apoio e por estar ao meu lado todosos dias.

Meus sinceros agradecimentos aos amigos da computação, com os quais eu vivigrande parte desses últimos anos e que foram como uma verdadeira família para mim.Foram muitas risadas, bagunças, estudos, trabalhos, provas, sono, gordices, nerdices ecompanheirismo, dia e noite, todo dia.

À Helen C. de Mattos Senefonte, por quem tive a honra de ser orientado, pelosconselhos, confiança, paciência e sabedoria em mim depositados.

Aos professores do Departamento de Computação que contribuíram para a minhagraduação, transmitindo conhecimento e dando exemplos de profissionalismo.

Aos meus amigos, que sempre desempenharam papel fundamental em minha vida,estando ao meu lado na alegria e na tristeza. Também àqueles que estão mais distantes,mas que são verdadeiros amigos.

À minha irmã Larissa e à toda minha família pelo amor, incentivo e por acredita-rem em mim.

A todos os professores que durante minha vida contribuíram para a minha educa-ção e formação, sem os quais essa conquista não seria possível.

À família da minha esposa, que me acolheu como próprio filho e irmão.

Page 8: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO
Page 9: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

“A fé na vitória tem que ser inabalável.”(Marcelo Falcão)

Page 10: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO
Page 11: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

QUAGLIO, V. G.. Técnicas de Inteligência Artificial aplicadas ao JogoOthello: Um estudo comparativo. 48 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 jogos.Para realizar este estudo, algumas técnicas serão implementadas e observadas atra-vés de partidas simuladas assim como a extração de informações obtidas por meiode testes.

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

Page 12: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO
Page 13: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

QUAGLIO, V. G.. Artificial Intelligence techniques applied to theOthello game: a comparative study. 48 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 an 8 X 8 board. This work aims to implement an intelligentagent Othello player in order to investigate the usage and performance of artificialintelligence techniques applied to games, providing a comparative study for futurepractical tests of intelligent agents in games. To conduct this study, some techniquesare implemented and observed through simulated matches as well as the attainmentof information acquired during performance of tests.

Keywords: othello. artificial intelligence. q-learning.

Page 14: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO
Page 15: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

LISTA DE ILUSTRAÇÕES

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

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

Figura 5 – Período de Treinamento. . . . . . . . . . . . . . . . . . . . . . . . . . . 40Figura 6 – Tempo Médio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Figura 7 – Desvio Padrão do Tempo. . . . . . . . . . . . . . . . . . . . . . . . . . 40Figura 8 – Reforço Médio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Figura 9 – Desvio Padrão do Reforço. . . . . . . . . . . . . . . . . . . . . . . . . . 41

Page 16: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO
Page 17: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

LISTA DE TABELAS

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

Tabela 2 – MiniMax x Poda Alfa Beta - Profundidade 2 . . . . . . . . . . . . . . . 39Tabela 3 – MiniMax x Poda Alfa Beta - Profundidade 3 . . . . . . . . . . . . . . . 39Tabela 4 – Comparação antes e depois do treinamento . . . . . . . . . . . . . . . 42Tabela 5 – Q-Learning x MiniMax . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Tabela 6 – Q-Learning x Poda Alfa Beta . . . . . . . . . . . . . . . . . . . . . . . 43

Page 18: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO
Page 19: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

LISTA DE ALGORITMOS

1 MiniMax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2 Poda Alfa Beta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3 Q-Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Page 20: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO
Page 21: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

LISTA DE ABREVIATURAS E SIGLAS

AR Aprendizado por Reforço

GB Gigabyte

IA Inteligência Artificial

IDE Integrated Development Environment

ms Milisegundo

𝜎 Desvio Padrão

Page 22: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO
Page 23: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

SUMÁRIO

1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2 Fundamentação Teórica . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.1 Inteligência Artificial em Jogos . . . . . . . . . . . . . . . . . . . . . . . 25

2.1.1 Árvores de Jogos . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.1.2 Algoritmo Minimax . . . . . . . . . . . . . . . . . . . . . . . . . . 272.1.3 Algoritmo Poda Alfa-Beta . . . . . . . . . . . . . . . . . . . . . . 27

2.2 Aprendizado de Máquina . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.2.1 Q-Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.3 O Jogo Othello . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.3.1 Regras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.3.2 Othello e IA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3 Ambiente Othello e técnicas de Inteligência Artificial . . . . . . . . . . 353.1 Ambiente Padrão Othello . . . . . . . . . . . . . . . . . . . . . . . . . . 353.2 Jogador Artificial de Teste . . . . . . . . . . . . . . . . . . . . . . . . . . 363.3 MiniMax e Poda Alfa Beta . . . . . . . . . . . . . . . . . . . . . . . . . . 363.4 Q-Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4 Resultados e Considerações . . . . . . . . . . . . . . . . . . . . . . . . . 394.1 MiniMax x Poda Alfa-Beta . . . . . . . . . . . . . . . . . . . . . . . . . . 394.2 Q-Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.2.1 Indicadores de Tempo . . . . . . . . . . . . . . . . . . . . . . . . 404.2.2 Indicadores de Reforço . . . . . . . . . . . . . . . . . . . . . . . . 414.2.3 Número de vitórias . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.3 Torneio de Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

5 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.1 Dificuldades Encontradas . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.2 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Page 24: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO
Page 25: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

23

1 INTRODUÇÃO

Em meados do século XX, começaram as primeiras tentativas científicas para in-ventar máquinas inteligentes [1]. Entre os pioneiros, estão Shannon [2] que, em seu artigode 1950, propõe um programa capaz de jogar xadrez, Turing [3] em 1953 também abordouo xadrez e busca em árvore de jogos. Pesquisadores da área de Inteliência Artificial, desdeentão, utilizam jogos populares em todo mundo, tais como Xadrez, Damas, Othello, Go,Poker, entre outros, como alvo de pesquisas, sempre no intuito de superar a supremaciahumana [1].

Um dos jogos explorados na literatura de IA é o Othello, que consiste em um jogode dois jogadores, com um tabuleiro 8 x 8 e 64 discos que são brancos de um lado e pretosno outro. 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, transformando a peçacercada em peça própria. O objetivo é terminar o jogo possuindo maior número de peçasque o adversário.

Utilizado no jogo Othello por Eck e Wezel [4], em 2008 e por Kim et al [5] em 2007,o aprendizado por reforço é um dos paradigmas de aprendizado de máquina disponíveisentre as técnicas de Inteligência Artificial. Um estudo comparativo de dois algoritmos deaprendizado para aquisição de funções de avaliação para o jogo Othello foi feito por Lucase Runarsson [6].

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

No Capítulo 2 são descritos os principais conceitos de Inteligência Artificial uti-lizados em jogos, características e funcionamento do jogo Othello, bem como os avançosda área de IA relacionados ao Othello. No Capítulo 3 são descritos o desenvolvimento doAmbiente Padrão Othello e as implementações das técnicas de IA. As análises e resultadossão apresentados no Capítulo 4 e, por fim, a conclusão no Capítulo 5.

Page 26: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO
Page 27: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

25

2 FUNDAMENTAÇÃO TEÓRICA

Neste capítulo são apresentados os principais conceitos de Inteligência Artificial(IA) necessários para o desenvolvimento deste trabalho. Inicialmente são abordados osconceitos de IA com relação aos jogos e algumas técnicas utilizadas, em seguida, o apren-dizado de máquina, suas classificações e uma técnica pertencente a esse paradigma. Aofinal, é apresentado o jogo Othello, suas regras e os avanços de IA relacionados.

2.1 Inteligência Artificial em Jogos

Uma das primeiras tarefas empreendidas em Inteligência Artificial foi a parti-cipação em jogos [7]. 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 [8]. De acordo comMandziuk [8], 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;

∙ 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 agentejogador de vários jogos, verdadeiramente autônomo, como o ser humano [8].

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 [7] 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.

Page 28: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

26 Capítulo 2. Fundamentação Teórica

∙ Estados terminais - São os estados onde o jogo é encerrado.

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

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

2.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.[7]

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. Só épermitido deslizar os blocos em direção ao bloco vazio e em movimentos ortogonais.

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 o1 O motivo dos nomes MIN e MAX dos jogadores ficarão mais claros na seção 2.1.2.

Page 29: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

2.1. Inteligência Artificial em Jogos 27

movimento inicial de MAX e seus movimentos seguintes a cada possível resposta de MIN.[7]

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

2.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 [7].A estratégia é, em cada nível da árvore, tentar maximizar a pontuação do jogo (paraMAX) 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 [7].

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.

2.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 [9], 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 [7].

Page 30: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

28 Capítulo 2. Fundamentação Teórica

Segundo Coppin [9], 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 [7].

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

2.2 Aprendizado de Máquina

O objetivo do aprendizado de máquina é que o agente utilize as percepções ou in-terações com o ambiente para, além de agir ou tomar decisões, melhorar sua habilidade derealizar essas atividades no futuro. O aprendizado pode variar desde a memorização trivialda experiência até a criação de teorias científicas inteiras. O aprendizado de máquina é

Page 31: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

2.2. Aprendizado de Máquina 29

útil quando não é possível ou não é viável descrever detalhadamente todo o ambiente edecisões do agente [7].

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 [9].

O aprendizado de máquina normalmente é classificado de três formas: aprendi-zado supervisionado, aprendizado não supervisionado e aprendizado por reforço [7]. Ainvestigação deste trabalho será no contexto do aprendizado por reforço.

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 [7].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.

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 [9, 7].

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 [9].

Aprendizado por Reforço

No aprendizado por reforço (AR), a aprendizagem é realizada através de tentativae erro, em interações do agente com o meio ambiente. [10] O agente observa o ambientee toma uma ação. O ambiente então responde com um reforço e segue para um próximoestado. Em seguida, com o ambiente em um novo estado, o agente deve tomar outra ação,

Page 32: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

30 Capítulo 2. Fundamentação Teórica

recebendo do ambiente outro reforço, constituindo um ciclo. A tarefa do agente é aprenderde acordo com os reforços recebidos [4]. 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 [11].

Figura 2 – Aprendizado por Reforço.

De acordo com [11], 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.

∙ Estado - representa o ambiente em determinado instante.

∙ Ação - ato realizado pelo agente.

Infelizmente, a convergência de qualquer algoritmo AR só pode ser alcançado apósgrande exploração do espaço de estado-ação, que pode ser muito demorado. [10]

Um exemplo de algoritmo de AR é o Q-learning, proposto por Watkins [12], queserá abordado na próxima seção.

2.2.1 Q-Learning

Q-Learning é um algoritmo de AR em que um agente aprendiz qualifica paresestado-ação de acordo com seu objetivo. Esta qualificação é atualizada a cada iteraçãocom o ambiente [11].

Page 33: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

2.3. O Jogo Othello 31

Segundo Mitchell [13], para calcular essa qualificação é utilizada uma função deavaliação Q, o valor de 𝑄(𝑥,𝑎) é a avaliação recebida imediatamente após a execução deuma ação a do estado x, mais o valor do próximo par estado-ação seguindo uma políticaótima. Cada par estado-ação é atualizado com base na equação 2.1 [12]:

𝑄(𝑥,𝑎) = 𝑄(𝑥,𝑎) + 𝛼[𝑟 + 𝛾.𝑚𝑎𝑥𝑏𝑄(𝑦, 𝑏)−𝑄(𝑥,𝑎)] (2.1)

Onde:

∙ r - é o reforço dado pelo ambiente.

∙ 𝛾 - é o fator de desconto, utilizado para manter os valores de Q finitos.

∙ 𝛼 - é o fator de aprendizado, que pode ser calculado através da equação:

𝛼 = 11 + 𝑣𝑖𝑠𝑖𝑡𝑎𝑠(𝑥, 𝑎) (2.2)

em que visitas(x,a) é o número de vezes que a ação a foi escolhida e executada noestado x. [11]

A parte 𝑚𝑎𝑥𝑏𝑄(𝑦, 𝑏) da equação 2.1 é o valor do melhor par estado-ação seguinte,portanto, para atualizar o valor de uma determinada jogada, o algoritmo considera valordas jogadas possíveis no futuro e não apenas o reforço imediato.

Para treinamento e atualização dos pares estado/ação é utilizado o Algoritmo 3[13].

Algoritmo 3: Q-Learningforeach x, a do

Inicialize a tabela 𝑄(𝑥,𝑎);endObserve o estado atual x;repeat

Selecione uma ação a e execute;Receba um reforço imediato;Observe o novo estado x’;Atualize a tabela 𝑄(𝑥,𝑎) de acordo com a equação 2.1;x ← x’;

until Critério de parada satisfeito;

2.3 O Jogo Othello

Othello é um jogo de tabuleiro determinístico soma-zero de dois jogadores cominformação perfeita [14]. Um jogo soma-zero é aquele em que o placar final para cada

Page 34: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

32 Capítulo 2. Fundamentação Teórica

jogador pode ser uma vitória, derrota ou empate. Jogos com informação perfeita sãoaqueles em que é possível visualizar completamente o estado do jogo, diferente de jogoscomo o pôquer onde os jogadores escondem informações de seus oponentes [9].

Existe um Campeonato Mundial de Othello que é realizado anualmente desde 1977,onde o japonês Hiroshi Inoue foi o primeiro campeão. A sede é alternada e a primeiraedição foi em Tókio. Em 1987 passou a ocorrer simultaneamente o campeonato entreequipes e em 2005 começou a premiação para a categoria feminina [15]. A 37aedição, em2013 aconteceu em Estocolmo, na Suécia, e o vencedor foi Kazuki Okamoto.

Em 2004 foi realizado o primeiro campeonato oficial no Brasil, o Circuito Brasileirode Othello. O campeão foi Daniel Dantas, que se tornou o primeiro brasileiro a representaro Brasil no Campeonato Mundial de Othello. O Campeonato Brasileiro de Othello érealizado desde a criação da Federação Brasileira de Othello, e é o evento mais importantede Othello do país. O vencedor da última edição, em 2013, foi Lucas Cherem [15].

2.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.[4] O jogo se inicia com dois discos de cada cor, assim como na Figura 3.

Figura 3 – Configuração Inicial do Otthelo.

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.

2.3.2 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 35: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

2.3. O Jogo Othello 33

que não se sentiu em uma partida contra um simples programa de computador, massim contra gerações de engenheiros e matemáticos [16]. Buro [17], 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 [18] 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 [14]. O uso do aprendizado por reforço no jogo Othello éabordado por Eck e Wezel [4], em 2008 e por Kim et al [5] em 2007. Estudo comparativode dois algoritmos de aprendizado para aquisição de funções de avaliação para o jogoOthello pode ser encontrado em [6], de 2006.

Page 36: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO
Page 37: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

35

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

Neste capítulo são descritas as implementações do ambiente de testes e das técnicasque este trabalho comtempla.

3.1 Ambiente Padrão Othello

O ambiente padrão Othello foi desenvolvido utilizando a linguagem Java, e tem sualógica principal na classe "Tabuleiro", onde o tabuleiro propriamente dito é uma matriz8 x 8 que, em cada posição, existe uma instância da classe "Casa", 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.

Durante as partidas, só é permitido executar um movimento se a casa em quepretende-se jogar estiver no estado "Disponível", portanto, é possível afirmar que todas asjogadas executadas são válidas.

Feito um movimento, a primeira rotina é a de captura que, a partir da casa onde omovimento foi realizado, percorre o tabuleiro em todos os sentidos e direções à procura deuma casa com um disco da mesma cor que a do jogador atual. Ao encontrar uma casa comum disco do jogador adversário, a busca continua, se a casa possuir um disco do jogadoratual, todas as casas que possuíam discos adversários entre essa casa e a casa de partidapassam a ser do jogador atual e, encontrando uma casa vazia ou a borda do tabuleiro, abusca para nessa direção e começa a próxima.

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 à de

Page 38: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

36 Capítulo 3. Ambiente Othello e técnicas de Inteligência Artificial

captura, marcando a casa como disponível, se na próxima jogada um movimento leve àcaptura de alguma peça adversária. Se no tabuleiro não houver nenhuma casa disponível,o jogador 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, é possível 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.

3.2 Jogador Artificial de Teste

Com o objetivo de testar os algoritmos implementados sem a necessidade da in-tervenção humana, foi desenvolvido um jogador de teste que simplesmente executa umajogada aleatória dentre as jogadas disponíveis.

Utilizando uma função Java que gera um valor booleano aleatoriamente, o algo-ritmo pode percorrer o tabuleiro de cima para baixo ou no sentido contrário, de acordocom o valor booleano gerado, e executa a primeira jogada que encontrar disponível.

Como o tabuleiro é fixo e possui apenas 64 posições, a complexidade desse algo-ritmo é baixa, de modo que facilita os testes e simulações, quase não acrescentando maistempo à execução dos outros algoritmos que serão testados.

3.3 MiniMax e Poda Alfa Beta

Foi implementado um jogador artificial que chama a técnica MiniMax a cadarodada. Como o algoritmo em si retorna apenas a pontuação de um movimento, foi de-senvolvida uma função que verifica todas as jogadas disponíveis e chama o MiniMax paracada uma delas, comparando e escolhendo a jogada de maior pontuação.

O algoritmo é recursivo e o tempo de resposta foi muito grande ao analisar o tabu-leiro até o fim, sendo necessário estabelecer um limite de profundidade, onde o algoritmoretornaria o resultado parcial, mesmo não terminando de analisar todas as possibilidades.

O método principal é constituído de uma sequência de regras que, dependendo daocasião, chama o mesmo método recursivamente passando os parâmetros necessários ouretorna a pontuação. Os parâmetros utilizados para cada chamada são, o estado atual dotabuleiro, um indicador de qual é o jogador da vez e a profundidade, que a cada chamadaé incrementada.

Alguns métodos foram necessários para a execução do algoritmo, conforme mos-trado no Algoritmo 1. Foram implementados então, um método que verifica se o nó atual

Page 39: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

3.4. Q-Learning 37

é um nó folha ou a profundidade limite foi atingida, um que verifica se é o nó Min, outroque verifica se é o no Max e um que retorna a pontuação do movimento, dada pelo númerode discos da cor do jogador que chamou o método miniMax.

O algoritmo da Poda Alfa-Beta é um aperfeiçoamento do MiniMax, a diferençaestá justamente na poda. Então, a experiência obtida na implementação do MiniMax foiaproveitada, concentrando os esforços na implementação da poda e da manipulação dosparâmetros necessário para tal. Além disso, também foi implementado um jogador quechama o algoritmo e executa a ação retornada por este.

A poda consiste em parar a busca quando já se sabe que não é possível encontrarum resultado melhor. À chamada da função são adicionados dois parâmetros: 𝛼 e 𝛽. 𝛼 éinicializado com um valor que representa infinito negativo e atualizado a cada chamadasempre com o valor máximo encontrado até o momento, enquanto 𝛽 é inicializado cominfinito positivo e atualizado com o valor mínimo encontrado até o momento. No momentoem que 𝛼 passa a ser maior que 𝛽, a busca é terminada nesta árvore.

3.4 Q-Learning

Assim como nos outros algoritmos, foi implementado um jogador, que chama ométodo qLearning e depois executa uma jogada de acordo com o resultado retornado pelométodo.

Quando o método é chamando pelo jogador, em primeiro lugar, é feito uma buscano banco de dados para obter o id do atual estado do tabuleiro. Caso o estado não sejaencontrado no banco, é adicionado e inicializado. Logo após, é feita outra busca no banco,que de maneira gulosa, selecionando qual é a ação que possui um melhor valor para esseestado. A ação é tomada e recebe um reforço como resposta, esse reforço é utilizado juntocom outros parâmetros para calcular o valor em que essa ação será atualizada na matriz𝑄(𝑥,𝑎). Esse cálculo é feito baseado na equação 2.1. Em seguida, 𝑄(𝑥,𝑎) é atualizada nobanco de dados e o tabuleiro também é atualizado com a nova jogada.

Reforço

O reforço dado ao agente, a cada jogada, foi baseado na posição do tabuleiro emque foi feita esta jogada e em quantos discos foram convertidos.

Inicialmente para posição do tabuleiro, foram utilizados como base os mesmosvalores utilizados por Eck e Wezel [19]. Mas como várias posições no tabuleiro possuemum mesmo valor, para valorizar mais a individualidade de cada jogada, foi acrescentadoo número de peças convertidas, fazendo com que em determinado momento, uma jogadana mesma posição tenha um maior valor que em outro.

Page 40: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

38 Capítulo 3. Ambiente Othello e técnicas de Inteligência Artificial

Após alguns testes observou-se que, como o valor inicial para todo par estado-ação foi configurado como zero, bastava que o reforço para um par fosse positivo paraque nenhum outro par estado-ação fosse escolhido, pois os outros pares eram 0 e nuncaseriam mais vantajosos que o primeiro. Sendo assim, o algoritmo teria um comportamentosemelhante a um jogador que escolhe uma ação aleatória, pois no começo todas as açõestem o mesmo valor e, ao tomar a primeira ação, não seria possível escolher outra. Devidoa isso, o valor inicial de todas as posições do tabuleiro foi alterado para 100. Desta forma,na primeira jogada, o resultado seria menor que 100, então na próxima jogada o algoritmoescolheria outro valor, até que todas as ações fossem tomadas e pudessem ser comparadasdevidamente.

Base de dados

Para o funcionamento correto do algoritmo é necessário ter uma base de dadoscom todos os possíveis pares estado-ação do tabuleiro. Para o tabuleiro do jogo Othello,esse número é muito grande, então foi implementada uma solução que atualiza a basede dados conforme os estados são conhecidos. Inicialmente, o algoritmo não terá nenhumestado disponível, mas sempre que buscar no banco de dados um estado e não encontrar,este estado é adicionado e todas as ações deste estado são configuradas com o valor 0.Essa adição de estados em tempo real influencia no tempo de resposta do algoritmo, masapós certo treinamento, essas inserções não são mais necessárias, pois os estados já estarãoarmazenados no banco.

Page 41: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

39

4 RESULTADOS E CONSIDERAÇÕES

Todas as simulações e testes foram executados em um mesmo computador, paraque o ambiente não influenciasse e fosse possível fazer comparações. O computador utili-zado foi um notebook Dell, com processador Intel Core i3, sistema operacional Windows7 e 4GB de memória. O banco de dados empregado foi o PostgreSQL e o IDE foi oNetBeans.

4.1 MiniMax x Poda Alfa-Beta

Para o algoritmo MiniMax, o número de estados a serem examinados é exponencialem relação ao número de movimentos, comprometendo o funcionamento do algoritmo parajogos com amplo número de movimentos possíveis. A Poda Alfa-Beta diminui o númerode estados, mas esse número ainda é muito grande.

As tabelas 2 e 3 mostram indicadores de desempenho durante competições entreo MiniMax e o Poda Alfa Beta utilizando limites de profundidade 2 e 3, respectivamente.

Algoritmo Maior Tempo Menor Tempo Tempo Médio 𝑁o DiscosMiniMax 6587ms 0ms 2154ms 38Poda Alfa Beta 1590ms 0ms 550ms 26

Tabela 2 – MiniMax x Poda Alfa Beta - Profundidade 2

Algoritmo Maior Tempo Menor Tempo Tempo Médio 𝑁o DiscosMiniMax 3520557ms 0ms 887599ms 38Poda Alfa Beta 566528ms 0ms 174573ms 26

Tabela 3 – MiniMax x Poda Alfa Beta - Profundidade 3

4.2 Q-Learning

Com a finalidade de medir o desempenho do algoritmo implementado, foram ado-tados indicadores de de tempo e reforço, além de analisar o número de vitórias. Foramcolhidas amostras das 200 primeiras partidas, ou seja, iniciando com a base de dadosvazia, e 200 partidas após um treinamento de 2000 partidas, conforme a Figura 5. Todasas partidas foram realizadas utilizando o Jogador Artificial de Teste.

Page 42: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

40 Capítulo 4. Resultados e Considerações

Figura 5 – Período de Treinamento.

4.2.1 Indicadores de Tempo

Antes do treinamento, o tempo médio de execução de uma jogada foi de 88,62ms,e depois foi coletado um tempo médio de 388ms, conforme a Figura 6. O tempo médioestá relacionado com o número de estados armazenados no bando de dados, e conformeforam adicionadas novas tuplas, este aumentou proporcionalmente.

Figura 6 – Tempo Médio.

Figura 7 – Desvio Padrão do Tempo.

A medida que o algoritmo se aproxima do total de estados possíveis para o jogo,o tempo de resposta tende a convergir e estabilizar. Essa afirmação pode ser embasada

Page 43: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

4.2. Q-Learning 41

no fato de que o desvio padrão do tempo diminuiu de 10,6 para 6,46, mostrando que adiferença entre os tempos foi menor na segunda sequência de testes, pois a descoberta denovos estados foi menor que no início do treinamento. A comparação do desvio padrãopode ser visualizada na Figura 7.

4.2.2 Indicadores de Reforço

No primeiro conjunto de dados analisado, o reforço médio obtido durante as par-tidas foi 3,88 e seu desvio padrão foi 0,93. Nos dados coletados após o treinamento, oreforço médio foi 7,3 e o desvio padrão 0,89. A evolução do reforço médio e do desviopadrão do reforço são apresentadas nas Figuras 8 e 9, respectivamente.

Figura 8 – Reforço Médio.

Figura 9 – Desvio Padrão do Reforço.

Baseado no aumento do reforço médio, é possível concluir que, com o treinamento,o algoritmo passou a tomar decisões melhores, rendendo um reforço maior. Com a dimi-nuição do desvio padrão, entende-se que após o treinamento, grande parte das decisões do

Page 44: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

42 Capítulo 4. Resultados e Considerações

algoritmo, já convergiram para as melhores ações, explorando menos caminhos diferentese, desta forma, variando menos o reforço recebido.

4.2.3 Número de vitórias

O número de vitórias subiu de 62, antes do treinamento, para 113, depois domesmo. Esse aumento reflete o aprendizado do algoritmo, e confere com o aumento doreforço, reafirmando que depois do treinamento o algoritmo optou por estratégias maisvantajosas.

Levando em consideração que o adversário utilizado foi o Jogador Artificial deTeste, e que ele sempre toma decisões aleatórias, é possível afirmar que o desempenhodo Q-Learning pode ser otimizado se for treinado por um número maior de partidas,aproximando-se de um aproveitamento de 100

A tabela 4 apresenta um resumo dos indicadores de tempo, reforço e vitórias antese depois do treinamento:

Tempo Médio 𝜎 Tempo Reforço Médio 𝜎 Reforço VitóriasAntes do treinamento 88,62ms 10,6 3,88 0,93 62Após o treinamento 388ms 6,46 7,3 0,89 113

Tabela 4 – Comparação antes e depois do treinamento

4.3 Torneio de Algoritmos

Embora os algoritmos MiniMax e Poda Alfa-Beta tenham uma ótima acurácia,o custo de processamento é muito alto, tornando a utilização desses algoritmos menosvantajosa em relação ao Q-Learning que depois de treinado, pode alcançar excelentesresultados em tempo muito menor.

Nas tabelas 5 e 6 são apresentadas comparações entre Q-Learning e MiniMax eentre Q-Learning e Poda Alfa Beta, sendo que a execução dos algoritmos MiniMax e PodaAlfa Beta foi com limite de profundide 3, diminuindo tanto o tempo quanto a acuráceadestes.

Algoritmo Maior Tempo Menor Tempo Tempo Médio 𝑁o DiscosQ-Learning 2872ms 0ms 1471 14MiniMax 818162ms 0ms 389216ms 50

Tabela 5 – Q-Learning x MiniMax

Page 45: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

4.3. Torneio de Algoritmos 43

Algoritmo Maior Tempo Menor Tempo Tempo Médio 𝑁o DiscosQ-Learning 2091ms 0ms 1128ms 15Poda Alfa Beta 338240ms 0ms 27529ms 49

Tabela 6 – Q-Learning x Poda Alfa Beta

Verifica-se que mesmo estando limitados, os algoritmos MiniMax e Poda Alfa Betavenceram o Q-Learning. Isso se deve ao fato de que o Q-Learning não foi treinado contraesses adversários e, como constatado na Seção 4.2.3, ainda não foi treinado o suficiente.

Page 46: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO
Page 47: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

45

5 CONCLUSÃO

Desde o surgimento da Inteligência Artificial, jogos servem de incentivo e moti-vação para seu desenvolvimento e aperfeiçoamento. Atualmente, existem várias técnicasutilizadas em jogos e raramente são encontrados jogos em desenvolvimento que não usu-fruam de IA.

O jogo Othello é alvo de pesquisas e implementações e, embora os algoritmos deOthello já tenham superado a inteligência humana, estes ainda podem ser aperfeiçoados,pois o jogo Othello pode ser jogado em tabuleiros diferentes, como 10 x 10 ou até N x N.

O algoritmo MiniMax possui a vantagem de analisar todas as possibilidades daárvore de jogo, porém, seu tempo de execução pode ser muito alto. Ainda que o algo-ritmo Poda Alfa-Beta reduza o número de nós a serem analisados, mantendo o mesmoaproveitamento, para uma árvore muito grande, essa redução não é suficiente.

Durante os testes e simulações realizadas, os algoritmos MiniMax e Poda Alfa-Beta se mostraram inviáveis para aplicação no jogo Othello pois, para que pudessem serexecutados em um tempo aceitável, foi necessário limitar à profundidade a no máximotrês, enquanto o algoritmo completo ultrapassaria trinta níveis.

A técnica de aprendizado por reforço Q-Learning é interessante, pois não neces-sita de tanto processamento para tomar uma decisão. Ao passo que o MiniMax e PodaAlfa-Beta precisam refazer todos os cálculos a cada jogada, o Q-Learning reaproveita oresultado obtido em jogadas passadas para tomar uma decisão rápida e ainda melhor.Destaca-se a necessidade do treinamento, sem o qual, o algoritmo não apresenta bonsresultados, tomando decisões próximas a aleatórias.

O Q-Learning apresentou nos testes um tempo de resposta muito menor que osoutros algoritmos estudados, mesmo tendo grande número de estados armazenados nabase. Os resultados obtidos após o treinamento mostraram que algoritmo aprendeu emelhorou suas decisões, bastando apenas que seja treinado o suficiente. Considerandocusto como o tempo de processamento e benefício como a decisão tomada, a relação custox benefício foi satisfatória, mostrando que esse algoritmo é apropriado para utilização nojogo Othello.

5.1 Dificuldades Encontradas

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,

Page 48: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

46 Capítulo 5. Conclusão

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 o uso de semáforos.

Houve dificuldade em analisar o funcionamento do algoritmo minimax devido àgrande ramificação e profundidade da árvore de jogo do Othelo.

Durante a implementação do Q-Learning, mesmo tendo executado corretamentetoda a partida, foi verificado que sempre após a última jogada, era reportado um erro deestado não encontrado. Isso se deve ao fato de que o algoritmo ao analisar a jogada atual,tenta visualizar o estado do tabuleiro uma jogada depois, tal estado não existe após ofinal da partida, ocasionando uma exceção de banco de dados.

5.2 Trabalhos Futuros

Como sugestão de trabalhos futuros, é possível destacar a investigação de outrastécnicas de IA para utilização no jogo Othello, a implementação de melhorias que possammaximizar o desempenho das técnicas abordadas e o desenvolvimento de uma técnicahíbrida.

Page 49: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

47

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 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.

5 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.

6 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.

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

8 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.

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

10 BIANCHI, R. A.; RIBEIRO, C. H.; COSTA, A. H. Accelerating autonomouslearning by using heuristic selection of actions. Journal of Heuristics, Kluwer AcademicPublishers, Hingham, MA, USA, v. 14, n. 2, p. 135–168, abr. 2008. ISSN 1381-1231.

11 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.

12 WATKINS, C. J. C. H. Learning from Delayed Rewards. Tese (Doutorado) — King’sCollege, Cambridge, UK, May 1989.

13 MITCHELL, T. M. Machine Learning. 1. ed. New York, NY, USA: McGraw-Hill,Inc., 1997. ISBN 0070428077, 9780070428072.

14 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.

Page 50: TÉCNICAS DE INTELIGÊNCIA ARTIFICIAL APLICADAS AO JOGO

48 Referências

15 Federação Brasileira de Othello. Campeonatos. 2013. Data de Acesso: 31 oct. 2013.Disponível em: <http://http://www.othello.com.br/campeonatos>.

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

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

18 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.

19 WEZEL, M. v.; ECK, N. v. Reinforcement learning and its applica-tion to Othello. [S.l.], 2005. Disponível em: <http://EconPapers.repec.org-/RePEc:dgr:eureir:1765007142>.