Está en la página 1de 25

Arboles MinMax

Integrantes:
Amanda Solano
Katherine Rojas
Samantha Mendoza
Yasiell Vallejos

Teorema MinMax

John von Neumannes el creador del teorema MinMax y surge en 1926.

Establece que en los juegos bipersonales desuma 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 prdida mxima esperada.

En particular, cuando se examina cada posible estrategia, un jugador debe considerar


todas las respuestas posibles del jugador adversario y la prdida mxima que puede
acarrear. El jugador juega, entonces, con la estrategia que resulta en la minimizacin
de su mxima prdida.

MinMax

Minmaxes un mtodo de decisin paraminimizar la prdidamxima esperada en juegos


con adversario y con informacin perfecta. Minimax es un algoritmo recursivo.

El algoritmo MinMax 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.

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, esto quiere decir 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).

Caractersticas de los MinMax

El Minimax aporta una herramienta de proceso recursiva muy til

Informacin completa (cada jugador conoce el estado del otro)

Eleccin del mejor movimiento para cada jugador, suponiendo que el contrincante
escoger el peor

El espacio de estados se representa mediante rboles alternados, donde:

Nodo: Representa una situacin del juego

Sucesores de un nodo: Situaciones del juego a las que se accede por


movimientos legales aplicando sus reglas

Nivel: Contiene todas las situaciones posibles para uno de los jugadores

Durante el procedimiento recursivo y el corte de la recursin del algoritmo, presenta


una serie de condiciones:

Gana algn jugador

Se han explorado N capas, siendo N el lmite establecido

Se ha agotado el tiempo de exploracin

Se ha llegado a una situacin esttica donde no hay grandes

Cambios de un nivel a otro.

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

La mquina nunca pierde, el juego est completado

Las partidas entre jugadores mquina siempre quedan en tablas

Ventajas del algoritmo MinMax

Capacidad de aprender de acuerdo a la informacin que se consigue en el momento en


que genera el rbol del juego, es decir aprende con experiencia.

Algoritmo casi infalible o un gran oponente a vencer.

Aprende del oponente y al tiempo le da ventaja.

Desventajas del algoritmo MinMax

Algoritmo de complejidad elevada a la hora de implementar.

Es de aprendizaje lento, pues por cada jugada realizada y el conjunto de las que
tiene almacenadas lo obliga a implementar algoritmos de comparacin, bsqueda,
insercin, etc.

Solo vale para enfrentarse a un oponente a la vez.

Representacin de los juegos

Posicin inicial.

Conjunto de operadores o reglas del juego (definen movimientos legales).

Estado terminal.

Funcin de utilidad. Por ejemplo: gana, pierde o empata.

Funcionamiento de MinMax

El funcionamiento de Minimax puede resumirse como elegir el mejor movimiento para ti mismo
suponiendo que tu contrincante escoger el peor para ti.

Deber existir una funcin de evaluacin heurstica que devuelva valores elevados para indicar
buenas situaciones, y valores negativos para indicar situaciones favorables al oponente.

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.

Pasos del Algoritmo MinMax


1.

Generacin del rbol de juego: Se generarn todos los nodos hasta llegar a un estado
terminal o determinando una profundidad concreta (poda o corte). Se considera el nodo
raz como la situacin actual del juego.

2.

Clculo de los valores de la funcin de utilidad para cada nodo terminal: Para cada
resultado final, cmo de beneficioso me resulta si estamos en MAX o cuanto me
perjudicar si estamos en MIN.

3. Calcular el valor de los nodos superiores a partir del valor de los inferiores:
Alternativamente se elegirn los valores mnimos y mximos 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 asignndoles un valor numrico mediante
una funcin de utilidad, empezando por los nodos terminales y subiendo hacia la
raz.

Colocar 0 1 en los nodos terminales dependiendo si gana MIN o MAX.

La funcin de utilidad definir lo buena que es la posicin para un jugador cuando la


alcanza.

Se requiere de una estrategia que garantice llegar a estados terminales ganadores


