busca contra adversário ou jogos
Post on 05-Jan-2016
37 Views
Preview:
DESCRIPTION
TRANSCRIPT
CIn/UFPE
Busca Contra Adversário ou Jogos
Adversarial Search or Game playing
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”
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
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
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
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
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
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
CIn/UFPE
Algoritmo
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
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)
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...
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
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
CIn/UFPE
Alpha-Beta Pruning: outro exemplo
MAX
MIN
MAX
3
3
3
2 3 5 0
0
0
2 1
2
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)
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
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
Uso da Funções de Avaliação
Minimax de duas jogadas (two-ply) aplicado à abertura do jogo da velha
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”
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
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!
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
CIn/UFPE
Árvore do Jogo Gamão
nós deacaso
Probabilidades
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
top related