1
lnteligência Artificial
Jogos
2
Jogos: considerações gerais
Aplicações atrativas para métodos IA desde o início.• Formulação simples do problema (ações bem definidas)• Ambiente acessível;• Abstração (representação simplificada de problemas reais)• Sinônimo de inteligência• Primeiro algoritmo para xadrez foi proposto por Claude
Shannon e Alan Turing na década de 50
Porém desafiador:• Tamanho + limitação de tempo (35100 nós para xadrez); • Incerteza devido ao outro jogador;• Problema “contingencial”: agente deve agir antes de
completar a busca
3Formulando e resolvendo o problema
2 jogadores, revezam o lance, são adversários
Formulação• Estado inicial: posições do tabuleiro + de quem é a vez• Estado final: posições em que o jogo acaba• Operadores: jogadas legais• Função de utilidade: valor numérico do resultado (pontuação)
Busca: algoritmo minimax• Idéia: maximizar a utilidade (ganho) supondo que o adversário
vai tentar minimizála• Minimax faz busca cega em profundidade • O agente é MAX e o adversário é MIN
4
Jogo da velha (minmax)
... .........
...x o x x o xx o xx x
xx xxo
oo o
o o
Max(X)
x xx x x
x
x
x xMin(O)
x o ...x o x ox x
xMin(O)
x o x o xo ...Max(X)
1 0 +1 Função utilidade
5Minimax 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 a ação que será escolhida por MAX.
3
3 2 2
3 12 8 2 4 6 14 5 2
A1 A2 A3
A11 A12 A13A21
A22A23 A31
A32A33
MAX
MIN
Jogada decidida por MAX
6
Críticas
Problemas• Tempo gasto para determinar decisão ótima é totalmente
impraticável, porém o algoritmo serve como base para outros métodos mais realísticos.
• Complexidade: O(bm).
Para melhorar1) Limitar a profundidade da busca e substituir função de utilidade
por função de avaliação (heurística);
2) Podar a árvore onde a busca seria irrelevante: poda alfabeta
7
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ão1, ..., Rainha9) e os (f) poderiam ser o número de cada peça no tabuleiro.
Escolha das propriedades relevantes ainda não pode ser realizada.
Escolha crucial: compromisso entre precisão e eficiência
8Função de avaliação para o jogo da velha
X
0
X 0
X0
X
0
X
0
X tem 6 possibilidades
0 tem 5 possibilidades
H = 6 5 = 1
H = 4 6 = = 2
H = 5 4 = 1
Uso da Funções de Avaliação
10
Quando aplicar a função de avaliação?
Definir uma profundidade máxima ou iterativa pode não funcionar 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. uma 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”
11AlphaBeta Pruning
Função:• Não expandir desnecessariamente nós durante o minimax.
Idéia: não vale a pena piorar, se já achou algo melhor
Mantém 2 parâmetros:∀ α melhor valor (no caminho) para MAX∀ β melhor valor (no caminho) 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)
12
AlphaBeta Pruning: exemplo
MAX
MIN
MAX
α
2 3
βtemp=3
α1=3
1 2
2 3 5
α1=3
βtemp=3
α2=5
x
α2=5 > βtemp=3: pára! Se x>5 α2>5 => βtemp=3Se x≤5 α2=5 => βtemp=3
Portanto, x não importa!
13
3=C
3=A
3
2 3 5 0
0
0=D
2 1
25=B
2=E
A tem β=3; B será podado por β, já que 5>3D é podado por α, já que 0<3E é podado por α, já que 2<3
C é 3.
β
α
Top Related