mini max
TRANSCRIPT
Luís Carlos Calado – 050509043João Carlos Sousa – 050509027José Carlos Campos – 060509007Rodolfo Sousa Silva – 050509069
1Inteligência Artificial 2008/2009
Algoritmo MiniMax
Minimax
2
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
3
MinimaxEste teorema surgiu a partir da Zero-Sum GameTheory:“Para qualquer jogo para dois jogadores que respeite a teoriazero-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
4Inteligência Artificial 2008/2009
Qual o exemplo mais simples para ilustrar o Minimax?
5Inteligência Artificial 2008/2009
Xadrez Damas Go
6Inteligência Artificial 2008/2009
Porque não aplicar o Minimax no Xadrez?
Factor médio de ramificação: ~35Tempo entre duas jogadas: 2,5 minutos (150 segundos)Computador: analisa 10 000 estados / segundo
Estados analisáveis: 150 segundos * 10^4 estados = 1 500 000Nº 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
7Inteligência Artificial 2008/2009
OK
Jogo do Galo
8Inteligência Artificial 2008/2009
Algoritmo (Pseudo-código)
DeterminarSE {profundidade limite atingidaOU Nivel é MinimizadorOU Nivel é Maximizador }ENTÃO
SE profundidade limiteCalcular valor do estado correnteRetornar resultado
SE Nivel MinimizadorAplicar minimax aos sucessoresRetornar Mínimo
SE Nivel MaximizadorAplicar minimax aos sucessoresRetornar Máximo
9Inteligência Artificial 2008/2009
- 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
10Inteligência Artificial 2008/2009
Para cada nível MINimizador ou MAXimizador, escolher o MINímo ou MAXimo dos sucessores
Max
Min
Exemplo
11Inteligência Artificial 2008/2009
Max
Min
Exemplo (continuação)
12Inteligência Artificial 2008/2009
Será que o minimax em alguma altura realiza trabalho “inútil”?
13
Max
Min
Inteligência Artificial 2008/2009
Resposta? Sim
14Inteligência Artificial 2008/2009
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
15
alfa-beta(jogador, mundo, alfa, beta)SE o jogo terminou no estado actual do mundodevolve vencedorfilhos = todas as jogadas possíveis a partir do estado actual
SE jogador = MAXPARA cada filhoavaliação = alfa-beta(adversário, filho, alfa, beta) SE avaliação > alfa ENTÃOalfa = avaliação (encontrou-se uma melhor jogada)
SE alfa >= beta ENTÃOdevolve alfa (ignora restante ramos) devolve alfa (esta é a melhor jogada)SENÃO jogador = MINPARA cada filhoavaliação = alfa-beta(adversário, filho, alfa, beta) SE avaliação < beta ENTÃObeta= avaliação (adversário encontrou uma melhor pior jogada)
SE alfa >= beta ENTÃOdevolve beta (ignora restante ramos)devolve beta (a melhor jogada do adversário)
Algoritmo (Pseudo-código)
Inteligência Artificial 2008/2009
16Inteligência Artificial 2008/2009
Max
Min
Exemplo
17
Max
Min
Inteligência Artificial 2008/2009
Exemplo (continuação)
18Inteligência Artificial 2008/2009
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-Betanão trazem melhorias.
19Inteligência Artificial 2008/2009
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
20Inteligência Artificial 2008/2009
Outra abordagem, Negamax
21Inteligência Artificial 2008/2009
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.
22Inteligência Artificial 2008/2009
Exemplo
23Inteligência Artificial 2008/2009
Exemplo (continuação)
24
Resumo - Minimax
Inteligência Artificial 2008/2009
- 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.
25
Resumo – Corte alfa-beta
Inteligência Artificial 2008/2009
- Eficiente para determinar quais os ramos que nãodevem 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 podenão trazer qualquer vantagem;
26
?
Inteligência Artificial 2008/2009