Los Nueve Principios del Desempeño de la Sostenibilidad
MinMax
1. MINMAX
Instituto Tecnológico de Costa Rica
Estructuras de Datos
Integrantes:
Nelson Abarca, Gerardo Mora, Olman Quiros, Carlos Chacón
2. ¿QUE ES 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.
• Es un algoritmo recursivo.
• El algoritmo trabaja sobre Arboles de Juego (explicados mas adelante).
• MiniMax en una frase:
” Elegir el mejor movimiento para ti mismo suponiendo que tu contrincante
escogerá el peor para ti.”
3. ¿PARA QUE SIRVE?
Permite encontrar la solución
más óptima en los juegos
estratégicos, especialmente
en aquellos en que se tiene
Información Perfecta y no
interviene el azar en el
resultado final.
4. HISTORIA
•El Teorema Minimax fue presentado
formalmente por John von
Neumann en 1928.
•En 1912 el matemático alemán Ernst
Zermelo, formuló la hipótesis de que
los juegos secuenciales y
combinatorios están determinados
desde la posición inicial al ofrecer una
solución óptima que conduce hacia
un resultado final, siempre que ambos
oponentes apliquen sus mejores
estrategias.
John von Neumann
Ernst Zermelo
5. ÁRBOL DE JUEGO
Es un tipo especial de árbol
semántico en el que los «nodos»
representan configuraciones de
tablero y las «ramas» indican cómo
una
configuración
puede
transformarse en otra mediante un
sólo movimiento, los arboles de
juego pueden variar dependiendo
del tipo de juego.
6. ALGORITMO MINMAX
1. Generación del árbol de juego:
•
•
Se generarán todos los nodos hasta llegar a un estado terminal o
determinando una profundidad concreta . Se considera el nodo raíz
como la situación actual del juego.
Se aplicando el algoritmo por un número fijo de iteraciones hasta
alcanzar una determinada profundidad. En estas aplicaciones la
profundidad suele ser el número de movimientos o incluso el resultado de
aplicar diversos pasos de planificación en un juego de estrategia.
7. ALGORITMO MINMAX
2. Cálculo de los valores de la función de utilidad para cada nodo terminal:
•
•
El algoritmo explorará los nodos del árbol asignándoles un valor numérico
mediante una función. La función definirá lo buena que es la posición para
un jugador cuando la alcanza.
Para cada resultado final, cómo de beneficioso me resulta si estamos en
MAX o cuanto me perjudicará si estamos en MIN.
8. ALGORITMO MINMAX
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.
10. EL GATO: UN EJEMPLO SENCILLO
Para ejemplificar el algoritmo, consideremos el juego del gato. En este
juego podemos usar la siguiente función de evaluación para un tablero
t:
E(t) = NA(t) − NC(t)
donde NA(t) es el número de filas, columnas o diagonales abiertas para
max (donde aún puede ganar) y NC(t) es el número de filas, columnas o
diagonales abiertas para min.
Si t es un tablero ganado por max, E(t) = ∞ y si es un tablero perdido, E(t)
= −∞ (aquí en vez de ∞ podríamos haber ocupado otro valor).
11. LA FIGURA 1 MUESTRA
EL ALGORITMO
MINIMAX CON UN
ÁRBOL DE
PROFUNDIDAD 2
12. LA FIGURA 2 MUESTRA
OTRO ÁRBOL CON
PROFUNDIDAD 2, PERO
LUEGO QUE MIN YA HA
JUGADO EN UNA DE
LAS POSICIONES DEL
TABLERO