Shanon lo sugirió originalmente (50), basado en teoría de juegos de von Neumann y O. Morgenstern, aunque Turing presentó el primer programa (51).
Idea: Maximizar mis tiradas considerando que el oponente va a minimizar.
Para decidir qué jugada hacer, el árbol se divide por niveles:
Las hojas se etiquetan con gana, pierde, empata desde el punto de vista de max.
Si podemos etiquetar todas las hojas, podemos etiquetar todo el árbol.
La siguiente función calcula lo mejor que max puede esperar desde la posición si juega de manera óptima contra un oponente perfecto.
Si es nodo max no-terminal:
Si es nodo min no-terminal:
Una estrategia para un jugador es un árbol considerando un camino para cada nodo del jugador y todos los posibles para el oponente.
La intersección de las dos estrategias define un juego.
Desde el punto de vista de max:
Si cambiamos los roles (ahora tira min): .
Minimax propaga asumiendo que las estimaciones son correctas. Si la estimación es burda, la propagación también va a ser burda.
Estrategia alternativa:
Negmax: igual a minimax, pero la función de evaluación es simétrica, por lo que:
Lo que nos interesa son estrategias de juegos ganadoras sin importar lo que haga el oponente (min).