AlgoritmoMinimaxypodaAlfa-Beta HugoFranco...

41
Búsqueda adversaria Algoritmo «minimax» Poda alfa-beta Búsqueda adversaria Algoritmo Minimax y poda Alfa-Beta Hugo Franco Universidad Central - Depto de Ingeniería de Sistemas 21 de octubre de 2020 Hugo Franco Búsqueda adversaria

Transcript of AlgoritmoMinimaxypodaAlfa-Beta HugoFranco...

Page 1: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Búsqueda adversariaAlgoritmo Minimax y poda Alfa-Beta

Hugo Franco

Universidad Central - Depto de Ingeniería de Sistemas

21 de octubre de 2020

Hugo Franco Búsqueda adversaria

Page 2: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversaria

Page 3: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Búsqueda adversaria

En entornos multiagente (cooperativos o competitivos), cadaagente debe considerar las acciones de otros agentes.Dado que los otros agentes toman acciones usualmenteimprevisibles, se introducen “contingencias” en el proceso desolución del problema.Cuando los objetivos de los agentes están en conflicto(competitivos), se habla de búsqueda entre adversarios,

A este tipo de problemas suele llamársele “juegos”.

Hugo Franco Búsqueda adversaria

Page 4: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Algoritmo «minimax»

Page 5: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Solución a problemas tipo “juego”

En los problemas tipo “juego” se requiere tomar una decisión(movida) válida aun cuando no es factible calcular exactamente ladecisión óptima.

Aproximación trivial:generar todo el árbol de jugadas.

etiquetar las jugadas terminales, dependiendo de si ganaMAX o MIN, con un valor de utilidad.El objetivo es encontrar un conjunto de movimientosaccesible que dé como ganador a MAX.

Se propagan los valores de las jugadas terminales de las hojashasta la raíz.Incluso un juego simple como “triqui” es demasiado complejopara dibujar el árbol de juegos entero.

Hugo Franco Búsqueda adversaria

Page 6: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Algoritmo minimax

Los triángulos hacia arriba representan al jugador “MAX”(automático)Los triángulos abajo representan al jugador “MIN” (oponente).Los valores terminales (por ejemplo, victoria de uno u otrojugador) permiten calcular los valores asociados a las jugadasprevias dentro del árbol de exploración del espacio de estados

Hugo Franco Búsqueda adversaria

Page 7: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo: “triqui”

Hugo Franco Búsqueda adversaria

Page 8: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo: “triqui”

Hugo Franco Búsqueda adversaria

Page 9: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo: “triqui”

Hugo Franco Búsqueda adversaria

Page 10: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo: “triqui”

Hugo Franco Búsqueda adversaria

Page 11: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo: “triqui”

Hugo Franco Búsqueda adversaria

Page 12: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo: “triqui”

Hugo Franco Búsqueda adversaria

Page 13: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo: “triqui”

Hugo Franco Búsqueda adversaria

Page 14: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo: “triqui”

Hugo Franco Búsqueda adversaria

Page 15: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo: “triqui”

Hugo Franco Búsqueda adversaria

Page 16: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo: “triqui”

Hugo Franco Búsqueda adversaria

Page 17: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Árbol de búsqueda en “triqui”

Hugo Franco Búsqueda adversaria

Page 18: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Algoritmo minimax

función minimax: estado retorno acciónv ← maximo_valor(estado)retornar acción_en_sucesores(estado) con valor v

función maximizador: estado; retorna v # valor de utilidadsi es_terminal(estado)

retornar utilidad(estado)v ← −∞para s en sucesores(estado) hacer

v← max(v,minimizador(s))fin_pararetornar v

función minimizador: estado; retorna v # valor de utilidadsi es_terminal(estado)

retornar utilidad(estado)v ← +∞para s en sucesores(estado) hacer

v← min(v,maximizador(s))fin_pararetornar v

Hugo Franco Búsqueda adversaria

Page 19: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Propiedades del algoritmo minimax

El algoritmo minimax para solución de problemas de búsquedaadversaria es completo y óptimo

Explosión combinatoria en búsqueda adversariaEl problema del algoritmo minimax es que el número deestados a explorar puede ser exponencial respecto al númerode movimientos.Si b es el factor de ramificación (cuántos hijos tiene cadanodo), y m es el nivel de profundidad que se explorará, lacomplejidad en tiempo es de orden O(bm) y la complejidad enespacio de orden O(bm).En juegos como el ajedrez, b ≈ 35 y m ≈ 100, luego elproblema se hace intratable

