Algoritmo MiniMax
Luís Carlos Calado – 050509043
João Carlos Sousa – 050509027
José Carlos Campos – 060509007
Rodolfo Sousa Silva – 050509069
Inteligência Artificial 2008/2009
1
Minimax
Minimax (ou minmax) é um método usado na Teoria da Decisão,
Teoria dos Jogos, Estatística e Filosofia para minimizar a perda
máxima possível.
Teorema Minimax
Von Neumann foi um brilhante matemático nascido
em Budapeste em 1903.
Devido à demonstração do teorema minimax, Von
Neumann foi considerado o pai da teoria dos jogos
em 1926.
Inteligência Artificial 2008/2009
2
Minimax
Este teorema surgiu a partir da Zero-Sum Game
Theory:
“Para qualquer jogo para dois jogadores que respeite a teoria
zero-sum, existe uma estratégia mista para cada jogador tal
que o resultado esperado para os dois é o mesmo valor V
quando os jogadores usam esta estratégia. V é o melhor
valor que cada um pode esperar de uma jogada. Isto é, estas
estratégias mistas são as estratégias óptimas para os dois
jogadores.”
Inteligência Artificial 2008/2009
3
Qual o exemplo mais simples para
ilustrar o Minimax?
Inteligência Artificial 2008/2009
4
Xadrez
Damas
Go
Inteligência Artificial 2008/2009
5
Porque não aplicar o Minimax no Xadrez?
Factor médio de ramificação: ~35
Tempo entre duas jogadas: 2,5 minutos (150 segundos)
Computador: analisa 10 000 estados / segundo
Estados analisáveis: 150 segundos * 10^4 estados = 1 500 000
Nº de estados à profundidade p: r^p = 35^p
35^4 = 1 500 625 (à profundidade 4, o computador já não analisa
todas as jogadas)
Um bom jogador humano consegue prever de 6 a 8 jogadas
Conclusão: Minimax é demasiado custoso em tempo
Inteligência Artificial 2008/2009
6
Jogo do Galo
OK
Inteligência Artificial 2008/2009
7
Algoritmo (Pseudo-código)
Determinar
SE {
profundidade limite atingida
OU Nivel é Minimizador
OU Nivel é Maximizador }
ENTÃO
SE profundidade limite
Calcular valor do estado corrente
Retornar resultado
SE Nivel Minimizador
Aplicar minimax aos sucessores
Retornar Mínimo
SE Nivel Maximizador
Aplicar minimax aos sucessores
Retornar Máximo
Inteligência Artificial 2008/2009
8
- Processo de pesquisa com Minimax
- Exemplo de árvore de pesquisa com profundidade 5
- Os valores da função Heurística são relativos ao jogador X
Heurística = ∑ linhas/colunas/diagonais em aberto ->X
∑ linhas/colunas/diagonais em aberto ->O
Inteligência Artificial 2008/2009
9
Exemplo
Max
Min
Para cada nível MINimizador ou MAXimizador,
escolher o MINímo ou MAXimo dos sucessores
Inteligência Artificial 2008/2009
10
Exemplo (continuação)
Max
Min
Inteligência Artificial 2008/2009
11
Será que o minimax em alguma altura
realiza trabalho “inútil”?
Inteligência Artificial 2008/2009
12
Resposta? Sim
Max
Min
Inteligência Artificial 2008/2009
13
Cortes alfa-beta
- Permite diminuir o número de nós visitados e de funções nos nós
avaliados
- Possui profundidade limitada
- Inclui-se um limite inferior para valor a minimizar (beta -> valor mais
baixo que o jogador min já assegurou), e um limite superior para o
valor a maximizar (alfa -> valor mais alto do jogador max)
- A pesquisa dos sucessores de um nó termina quando se verificar
alfa>=beta
Inteligência Artificial 2008/2009
14
Algoritmo (Pseudo-código)
alfa-beta(jogador, mundo, alfa, beta)
SE o jogo terminou no estado actual do mundo
devolve vencedor
filhos = todas as jogadas possíveis a partir do estado actual
SE jogador = MAX
PARA cada filho
avaliação = alfa-beta(adversário, filho, alfa, beta)
SE avaliação > alfa ENTÃO
alfa = avaliação (encontrou-se uma melhor jogada)
SE alfa >= beta ENTÃO
devolve alfa (ignora restante ramos)
devolve alfa (esta é a melhor jogada)
SENÃO jogador = MIN
PARA cada filho
avaliação = alfa-beta(adversário, filho, alfa, beta)
SE avaliação < beta ENTÃO
beta= avaliação (adversário encontrou uma melhor pior jogada)
SE alfa >= beta ENTÃO
devolve beta (ignora restante ramos)
devolve beta (a melhor jogada do adversário)
Inteligência Artificial 2008/2009
15
Exemplo
Max
Min
Inteligência Artificial 2008/2009
16
Exemplo (continuação)
Max
Min
Inteligência Artificial 2008/2009
17
Contras
Apesar de tudo o que foi referido, os cortes Alfa-Beta podem não trazer
melhorias.
Na prática, se as opções surgirem de uma determinada ordem (crescente
no maximizador e decrescente no minimizador), os cortes Alfa-Beta
não trazem melhorias.
Inteligência Artificial 2008/2009
18
Ordem de complexidade
Se a profundidade máxima da árvore for m e em cada ponto houver b
hipóteses possíveis (factor de ramificação):
(*)
com uma ordenação perfeita
Inteligência Artificial 2008/2009
19
Outra abordagem, Negamax
Inteligência Artificial 2008/2009
20
Negamax
Este algoritmo é semelhante ao Minimax mas tira partido das heurísticas
poderem ser as mesmas para o jogador e seu adversário (como é o caso do
Xadrez).
Enquanto que o Minimax maximiza a heurística do jogador e minimiza a do
adversário, o Negamax nega (multiplica por -1) o valor da heurística
correspondente ao nível onde teria de minimizar. Assim não precisa de saber
o nível onde se encontra e maximiza sempre.
Inteligência Artificial 2008/2009
21
Exemplo
Inteligência Artificial 2008/2009
22
Exemplo (continuação)
Inteligência Artificial 2008/2009
23
Resumo - Minimax
- Baseia-se na suposição de que o adversário escolherá sempre
o movimento ideal, e nunca incorrerá ao erro;
- Gera toda a árvore de busca, dentro do limite permitido;
-O Algoritmo é completo apenas no caso de a árvore ser finita
(ex.: Jogo do Galo);
- O tempo gasto para determinar a decisão óptima é totalmente
impraticável para qualquer jogo minimamente complexo, pois
gera caminhos cuja possibilidade de serem seguidos é
praticamente nula.
Inteligência Artificial 2008/2009
24
Resumo – Corte alfa-beta
- Eficiente para determinar quais os ramos que não
devem ser explorados;
- Não afecta o resultado final;
- Uma boa ordenação dos nós aumenta ainda mais a sua
eficiência, no entanto se isso não acontecer este algoritmo pode
não trazer qualquer vantagem;
Inteligência Artificial 2008/2009
25
?
Inteligência Artificial 2008/2009
26
Obrigado pela vossa atenção
E
Boa sorte para o teste
Inteligência Artificial 2008/2009
27
Download

Apres. Alunos