Minimax

En teoría de juegos, Minimax es un método de decisión para minimizar la pérdida máxima
esperada en juegos con adversario y con información perfecta. Minimax es un algoritmo
recursivo.
El funcionamiento de Minimax puede resumirse como elegir el mejor movimiento para ti
mismo suponiendo que tu contrincante escogerá el peor para ti.
Teorema Minimax
John von Neumann es el creador del teorema minimax, quien dio la siguiente noción de lo
que era un juego:
"Un juego es una situación conflictiva en la que uno debe tomar una decisión sabiendo que
los demás también toman decisiones, y que el resultado del conflicto se determina, de
algún modo, a partir de todas las decisiones realizadas."
También afirmó que:
"Siempre existe una forma racional de actuar en juegos de dos participantes, si los
intereses que los gobiernan son completamente opuestos."
La demostración a esa afirmación se llama Teoría Minimax y surge en 1926.
Este teorema establece que en los juegos bipersonales de suma cero, donde cada jugador
conoce de antemano la estrategia de su oponente y sus consecuencias, existe una
estrategia que permite a ambos jugadores minimizar la pérdida máxima esperada. En
particular, cuando se examina cada posible estrategia, un jugador debe considerar todas
las respuestas posibles del jugador adversario y la pérdida máxima que puede acarrear. El
jugador juega, entonces, con la estrategia que resulta en la minimización de su máxima
pérdida. Tal estrategia es llamada óptima para ambos jugadores sólo en caso de que sus
minimaxes sean iguales (en valor absoluto) y contrarios (en signo). Si el valor común es
cero el juego se convierte en un sinsentido.
En los juegos de suma no nula, existe tanto la estrategia Minimax como la Maximin. La
primera intenta minimizar la ganancia el rival, o sea busca que el rival tenga el peor
resultado. La segunda intenta maximizar la ganancia propia, o sea busca que el jugador
obtenga el mejor resultado.

Algoritmo Mini Max:
La estrategia MiniMax es una estrategia de búsqueda exhaustiva
mediante un árbol de búsqueda. Este algoritmo considera el caso de 2
participantes a los que se les denomina Max y Min.

El que inicia el juego es Max y existe una alternancia en la participación
del juego. Por lo tanto lo que tiene que hacer Max, es determinar la secuencia
de jugadas que conduzca a un estado Terminal ganador o favorecedor.

En teoría de juegos, Minimax es un método de decisión para minimizar
la pérdida máxima esperada en juegos con adversario y con información
perfecta. Este cálculo 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.
Es un algoritmo inteligente, que tiene una base de conocimientos el cual
tiene como objetivo almacenar jugadas realizadas cada vez que inicia un juego
o de acuerdo a los movimientos y al historial que tiene con respecto a ellos.
Una vez que ya ha tenido recorrido juegos lo que empieza hacer este
algoritmo es aplicar la experiencia obtenida a nuevos juegos. Este algoritmo es
imparcial pues busca que el oponente realice jugadas que no beneficien tanto
su estrategia de juego.

Ventajas:
 El algoritmo tiene la capacidad de aprender de acuerdo a una base de
datos histórica de movimientos realizado, es decir, aprende con la
experiencia
 El algoritmo será infalible o un gran oponente a vencer entre más juegos
y movimientos tenga en su historial.
 Aprende del oponente y al tiempo le da ventaja (para luego utilizar las
estrategias del oponente en otros juegos).

Desventajas:
 El algoritmo tiene una complejidad muy elevada de implementación,
pues el hecho de estructurar una base de datos de experiencia requiere
de armar y estructurar un esquema de aprendizaje óptimo.
 Es lento de aprendizaje, pues por cada jugada realizada y el conjunto de
las que tiene almacenadas lo obliga a implementar algoritmos de
comparación, búsqueda, inserción, etc.
 Por cada nuevo oponente deberá implementar estructuras de
aprendizaje, pues no todos los oponentes juegan de la misma forma.
 El algoritmo solo funciona para enfrentar un oponente a la vez