DEFINICION
El algoritmo MiniMax es el algoritmo ms conocido (y utilizado) para juegos de
2 adversarios, movimientos alternos (ahora tu, ahora yo). No se puede
utilizar en juegos donde hay azar, sino perfectamente definido como las tres
en raya y el ajedrez.
En teora de juegos, Minimax es un mtodo de decisin para minimizar la
prdida mxima esperada en juegos con adversario. Este clculo se hace de
forma recursiva.
El funcionamiento de Minimax puede resumirse como elegir el mejor
movimiento para ti mismo suponiendo que tu contrincante escoger el peor
para ti.
Se utilizar una estrategia de profundidad limitada para explorar el conjunto de
jugadas. Como es imposible hacer una exploracin exhaustiva de todas las
jugadas, se hace una bsqueda limitada en profundidad. Significa que en lugar
de estudiar todas las posibles situaciones hasta el fin de la partida, se buscaran
por ejemplo todas las situaciones de aqu 3 turnos (un modo de poda).
Aclaraciones Iniciales
Identificaremos a cada jugador como el jugador MAX y el jugador MIN. MAX
ser el jugador que inicia el juego, el cual supondremos que somos nosotros, y
nos marcaremos como objetivo encontrar el conjunto de movimientos que
proporcionen la victoria a MAX (nosotros) independientemente de lo que haga
el jugador MIN.
Deber existir una funcin de evaluacin heurstica que devuelva valores
elevados para indicar buenas situaciones, y valores negativos para indicar
situaciones favorables al oponente.
La calidad de nuestras jugadas vendr determinada por la profundidad a la que
lleguemos en cada exploracin. Cuanto mas profunda sea, mejor jugaremos,
pero mayor coste tendr el algoritmo.
En este juego de las tres en raya se puede llegar a la profundidad mxima
puesto que se trata de 9 movimientos fijos, en otros como el ajedrez o las
Resumen
El minimax aporta una herramienta de proceso recursiva muy til
Se pueden aplicar modificaciones al algoritmo para hacerlo ms eficiente
En el juego de las tres en raya:
Gana el +1, pierde el -1 y empate 0
La profundidad mxima es de 9, como el nmero de jugadas posible
No hay restricciones sobre la validez de un movimiento, simplemente
que no se haya hecho antes, por lo que el coste del clculo es bajo (no hay que
aplicar reglas complejas).
Almacenar las soluciones intermedias no es excesivamente complejo
Generar los diferentes tableros con las soluciones intermedias a explorar
no es costoso pero podra ser un problema en otros juegos y limitar la
profundidad por memoria
Cada vez que llegamos a un nodo terminar hay que realizar un evaluacin
(mediante una funcin) y lo que hace esa evaluacin es sopesar que tal buena
es la solucin a la que conduce el nodo terminal, y para poder valorarla se le
asigna un valor numrico. En este caso de las tres en raya podramos utilizar
estos valores:
+1. Cuando gana el Ordenador
0 Cuando se produce empate
-1 . Cuando gana el Humano.
Es de aprendizaje lento
Poda Alfa-beta
Para juegos con un factor de ramificacin elevado, esta profundidad no podr
ser muy grande, ya que el clculo necesario para cada decisin ser
prohibitivo. Su tiempo de exploracin ser muy grande. Para mejorarlo hay que
utilizar heursticos con poda, es decir se utilizar una tcnica de ramificacin y
poda.
Bsqueda Sesgada
Bajada progresiva
Etc.
4 . Elegir la jugada valorando los valores que han llegado al nivel superior.
El algoritmo explorar los nodos del rbol asignndoles un valor numrico
mediante una funcin de utilidad, empezando por los nodos terminales y
subiendo hacia la raz. La funcin de utilidad como se ha comentado, definir lo
buena que es la posicin para un jugador cuando la alcanza.
Versiones ms avanzadas como el minimax con poda alfa beta hacen que se
reduzca considerablemente el nmero de nodos a visitar por lo que el tiempo
de clculo se reduce ampliamente.
Y para terminar comentar un ejemplo csico, el tres en raya (juego del gato,
tatet, triqui, tres en gallo, michi, la vieja o tic tac toe). Se trata de hacer una
fila de tres para ganar y evitar que el oponente la haga antes que tu.
Al aplicar el algoritmo, se suceden una serie de estados que se resumen en la
fotografa. Un estado -1 significa que MAX gana, 0 empate o -1 pierde.
Se distinguen los nodos terminales con jugada finalizada y los del trayecto. En
este juego se puede llegar a la profundidad mxima puesto que se trata de 9
En el tres en raya:
o
ALGORITMO MINIMAX
Algoritmo de decision
juegos de adversarios
El espacio de estados se
donde:
o Nodo:
Representa
una
o Sucesores de un nodo:
Situaciones del juego a las que
aplicando sus reglas
o Nivel:
Contiene todas
se accede
por
movimientos legales
de los
jugadores
de la
o Se ha agotado el tiempo
o Se ha llegado a una
de exploracin
grandes cambios
de un nivel a otro.
Posicin inicial.
Conjunto
de
operadores
reglas
del
Estado terminal
Funcin
de
utilidad,
ej.
gana,
pierde,
empata
Pasos del Algoritmo Minimax
1. Generacin
2. Clculo
terminal.
3. Calcular
inferiores.
Alternativamente
se
elegirn
los
valores
mnimos
de
lo que
haga el
oponente.
El
jugador
que
espera
valores
positivos
se
conoce
como
negativos
se
conoce
como
maximizador
El
jugado
que
espera
valores
Minimizador
P. ejemplo:
Nivel MAX
2
2
1
7
Nivel MIN
Nivel MAX
El maximizador:
O puede esperar a llegar a un valor de 8 o Sabe que el
minimizador puede escoger un movimiento que lo
lleve a un
valor de 1
, V(Jn)]
la
MAX gana
Reglas:
MIN gana
Empate
Procedimiento
Se desarrolla una bsqueda por niveles, generando los nodos del cada nivel
Positivos
altos:
Si
la
situacin
de uno de los
jugadores es ventajosa
esto es:
f(s)=
f(s)=NMAX(s)-NMIN(s)
donde:
S: Situacin o distribucin del tablero
f(s):Funcindeevaluacindeltablero (nodo del espacio de estados)
NMAX(s):
No.
de
filas,
columnas
diagonalesabiertasparaMAX(dondean
puede ganar)
NMIN(s): No. de filas, columnas o diagonales
abiertas
ganar)
para
MIN(dondeanpuede