Sie sind auf Seite 1von 22

27-03-2008

Inteligncia Artificial
Algoritmo MiniMax com cortes Alfa-Beta

Ana Saraiva 050509087 Ana Barbosa 050509089 Marco Cunha 050509048 Tiago Fernandes 050509081

FEUP - MIEIC

3Ano/2Semestre

Introduo
O algoritmo Minimax um mtodo da Teoria da Deciso utilizado para minimizar a maior perda possvel.

Alternativamente pode ser pensado como uma forma de maximizar o minimo ganho possvel.

27-03-2008

Introduo
Von Neumann era um brilhante matemtico nascido em Budapeste em 1903.

Devido demonstrao do teorema minimax, Von Neumann foi considerado o pai da teoria de jogos em 1926.

Introduo
Este algoritmo surgiu a partir da Zero-Sum Game Theory. O teorema Minimax:
Para qualquer jogo para dois jogadores que respeite a teoria zero-sum, existe uma estratgia mista para cada jogador tal que o resultado esperado para os dois o mesmo valor V quando os jogadores usam esta estratgia.V o melhor valor que cada um pode esperar de uma jogada. Isto , estas estratgias mistas so as estratgias ptimas para os dois jogadores.
4

27-03-2008

Mas o que o ZeroZero-Sum?


(Para alm de um episdio dos X-Files e de uma srie Anime)

Na teoria dos jogos, Zero-Sum uma situao onde o ganho de um jogador exactamente igual perda de outro. Jogos perfeitamente equilibrados como o Xadrez ou o Go. Apenas um jogador pode ganhar (ou existe um empate).

Porqu apenas em jogos lgicos?

27-03-2008

27-03-2008

Minimax

Qual o exemplo mais simples para ilustrar o minimax?

Minimax

Xadrez?

10

27-03-2008

Minimax

Damas?

11

Minimax

Go?

12

27-03-2008

Minimax

Jogo do Galo?
13

Minimax

14

27-03-2008

Procedimento bsico
Determinar SE profundidade limite atingida OU Nivel Minimizador OU Nivel Maximizador SE profundidade limite Calcular valor do estado corrente Retornar resultado SE Nivel Minimizador Aplicar minimax aos sucessores Retornar Mnimo SE Nivel Maximizador Aplicar minimax aos sucessores Retornar Mximo

ENTO

15

Representao do Minimax
findCompMove findHumanMove

findHumanMove

...

Tabuleiro preenchido

16

27-03-2008