Hugo Franco Búsqueda adversaria

Page 20: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Poda α− β

Page 21: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Poda alfa-beta

Es posible eliminar las ramas queno van a influir en la decisión finaldel recorrido del árbol de búsqueda,de forma que se devuelva el mismomovimiento que entregaría unrecorrido exhaustivo minimax.Ello remueve una cantidadsignificativa de vías de evolucióndel juego, reduciendo el número denodos evaluados por el algoritmo .Ejemplo: si m es mejor que n parael jugador MAX, este último estadonunca va a alcanzarse

Hugo Franco Búsqueda adversaria

Page 22: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Implementación de la poda α− β

Actualizar el valor de los parámetros según se recorre el árbol,de modo que se evite recorrer (poda) las ramas restantescuando el valor actual que se está examinando sea peor que elvalor actual de α o β para MAX o MIN, respectivamente

En los nodos MAX: α es el valor actual del nodo (que tendráese valor o superior), y β es el valor actual del padre (al finaltendrá ese valor o inferior).

La poda se produce si en algún momento v ≥ β (no hace faltaanalizar los restantes sucesores del nodo)

En los nodos MIN: β es el valor actual del nodo (que tendráese valor o inferior), y α es el valor actual del padre (al finaltendrá ese valor o superior).

La poda se produce si en algún momento v ≤ α

En nodos MIN, se denomina «poda β», en MAX «es poda α».

Hugo Franco Búsqueda adversaria

Page 23: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Algoritmo minimax con poda α− β

función minimax: estado; retorna acción# función del jugador automático

v ← maximizador(estado)retornar sucesor_con_valor(estado, v)

función maximizador: estado, α, β;retorna v # valor de utilidadsi es_terminal(estado)

retornar utilidad(estado)v ← −∞para s en sucesores(estado) hacer

v← max(v,minimizador(s, α, β))si v ≥ β retornar v # poda αα← max(α, v)

fin_pararetornar v

# función del adversario: minimiza lautilidad del jugador automáticofunción minimizador: estado, α, β;retorna v # valor de utilidad

si es_terminal(estado)retornar utilidad(estado)

v ← +∞para s en sucesores(estado) hacer

v← min(v,maximizador(s, α, β))si v ≤ α retornar v # poda ββ← min(β, v)

fin_pararetornar v

Hugo Franco Búsqueda adversaria

Page 24: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Poda α− β, ejemplo de ejecución

Page 25: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo poda α− β

Hugo Franco Búsqueda adversaria

Page 26: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo poda α− β

Hugo Franco Búsqueda adversaria

Page 27: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo poda α− β

Hugo Franco Búsqueda adversaria

Page 28: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo poda α− β

Hugo Franco Búsqueda adversaria

Page 29: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo poda α− β

Hugo Franco Búsqueda adversaria

Page 30: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo poda α− β

Hugo Franco Búsqueda adversaria

Page 31: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo poda α− β

Hugo Franco Búsqueda adversaria

Page 32: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo poda α− β

Hugo Franco Búsqueda adversaria

Page 33: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo poda α− β

Hugo Franco Búsqueda adversaria

Page 34: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo poda α− β

Hugo Franco Búsqueda adversaria

Page 35: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo poda α− β

Hugo Franco Búsqueda adversaria

Page 36: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo poda α− β

Hugo Franco Búsqueda adversaria

Page 37: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo poda α− β

Hugo Franco Búsqueda adversaria

Page 38: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo poda α− β

Hugo Franco Búsqueda adversaria

Page 39: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo poda α− β

Hugo Franco Búsqueda adversaria

Page 40: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo poda α− β

Hugo Franco Búsqueda adversaria

Page 41: AlgoritmoMinimaxypodaAlfa-Beta HugoFranco 21deoctubrede2020hpclab.ucentral.edu.co/wp-content/uploads/2020/10/... · 2020. 10. 21. · Búsquedaadversaria Algoritmo«minimax» Podaalfa-beta

Búsqueda adversariaAlgoritmo «minimax»

Poda alfa-beta

Ejemplo poda α− β

Hugo Franco Búsqueda adversaria