INTELIGENCIA EN REDES DE COMUNICACIONES
JUEGOS CON ADVERSARIO
ALGORITMO MINIMAX
PODA ALFABETA OTRAS MEJORAS
ANA BEATRIZ SOLANA SÁNCHEZ
JUEGOS BIPERSONALES
●
Este tipo de juegos los podemos definir como:
–
Un estado inicial (una posición del tablero e indicación de a quien le toca jugar)
–
Un conjunto de operadores que indican las jugadas que se pueden realizar
–
Una prueba terminal que indica el final del juego
–
Una función de utilidad que asigna un valor
numérico al resultado del juego
Algoritmo Minimax I
●
En los juegos bipersonales, el algoritmo más utilizado se denomina Minimax
●
Minimax es un algortimo de búsqueda en profundidad, de profundidad limitada.
●
La profundidad puede venir limitada por:
– Gana un jugador
– Se han explorado N capas (N establecido)
– Se ha agotado el tiempo de exploración
– Se llega a una situación estática en la que no hay grandes cambios de un nivel a otro
Algoritmo Minimax II
●
El jugador que comienza a jugar se denomina MAX y el contrincante se denomina MIN
●
El algoritmo va a maximizar la función para MAX y minimizarla para MIN
●
Consta de 5 pasos:
– 1. Generación de todo el árbol de juego, completamente hasta llegar a los estados terminales. (En nuestro caso hasta nuestro corte)
– 2. Aplicación de la función de utilidad a cada estado terminal y obtención de su valor respectivo.
– 3. Uso de la utilidad de los estados terminales para calcular la utilidad de los nodos de nivel superior en el árbol de búsqueda.
Algoritmo Minimax III
●
– 4. Continuación del respaldo a los valores de los nodos hojas, en dirección a la raíz, una capa a la vez.
– 5. Finalmente, los valores respaldados llegan a la parte superior del árbol; aquí, MAX selecciona la jugada que le permite obtener el valor más alto.
●
NOTA:
–
Cada capa correponde a una jugada de MAX o MIN respectivamente
–
La función de utilidad en nuestro caso es una función de
evalución heurística puesto que cortamos la recursión
Ejemplo numérico
Poda alfabeta
●
La poda consiste en evitar la exploración de una de las ramas del árbol de búsqueda y que produce la misma jugada que se obtendría con minimax pero eliminando aquellas ramas que no influirán en la decisión fina l
●
Para el algortimo Minimax éste es el mecanismo utilizado puesto que exiten dos jugadores maximixador y
minimizador, exiten dos valores umbral:
–
Alfa: cota inferior del valor que puede asignarse en último término a un nodo maximizante
–
Beta: cota superior del valor que puede asinarse en último
término a un nodo minimizante
Ejemplo numérico
Eficiencia poda alfabeta
●
La eficiencia de la poda alfabeta dependerá del orden en que se exploren los sucesores.
●
Es decir, se obtendrá mayor beneficio si
exploramos primero aquellos caminos más óptimos, pero claro, no haríamos la
búsqueda si supieramos de antemano el
mejor camino.
Refinamientos adicionales
●
Poda de inutilidades:
–
Consiste en la finalización de la exploración en un subárbol que ofrece pocas posibilidades de mejora sobre otros caminos ya explorados.
●
Espera del reposo
–
Evita el efecto horizonte (cuando se toma una
decisión errónea debido a que la recursión no es infinita), cortando la recursión cuando se llega a una solución estable
●
Refinamientos adicionales
●
Búsqueda secundaria
–
Consite en realizar una doble comprobación del
movimiento elegido para comprobar que no hay trampa en movimientos posteriores a los explorados
●
Exiten algoritmos alternativos, para solventar problemas del algoritmo Minimax:
–
No considera tiempo
–
Confía en que el adversario elija el camino óptimo
●
Minimax dependiente de adversario
●
Profundidad iterativa
BIBLIOGRAFÍA
●
dmi.uib.es/~abasola/intart/2juegos.html#2.3.
●
pdf.rincondekvago.com/juegos_4.html
●
club.telepolis.com/ohcop/clase9_1.ppt
●