dots and boxes ai presentation

10
Dots and Boxes (a.k.a.: jogo dos pontinhos)

Upload: marcos-leal

Post on 13-Dec-2015

6 views

Category:

Documents


5 download

DESCRIPTION

Presentation of Dots and Boxes in the AI class

TRANSCRIPT

Page 1: Dots and Boxes AI Presentation

Dots and Boxes(a.k.a.: jogo dos pontinhos)

Page 2: Dots and Boxes AI Presentation

RegrasDots and Boxes consiste num tabuleiro com um

número variável de pontos. Estes pontos se distribuem equidistancialmente em formato de matriz quadrada.

O formato clássico do jogo admite dois jogadores que executam, alternadamente, uma jogada. Uma jogada consiste na inserção de uma aresta que liga um ponto (xi,yi) e outro (xf,yf), onde:

xi + yi - 1 <= xf + yf <= xi + yi + 1Intuitivamente: de um vértice para um de seus

adjacentes verticais ou horizontais.Um jogador ganha um ponto se “fechar um

quadrado”. Ou seja: se sua jogada unir dois pontos que estejam diretamente ligados, cada um, a um ponto, onde estes dois últimos estejam diretamente ligados um ao outro. Se um jogador fecha um quadrado, ele deve executar outra jogada.

Vence o jogador que fechar mais quadrados.

Page 3: Dots and Boxes AI Presentation

Porém...Dots and boxes foi popularizado por ser facilmente

implementado, sendo categorizado como um jogo de “papel e caneta”, tal como o próprio “jogo da velha”.

No entanto, num efeito telefone sem fio, aliado ao fato de raramente ter sido apresentado através de seu nome, algumas regras se tornaram obscuras para os jogadores mais recentes, fazendo com que jogassem uma versão levemente alterada.

Nós preferimos manter a autenticidade da versão na qual todos jogávamos na infancia que, diferentemente da versão formal apresentada no slide anterior, não permite duas ou mais jogadas consecutivas em circunstancia alguma.

Page 4: Dots and Boxes AI Presentation

Motivação da Escolhae Propriedades do Ambiente

Como dito anteriormente, Dots and Boxes foi presente em algum momento do nosso passado. Nos interessamos por desenvolver um algoritmo de IA para ele por ter esse aspecto em comum e por acreditarmos não ter sido feito ainda.

Tal como o jogo da velha e outros similares, o ambiente é:

➼Completamente Observável➼Multi-Agentes➼Determinístico➼Sequencial➼Estático➼Discreto

Page 5: Dots and Boxes AI Presentation

ImplementaçãoO jogo foi implementado em Java. As três classes em

questão são:

➼Tabela: diz respeito simplesmente a uma instancia do ambiente de jogo.

➼MyTree: árvore de estados. Cada estado é descrito por uma Tabela.

➼TrabIA: é a main, além de dispor dos algoritmos de IA necessários.

Page 6: Dots and Boxes AI Presentation

ImplementaçãoTabela:

Nesta entidade, encontram-se atributos e funções suficientes para que duas pessoas possam jogar, como os pontos de cada um, função de marcar uma aresta e as arestas que foram marcadas.

Para reduzir o processamento, criamos uma matriz para representar quão cada um dos quadrados está preenchido. Dessa forma, economiza-se o esforço de verificar 6 arestas em toda inserção para saber se nenhum, um ou dois quadrados foram preenchidos.

Page 7: Dots and Boxes AI Presentation

ImplementaçãoMyTree:

MyTree é uma árvore n-ária, onde n é o número de próximos estados possíveis. No caso do nosso jogo, esse número é sempre bem definido de acordo com a profundidade da árvore: cada filho de uma árvore de n filhos terá n-1 filhos, para n > 1. MyTree foi feita especialmente para garantir esta condição.

A condição é garantida pela função de inserção.

Page 8: Dots and Boxes AI Presentation

ImplementaçãoTrabIA:

Nossa IA utiliza minimax com poda alfabeta, limitação de profundidade baseada no número de estados alcançados no total e um cut off que consiste em eliminar estados derivados através de simetrias vertical, horizontal, diagonal e anti-diagonal.

A forma como este segundo é feito é, na ocasião em que a máquina jogar primeiro, delimitando o número de próximos estados em ⅛.

Page 9: Dots and Boxes AI Presentation

ImplementaçãoPasso a passo:

- O jogo se limita a um loop que se encerra quando um dos jogadores preencheu metade do total de quadrados + 1 ou quando todas as arestas foram preenchidas. A paridade do índice determina se quem joga será o computador ou o jogador. Os próximos passos dizem respeito ao que ocorre em cada passada.

- Na vez do jogador, apenas lhe é solicitado as coordenadas do vértice de origem e uma informação dizendo respeito ao vértice a ser ligado, formando uma aresta vertical ou horizontal. Na vez do computador, é chamado o minimax alfabeta.

Page 10: Dots and Boxes AI Presentation

ImplementaçãoPasso a passo:

- A função max_value é chamada, tendo como parâmetros a Tabela em questão e informações a respeito de ser o primeiro turno - tendo como consequencia, a geração de uma árvore de estados menor -, ser a primeira chamada - tendo como consequencia, retornar o filho vencedor, ao invés da própria Tabela, já que é o caso em que esta é a raiz da árvore - e o limite, usado para delimitar profundidade.

- A árvore de busca não é gerada previamente ao minimax, mas incrementalmente, a cada chamada de max_value e min_value. As funções que geram a árvore ou uma simplificação são, respectivamente, gera_rot e gera_tot.