MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta -...

22
MiniMax e cortes alfa-beta Apresentado por: Ricardo Coutinho Leonel Peixoto Duarte Ribeiro

Transcript of MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta -...

Page 1: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

MiniMax e cortes alfa-beta

Apresentado por:

Ricardo Coutinho

Leonel Peixoto

Duarte Ribeiro

Page 2: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

Jogos E ainda existem

outros tipos!

Page 3: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

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

Page 4: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

Informação imperfeita existem estados invisíveis

Informação perfeita todos os estados são visíveis

VS

Page 5: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

Determinístico cada acção tem um

resultado específico

Estocástico cada acção tem uma

probabilidade de ter um

resultado diferente

VS

Page 6: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

O jogo pac-man (1980)

Page 7: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

1 3 2 6 6 Jogo sem adversário (exemplo do pac-man)

Page 8: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

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

Page 9: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

-8 -5 -10 +8 -8

Jogo com adversário (exemplo do pac-man)

Page 10: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

MiniMax

Page 11: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

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

Page 12: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

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):

Page 13: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

1 6 2 7 4 3 5 7

4

4 1 3 3 1 7 4

6

6

3 4 -∞

+∞ +∞ +∞

Page 14: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

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)

Page 15: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com
Page 16: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

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

Page 17: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

MiniMax com Cortes Alfa-Beta

Page 18: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

1 7 4 3 5 7

4

4 1 3 3 1 7 4

6

6

3 4

Page 19: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

MiniMax com Cortes Alfa-Beta - revisão

Page 20: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

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

Page 21: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

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)

Page 22: MiniMax - FEUPeol/IA/1415/Estudantes_IART_MiniMax_2014_1… · MiniMax com Cortes Alfa-Beta - Limitações Problemas com a escolha do caminho ótimo Algoritmo “good child” Com

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