Title: Busca Contra Advers
1Busca Contra Adversário ou Jogos
- Adversarial Search or Game playing
2Jogos
- 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
3Jogos
- 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
4Jogos
- 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 gt 3550 ? 10154
(1040 nós distintos) - Incerteza devido ao outro jogador
- Problema contingencial agente deve agir antes
de completar a busca
5Formulando 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
6Jogo da velha (min-max)
Max(X)
Min(O)
Max(X)
Min(O)
7Algoritmo 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
- maxs?sucesssors(n)Minimax-Value(s), se n
é um nó Max - mins?sucesssors(n)Minimax-Value(s), se n
é um nó Min
8Algoritmo Minimax exemplo c/ 2 jogadas
3
Max node
Min node
9Algoritmo
10Crí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)
- Podar a arvore onde a busca seria irrelevante
poda alfa-beta (alfa-beta pruning) - Substituir a profundidade n de min-max(n) pela
estimativa de min-max(n) função de avaliação
11Alpha-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)
12Alfa-Beta
Lembrar que min-max faz busca em profundidade
A
3
13Alfa-Beta
3,8
A
3,3
Agora dá para saberque MIN vai escolher no máx.
3
12
3
8
14Alfa-Beta
3,14
A
Realisticamante, 14 é o melhor para max por
enquanto
3,3
-8,2
-8,14
12
3
8
2
14
15Alpha-Beta Pruning outro exemplo
3
MAX MIN MAX
3
0
2
3
0
5
2
3
0
2
1
16Balanç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)
17Funçõ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ó
- w1f1w2f2...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
18Função de avaliação (h) para o jogo da velha
sugestões?
19Uso da Funções de Avaliação
Minimax de duas jogadas (two-ply) aplicado à
abertura do jogo da velha
20Quando 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
21E aí é útil mesmo?
- Ainda pode ser complexo...
- bm 106, b35 ? m4
- 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
22Jogos 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!
23Jogos 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 é terminal
- maxs?Sucesssors(n) Expectiminimax(s), se n é um
nó Max - mins?Sucesssors(n) Expectiminimax(s), se n é um
nó Min - ?s?Sucesssors(n) P(s).Expectiminimax(s), se n é
um nó de acaso
24Árvore do Jogo Gamão
nós deacaso
Probabilidades
25Conclusões
- Jogos é uma área excitante para se trabalhar
- Ela ilustra várias questões importantes da IA
- A perfeição é impossível gt é preciso aproximar
- Uma boa idéia é pensar sobre o que pensar