int TicTacToe: :findCompMove(int & bestMove) { int i, responseValue; int dc; int value; if (fullBoard()) value = DRAW; else if (immediateCompWin(bestMove)) return COMP_WIN; else { value = COMP_LOSS; bestMove = 1; for (i = 1; i <= 9; i++) { if (isEmpty(i)) { place(i, COMP); responseValue = findHumanMove(dc); unplace(i); if (responseValue > value) { value = responseValue; bestMove = i; } } } return value; }
17

int TicTacToe: :findHumanMove(int & bestMove) { int i, responseValue; int dc; int value; if (fullBoard()) value = DRAW; else if (immediateCompWin(bestMove)) return COMP_WIN; else { value = COMP_LOSS; bestMove = 1; for (i = 1; i <= 9; i++) { if (isEmpty(i)) { place(i, COMP); responseValue = findCompMove(dc); unplace(i); if (responseValue < value) { value = responseValue; bestMove = i; } } } return value; }
18

27-03-2008

rvore de pesquisa Jogo do Galo

19

1 1 1

2 2 2 2 2 2 2 2

3 3

4 4 4 4 4 4

6 6 6 6 6

7 7 7 7 7 7 7 7 7

8 8 8 8 8 8 8

9 9 9 9

X O X

O X X

O X O

20

10

27-03-2008

Minimax Jogo do Galo


46 ns considerando s uma alternativa de ramificao em cada momento. Uma pesquisa completa visitaria 97162 posies.

Para um jogo to simples quanto o jogo do galo!


21

Minimax
E para jogos mais complexos como o Xadrez ou o Go? Estima-se que no Xadrez s para a primeira jogada, 100 10 posies seriam avaliadas. Para jogos mais complexos so necessrias optimizaes.

22

11

27-03-2008

Optimizaes ao Minimax
Optimizar o algoritmo parece uma boa soluo mas preciso ter cuidado

Uma m optimizao pode gerar uma m IA O que poderia tornar prefervel usar jogadas aleatrias
23

Optimizaes ao Minimax

Optimizao em profundidade

Cortes Alfa-Beta

24

12

27-03-2008

Optimizao em Profundidade
Em vez de analisar toda a rvore de pesquisa, estuda-se apenas at um determinado nvel. Ideal para jogos longos com um factor de ramificao muito grande. Ex: Xadrez

25

Optimizao em Profundidade
Esta reduo obviamente compromete a seleco da melhor jogada possvel mas em muitos casos tolervel tendo em conta o tempo de espera.

26

13

27-03-2008

Optimizaes ao Minimax

Ser que o minimax em alguma altura realiza trabalho intil?

27

Optimizaes ao Minimax
Max

Min

10

Ser importante saber o valor destes dois ns?


28

14

27-03-2008

Optimizaes ao Minimax
Max 3 2 Min

10

O primeiro nvel ir escolher o valor mximo dos sucessores. O segundo nvel ir escolher o valor mnimo dos sucessores.
29

Optimizaes ao Minimax
Max 3 2 Min

10

O valor do ramo do meio nunca ser maior que 2 Logo quaisquer que seja o valor dos filhos, ele nunca ser escolhido
30

15

27-03-2008

Cortes AlfaAlfa-Beta
So estabelecidos dois valores: Alfa e Beta Alfa o valor mais alto do jogador Max Beta o valor mais baixo do jogador Min O processamento dos filhos de um n termina quando a condio Alfa < Beta no se verificar.
31

Cortes AlfaAlfa-Beta - Algoritmo


int minimaxAB(state, player, depth, alpha, beta) if (depth == limit or state is terminal) return the static evaluation of state if (player is min) until all successors, s, are examined or alpha >= beta val=minimaxAB(s, max, depth+1, alpha, beta) if (val < beta) beta = val return beta if (player is max) until all successors, s, are examined or alpha >= beta val=minimaxAB(s, min, depth+1, alpha, beta) if (val > alpha) alpha = val return alpha

32

16

27-03-2008

Cortes AlfaAlfa-Beta - Exemplo


Max A

Min B C D

Max E F G H I J K

Min L 7 M 6 N 8 O 5 P 2 Q 3 R 0
S -2

T 6

U 2

V 5

W 8

X 9

Y 2
33

Cortes AlfaAlfa-Beta trace


Max
First call (assume depth limit is 3): minimaxAB(A,max,0,-inf,+inf) successors B,C,D B minimaxAB(B,min,1,-inf,+inf) successors E,F,G E minimaxAB(E,max,2,-inf,+inf) successors L,M minimaxAB(L,min,3,-inf,+inf) returns 7 alpha = 7 minimaxAB(M,min,3,7,+inf) returns 6 returns 7 beta = 7

A Min B C D

Max E F G

Min L 7 M 6
34

17

27-03-2008

Cortes AlfaAlfa-Beta trace


F minimaxAB(F,max,2,-inf,7) successors N,O minimaxAB(N,min,3,-inf,7) returns 8 alpha = 8 *** CUTOFF alpha>beta *** returns 8 G minimaxAB(G,max,2,-inf,7) successors P,Q minimaxAB(P,min,3,-inf,7) returns 2 alpha = 2 minimaxAB(Q,min,3,2,7) returns 3 alpha = 3 returns 3 beta = 3 returns 3 alpha = 3

Max A

Min B C D

Max E F G

Min N 8 O 5 P 2 Q 3
35

Cortes AlfaAlfa-Beta trace


Max
C minimaxAB(C,min,1,3,+inf) successors H,I H minimaxAB(H,max,2,3,+inf) successors R,S minimaxAB(R,min,3,+inf) returns 0 minimaxAB(S,min,3,3,+inf) returns -2 returns 3 beta = 3 *** CUTOFF alpha>=beta *** returns 3 D ...

Min B C D

Max H I

Min R 0
S -2
36

18

27-03-2008

Cortes AlfaAlfa-Beta
Apesar de tudo o que foi referido, os cortes Alfa-Beta podem no trazer melhorias.

Na prtica, se as opes surgirem de uma determinada ordem (crescente no maximizador e decrescente no minimizador), os cortes Alfa-Beta no trazem melhorias.
37

Cortes AlfaAlfa-Beta
Max 2 Min 3

10

3 2

Max Min

10

No entanto se a ordem for a oposta a diferena na eficincia enorme


38

19

27-03-2008

Ordem de complexidade
Se a profundidade mxima da rvore for m e em cada ponto houver b lances possveis (factor de ramificao):
Cortes Alfa-Beta O(bm/2) O(bm)
(*)

Complexidade Temporal Espacial

Minimax O(bm) O(bm)

(*)

com uma ordenao perfeita


39

Resumo - Minimax
Baseia-se na suposio de que o adversrio 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 for finita (ex.: Jogo do Galo);
40

20

27-03-2008

Resumo - Minimax
O tempo gasto para determinar a deciso ptima totalmente impraticvel para qualquer jogo minimamente complexo, pois gera caminhos cuja possibilidade de serem seguidos praticamente nula. Serve de base a outros mtodos mais realistas, bem como de suporte anlise matemtica de jogos.

41

Resumo - Corte AlfaAlfa-Beta


Eficiente para determinar quais os ramos que no devem ser explorados; Uma boa ordenao dos ns aumenta ainda mais a sua eficincia, no entanto se isso no acontecer este algoritmo pode no trazer qualquer vantagem; No afecta o resultado final.

42

21

27-03-2008

Concluses

Segundo o teorema do Minimax h sempre uma soluo racional para um conflito bem definido entre dois indivduos.

43

QUESTES ??

44

22

Das könnte Ihnen auch gefallen