Você está na página 1de 27

Jogo de Damas

Alunos:
Svio Mendes de Figueiredo (savio@cos.ufrj.br)
Smulo Nogueira Mafra (somulo@cos.ufrj.br)

Prof.: Ins dutra


Inteligncia artificial
Coppe sistemas - UFRJ

ndice
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

Algumas Frases
Origens do Jogo
Introduo
Como Jogar
Algoritmo Minimax
Corte Alfa Beta
Quiescence
Heursticas Utilizadas
Resultados
Concluses
Bibliografia

Algumas Frases
"As combinaes inumerveis e brilhantes do jogo de damas, deviam
ser admiradas, em todas as idades, como uma obra prima da imaginao
dos homens" - Poirson, "Encyclopdie du jeu de Dames", 1855.
" A primeira qualidade de um bom damista traduz-se no desejo de
aprender SEMPRE. ". - Lukhov Stanislawsky, mestre russo.
"A grande dificuldade do jogo de damas est na sua aparente
facilidade."

Origens Do Jogo
Assegura-se que o Jogo de Damas era conhecido no Egito desde
a poca de Osortasen I, pois que nas paredes do palcio de Ramss, existe
um desenho que representa este Fara jogando as Damas com uma de
suas mulheres.
Os gregos referindo-se aos tempos fabulosos, afirmavam que
Mercrio, foi o inventor do Jogo de Damas.
Tambm, nos mausolus de Saggarah, no Egito, se vem
tabuleiros de Damas.
Quanto ao nome porque conhecido atualmente, supe-se que
foi por muitos sculos o passatempo predileto das Damas da nobreza.

Introduo

O objetivo deste trabalho consiste na implementao de um


programa jogador de damas baseado no algoritmo Minimax com cortes
alfa-beta.
Foi necessrio utilizar o corte alfa-beta e uma funo heurstica
porque durante as pesquisas verificou-se que a combinatria do jogo era
cerca de 5*10^20.
O trabalho foi implementado em C++ utilizando o ambiente Visual
C++ 6.0.

Como Jogar (Iniciando o Jogo)


Para iniciar uma partida na qual a primeira jogada ser do usurio,
basta clicar na opo Iniciar do menu e depois na opo Jogador. Caso
se queira que a primeira jogada seja do computador, basta clicar na opo
Computador.

Como Jogar (Movendo as peas)


O jogador humano joga sempre com as brancas. Para se fazer uma
jogada basta clicar com o boto esquerdo do mouse sobre a pea que
queremos mover e depois na posio para onde queremos mov-la.
Para anular a seleo de uma pea basta clicar com o boto esquerdo do
mouse sobre a pea que est selecionada.
Para realizar uma jogada mltipla, basta clicar com o boto esquerdo
do mouse sobre a pea que se deseja mover e depois nas posies do
tabuleiro para as quais a pea ir se mover.

Como Jogar (Movendo as peas)

Como Jogar (Selecionando nvel)


Atravs da opo Nvel do menu (Fcil, Mdio
ou Difcil) possvel aumentar ou diminuir a dificuldade do
jogo.
Na opo Fcil, utilizada a profundidade 3 do
algoritmo min-max, 4 na opo Mdio e 5 na opo Difcil

Como Jogar (Selecionando heurstica)


Atravs da opo Heurstica, selecionada a
heurstica que o algoritmo ir utilizar na funo de
avaliao do tabuleiro. So 2 opes: Posicional e
Tringulo Defensivo.

Algoritmo Minimax
O conhecimento perfeito das regras permite que atravs do estado
inicial pode gerar-se todo o espao de estados possveis at um estado
terminal (vitria de um dos jogadores ou empate).
Contudo este espao de estados demasiado grande para a
capacidade de processamento do computador e o algoritmo minimax, com
cortes alfa-beta, permite reduzir a rvore de procura de possveis solues at
nveis desejados pelo utilizador.

Corte Alfa Beta


O algoritmo comea com um valor de alfa infinitamente negativo e
de beta infinitamente positivo. No ponto de deciso, esses valores so
recalculados com base no algoritmo seguinte.
Alfa - o valor da funo heurstica que vai ser utilizado para efetuar o corte
dos ns minimizadores, sendo calculado pelos ns maximizadores.
Beta - valor da funo heurstica utilizado para efetuar o corte do ns
maximizadores, sendo calculado pelos ns minimizadores.

Corte Alfa Beta (cont)


Quando a expanso da rvore de procura atinge o nvel mximo de
profundidade calcula-se o valor da funo heurstica;
b) cada n herda o valor de alfa e beta do n antecessor, sendo alfa menor ou
igual que beta.
c) se o n maximizador recalcula-se o valor de alfa, sendo alfa igual ao
mximo entre o valor herdado e o valor assumido pelo sucessor do n em
anlise.
Se o n minimizador recalcula-se o valor de beta. Sendo o novo valor de
beta igual ao mnimo entre o valor herdado e o valor assumido pelo sucessor em
anlise.

