Anda di halaman 1dari 14

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

Boa sorte para o teste

Inteligência Artificial 2008/2009 27

Anda mungkin juga menyukai