Você está na página 1de 76

Othello

Aplicao de buscas em Jogos


Prof Helen Cristina de Mattos Senefonte

10 de abril de 2014

Othello
Dbora Tieme Hiroki Estefnia Mayumi Fuzyi Letcia de Cssia Santin Rafael Seidi Shigueoka Tnia Eiko Eishima

Introduo
Histria do Othello Regras Algoritmos

Nome: Cebolinha Roberto Ocupao: Graduando em Cincia da Computao Idade: 19 anos Hobby: Jogos online

Histria
Data de desenvolvimento do jogo Criador Origem do nome

Regras do Jogo

Incio
2 jogadores: preto e branco jogam alternadamente Tabuleiro 8x8: letras representam coluna nmeros representam linha Posio inicial: 4 peas ao centro 2 de cada cor em diagonais

Regras do Jogo

Primeira jogada
A pea preta inicia o jogo. Colocar a pea ao lado da pea do adversrio. O espao deve estar livre e deve existir uma linha ortogonal ou diagonal entre a pea colocada e a outra pea sua.

Regras do Jogo

Desenvolver
Pode haver uma ou mais peas do adversrio nessa linha, desde que estejam em sequncia. Aps a jogada as peas (brancas) do adversrio que estavam no caminho sero convertidas.

Regras do Jogo

Impossibilidade de jogada
Se no for possvel fazer uma jogada legal (pea preta), ento o jogador tem que passar a vez para o adversrio.

Regras do Jogo

Fim do jogo

Algoritmos
Busca Cega Busca em Profundidade Busca de Aprofundamento Iterativo Busca em Largura Busca de Custo Uniforme Buscas de jogos Minimax Algoritmos de Poda Poda Alfa-Beta

1 Tentativa
Vou selecionar um estado e buscar uma opo vlida de jogada, para cada jogador, at encontrar o meu objetivo...

Objetivo: Todas as casas com peas e nmero de peas brancas > que peas pretas.

Busca em Profundidade
Definio:
A busca em profundidade realiza uma busca no-informada (cega) que inicia com a expanso do primeiro n filho da rvore de busca (raiz), e se aprofunda na expanso do primeiro filho, at que o n objetivo seja encontrado ou at que ele se depare com um n que no possui filhos (n folha).

Implementao:
utilizando recurso ou uma pilha.

Busca em Profundidade

Busca em Profundidade

Busca em Profundidade

Busca em Profundidade

Busca em Profundidade

Busca em Profundidade

Busca em Profundidade

Busca em Profundidade

Busca em Profundidade
OBJETIVO!!

Anlise Busca em Profundidade


Essa no!
Acho que no foi uma boa ideia! Porque pode me levar a uma subrvore que no ter outras opo onde eu possa ganhar!

2 Tentativa
Eu acho que ouvi, na ltima apresentao, alguma coisa de Busca de Aprofundamento Iterativo Vou tentar...

Objetivo: Todas as casas com peas e nmero de peas brancas > que peas pretas.

Busca em Aprofundamento Iterativo


Definio:
Busca em Aprofundamento Iterativo uma tcnica de pesquisa exaustiva, que combina a busca em profundidade com a de largura. O algoritmo consiste na realizao repetidamente pesquisas em profundidade para fora da rvore, comeando com uma busca em profundidade limitada l=1, ento l=2, e assim por diante, at que um n objetivo seja encontrado.

Busca de Aprofundamento Iterativo


l=1

Busca de Aprofundamento Iterativo


l=2

Busca de Aprofundamento Iterativo


l=3

Busca de Aprofundamento Iterativo


l=4

Busca de Aprofundamento Iterativo


l=5

Anlise Busca de Aprofundadamento Iterativo


Tambm no!
Melhor tentar outra tcnica pois essas no foram muito boas para encontrar a melhor jogada para o Othello.

3 Tentativa
Vou tentar fazer essa busca aqui onde vejo todas as possibilidades para uma jogada e depois para outra.. A Busca em Largura!

Objetivo: Quando encontrar o objetivo ou quando estiver no ltimo nvel.

Busca em Largura
Definio:
Busca em Largura uma busca que inicia-se pela raiz e procura expandir sempre o n de menor profundidade mais esquerda. Ou seja, todos os ns que esto em uma profundidade d da rvore sero expandidos e visitados antes dos ns de profundidade d+1. Implementado com recursividade ou com uma fila do tipo FIFO(First in First out)

Busca em Largura

Busca em Largura

Busca em Largura

Busca em Largura

Busca em Largura

Busca em Largura

Busca em Largura

Busca em Largura

Busca em Largura

Busca em Largura

Busca em Largura

Busca em Largura

Anlise Busca em Largura


Essa no!
A Busca em largura no apropriada em rvores onde o fator de ramificao muito alto, como quando examina as rvores de jogos como o Othello.

4 Tentativa
Preciso descobrir uma forma de busca menos custosa! J sei! Vou usar a busca de Custo Uniforme!

Objetivo: Quando encontrar o objetivo ou quando estiver no ltimo nvel.

Busca de Custo Uniforme


Definio:
A Busca de Custo Uniforme uma variao da Busca em Largura onde, ao invs de expandir o ns mais esquerda, o n que possui menor custo escolhido para expandir; Usa uma funo de avaliao onde, para cada ns, calcula-se o custo da aresta para se chegar a este n;

Busca de Custo Uniforme


5 6 6 6 5 6

12

11

Busca de Custo Uniforme


5 6 6 6 5 6

12

11

Busca de Custo Uniforme


5 6 6 6 5 6

12

11

Busca de Custo Uniforme


5 6 6 6 5 6

12

11

Busca de Custo Uniforme


5 6 6 6 5 6

12

11

Busca de Custo Uniforme


5 6 6 6 5 6

12

11

Busca de Custo Uniforme


5 6 6 6 5 6

12

11

Busca de Custo Uniforme


5 6 6 6 5 6

12

11

Busca de Custo Uniforme


5 6 6 6 5 6

12

11

Busca de Custo Uniforme


5 6 6 6 5 6

12

11

Busca de Custo Uniforme


5 6 6 6 5 6

12

11

Ser que existem tcnicas melhores?

MinMax
E se eu verificar uma maneira de maximizar os meus ganhos e minimizar os do adversrio?

MinMax
Jogos de dois jogadores, no-cooperativo Mx - o jogador que tenta ganhar Min - o jogador adversrio

MinMax
Percurso em profundidade Verifica a cada nvel se o n mx ou min Funo de avaliao

MinMax
Preenchimento dos ns a partir das folhas: - se o n atual for mx, verificar entre os filhos qual o maior. - se o n atual for min, verificar entre os filhos qual o menor.

MinMax

MinMax
rvore do Othello com o MinMax

MinMax
Esse algoritmo me surpreendeu, mas o problema que tenho que visitar todos os ns Ser que h algo mais otimizado para isso?!

Poda Alfa-Beta
Objetivo: melhorar a eficincia de busca em jogos de dois adversrios. Valores: alfa: associado aos ns de MAX beta: associado aos ns de MIN

Poda Alfa-Beta

Poda Alfa-Beta

Poda Alfa-Beta

Poda Alfa-Beta
U, mas percorri todos os ns!

Concluses