Você está na página 1de 7

Apontamentos Terico-Prticos de Algoritmia Avanada LEI/ISEP Mtodos de Pesquisa Carlos Ramos 60

Mtodo Minimax
Aula 5
Apontamentos Terico-Prticos de Algoritmia Avanada LEI/ISEP Mtodos de Pesquisa Carlos Ramos
Mtodo Minimax
61
O mtodo Minimax o mtodo mais conhecido
para lidar com jogos. Admite-se que existe um
gerador de estados e uma funo que avalia a
vantagem ou desvantagem de um dado estado.
Vamos considerar que esta funo de avaliao
um estimador heurstico da estimativa das
hipteses de vitria do ponto de vista de um dos
jogadores:
Quanto maior for o valor, maior sero as hipteses do
jogador vencer
Quanto menor for o valor, maior sero as hipteses do
oponente vencer
O objectivo tentar maximizar o valor dado pela
funo de avaliao.
Apontamentos Terico-Prticos de Algoritmia Avanada LEI/ISEP Mtodos de Pesquisa Carlos Ramos
Mtodo Minimax
O objectivo da implementao seleccionar a
jogada que garanta a melhor situao ao fim de
n jogadas
A melhor situao corresponde ao estado cujo
valor da funo de avaliao seja o maior
(problema de maximizao)
O objectivo alcanado propagando o valor
correspondendo ao melhor estado at ao n
raiz; este valor corresponde ao ganho mnimo
que se obtm se optarmos pela jogada correcta
62
Apontamentos Terico-Prticos de Algoritmia Avanada LEI/ISEP Mtodos de Pesquisa Carlos Ramos
Mtodo Minimax
A propagao de valores atravs dos ns da
rvore realizada da seguinte forma:
Nos nveis que correspodem s aces do
jogador, selecciona-se para propagao o
maior valor (nvel de maximizao)
Nos nveis que correspondem s aces do
oponente, selecciona-se para propagao o
menor valor (nvel de minimizao)
Os valores associados aos ns folha so obtidos
pela aplicao da funo heurstica de avaliao
do mrito de cada um dos estados, de acordo
com o ponto de vista do jogador
63
Apontamentos Terico-Prticos de Algoritmia Avanada LEI/ISEP Mtodos de Pesquisa Carlos Ramos
Mtodo Minimax
64
Consideremos o problema genrico representado na
figura. Os ns representam estados e os ramos
representam as jogadas possveis a partir de cada
estado. Os valores associados aos ns folha so obtidos
por uma funo de avaliao.
Apontamentos Terico-Prticos de Algoritmia Avanada LEI/ISEP Mtodos de Pesquisa Carlos Ramos
Mtodo Minimax
Relaes do problema genrico
max_t o_move( d) .
max_t o_move( e) .
max_t o_move( f ) .
max_t o_move( g) .
mi n_t o_move( b) .
mi n_t o_move( c) .
mi n_t o_move( h) .
mi n_t o_move( i ) .
mi n_t o_move( j ) .
mi n_t o_move( l ) .
mi n_t o_move( m) .
mi n_t o_move( n) .
mi n_t o_move( o) .
mi n_t o_move( p) .
65
max_to_move/ 1 e min_to_move/ 1 definem para cada n qual o valor dos seus
descendentes propagado at ao prprio n; o maior no caso de max_to_move/1 ou
o menor no caso de min_to_move/1
Apontamentos Terico-Prticos de Algoritmia Avanada LEI/ISEP Mtodos de Pesquisa Carlos Ramos
Mtodo Minimax
Relaes do problema genrico (cont.)
moves( a, [ b, c] ) .
moves( b, [ d, e] ) .
moves( c, [ f , g] ) .
moves( d, [ h, i ] ) .
moves( e, [ j , l ] ) .
moves( f , [ m, n] ) .
moves( g, [ o, p] ) .
66
moves/ 2 define para cada n a lista de ns descendentes (correspondem s
jogadas vlidas a partir de cada n); num problema concreto a lista de ns
descendentes gerada em funo das regras do jogo
Apontamentos Terico-Prticos de Algoritmia Avanada LEI/ISEP Mtodos de Pesquisa Carlos Ramos
Mtodo Minimax
Relaes do problema genrico (cont.)
st at i c_eval ( h, 1) .
st at i c_eval ( i , 4) .
st at i c_eval ( j , 5) .
st at i c_eval ( l , 6) .
st at i c_eval ( m, 2) .
st at i c_eval ( n, 1) .
st at i c_eval ( o, 1) .
st at i c_eval ( p, 1) .
static_eval/ 2 define o valor do mrito, do ponto de vista do jogador representado
pelo algoritmo, de cada estado terminal (ns folha da rvore); num problema
concreto, este valor estimado atravs de uma funo de avaliao
Apontamentos Terico-Prticos de Algoritmia Avanada LEI/ISEP Mtodos de Pesquisa Carlos Ramos
Mtodo Minimax
Algoritmo
O objectvo do algoritmo propagar o valor minimax para uma dada
posio a partir dos ns folha.
O predicado principal
minimax( Pos, BestPos, Val, NodesList)
onde Val o valor minimax da posio Pos, BestPos a melhor posio
que sucede a Pos (ou seja, a jogada a realizar para alcanar o valor
Val) e NodesList contm a sequncia de ns da rvore usados para
propagar o valor de uma posio final at Pos.
68
Apontamentos Terico-Prticos de Algoritmia Avanada LEI/ISEP Mtodos de Pesquisa Carlos Ramos
Mtodo Minimax
69
minimax(Pos, BestPos, Val, NodesList):-
moves(Pos, PosList), !,
best(PosList, BestPos, Val, NodesList).
minimax(Pos, BestPos, Val, []):-
static_eval(Pos, Val).
moves/ 2 falha se
Pos uma folha
Pos uma f ol ha
best/ 4 selecciona a melhor posio BestPos a partir de uma lista de
posies candidatas PosList (descendentes de Pos). BestVal o valor
de BestPos e logo tambm de Pos. A melhor posio pode ser um
mximo ou um mnimo, dependendo do nvel de Pos.
Apontamentos Terico-Prticos de Algoritmia Avanada LEI/ISEP Mtodos de Pesquisa Carlos Ramos
Mtodo Minimax
Algoritmo (cont.)
best ( [ Pos] , Pos, Val , NodesLi st ) : -
mi ni max( Pos, _, Val , NodesLi st ) , ! .
best ( [ Pos1| PosLi st ] , Best Pos, Best Val , [ Best Pos| NodesLi st ] ) : -
mi ni max( Pos1, _, Val 1, NodesLi st 1) ,
best ( PosLi st , Pos2, Val 2, NodesLi st 2) ,
bet t er of ( Pos1, Val 1, Pos2, Val 2, Best Pos, Best Val ,
NodesLi st 1, NodesLi st 2, NodesLi st ) .
70
Quando a lista de candidatos contm
apenas um elemento, minimax/ 4 usado
para propagar o melhor valor a partir dos
ns folha que descendem de Pos
Val1 o melhor valor para Pos1
Val2 o valor de Pos2, sendo esta a
melhor posio entre as posies contidas
em PostList
BestPos a melhor posio entre Pos1 e
Pos2
Apontamentos Terico-Prticos de Algoritmia Avanada LEI/ISEP Mtodos de Pesquisa Carlos Ramos
Mtodo Minimax
Algoritmo (cont.)
Regras de propagao dos valores dos ns:
v(P) valor da funo de avaliao aplicada ao estado P (n folha)
V(P) valor propagado para o estado P a partir dos estados descendentes de P
V(P) = v(P) se P um estado que ocupa um n folha
V(P) = max
i
V(P
i
) se P um estado relativo a um nvel de maximizao
V(P) = min
i
V(P
i
) se P um estado relativo a um nvel de minimizao
bet t er of ( Pos0, Val 0, Pos1, Val 1, Pos0, Val 0, NodesLi st 0, NodesLi st 1, NodesLi st 0) : -
mi n_t o_move( Pos0) , Val 0 > Val 1, ! .
bet t er of ( Pos0, Val 0, Pos1, Val 1, Pos0, Val 0, NodesLi st 0, NodesLi st 1, NodesLi st 0) : -
max_t o_move( Pos0) , Val 0 < Val 1, ! .
bet t er of ( Pos0, Val 0, Pos1, Val 1, Pos1, Val 1, NodesLi st 0, NodesLi st 1, NodesLi st 1) .
71
1 c
2
f
1
g
Apontamentos Terico-Prticos de Algoritmia Avanada LEI/ISEP Mtodos de Pesquisa Carlos Ramos
?- minimax(d, BestPos, Val, NodesList).
(1)minimax(d, BestPos, Val, NodesList):-
moves(d, PosList),
best([h,i], BestPos, Val, NodesList).
BestPos=i
Val=4
Nodeslist=[i]
Mtodo Minimax
72
(1)Falha
(2)best([h|[i]], BestPos, Val, [BestPos|NodesList]):-
minimax(h, _, Val1, NodesList1),
best([i], Pos2, Val2, NodesList2),
betterof(h,1,i,4,BestPos,Val,[],[],NodesList).
(1)Falha
(2)minimax(h, _, Val, []):-
static_eval(h, Val). Val=1
(1)best([i], i, Val, NodesList):-
minimax(i, _, Val, NodesList), !.
(1)Falha
(2)minimax(i, _, Val, []):-
static_eval(i, Val).
BestPos=i
Val=4
NodesList=[]
Val=4
Val=4
NodesList=[]
Pos2=i
Val2=4
NodesList2=[]
Val1=1
NodesList1=[]
PosList=[h,i]
Apontamentos Terico-Prticos de Algoritmia Avanada LEI/ISEP Mtodos de Pesquisa Carlos Ramos
Mtodo Minimax
Resultado
?- minimax(a, BestPos, Val, NodesList).
BestPos = b
Val = 4
NodesList = [b, d, i]
73
Implementao do mtodo Minimax com cortes Alpha-Beta:
Prolog Programming for Artificial Intelligence
Ivan Bratko
Addison-Wesley

Você também pode gostar