View
3
Download
0
Category
Preview:
Citation preview
MiniMax e cortes alfa-beta
Apresentado por:
Ricardo Coutinho
Leonel Peixoto
Duarte Ribeiro
Jogos E ainda existem
outros tipos!
Zero-Sum Games ● Agentes têm utilidades opostas
● Cada agente máximiza o seu
objectivo e como consequência
mínimiza o objectivo do outro
● Jogos com adversários
competitivos
General Games ● Agentes têm utilidades
independentes
● É possível ter cooperação,
indiferença, competição e/ou
mais
VS
Informação imperfeita existem estados invisíveis
Informação perfeita todos os estados são visíveis
VS
Determinístico cada acção tem um
resultado específico
Estocástico cada acção tem uma
probabilidade de ter um
resultado diferente
VS
O jogo pac-man (1980)
1 3 2 6 6 Jogo sem adversário (exemplo do pac-man)
Procura adversarial
Qual será a minha
melhor jogada?
depende do meu adversário
então vamos assumir que o
jogador vai utilizar a mesma
estratégia, isto é, de pensar na
melhor jogada que ele pode
fazer baseada na minha,.. e
por aí em diante
-8 -5 -10 +8 -8
Jogo com adversário (exemplo do pac-man)
MiniMax
1 6 2 7 6 3 5 7
MAX (Jogador)
4
Uma possível jogada de MAX
MIN (Adversário)
Profundidade de Pesquisa (Numero de jogadas)
Possíveis jogadas de MAX
Possíveis jogadas de MIN
Estado atual do jogo
Valores de possíveis estados terminais
Algoritmo MiniMax
definir valor-máximo(estado):
inicializar v = - ∞
para cada sucessor do estado:
v = max(v, valor-
mínimo(sucessor))
retorna v
definir valor-mínimo(estado):
inicializar v = +∞
para cada sucessor do estado:
v = min(v, valor-
máximo(sucessor))
retorna v
definir valor(estado):
se estado terminal: retorna o valor
se nível MIN: retorna valor-mínimo(estado)
se nível MAX: retorna valor-máximo(estado):
1 6 2 7 4 3 5 7
4
4 1 3 3 1 7 4
6
6
3 4 -∞
+∞ +∞ +∞
Eficiência do MiniMax
Seja:
b : número médio de ramificações
m : número médio de jogadas
Temos uma procura parecida com a
pesquisa em profundidade (Depth-First)
Complexidade de tempo: O(bm)
Complexidade de espaço: O(bm)
Sabendo que: b ~= 35
E pretende-se: m ~= 10
Supondo que se consegue: 1 000 000 estados explorados/segundo
Então:
Complexidade num Jogo de Xadrez
3510 = 2,75854735351562 x 1015 estados / 1 000 000 = 2758547353 segundos
~= 87 anos
MiniMax com Cortes Alfa-Beta
1 7 4 3 5 7
4
4 1 3 3 1 7 4
6
6
3 4
MiniMax com Cortes Alfa-Beta - revisão
Algoritmo do MiniMax com Cortes Alfa-Beta
α: melhor opção de MAX no caminho até à raiz
β: melhor opção de MIN no caminho até à raiz
definir valor-máximo(nível, α, β):
inicializar v = - ∞
para cada sucessor do nível:
v = max(v,
valor(sucessor,α, β))
se v≥β retorna v
α = max(α,v)
retorna v
definir valor-mínimo(nível, α, β):
inicializar v = + ∞
para cada sucessor do nível:
v = min(v,
valor(sucessor,α, β))
se v≤α retorna v
β = max(β,v)
retorna v
MiniMax com Cortes Alfa-Beta - Limitações
● Problemas com a escolha
do caminho ótimo
● Algoritmo “good child”
● Com perfeita ordenação:
○ Complexidade
temporal diminui
(para jogos de Xadrez
ainda é insuficiente)
Complexidade de tempo: O(bm/2)
Referências
1. Inteligência Artificial, EIC0029, FEUP by Prof.
Eugénio da Costa Oliveira
2. Artificial Intelligence, CS188.1x, University of
Berkeley on BerkeleyX
3. Pac-Man
Recommended