Análisis y Simulación                  de Decisiones               José Enrique Alvarez EstradaBasado en un material elabo...
JuegosLa teoría de juegos es un área de la matemáticaaplicada que utiliza modelos para estudiarinteracciones en estructura...
Juegos• Los juegos más simples que se estudian en  Toma de Decisiones son aquellos:  – De suma cero (lo que uno gana, el o...
Juegos• Los juegos son interesantes porque son  demasiado difíciles de resolver.• El ajedrez, por ejemplo, tiene un factor...
Decisiones óptimas en juegos• Un juego puede definirse formalmente  mediante:  – Un estado inicial  – Una función sucesor,...
Búsqueda exhaustiva
Búsqueda exhaustiva• Aproximación trivial: generar todo el árbol  de jugadas.• Se etiquetan las jugadas terminales,  depen...
Búsqueda exhaustiva
Búsqueda exhaustiva
Búsqueda exhaustiva• Aproximación heurística: definir una  función que nos indique lo cerca que  estamos de una jugada gan...
Ejemplo: tic-tac-toe                               e = PMAX - PMINdonde:   – e = función utilidad   – PMAX = número de fil...
tic-tac-toe: jugada #1
tic-tac-toe: jugada #1juega MAX
tic-tac-toe: jugada #1        juega MIN6-5=1
tic-tac-toe: jugada #16-5=1   5-5=0
tic-tac-toe: jugada #16-5=1   5-5=0   6-5=1
tic-tac-toe: jugada #16-5=1   5-5=0   6-5=1   5-5=0
tic-tac-toe: jugada #16-5=1   5-5=0   6-5=1   5-5=0   4-5=-1
tic-tac-toe: jugada #1                        MIN = -16-5=1   5-5=0   6-5=1    5-5=0   4-5=-1
tic-tac-toe: jugada #1                                          juega MAX                        MIN = -16-5=1   5-5=0   6...
tic-tac-toe: jugada #1                        MIN = -1                                          juega MIN6-5=1   5-5=0   6...
tic-tac-toe: jugada #1                        MIN = -16-5=1   5-5=0   6-5=1    5-5=0   4-5=-1   5-4=1   6-4=2
tic-tac-toe: jugada #1                        MIN = -1                  MIN = 16-5=1   5-5=0   6-5=1    5-5=0   4-5=-1   5...
tic-tac-toe: jugada #1                                                            juega MAX                        MIN = -...
tic-tac-toe: jugada #1                        MIN = -1                  MIN = 1                                           ...
tic-tac-toe: jugada #1                        MIN = -1                  MIN = 16-5=1   5-5=0   6-5=1    5-5=0   4-5=-1   5...
tic-tac-toe: jugada #1                        MIN = -1                  MIN = 16-5=1   5-5=0   6-5=1    5-5=0   4-5=-1   5...
tic-tac-toe: jugada #1                        MIN = -1                  MIN = 16-5=1   5-5=0   6-5=1    5-5=0   4-5=-1   5...
tic-tac-toe: jugada #1                        MIN = -1                  MIN = 16-5=1   5-5=0   6-5=1    5-5=0   4-5=-1   5...
tic-tac-toe: jugada #1                        MIN = -1                  MIN = 1                            MIN = -26-5=1  ...
tic-tac-toe: jugada #1                        MIN = -1                  MIN = 1                            MIN = -26-5=1  ...
tic-tac-toe: jugada #1                                          MAX = 1                        MIN = -1                   ...
tic-tac-toe: jugada #1                                          MAX = 1                        MIN = -1                   ...
tic-tac-toe: jugada #1                                          MAX = 1                        MIN = -1                   ...
tic-tac-toe: jugada #2
tic-tac-toe: jugada #2  juega   MAX
tic-tac-toe: jugada #24-2=2        juega         MIN
tic-tac-toe: jugada #24-2=23-2=1
tic-tac-toe: jugada #24-2=23-2=15-2=3
tic-tac-toe: jugada #24-2=23-2=15-2=32-2=0
tic-tac-toe: jugada #24-2=23-2=15-2=32-2=04-2=2
tic-tac-toe: jugada #24-2=23-2=15-2=32-2=04-2=23-2=1
tic-tac-toe: jugada #24-2=23-2=15-2=3        MIN = 02-2=04-2=23-2=1
tic-tac-toe: jugada #24-2=23-2=1                  juega5-2=3                   MAX        MIN = 02-2=04-2=23-2=1
tic-tac-toe: jugada #24-2=23-2=15-2=3        MIN = 02-2=0          juega4-2=2      MIN3-2=1          4-3=1
tic-tac-toe: jugada #24-2=23-2=15-2=3        MIN = 02-2=04-2=23-2=1          4-3=1   3-3=0
tic-tac-toe: jugada #24-2=23-2=15-2=3        MIN = 02-2=04-2=23-2=1          4-3=1   3-3=0   5-3=2
tic-tac-toe: jugada #24-2=23-2=15-2=3        MIN = 02-2=04-2=23-2=1          4-3=1   3-3=0   5-3=2   3-3=0
tic-tac-toe: jugada #24-2=23-2=15-2=3        MIN = 02-2=04-2=23-2=1          4-3=1   3-3=0   5-3=2   3-3=0   4-3=1
tic-tac-toe: jugada #24-2=23-2=15-2=3        MIN = 02-2=04-2=23-2=1          4-3=1   3-3=0   5-3=2   3-3=0   4-3=1   4-3=1
tic-tac-toe: jugada #24-2=23-2=15-2=3        MIN = 02-2=0                          MIN = 04-2=23-2=1          4-3=1   3-3=...
tic-tac-toe: jugada #24-2=2                                          juega                                           MAX3-...
tic-tac-toe: jugada #24-2=23-2=1                                            juega5-2=3                                    ...
tic-tac-toe: jugada #24-2=23-2=15-2=3        MIN = 02-2=0                          MIN = 0                                ...
tic-tac-toe: jugada #24-2=23-2=15-2=3        MIN = 02-2=0                          MIN = 0                                ...
tic-tac-toe: jugada #24-2=23-2=15-2=3        MIN = 02-2=0                          MIN = 0                                ...
tic-tac-toe: jugada #24-2=23-2=15-2=3        MIN = 02-2=0                          MIN = 0                                ...
tic-tac-toe: jugada #24-2=23-2=15-2=3        MIN = 02-2=0                          MIN = 0                                ...
tic-tac-toe: jugada #24-2=23-2=1                                                                MIN = 15-2=3        MIN = ...
tic-tac-toe: jugada #2                                                                                            4-3=14-2...
tic-tac-toe: jugada #2                                                                                            4-3=14-2...
tic-tac-toe: jugada #2                                                                                            4-3=14-2...
tic-tac-toe: jugada #2                                                                                            4-3=14-2...
tic-tac-toe: jugada #2                                                                                            4-3=14-2...
tic-tac-toe: jugada #2                                                                                            4-3=14-2...
tic-tac-toe: jugada #2                                                                             MIN = 0        4-3=14-2...
tic-tac-toe: jugada #2                                                                                              MIN = ...
Ejemplo: tic-tac-toe                                               X 0 0                                                 X...
Minimax• Valor-Minimax(n): utilidad para MAX de  estar en el estado n asumiendo que  ambos jugadores jueguen óptimamente.
Minimax• Valor-Minimax(n):  – Utilidad(n), si n es un estado terminal  – maxs∈Sucesores(n) Valor-Minimax(s), si n es un es...
Algoritmo minimax• Calcula la decisión minimax del estado  actual.• Usa un cálculo simple recurrente de los  valores minim...
Algoritmo minimax                        A          B• El algoritmo primero va hacia abajo a los  tres nodos izquierdos y ...
Algoritmo minimax                       A          B• Entonces el algoritmo toma el mínimo de  estos valores, 3, y lo devu...
Algoritmo minimax• Realiza una exploración primero en  profundidad completa del árbol de juegos.• Si la profundidad máxima...
Algoritmo minimaxfunción Decisión-Minimax(estado) devuelve una acción  variables de entrada: estado, estado actual del jue...
Poda alfa-beta• Problema de la búsqueda minimax: el número  de estados que tiene que examinar es  exponencial con el númer...
Minimax con poda α-β         a                                                                     a b       c            ...
Minimax con poda α-βmax                                a         e(e) = min(-0.1,v(g))                                    ...
Poda alfa-beta• Los dos parámetros alfa y beta describen los  límites sobre los valores que aparecen a lo largo  del camin...
Poda alfa-beta: ejemplo
Poda alfa-beta: ejemplo
Poda alfa-beta: ejemplo
Poda alfa-beta: ejemplo
Poda alfa-beta: ejemplo
Poda alfa-beta       MAX      {α, β}                                        Si Vi ≥ β poda β                              ...
Minimax con poda α-βFuncion valorMax (g,α,β) retorna entero    Funcion valorMin (g,α,β) retorna entero Si estado_terminal(...
A       {alpha = -∞, beta = +∞}                                                                A     {3, +∞}              ...
A   {3, +∞}                                                                                         A   {3, +∞}    B      ...
Upcoming SlideShare
Loading in …5
×

El Juego TicTacToe (Gato) mediante Arboles de Decisiones

24,272 views

Published on

El Juego TicTacToe (Gato) mediante Arboles de Decisiones

  1. 1. Análisis y Simulación de Decisiones José Enrique Alvarez EstradaBasado en un material elaborado por el Prof. Luigi Ceccaroni
  2. 2. JuegosLa teoría de juegos es un área de la matemáticaaplicada que utiliza modelos para estudiarinteracciones en estructuras formalizadas deincentivos (los llamados juegos) y llevar a caboprocesos de decisión
  3. 3. Juegos• Los juegos más simples que se estudian en Toma de Decisiones son aquellos: – De suma cero (lo que uno gana, el otro lo pierde y viceversa) – De dos jugadores (jugador MAX, jugador MIN) – Por turnos – De información perfecta (ajedrez, damas, tres en raya, etc.) – O de información imperfecta (poker, stratego, bridge...) – Deterministas
  4. 4. Juegos• Los juegos son interesantes porque son demasiado difíciles de resolver.• El ajedrez, por ejemplo, tiene un factor de ramificación promedio de 35 y los juegos van a menudo a 50 movimientos por cada jugador: – grafo de búsqueda: aproximadamente 1040 nodos distintos – árbol de búsqueda: 35100 o 10154 nodos• Como en el mundo real, se requiere de tomar alguna decisión (la jugada) cuando es infactible calcular la decisión óptima.
  5. 5. Decisiones óptimas en juegos• Un juego puede definirse formalmente mediante: – Un estado inicial – Una función sucesor, que devuelve una lista de pares (movimiento, estado) – Una prueba terminal, que determina cuándo termina el juego (por estructura o propiedades o función utilidad) – Una función utilidad 5
  6. 6. Búsqueda exhaustiva
  7. 7. Búsqueda exhaustiva• Aproximación trivial: generar todo el árbol de jugadas.• Se etiquetan las jugadas terminales, dependiendo de si gana MAX o MIN, con un valor de utilidad de, por ejemplo, “+1” o “-1”.• El objetivo es encontrar un conjunto de movimientos accesible que dé como ganador a MAX.• Se propagan los valores de las jugadas terminales de las hojas hasta la raíz.• Incluso un juego simple como tic-tac-toe es demasiado complejo para dibujar el árbol completo
  8. 8. Búsqueda exhaustiva
  9. 9. Búsqueda exhaustiva
  10. 10. Búsqueda exhaustiva• Aproximación heurística: definir una función que nos indique lo cerca que estamos de una jugada ganadora (o perdedora).• En esta función interviene información del dominio.• Esta función no representa ningún coste, ni es una distancia en pasos.• El algoritmo busca con profundidad limitada.• Cada nueva decisión por parte del adversario implicará repetir parte de la búsqueda.
  11. 11. Ejemplo: tic-tac-toe e = PMAX - PMINdonde: – e = función utilidad – PMAX = número de filas, columnas y diagonales completas disponibles para MAX – PMIN = número de filas, columnas y diagonales completas disponibles para MIN• MAX juega con ✘ y desea maximizar e• MIN juega con O y desea minimizar e• Valores absolutos altos de e: buena posición para el que tiene que mover• Controlar las simetrías• Utilizar una profundidad de parada (en el ejemplo: 2)
  12. 12. tic-tac-toe: jugada #1
  13. 13. tic-tac-toe: jugada #1juega MAX
  14. 14. tic-tac-toe: jugada #1 juega MIN6-5=1
  15. 15. tic-tac-toe: jugada #16-5=1 5-5=0
  16. 16. tic-tac-toe: jugada #16-5=1 5-5=0 6-5=1
  17. 17. tic-tac-toe: jugada #16-5=1 5-5=0 6-5=1 5-5=0
  18. 18. tic-tac-toe: jugada #16-5=1 5-5=0 6-5=1 5-5=0 4-5=-1
  19. 19. tic-tac-toe: jugada #1 MIN = -16-5=1 5-5=0 6-5=1 5-5=0 4-5=-1
  20. 20. tic-tac-toe: jugada #1 juega MAX MIN = -16-5=1 5-5=0 6-5=1 5-5=0 4-5=-1
  21. 21. tic-tac-toe: jugada #1 MIN = -1 juega MIN6-5=1 5-5=0 6-5=1 5-5=0 4-5=-1 5-4=1
  22. 22. tic-tac-toe: jugada #1 MIN = -16-5=1 5-5=0 6-5=1 5-5=0 4-5=-1 5-4=1 6-4=2
  23. 23. tic-tac-toe: jugada #1 MIN = -1 MIN = 16-5=1 5-5=0 6-5=1 5-5=0 4-5=-1 5-4=1 6-4=2
  24. 24. tic-tac-toe: jugada #1 juega MAX MIN = -1 MIN = 16-5=1 5-5=0 6-5=1 5-5=0 4-5=-1 5-4=1 6-4=2
  25. 25. tic-tac-toe: jugada #1 MIN = -1 MIN = 1 juega MIN6-5=1 5-5=0 6-5=1 5-5=0 4-5=-1 5-4=1 6-4=2 5-6=-1
  26. 26. tic-tac-toe: jugada #1 MIN = -1 MIN = 16-5=1 5-5=0 6-5=1 5-5=0 4-5=-1 5-4=1 6-4=2 5-6=-1 6-6=0
  27. 27. tic-tac-toe: jugada #1 MIN = -1 MIN = 16-5=1 5-5=0 6-5=1 5-5=0 4-5=-1 5-4=1 6-4=2 5-6=-1 6-6=0 6-6=0
  28. 28. tic-tac-toe: jugada #1 MIN = -1 MIN = 16-5=1 5-5=0 6-5=1 5-5=0 4-5=-1 5-4=1 6-4=2 5-6=-1 6-6=0 6-6=0 5-6=-1
  29. 29. tic-tac-toe: jugada #1 MIN = -1 MIN = 16-5=1 5-5=0 6-5=1 5-5=0 4-5=-1 5-4=1 6-4=2 5-6=-1 6-6=0 6-6=0 5-6=-1 4-6=-2
  30. 30. tic-tac-toe: jugada #1 MIN = -1 MIN = 1 MIN = -26-5=1 5-5=0 6-5=1 5-5=0 4-5=-1 5-4=1 6-4=2 5-6=-1 6-6=0 6-6=0 5-6=-1 4-6=-2
  31. 31. tic-tac-toe: jugada #1 MIN = -1 MIN = 1 MIN = -26-5=1 5-5=0 6-5=1 5-5=0 4-5=-1 5-4=1 6-4=2 5-6=-1 6-6=0 6-6=0 5-6=-1 4-6=-2
  32. 32. tic-tac-toe: jugada #1 MAX = 1 MIN = -1 MIN = 1 MIN = -26-5=1 5-5=0 6-5=1 5-5=0 4-5=-1 5-4=1 6-4=2 5-6=-1 6-6=0 6-6=0 5-6=-1 4-6=-2
  33. 33. tic-tac-toe: jugada #1 MAX = 1 MIN = -1 MIN = 1 MIN = -2 Por tanto, la mejor6-5=1 5-5=0 6-5=1 5-5=0 4-5=-1 5-4=1 6-4=2 jugada de MAX es 5-6=-1 6-6=0 6-6=0 5-6=-1 4-6=-2
  34. 34. tic-tac-toe: jugada #1 MAX = 1 MIN = -1 MIN = 1 MIN = -26-5=1 5-5=0 6-5=1 5-5=0 4-5=-1 5-4=1 6-4=2 5-6=-1 6-6=0 6-6=0 5-6=-1 4-6=-2 tras lo cual MIN debería jugar
  35. 35. tic-tac-toe: jugada #2
  36. 36. tic-tac-toe: jugada #2 juega MAX
  37. 37. tic-tac-toe: jugada #24-2=2 juega MIN
  38. 38. tic-tac-toe: jugada #24-2=23-2=1
  39. 39. tic-tac-toe: jugada #24-2=23-2=15-2=3
  40. 40. tic-tac-toe: jugada #24-2=23-2=15-2=32-2=0
  41. 41. tic-tac-toe: jugada #24-2=23-2=15-2=32-2=04-2=2
  42. 42. tic-tac-toe: jugada #24-2=23-2=15-2=32-2=04-2=23-2=1
  43. 43. tic-tac-toe: jugada #24-2=23-2=15-2=3 MIN = 02-2=04-2=23-2=1
  44. 44. tic-tac-toe: jugada #24-2=23-2=1 juega5-2=3 MAX MIN = 02-2=04-2=23-2=1
  45. 45. tic-tac-toe: jugada #24-2=23-2=15-2=3 MIN = 02-2=0 juega4-2=2 MIN3-2=1 4-3=1
  46. 46. tic-tac-toe: jugada #24-2=23-2=15-2=3 MIN = 02-2=04-2=23-2=1 4-3=1 3-3=0
  47. 47. tic-tac-toe: jugada #24-2=23-2=15-2=3 MIN = 02-2=04-2=23-2=1 4-3=1 3-3=0 5-3=2
  48. 48. tic-tac-toe: jugada #24-2=23-2=15-2=3 MIN = 02-2=04-2=23-2=1 4-3=1 3-3=0 5-3=2 3-3=0
  49. 49. tic-tac-toe: jugada #24-2=23-2=15-2=3 MIN = 02-2=04-2=23-2=1 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1
  50. 50. tic-tac-toe: jugada #24-2=23-2=15-2=3 MIN = 02-2=04-2=23-2=1 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1 4-3=1
  51. 51. tic-tac-toe: jugada #24-2=23-2=15-2=3 MIN = 02-2=0 MIN = 04-2=23-2=1 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1 4-3=1
  52. 52. tic-tac-toe: jugada #24-2=2 juega MAX3-2=15-2=3 MIN = 02-2=0 MIN = 04-2=23-2=1 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1 4-3=1
  53. 53. tic-tac-toe: jugada #24-2=23-2=1 juega5-2=3 MIN MIN = 02-2=0 MIN = 0 4-2=24-2=23-2=1 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1 4-3=1
  54. 54. tic-tac-toe: jugada #24-2=23-2=15-2=3 MIN = 02-2=0 MIN = 0 4-2=2 4-2=24-2=23-2=1 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1 4-3=1
  55. 55. tic-tac-toe: jugada #24-2=23-2=15-2=3 MIN = 02-2=0 MIN = 0 4-2=2 4-2=2 5-2=34-2=23-2=1 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1 4-3=1
  56. 56. tic-tac-toe: jugada #24-2=23-2=15-2=3 MIN = 02-2=0 MIN = 0 4-2=2 4-2=2 5-2=3 3-2=14-2=23-2=1 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1 4-3=1
  57. 57. tic-tac-toe: jugada #24-2=23-2=15-2=3 MIN = 02-2=0 MIN = 0 4-2=2 4-2=2 5-2=3 3-2=1 4-2=24-2=23-2=1 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1 4-3=1
  58. 58. tic-tac-toe: jugada #24-2=23-2=15-2=3 MIN = 02-2=0 MIN = 0 4-2=2 4-2=2 5-2=3 3-2=1 4-2=2 4-2=24-2=23-2=1 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1 4-3=1
  59. 59. tic-tac-toe: jugada #24-2=23-2=1 MIN = 15-2=3 MIN = 02-2=0 MIN = 0 4-2=2 4-2=2 5-2=3 3-2=1 4-2=2 4-2=24-2=23-2=1 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1 4-3=1
  60. 60. tic-tac-toe: jugada #2 4-3=14-2=2 MAX = 13-2=1 MIN = 15-2=3 MIN = 02-2=0 MIN = 0 4-2=2 4-2=2 5-2=3 3-2=1 4-2=2 4-2=24-2=23-2=1 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1 4-3=1
  61. 61. tic-tac-toe: jugada #2 4-3=14-2=2 MAX = 1 4-3=13-2=1 MIN = 15-2=3 MIN = 02-2=0 MIN = 0 4-2=2 4-2=2 5-2=3 3-2=1 4-2=2 4-2=24-2=23-2=1 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1 4-3=1
  62. 62. tic-tac-toe: jugada #2 4-3=14-2=2 MAX = 1 4-3=13-2=1 MIN = 1 3-3=05-2=3 MIN = 02-2=0 MIN = 0 4-2=2 4-2=2 5-2=3 3-2=1 4-2=2 4-2=24-2=23-2=1 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1 4-3=1
  63. 63. tic-tac-toe: jugada #2 4-3=14-2=2 MAX = 1 4-3=13-2=1 MIN = 1 3-3=05-2=3 MIN = 0 3-3=02-2=0 MIN = 0 4-2=2 4-2=2 5-2=3 3-2=1 4-2=2 4-2=24-2=23-2=1 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1 4-3=1
  64. 64. tic-tac-toe: jugada #2 4-3=14-2=2 MAX = 1 4-3=13-2=1 MIN = 1 3-3=05-2=3 MIN = 0 3-3=02-2=0 MIN = 0 4-2=2 4-2=2 5-2=3 3-2=1 4-2=2 4-2=2 3-3=04-2=23-2=1 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1 4-3=1
  65. 65. tic-tac-toe: jugada #2 4-3=14-2=2 MAX = 1 4-3=13-2=1 MIN = 1 3-3=05-2=3 MIN = 0 3-3=02-2=0 MIN = 0 4-2=2 4-2=2 5-2=3 3-2=1 4-2=2 4-2=2 3-3=04-2=2 3-3=03-2=1 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1 4-3=1
  66. 66. tic-tac-toe: jugada #2 MIN = 0 4-3=14-2=2 MAX = 1 4-3=13-2=1 MIN = 1 3-3=05-2=3 MIN = 0 3-3=02-2=0 MIN = 0 4-2=2 4-2=2 5-2=3 3-2=1 4-2=2 4-2=2 3-3=04-2=2 3-3=03-2=1 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1 4-3=1
  67. 67. tic-tac-toe: jugada #2 MIN = 0 4-3=14-2=2 MAX = 1 4-3=13-2=1 MIN = 1 3-3=05-2=3 MIN = 0 3-3=02-2=0 MIN = 0 4-2=2 4-2=2 5-2=3 3-2=1 4-2=2 4-2=2 3-3=04-2=2 3-3=03-2=1 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1 4-3=1 0 0 0La mejor jugada de MAX es pues X tras lo cual MIN podría jugar X X X
  68. 68. Ejemplo: tic-tac-toe X 0 0 X X 0 0 0 0 2-1=1 X 0 X X MIN = 1 X X MAX = 1 0 0 XX X 0 0 X X 3-1=2 MIN = -∞∞ X 0 0 0 X 0 0 X X 0 0 XX X 0 MIN = -∞∞ X 0 0 2-1=1 XX 0 0 X X 0 X X X X 3-1=2 MIN = -∞∞ MIN = -∞∞ X 0 0 La mejor jugada de MAX es pues: X X• Por convención: – las jugadas ganadoras se evalúan a “+∞∞” – las jugadas perdedoras se evalúan a “-∞∞”
  69. 69. Minimax• Valor-Minimax(n): utilidad para MAX de estar en el estado n asumiendo que ambos jugadores jueguen óptimamente.
  70. 70. Minimax• Valor-Minimax(n): – Utilidad(n), si n es un estado terminal – maxs∈Sucesores(n) Valor-Minimax(s), si n es un estado MAX – mins∈Sucesores(n) Valor-Minimax(s), si n es un estado MIN
  71. 71. Algoritmo minimax• Calcula la decisión minimax del estado actual.• Usa un cálculo simple recurrente de los valores minimax de cada estado sucesor.• La recursión avanza hacia las hojas del árbol.• Los valores minimax retroceden por el árbol cuando la recursión se va deshaciendo.
  72. 72. Algoritmo minimax A B• El algoritmo primero va hacia abajo a los tres nodos izquierdos y utiliza la función Utilidad para descubrir que sus valores son 3, 12 y 8.
  73. 73. Algoritmo minimax A B• Entonces el algoritmo toma el mínimo de estos valores, 3, y lo devuelve como el valor del nodo B.
  74. 74. Algoritmo minimax• Realiza una exploración primero en profundidad completa del árbol de juegos.• Si la profundidad máxima del árbol es m, y hay b movimientos legales en cada punto, entonces la complejidad : – en tiempo es O(bm); – en espacio es • O(bm) si se generan todos los sucesores a la vez; • O(m) si se generan los sucesores uno por uno.• Juegos reales: los costos de tiempo son inaceptables, pero este algoritmo sirve como base para el primer análisis matemático y para algoritmos más prácticos.
  75. 75. Algoritmo minimaxfunción Decisión-Minimax(estado) devuelve una acción variables de entrada: estado, estado actual del juego v ← Max-Valor(estado) devolver la acción de Sucesores(estado) con valor vfunción Max-Valor(estado) devuelve un valor utilidad si Test-Terminal(estado) entonces devolver Utilidad (estado) v ← -∞ para un s en Sucesores(estado) hacer v ← Max(v, Min-Valor(s)) devolver vfunción Min-Valor(estado) devuelve un valor utilidad si Test-Terminal(estado) entonces devolver Utilidad (estado) v←∞ para un s en Sucesores(estado) hacer v ← Min(v, Max-Valor(s)) devolver v
  76. 76. Poda alfa-beta• Problema de la búsqueda minimax: el número de estados que tiene que examinar es exponencial con el número de movimientos.• El exponente no se puede eliminar, pero se puede dividir en la mitad.• Es posible calcular la decisión minimax correcta sin mirar todos los nodos en el árbol.• La poda alfa-beta permite eliminar partes grandes del árbol, sin influir en la decisión final.
  77. 77. Minimax con poda α-β a a b c b c e = min(-1, ?) = -1 0.03 e= max (-0.1, -0.05) = -0.05 d g -1 (gana MIN) ? ? No tiene sentido seguir e f buscando los otros -0.1 -0.05 descendientes de c. En c: e= min(-0.05, v(g)) por lo tanto en a: e = max(0.03, min(-0.05, v(g))) = 0.03 Se pueden pues podar los nodos bajo g; no aportan nada.El valor de la raíz y la decisión minimax sonindependientes de los valores de las hojas podadas.
  78. 78. Minimax con poda α-βmax a e(e) = min(-0.1,v(g)) Como la rama b ya da un 0.03,min Cualquier cosa peor no sirve b c => No hay que explorar g 0.03 e(d) = max(e(e), h)max d i => Sí hay que explorar h ...min e h La búsqueda minimax es primero en profundidad: enmax f g cualquier momento sólo se -0.1 consideran los nodos a lo largo de un camino del árbol.
  79. 79. Poda alfa-beta• Los dos parámetros alfa y beta describen los límites sobre los valores que aparecen a lo largo del camino: – α = el valor de la mejor opción (el más alto) que se ha encontrado hasta el momento en cualquier punto del camino, para MAX – β = el valor de la mejor opción (el más bajo) que se ha encontrado hasta el momento en cualquier punto del camino, para MIN• La búsqueda alfa-beta actualiza el valor de α y β según se va recorriendo el árbol y termina la recursión cuando encuentra un nodo peor que el actual valor α o β correspondiente.
  80. 80. Poda alfa-beta: ejemplo
  81. 81. Poda alfa-beta: ejemplo
  82. 82. Poda alfa-beta: ejemplo
  83. 83. Poda alfa-beta: ejemplo
  84. 84. Poda alfa-beta: ejemplo
  85. 85. Poda alfa-beta MAX {α, β} Si Vi ≥ β poda β Si Vi > α modificar α Vi Retornar α MIN {α, β} Si Vi ≤ α poda α Si Vi < β modificar β Vi Retornar βLas cotas α y β se transmiten de padres a hijos de 1 en 1 y en elorden de visita de los nodos.
  86. 86. Minimax con poda α-βFuncion valorMax (g,α,β) retorna entero Funcion valorMin (g,α,β) retorna entero Si estado_terminal(g) entonces Si estado_terminal(g) entonces retorna(evaluacion(g)) retorna(evaluacion(g)) si no si no Para cada mov en movs_posibles(g) Para cada mov en movs_posibles(g) α=max(α,valorMin(aplicar(mov,g),α,β)) β=min(β,valorMax(aplicar(mov,g),α,β)) si α≥β entonces retorna(β) si α≥β entonces retorna(α) fPara fPara retorna(α) retorna(β) fsi fsifFuncion fFuncion El recorrido se inicia llamando a la función valorMax con α=-∞ y β=+∞. En la función valorMax α es el valor que se actualiza. En la función valorMin β es el valor que se actualiza.
  87. 87. A {alpha = -∞, beta = +∞} A {3, +∞} {-∞, +∞}{-∞, 3} B C 3{-∞, +∞} B C {-∞, 3} D E D E 3 3 5 A {3, +∞} 3 B C {3, +∞} {3, +∞} D F G H {3, +∞} I J Se puede podar I ya que es un nodo min y K 0 L el valor de v(K) = 0 es < α = 3
  88. 88. A {3, +∞} A {3, +∞} B C {3, +∞} 3 B C {3, 5} 5 F G H 3D {3, +∞} 5 F {3, 5} G H D J 5 4 5 J M 7 N A Podemos podar G pues es C 4 B 3 un nodo max y el valor de D 5 F H 4 M (7) > β = 5 5 J

×