inteligencia en redes de comunicaciones · juegos bipersonales este tipo de juegos los podemos...
TRANSCRIPT
INTELIGENCIA EN REDES DE COMUNICACIONES
JUEGOS CON ADVERSARIOALGORITMO 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 final● 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● www.uhu.es/nieves.pavon/pprogramacion/pr
acticas/febrero/juego/alfabeta.html