Busca Contra Adversário ou Jogos

25
CIn/UFPE Busca Contra Adversário ou Jogos Adversarial Search or Game playing

description

Busca Contra Adversário ou Jogos. Adversarial Search or Game playing. Jogos. Em ambientes multiagentes, há pouca previsibilidade Ações dos outros agentes É preciso tratar as contingências Em ambiente competitivos, há conflito de objetivos Ex. negociação em comércio eletrônico - PowerPoint PPT Presentation

Transcript of Busca Contra Adversário ou Jogos

Page 1: Busca Contra Adversário ou Jogos

CIn/UFPE

Busca Contra Adversário ou Jogos

Adversarial Search or Game playing

Page 2: Busca Contra Adversário ou Jogos

CIn/UFPE

Jogos

Em ambientes multiagentes, há pouca previsibilidade • Ações dos outros agentes• É preciso tratar as contingências

Em ambiente competitivos, há conflito de objetivos• Ex. negociação em comércio eletrônico

Nestes casos, temos “Busca contra adversário, ou simplesmente “jogo”

Em economia, na “teoria dos jogos”, estuda-se vários tipos de “jogos”

Page 3: Busca Contra Adversário ou Jogos

CIn/UFPE

Jogos

A IA trabalha com um tipo particular de jogo• Two-player• Turn-taking• Zero-sum (se um ganha, o outro perde)• Perfect information (observável)

Histórico• Xadrez: desde anos 50, hoje atingiu nível de mestre• Damas e Othelo: hoje, melhor que qualquer humano• Gamão: hoje, nível de campeão• Go, nível amador

Page 4: Busca Contra Adversário ou Jogos

CIn/UFPE

Jogos

Aplicações atrativas para métodos IA desde o início.• Sinônimo de inteligência• Ações bem definidas e ambiente acessível• Abstração (representação simplificada de problemas reais)

Porém desafiador:• Complexidade

– Xadrez: 35 movimentos possíveis por turno, 25 jogadas por jogador por partida => 3550 10154 (1040 nós distintos)

• Incerteza devido ao outro jogador;• Problema “contingencial”: agente deve agir antes de completar a

busca

Page 5: Busca Contra Adversário ou Jogos

CIn/UFPE

Formulando e resolvendo o problema

Formulação• Estado inicial: posições do tabuleiro + de quem é a vez• Estado final: posições em que o jogo acaba• Operadores: jogadas legais para um dado estado da partida• Função de utilidade (objetivo ou payoff): valor numérico para os estados finais

(pontuação)– Xadrez = +1, 0, -1; gamão = [-192,+192]

Busca: algoritmo minimax• Idéia: maximizar a utilidade (ganho) supondo que o adversário vai tentar minimizá-

la (todos jogam otimamente!)– O agente é MAX e o adversário é MIN

• Minimax faz busca cega em profundidade

Page 6: Busca Contra Adversário ou Jogos

CIn/UFPE

Jogo da velha (min-max)

Max(X)

x xx x x

x

x

x xMin(O)

x o ...x o x ox x

x

Min(O)

x o x o xo ...

Max(X)

... .........

...x o x x o xx o xx x

xx xxo

oo o

o o

-1 0 +1 Função utilidade

Page 7: Busca Contra Adversário ou Jogos

CIn/UFPE

Algoritmo Minimax

Passos• Gera a árvore inteira até os estados terminais.• Aplica a função de utilidade nas folhas. • Propaga os valores dessa função subindo a árvore através do

minimax• Determinar qual o valor que será escolhido por MAX

Formalmente: o valor minimax de um nó n é dado por• Minimax-Value(n) = Utility(n), se n é terminal maxssucesssors(n)Minimax-Value(s), se n é um nó Max

minssucesssors(n)Minimax-Value(s), se n é um nó Min

Page 8: Busca Contra Adversário ou Jogos

CIn/UFPE

A

B C D

MAXa1 a2

a3

MIN

b1 b2

b3d1 d2

d3c1 c2

c3

3 12 8 2 4 6 14 5 2

3 2 2

3

Algoritmo Minimax: exemplo c/ 2 jogadas

Max nodeMin node

Page 9: Busca Contra Adversário ou Jogos

CIn/UFPE

Algoritmo

Page 10: Busca Contra Adversário ou Jogos

CIn/UFPE

Críticas

É completa e ótima mas...

Problemas• Tempo gasto é totalmente impraticável, porém o algoritmo

serve como base para outros métodos mais realísticos.• Complexidade: O(bm).

Para melhorar (combinar duas técnicas)1) Podar a arvore onde a busca seria irrelevante: poda alfa-beta

(alfa-beta pruning) 2) Substituir a profundidade n de min-max(n) pela estimativa de

min-max(n): função de avaliação

Page 11: Busca Contra Adversário ou Jogos

CIn/UFPE

Alpha-Beta Pruning (poda alfa-beta)

Função:• Não expandir desnecessariamente nós durante o minimax (mas

devolvendo o mesmo resultado)

Idéia: não vale a pena piorar, se já achou algo melhor

Mantém 2 parâmetros - melhor valor (mais alto) encontrado até então para MAX - melhor valor (mais baixo) encontrado até então para MIN

Teste de expansão: não pode diminuir (não pode ser menor que um ancestral) não pode aumentar (não pode ser maior que um ancestral)