Corte Alfa Beta (cont)


Se num determinado n alfa maior que beta significa:
1) n maximizador: que esse n pode escolher um estado que lhe retorna um
resultado maior -alfa - do que aquele que aceitvel pelo n antecessor, valor
de beta, da no fazer sentido continuar a expandir a rvore - Corte Beta;
2) n minimizador: que esse n pode escolher um estado que lhe retorna um
resultado menor -beta - do que aquele que aceitvel pelo n antecessor - valor
de alfa - da no fazer sentido continuar a expandir a rvore - Corte Alfa.
Se existem mais sucessores volta o passo b.
Se no existirem mais sucessores:
e se existir antecessor passa-lhe o valor de alfa e beta;
caso contrrio retorna o valor de alfa ao antecessor se este for maximizador ou
o valor de beta se este for minimizador.

Quiescence
Este conceito foi utilizado para evitar que se faa uma avaliao
esttica do tabuleiro em posies muito sensveis, isto , posies que
possibilitem uma grande variao da funo de avaliao.

Assim, sempre que uma posio for instvel, o algoritmo desce


mais um nvel na rvore (sem se preocupar com a profundidade mxima
da rvore) e assim sucessivamente.

Quiescence (cont.)
Uma determinada configurao do tabuleiro instvel caso o
movimento que foi aplicado ao tabuleiro que gerou este tabuleiro seja
um movimento de ataque.
Outro conceito de instabilidade que poderia ter sido aplicado (no
foi implementado) seria verificar se alguma pea se transformou em
dama devido ao ltimo movimento aplicado ao tabuleiro.

Heursticas Utilizadas

Na implementao do algoritmo minimax a funo de avaliao pode utilizar


duas heursticas diferentes para determinar a fora de um jogador numa certa
configurao do tabuleiro.

Heurstica Posicional
Para calcular a fora do tabuleiro so atribudos os seguintes pesos s
casas do tabuleiro:

Heurstica Posicional (cont.)


Alm disso, os pees valem 5, se estiverem prestes a virar dama valem 7 e
se forem damas valem 10. Ento a fora do tabuleiro calculada subtraindo a
fora das peas brancas (humano) fora das peas pretas (computador).
OBS: Uma pea est prestes a virar dama caso ela esteja na em alguma casa
da linha horizontal que vem antes da ltima linha horizontal do tabuleiro.
A fora de cada jogador calculada atravs do somatrio do peso de cada
pea vezes o peso da respectiva casa do tabuleiro.

Algoritmo Posicional

Heurstica Do Tringulo Defensivo

A funo de avaliao implementada calculada segundo a frmula:


(p - b)/(p + b) e baseia-se em dois valores:

score das brancas b


score das pretas p.

Cada score calculado atravs de caracteres defensivos (casas previlegiadas


de defesa) e caracteres materiais (1 ponto para peo e 3 pontos para dama).

Heurstica Do Tringulo Defensivo


(cont.)

A heurstica do Tringulo Defensivo, alm de levar em conta a


quantidade de peas e o tipo da pea (peo ou dama) de cada jogador,
tambm privilegia o fato de uma pea estar em sua base ou pertencer ao
tringulo defensivo.

Algoritmo Tringulo

Resultados

Concluses
Este trabalho foi implementado um programa jogador de damas
baseado no algoritmo minimax com cortes alfa-beta. O programa permite ao
utilizador escolher o nvel de profundidade da pesquisa efetuada pelo
algoritmo, simulando desse modo diferentes nveis de dificuldade para o
jogo.

Concluses (cont.)
Somente aps termos implementado o jogo pudemos ter noo da
real complexidade que est escondida atrs de um jogo de tabuleiro
aparentemente simples.
Achamos super interessante ter desenvolvido este programa, s
lamentamos no ter muito tempo disponvel para realizar as melhorias que
poderiam ser aplicadas como alguma otimizao na funo de corte para
permitir uma busca com uma maior profundidade, utilizar mais funes
heursticas, melhorar a utilizao da memria, etc.

Bibliografia

Stuart Russel, Peter Norvig Artificial Intelligence a Modern


Approach

Damas Clssicas - Mestrado de Inteligncia Artificial e Computao Trabalho no mbito da disciplina de Metodologias de Inteligncia
Artificial - Antnio Manuel Correia Pereira

Trabalho realizado para a Disciplina - Metologias da Inteligncia


Artificial do Mestrado em Inteligncia Artificial e Computao - Rui
Manuel Santos Rodrigues Leite - 1999

Coluna Damas e Damistas de Cleuber Landim

Você também pode gostar