43
Jogos Capítulo 6

Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Embed Size (px)

Citation preview

Page 1: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Jogos

Capítulo 6

Page 2: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Jogos vs. Problemas de Procura

•  Adversário “imprevisível" necessidade de tomar em consideração todas os movimentos que podem ser tomados pelo adversário

•  Pontuação com sinais opostos –  O que é bom para um jogador (vitória=+1) é mau

para o outro (derrota=-1) •  Limitação temporal tipicamente não é

encontrado um objectivo mas antes uma aproximação

Page 3: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Sumário •  Decisões óptimas em jogos

–  Conceitos básicos –  Estratégias óptimas e o Minimax –  Estratégias óptimas com múltiplos jogadores

•  Cortes α-β •  Decisões imperfeitas em tempo real •  Jogos que incluem o factor sorte •  Estado da arte em jogos

Page 4: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Ingredientes

•  Vamos considerar que: – existem dois jogadores, o MAX e o MIN – o MAX joga primeiro – no fim do jogo o vencedor ganha pontos e o

adversário é penalizado

Page 5: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Caracterização de um Jogo

•  Estado inicial –  Configuração inicial + ordem de jogada

•  Função sucessores –  Para cada estado devolve uma lista de pares

<acção,estado>, indicando uma jogada possível (legal) e o estado resultante

•  Teste terminal –  Identifica os estados de fim de jogo (ditos terminais)

•  Função de utilidade (ou função objectivo) –  Atribui um valor numérico aos estados terminais

Page 6: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Árvore do jogo

•  O estado inicial e as jogadas legais para cada jogador definem a árvore do jogo.

Page 7: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Árvore para o jogo do galo (2 jogadores, determinístico, alternado)

Page 8: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Sumário •  Decisões óptimas em jogos

–  Conceitos básicos –  Estratégias óptimas e o Minimax –  Estratégias óptimas com múltiplos jogadores

•  Cortes α-β •  Decisões imperfeitas em tempo real •  Jogos que incluem o factor sorte •  Estado da arte em jogos

Page 9: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Minimax •  Estratégia mais adequada para jogos

determinísticos •  Ideia: escolher jogada para o estado com o

maior valor minimax –  melhor valor para a função de utilidade contra as

melhores jogadas do adversário

Valor-minimax(n) =