Page 12: Busca Contra Adversário ou Jogos

CIn/UFPE

Alfa-Beta

A

B

3

Lembrar que min-max faz busca em profundidade

[-∞,3]

[-∞,+∞]

O melhor para MIN é 3e para MAX é +∞

12

A

B

3

[-∞,3]

[-∞,+∞]

Nada mudou...

Page 13: Busca Contra Adversário ou Jogos

CIn/UFPE

Alfa-Beta

12

A

B

3

[3,3]

[3,+∞]

Agora dá para saberque MIN vai escolher

no máx. 3

8

12

A

B

3

[3,3]

[3,+∞]

8 2

[-∞,2] C

Não vale mais a pena para MAX explorar C,

porque MIN vai escolher no máx. 2

e MAX já tem 3

Page 14: Busca Contra Adversário ou Jogos

CIn/UFPE

Alfa-Beta

12

A

B

3

[3,3]

[3,14]

8 2

[-∞,2] C

Realisticamante, 14 é o melhor para max

por enquantoD

14

[-∞,14]

12

A

B

3

[3,3]

[3,3]

8 2

[-∞,2] C D

14

[2,2]

5 2

Page 15: Busca Contra Adversário ou Jogos

CIn/UFPE

Alpha-Beta Pruning: outro exemplo

MAX

MIN

MAX

3

3

3

2 3 5 0

0

0

2 1

2

Page 16: Busca Contra Adversário ou Jogos

CIn/UFPE

Balanço da poda alfa-beta

Poda não afeta o resultado final

Com um ordenamento perfeito das jogadas, complexidade = O(bm/2)

Bom exemplo de raciocínio sobre a relevância de se cálcular coisas (forma de meta-raciocício)

Page 17: Busca Contra Adversário ou Jogos

CIn/UFPE

Funções de Avaliação

Reflete as chances de ganhar: baseada no valor material• ex. valor de uma peça independentemente da posição das outras

Função Linear de Peso de propriedade do nó:• w1f1+w2f2+...+wnfn

• Ex. Os pesos (w) no xadrez poderiam ser o tipo de pedra do xadrez (Peão-1, ..., Rainha-9) e os (f) poderiam ser o número de cada peça no tabuleiro.

Escolha crucial: compromisso entre precisão e eficiência

Page 18: Busca Contra Adversário ou Jogos

CIn/UFPE

Função de avaliação (h) para o jogo da velha: sugestões?

X

0

X 0X

0

X

0

X

0

X tem 6 possibilidades0 tem 5 possibilidades

h = 6 - 5 = 1

h = 4 - 6 = = -2h = 5 - 4 = 1

Page 19: Busca Contra Adversário ou Jogos

Uso da Funções de Avaliação

Minimax de duas jogadas (two-ply) aplicado à abertura do jogo da velha

Page 20: Busca Contra Adversário ou Jogos

CIn/UFPE

Quando aplicar a função de avaliação?

Definir uma profundidade máxima ou iterativa não funciona devido à incerteza inerente ao problema

Solução: Procura Tranqüila (Quiescence search):• Idéia: evitar avaliação em situações a partir das quais pode haver

mudanças bruscas

• No caso do jogo da velha, toda posição é tranqüila mas no xadrez não.... (ex. um peça de xadrez a ser comida)

• Algoritmo: Se a situação (nó) é “tranqüila”, então aplica a função de avaliação, senão busca até encontrar uma situação “tranqüila”

Page 21: Busca Contra Adversário ou Jogos

CIn/UFPE

E aí: é útil mesmo?

Ainda pode ser complexo...• bm = 106, b=35 m=4

Olhar para frente 4-ply (quatro lances) é pouco para um nível profissional!• 4-ply ≈ novato humano• 8-ply ≈ PC típico, mestre humano• 12-ply ≈ Deep Blue, Kasparov

Page 22: Busca Contra Adversário ou Jogos

CIn/UFPE

Jogos com elementos de acaso

Há jogos com elementos de imprevisibilidade maior do que os tratados • Ex. gamão• Não sabemos quais são as jogadas legais do adversário• A árvore de jogos (game tree) usada não vai servir!

Page 23: Busca Contra Adversário ou Jogos

CIn/UFPE

Jogos com elementos de acaso

Nova árvore de jogos• Inclui nós de acaso, além dos nós MAX e MIN• Os ramos dos nós de acaso, correspondem ao resultados do

jogar dos dados do gamão, por exemplo– Cada ramo pode ter uma probabilidade associada

• Não podemos mais falar de valor-minimax de um nó, mas sim de valor-minimax esperado (expectiminimax value)

Expectiminimax (n) = Utility(n), se n é terminalmaxsSucesssors(n) Expectiminimax(s), se n é um nó Max

minsSucesssors(n) Expectiminimax(s), se n é um nó Min

sSucesssors(n) P(s).Expectiminimax(s), se n é um nó de acaso

Page 24: Busca Contra Adversário ou Jogos

CIn/UFPE

Árvore do Jogo Gamão

nós deacaso

Probabilidades

Page 25: Busca Contra Adversário ou Jogos

CIn/UFPE

Conclusões

Jogos é uma área excitante para se trabalhar

Ela ilustra várias questões importantes da IA

A perfeição é impossível => é preciso aproximar

Uma boa idéia é pensar sobre o que pensar