independientemente de lo que haga el oponente.

Un valor positivo indica la ventaja de un jugador y uno negativo la ventaja del otro.

El jugador que espera valores positivos se conoce como maximizador. Y el jugador


que espera valores negativos se conoce como minimizador.

El maximizador busca movimientos que lo conduzcan al mayor nmero positivo.


Mientras que el minimizador busca movimientos que lo conduzcan al menor nmero
negativo.

Por ejemplo:

Nivel MAX

Nivel MIN

El maximizador:

Puede esperar llegar a un valor de 8.

Sabe que el minimizador puede escoger un movimiento que lo lleve a un valor de


1.

Desde el punto de vista de el maximizador, el minimizador puede escoger 2 1.

Los resultados de un nivel determinan la accin y el resultado del nivel inmediato


superior.

Aplicacin: El Juego del Gato

Dos jugadores MIN y MAX

Los jugadores colocan fichas en un tablero de 3 X 3

MAX usa las fichas X

MIN usa las fichas O

Reglas:

Inicialmente el tablero est vaco

MAX empieza y se alternan los movimientos

MAX gana si obtiene una lnea de 3 Xs

MIN gana si obtiene una lnea de 3 Os


O

Existe la posibilidad de empate

Espacio de estados para el juego


del gato

Procedimiento

Se desarrolla una bsqueda por niveles, generando los nodos del cada nivel

Se aplica una funcin de evaluacin a cada nodo

La funcin de evaluacin considera los siguientes factores:

Nmero de casillas restantes

Posicin de casillas vacas

La funcin de evaluacin devolver los siguientes valores:

Positivos altos: Si la situacin de uno de los jugadores es ventajosa

Negativos altos: Si la situacin del otro jugador es ventajosa

Cero: Si ninguno de los jugadores tiene ventaja

Funcin de evaluacin para el juego del


gato

Se define la funcin de evaluacin:


f(s)=NMAX(s)-NMIN(s)

donde:

S: Situacin o distribucin del tablero

f(s): Funcin de evaluacin del tablero (nodo del espacio de estados)

NMAX(s): No. de filas, columnas o diagonales abiertas para MAX (donde an puede
ganar)

NMIN(s): No. de filas, columnas o diagonales abiertas para MIN (donde an puede ganar)

Mejoras Del Algoritmo Minimax

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. Produce la misma jugada que se obtendra
con MiniMax, pero elimina todas las ramas que posiblemente no influirn en la decisin
final.

Alfa: valor de la mejor opcin encontrada hasta entonces en un punto de eleccin


a travs de la ruta de MAX

Beta: el valor de la mejor (valor ms bajo) opcin encontrada hasta entonces en un


punto de opcin a lo largo de la ruta MIN

Poda de inutilidades:Es una evolucin de la Poda Alfa-beta, pero en lugar de podar una
rama si sabes que no tendrs resultados mejores, podars si sabes que no tendrs
resultados suficientemente mejores .

Algoritmo NegaMax: Trata de una versin mas compacta del MiniMax. En vez
de utilizar dos rutinas(una para Max y otra para MIN),lo que hace es utilizar la
puntuacin negada utilizando la relacin matemtica.

Continuacin Heurstica: En vez de llegar a los estados terminales, suspender


la bsqueda antes, y aplicar a esas hojas y produce una Estimacin de la
utilidad esperada.

Bsqueda Sesgada: Clasifica cada nodo hijo segn los resultados que prometa
un movimiento, se buscarn ms o menos siguientes situaciones ms all de
ste.

Bajada Progresiva: Consiste en ir recorriendo todos los nodos por niveles hasta
que nos llegue la peticin de jugada(fin del tiempo), y entonces devolveremos
la solucin encontrada en el ltimo nivel procesado por completo.

Ejemplo de Baja Progresiva:

Nivel
Nivel
Nivel
Peticin de jugada

Para mas informacin y ejemplos


visitar los siguientes enlaces
Cdigo y explicacin de cuatro en lnea
Algoritmo de Min Max

También podría gustarte