Algoritmo MiniMax





Este algoritmo representa la forma en la cal se toman las decisiones para miniar la perdida máxima que se aplica en los juegos de adversario, además tiene la característica de que los cada uno de los jugadores tiene el conocimiento en el estado por el cual está el otro.
Minimax busca seleccionar el mejor movimiento para cada uno de los jugadores, así que supone el oponente no tomara el mejor movimiento o decisión. En cuanto al algoritmo toma la posición actual del jugador y comienza a generar los diferentes posibles movimientos, esto lo hace generando diferentes posiciones seguidas, hasta el límite que el usuario o el mismo juego permita
Este código trabaja con una función que retorna un valor que puede ser positivo o negativo, el positivo suele indiciar la mejor situación para el jugador que hace uso del código,  y el valor negativo que retorna suele indicar buenas jugadas para el adversario.
Captura.PNG

Pasos del Algoritmo Minimax:
  1. Generar el árbol del juego, usando la posición actual.
  2. Realizar el cálculo con la función que retorna positivos o negativos en el cual evalúa cada uno de los nodos.
  3. El cálculo del paso 2 pero teniendo en cuenta los nodos anteriores para representar los valores mínimos y máximos.
  4. Seleccionar la jugada que se encuentra en el mejor valor.
imgMinimax

Alfabeta

Alfabeta usa el mismo método de minimax solo que es una actualización del mismo el cual consiste en que elimina las ramificaciones por las cuales sabe que no llegara a una solución, esto reduce notablemente los nodos del árbol, haciendo que busque rápidamente en las otras modificaciones. Además usa los siguientes valores.
Captura
  • αes el valor de la mejor jugada que se encuentra en el momento el cual representa el valor max.
  • βes el valor de la mejor jugada que se encuentra en  el momento a lo largo del camino para MIN es decir la del contrincante.

Comentarios

Entradas populares de este blog

Perceptron Multicapa con Backpropagation en c++