mini max

14
Luís Carlos Calado – 050509043 João Carlos Sousa – 050509027 José Carlos Campos – 060509007 Rodolfo Sousa Silva – 050509069 1 Inteligê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

Upload: ivx

Post on 25-Jun-2015

201 views

Category:

Documents


16 download

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

27

Obrigado pela vossa atenção

E

Boa sorte para o teste

Inteligência Artificial 2008/2009