Minimax

El procedimiento de búsqueda Minimax es una búsqueda en profundidad (DFS) de profundidad limitada. 
El nombre del algoritmo deriva de considerar que, dada una función estática que devuelve valores en relación al jugador maximizante, éste procura maximizar su valor mientras que su oponente procura minimizarlo. 
En un árbol de juego donde los valores de la función estática están en relación al jugador maximizante, se maximiza y minimiza alternadamente de un nivel a otro. 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. 
El funcionamiento de Minimax puede resumirse a como elegir el mejor movimiento para ti mismo; suponiendo que tu contrincante escogerá el peor para ti. En la práctica el método Minimax es impracticable excepto en supuestos sencillos. 
Realizar la búsqueda completa requerirían cantidades excesivas de tiempo y memoria.
Claude Shannon en su texto sobre ajedrez de 1950 (Programming a Computer for Playing Chess) propuso limitar la profundidad de la búsqueda en el árbol de posibilidades y determinar su valor mediante una función heurística. Para optimizar Minimax puede limitarse la búsqueda por nivel de profundidad o por tiempo de ejecución. Otra posible técnica es el uso de la poda alfa-beta. Esta optimización se basa en la suposición que el jugador contrario no nos permitirá jugar nuestras mejores jugadas. 

ESTRUCTURA UTILIZADA EN MINIMAX


Dado que Minimax se basa en juegos y la habilidad de jugar es considerada como una distinción de inteligencia. Sus características son: 
CARACTERÍSTICAS: 
• Fácil de crear situaciones complicadas con reglas sencillas. 
• Se pueden probar contra humanos en donde existen escalas 
• Son adictivos. 
• A diferencia de búsqueda, el oponente introduce incertidumbre porque no sabemos que va a tirar, lo cuál se asemeja más a problemas reales. 
• El algoritmo Minimax es un procedimiento recursivo, y el corte de la recursión está dado por alguna de las siguientes condiciones: 
  • Gana algún jugador 
  • Se han explorado N capas, siendo N el límite establecido 
  • Se ha agotado el tiempo de exploración 
  • Se ha llegado a una situación estática donde no hay grandes cambios de un nivel a otro.
ALGORITMO MINIMAX. 

Pasos del algoritmo Minimax: 

1. Generación del árbol de juego. Se generarán todos los nodos hasta llegar a un estado terminal. 
2. Cálculo de los valores de la función de utilidad para cada nodo terminal. 
3. Calcular el valor de los nodos superiores a partir del valor de los inferiores. Alternativamente se elegirán los valores mínimos y máximos representando los movimientos del jugador y del oponente, de ahí el nombre de Minimax. 
4. Elegir la jugada valorando los valores que han llegado al nivel superior. 

El algoritmo explorará los nodos del árbol asignándoles un valor numérico mediante una función de utilidad, empezando por los nodos terminales y subiendo hacia la raíz. La función de utilidad definirá lo buena que es la posición para un jugador cuando la alcanza. 

Comentarios

Entradas populares de este blog

MINIMAX Y ALPHA-BETA PRUNNING PLANTEADO POR ALAN TURING