{Função-utilidade(n) se n é terminal maxs∈sucessores(n) Valor-minimax(s) se n é nó MAX mins∈sucessores(n) Valor-minimax(s) se n é nó MIN

Page 10: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Minimax: 2 jogadores

•  Observações: –  Formato dos nós em função do tipo de nó (MIN/MAX) –  Valores dos estados terminais correspondem à função de

utilidade para MAX (quanto vale cada um dos estados terminais) –  Valores para os restantes estados obtidos a partir dos valores

para os nós terminais através do cálculo do valor-minimax –  Resultado do algoritmo: próxima jogada!

Page 11: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Algoritmo Minimax Função Minimax (estado) devolve acção

v ← ValorMax(estado) devolve acção em sucessores(estado) com valor v

Função ValorMax(estado) devolve valor de utilidade se TesteTerminal(estado) então devolve Utilidade(estado) v ← -∞ para a,e em sucessores(estado) v ← MAX(v,ValorMin(e)) devolve v

Função ValorMin(estado) devolve valor de utilidade se TesteTerminal(estado) então devolve Utilidade(estado) v ← +∞ para a,e em sucessores(estado) v ← MIN(v,ValorMax(e)) devolve v

Page 12: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Minimax: 2 jogadores

•  Portanto: –  Começa na raiz e a recursão conduz os cálculos até às folhas. Os

valores minimax são depois usados quando termina a fase de expansão da recursão;

–  Quando é o Min a jogar, escolhe a jogada que dá menos pontos ao MAX;

–  Quando é o Max a jogar, escolhe a jogada que lhe dá mais pontos; –  A seta indica a escolha de MAX no fim da aplicação do algoritmo.

Page 13: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Propriedades do algoritmo minimax O algoritmo faz uma procura em profundidade, explorando toda a árvore de jogo.

•  É completo? Sim (se a árvore de procura é finita) •  É óptimo? Sim (contra um adversário óptimo)

Considerando: m = profundidade máxima da árvore r = nº de movimentos legais em cada ponto

•  Complexidade temporal? –  O(rm)

•  Complexidade espacial? –  O(rm) para um algoritmo que gera todos os sucessores de uma vez –  O(m) para um algoritmo que gera os sucessores um a um

•  Para xadrez, r ≈ 35, m ≈100 para um jogo padrão impossível determinar a solução exacta

Page 14: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Sumário •  Decisões óptimas em jogos

–  Conceitos básicos –  Estratégias óptimas e o Minimax –  Estratégias óptimas com múltiplos jogadores

•  Cortes α-β •  Decisões imperfeitas em tempo real •  Jogos que incluem o factor sorte •  Estado da arte em jogos

Page 15: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Minimax: mais de 2 jogadores

•  Função de utilidade devolve vector de valores com utilidade do estado do ponto de vista de cada jogador

•  Cada jogador procura maximizar a sua utilidade (ex: C em X, escolhe a jogada que lhe dá mais pontos - 6)

Page 16: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Minimax: mais de 2 jogadores •  Tipicamente levam a alianças, formais ou informais,

entre os jogadores (também podem existir alianças em jogos com 2 jogadores).

•  Estas alianças podem ser uma consequência natural de estratégias óptimas para cada jogador num jogo multi-jogadores.

Page 17: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Sumário •  Decisões óptimas em jogos

–  Conceitos básicos –  Estratégias óptimas e o Minimax –  Estratégias óptimas com múltiplos jogadores

•  Cortes α-β •  Decisões imperfeitas em tempo real •  Jogos que incluem o factor sorte •  Estado da arte em jogos

Page 18: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Procura com Cortes •  Jogos são muito mais difíceis do que os problemas de

procura •  Factor de ramificação muito elevado - e.g. xadrez

–  factor de ramificação ≈ 35 –  50 jogadas/jogador 35100 nós (destes “apenas” 1040 são nós

distintos)

•  Cortes permitem eliminar partes da árvore de procura que são irrelevantes para o resultado final. De seguida vamos falar de um tipo de corte, os cortes α-β .

Page 19: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Cortes α-β •  Motivação:

–  Minimax: número de estados examinados é exponencial em função do número de jogadas

–  Não é possível eliminar o factor exponencial, mas podemos reduzir o número de estados analisados para metade!

–  É possível calcular exactamente a mesma decisão resultante do algoritmo Minimax sem ter de analisar todos os estados

Page 20: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Cortes α-β •  Considere-se um nó n algures na árvore, tal que

um jogador tem a hipótese de se mover para esse nó. Se o jogador tem uma hipótese melhor num nó qualquer acima do nó n, então esse n nunca vai ser atingido.

•  Assim que soubermos alguma coisa sobre este n através dos seus descendentes, podemos cortá-lo (podá-lo).

Page 21: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Cortes α-β: exemplo

Page 22: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Cortes α-β: exemplo

Page 23: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Cortes α-β: exemplo

Page 24: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Cortes α-β: exemplo

Page 25: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Cortes α-β: exemplo

•  Os nós sucessores do primeiro nó a ser expandido em cada nível de profundidade nunca podem ser cortados

Page 26: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Porquê o nome α-β? •  α é o valor da melhor

escolha (i.e., valor mais elevado) encontrada até ao momento em qualquer ponto de procura ao longo do caminho para max

•  Se v é pior do que α, max irá evitar escolher v ramo com v é cortado

•  β define-se para min de forma análoga

Page 27: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Algoritmo α-β Função AlfaBeta (estado) devolve acção

v ← ValorMax(estado, -∞, +∞) devolve acção em sucessores(estado) com valor v

Função ValorMax(estado,α,β) devolve valor de utilidade se TesteTerminal(estado) então devolve Utilidade(estado) v ← -∞ para a,e em sucessores(estado) v ← MAX(v,ValorMin(s,α,β)) se v ≥ β então devolve v α ← MAX(α,v) devolve v

Page 28: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Algoritmo α-β Função ValorMin(estado,α,β) devolve valor de utilidade

se TesteTerminal(estado) então devolve Utilidade(estado) v ← +∞ para a,e em sucessores(estado) v ← MIN(v,ValorMax(s,α,β)) se v ≤ α então devolve v β ← MIN(β,v) devolve v

Page 29: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Propriedades de α-β •  Cortes não afectam resultado final (= MINIMAX) •  Eficiência dos cortes depende da ordenação dos

sucessores –  Por exemplo, no caso anterior, se em vez do nó com

valor 14 tivesse aparecido o nó com valor 2, não havia necessidade de gerar os outros nós

•  Com uma “ordenação perfeita" a complexidade temporal fica reduzida a O(rm/2)

•  Ver applet em http://wolfey.110mb.com/GameVisual/launch.php?agent=2

Page 30: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Exercício

•  Qual a melhor ordenação de modo a optimizar os cortes α-β?

Page 31: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Estados repetidos •  Em jogos, ocorrem muitas vezes estados

repetidos (devido a permutações) •  Pode valer a pena guardar estados numa hash

table (chamada transposition table) na primeira vez que ocorrem –  Pode duplicar a profundidade alcançada no mesmo

período de tempo! –  Se são avaliados milhões de nós por segundo não é

viável guardar tantos nós numa tabela •  Assim, existem muitas estratégias para determinar quais os

estados a guardar

Page 32: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Sumário •  Decisões óptimas em jogos

–  Conceitos básicos –  Estratégias óptimas e o Minimax –  Estratégias óptimas com múltiplos jogadores

•  Cortes α-β •  Decisões imperfeitas em tempo real •  Jogos que incluem o factor sorte •  Estado da arte em jogos

Page 33: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Decisões imperfeitas em tempo real

•  Decisões têm que ser tomadas em tempo real não é possível analisar toda a árvore de procura

•  Função de avaliação (Eval) devolve uma estimativa da utilidade do estado –  Idealmente a ordenação resultante da função de

avaliação é igual à da função de utilidade •  Teste terminal é substituído por um teste de

limite (cutoff) –  Devolve também verdadeiro para estados terminais

Page 34: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Funções de Avaliação

•  O desempenho de um jogo depende da qualidade da função de avaliação!

•  E como escolher uma boa função de avaliação? –  Esta deve ser capaz de ordenar os estados terminais

do mesmo modo que a função de utilidade •  A função de avaliação deve estar fortemente correlacionada

com as hipóteses reais de ganhar

–  O seu cálculo não pode ser demorado

Page 35: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Funções de Avaliação

•  Tipicamente são uma soma linear de características do jogo (f), associadas a diferentes pesos (w)

Eval(s) = w1 f1(s) + w2 f2(s) + … + wn fn(s)

•  Ex: Xadrez –  rainha vale 9, bispo e cavaleiro 3, etc.. –  w1 = 9 e f1(s) = nº de rainhas brancas –  w2 =3 e f2(s) = nº de bispos –  ...

Page 36: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Teste Limite

•  Problema da aquiescência –  Função de avaliação deve aplicar-se apenas a

estados cujo valor não possa ser radicalmente alterado num futuro próximo (por exemplo, se estamos só a contar peças no Xadrez, não estamos a ter em conta jogadas em que se façam capturas de peças favoráveis)

–  Estados não aquiescentes devem ser expandidos até que sejam gerados estados sem este problema (por exemplo, passando a ter em conta movimentos de captura)

Page 37: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Teste Limite •  Problema do efeito de horizonte

–  Procura com limite coloca eventuais problemas futuros para além do horizonte (ex: um movimento qualquer do adversário que vai ter consequências desastrosas, mas que não foi previsto dado o limite de procura imposto).

–  Com as melhorias actuais, conseguem-se limites cada vez maiores

–  Extensões singulares são outra solução: num caso de uma jogada ser muito boa, aumenta-se o limite de pesquisa para os seus sucessores.

Page 38: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Sumário •  Decisões óptimas em jogos

–  Conceitos básicos –  Estratégias óptimas e o Minimax –  Estratégias óptimas com múltiplos jogadores

•  Cortes α-β •  Decisões imperfeitas em tempo real •  Jogos que incluem o factor sorte •  Estado da arte em jogos

Page 39: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Elemento Sorte

•  Árvore com nós sorte para além dos nós MIN e MAX

•  A cada ramo da árvore está associada uma probabilidade

•  Se for possível estabelecer limites para a função de avaliação então podem aplicar-se cortes

Expectiminimax(n) =

{Função-utilidade(n) se n é terminal maxs∈sucessores(n) Expectiminimax(s) se n é nó MAX mins∈sucessores(n) Expectiminimax(s) se n é nó MIN Σs∈sucessores(n) P(s) · Expectiminimax(s) se n é nó SORTE

Page 40: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Elemento Sorte: exemplo

2.1 = 0.9*2 + 0.1*3 1.3 = 0.9*1 + 0.1*4

Page 41: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Elemento Sorte: exemplo

•  Atenção: alteração de valores das folhas mantendo a mesma ordem relativa de valores resulta em decisões diferentes.

•  Pelo que há que ter cuidados adicionais na escolha da função de avaliação.

Page 42: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Sumário •  Decisões óptimas em jogos

–  Conceitos básicos –  Estratégias óptimas e o Minimax –  Estratégias óptimas com múltiplos jogadores

•  Cortes α-β •  Decisões imperfeitas em tempo real •  Jogos que incluem o factor sorte •  Estado da arte em jogos

Page 43: Jogos - fenix.tecnico.ulisboa.pt · 8 peças, num total de 444 biliões de posições. • Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura

Estado da Arte •  Damas: Chinook derrotou o campeão do mundo

(durante 40 anos) Marion Tinsley in 1994. Uso de uma base de dados pré-processada que define uma jogada perfeita para todas as posições envolvendo no máximo 8 peças, num total de 444 biliões de posições.

•  Xadrez: Deep Blue derrotou campeão do mundo Garry Kasparov em 1997. O Deep Blue procura 200 milhões de nós por segundo, usa uma função de avaliação muito sofisticada.

•  Othello: campeões humanos recusam-se a competir com computadores, que são muito bons.

•  Go: campeões humanos recusam-se a competir com computadores, que são muito fracos. Neste jogo, r > 300. Logo, a maioria dos programas existentes usa padrões de conhecimento para sugerir jogadas hipotéticas.