Arboles min max

2,159 views

Published on

Explicación de los arboles Min Max realizada por estudiantes del Instituto Tecnológico de Costa Rica

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,159
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
66
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Arboles min max

  1. 1. Arboles MinMax Integrantes: Amanda Solano Katherine Rojas Samantha Mendoza Yasiell Vallejos
  2. 2. Teorema MinMax  John von Neumann es el creador del teorema MinMax y surge en 1926.  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.
  3. 3. MinMax  Minmax 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 algoritmo MinMax es el algoritmo más 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 exploración exhaustiva de todas las jugadas, se hace una búsqueda 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).
  4. 4. Características de los MinMax  El Minimax aporta una herramienta de proceso recursiva muy útil  Información completa (cada jugador conoce el estado del otro)  Elección 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 situación 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
  5. 5.  Durante el procedimiento recursivo y el corte de la recursión del algoritmo, presenta una serie de 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.  Se pueden aplicar modificaciones al algoritmo para hacerlo más eficiente  En el juego de las tres en raya:   Gana el +1, pierde el -1 y empate 0 La profundidad máxima es de 9, como el número de jugadas posible
  6. 6.  No hay restricciones sobre la validez de un movimiento, simplemente que no se haya hecho antes, por lo que el coste del cálculo 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 podría ser un problema en otros juegos y limitar la profundidad por memoria  La máquina nunca pierde, el juego está completado  Las partidas entre jugadores máquina siempre quedan en tablas
  7. 7. Ventajas del algoritmo MinMax  Capacidad de aprender de acuerdo a la información 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.
  8. 8. 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 comparación, búsqueda, inserción, etc.  Solo vale para enfrentarse a un oponente a la vez.
  9. 9. Representación de los juegos  Posición inicial.  Conjunto de operadores o reglas del juego (definen movimientos legales).  Estado terminal.  Función de utilidad. Por ejemplo: gana, pierde o empata.
  10. 10. 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 función de evaluación heurística 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.
  11. 11. Pasos del 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 (poda o corte). Se considera el nodo raíz como la situación actual del juego. 2. Cálculo de los valores de la función de utilidad para cada nodo terminal: Para cada resultado final, cómo de beneficioso me resulta si estamos en MAX o cuanto me perjudicará si estamos en MIN.
  12. 12. 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.  Colocar 0 ó 1 en los nodos terminales dependiendo si gana MIN o MAX.  La función de utilidad definirá lo buena que es la posición para un jugador cuando la alcanza.
  13. 13.  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 número positivo. Mientras que el minimizador busca movimientos que lo conduzcan al menor número negativo.
  14. 14. Por ejemplo:  Nivel MAX  Nivel MIN
  15. 15.  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 acción y el resultado del nivel inmediato superior.
  16. 16. Aplicación: 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
  17. 17. Reglas:  Inicialmente el tablero está vacío  MAX empieza y se alternan los movimientos  MAX gana si obtiene una línea de 3 X’s  MIN gana si obtiene una línea de 3 O’s O O X O X O O X X
  18. 18.  Existe la posibilidad de empate
  19. 19. Espacio de estados para el juego del gato
  20. 20. Procedimiento  Se desarrolla una búsqueda por niveles, generando los nodos del cada nivel  Se aplica una función de evaluación a cada nodo  La función de evaluación considera los siguientes factores:    Número de casillas restantes Posición de casillas vacías La función de evaluación devolverá los siguientes valores:  Positivos altos: Si la situación de uno de los jugadores es ventajosa  Negativos altos: Si la situación del otro jugador es ventajosa  Cero: Si ninguno de los jugadores tiene ventaja
  21. 21. Función de evaluación para el juego del gato  Se define la función de evaluación: f(s)=NMAX(s)-NMIN(s) donde:  S: Situación o distribución del tablero  f(s): Función de evaluación del tablero (nodo del espacio de estados)  NMAX(s): No. de filas, columnas o diagonales abiertas para MAX (donde aún puede ganar)  NMIN(s): No. de filas, columnas o diagonales abiertas para MIN (donde aún puede ganar)
  22. 22. Mejoras Del Algoritmo Minimax  Poda Alfa-beta: Para juegos con un factor de ramificación elevado, esta profundidad no podrá ser muy grande, ya que el cálculo necesario para cada decisión será prohibitivo. Su tiempo de exploración será muy grande. Produce la misma jugada que se obtendría con MiniMax, pero elimina todas las ramas que posiblemente no influirán en la decisión final.    Alfa: valor de la mejor opción encontrada hasta entonces en un punto de elección a través de la ruta de MAX Beta: el valor de la mejor (valor más bajo) opción encontrada hasta entonces en un punto de opción a lo largo de la ruta MIN Poda de inutilidades: Es una evolución de la Poda Alfa-beta, pero en lugar de podar una rama si sabes que no tendrás resultados mejores, podarás si sabes que no tendrás resultados suficientemente mejores .
  23. 23.  Algoritmo NegaMax: Trata de una versión mas compacta del MiniMax. En vez de utilizar dos rutinas(una para Max y otra para MIN), lo que hace es utilizar la puntuación negada utilizando la relación matemática.  Continuación Heurística: En vez de llegar a los estados terminales, suspender la búsqueda antes, y aplicar a esas hojas y produce una Estimación de la utilidad esperada.  Búsqueda Sesgada: Clasifica cada nodo hijo según los resultados que prometa un movimiento, se buscarán más o menos siguientes situaciones más allá de éste.  Bajada Progresiva: Consiste en ir recorriendo todos los nodos por niveles hasta que nos llegue la petición de jugada(fin del tiempo), y entonces devolveremos la solución encontrada en el último nivel procesado por completo.
  24. 24. Ejemplo de Baja Progresiva:  Nivel  Nivel  Nivel Petición de jugada
  25. 25. Para mas información y ejemplos visitar los siguientes enlaces Código y explicación de cuatro en línea Algoritmo de Min Max

×