INGENIERIA INFORMATICA Y SISTEMAS INTELIGENCIA ARTIFICIAL BUSQUEDAS CON ADVERSARIOS Sesión 5
Árboles y búsqueda con   adversario <ul><li>Los entornos competitivos, en los cuales los objetivos del agente están en con...
<ul><li>La manera natural de responder un juego es mediante un árbol de juegos que es un tipo especial de árbol semántico ...
<ul><li>y las ramas indican como una configuración puede transformarse en otra mediante un solo movimiento.  </li></ul>
<ul><li>Por supuesto existe un giro especial en el hecho de que las decisiones son tomadas por dos adversarios que toman u...
Un juego se define formalmente como una clase de problemas de búsquedas con los componentes siguientes:
El estado inicial: <ul><li>Que incluye la posición del tablero e identifica al jugador que mueve. </li></ul>
Una función sucesor: <ul><li>Que devuelve una lista de pares (movimiento, estado), indicando un movimiento legal y el esta...
Un test Terminal: <ul><li>Que determina cuando se termina el juego. A los estados donde el juego se ha terminado se les ll...
Una función de utilidad: <ul><li>También llamada función objetivo o función de rentabilidad, que da un valor numérico a lo...
Un árbol (parcial) de búsqueda para el juego de tres en raya.
Búsqueda entre adversarios <ul><li>Uso : decidir mejor jugada en cada momento para cierto tipo de juegos. </li></ul><ul><l...
Representación del juego <ul><li>Representación del estado </li></ul><ul><li>Representación del estado ganador </li></ul><...
Búsqueda entre adversarios
Búsqueda entre adversarios <ul><li>En una busqueda con adversarios se debe : generar todo el árbol de jugadas. </li></ul><...
Búsqueda entre adversarios
Búsqueda entre adversarios
Búsqueda entre adversarios <ul><li>Aproximación heurística : definir una función que nos indique lo cerca que estamos de u...
Algoritmo minimax (1) <ul><li>Calcula la decisión minimax del estado actual. </li></ul><ul><li>Usa un cálculo simple recur...
Algoritmo minimax (2) <ul><li>Primero utiliza la función Utilidad para descubrir que sus valores son 3, 12 y 8. </li></ul>...
Minimax
Ejemplo 3 en raya e: estado x profundidad    entero e = número de filas, columnas y diagonales completas disponibles para...
0 X X  0 X 0 X X 0 X X X  0 0  X X  0 X 0 X  0 X 0 X  0 X 0 X  0 X 0 X  0 0 X 4-2=2 3-2=1 4-2=2 2-2=0 4-2=2 3-2=1 Min=0 0 ...
0  0 X X 0  0 X X X X  0  0 X X 0  0 X X X 0  0 X X X 0  0 X X  X X  0  0 0  X X X  0  0 X X  0 X  0  0 X X  0 X  0  0 X  ...
Poda alfa-beta <ul><li>Problema de la búsqueda minimax: el número de estados que tiene que examinar es exponencial con el ...
A B C D a1 a2 a3 b1 b2 b3 c1 c2 c3 d1 d2 d3 3 12 8 2 4 6 14 5 2 3 3 2 2 MAX MIN El mejor movimiento de MAX en la raíz es a...
A B C D 3 [-  , +  ] [-  , 3] (a) (a) La primera hoja debajo de B tiene el valor 3. De ahí B, que es un nodo MIN, tiene...
A B C D 3 [-  , +  ] [-  , 3] (b) (b) La segunda hoja debajo de B tiene el valor 12; MIN evitara este movimiento, enton...
A B C D 3 [3, +  ] [3, 3] (c) (c) La tercera hoja debajo de B tiene el valor 8; hemos visto a todos los sucesores de B, e...
A B C D 3 [3, +  ] [3, 3] (d) (d) La primera hoja debajo de C tiene el valor 2. De ahí, C que es un nodo MIN, tiene un va...
A B C D 3 [3, 14] [3, 3] (e) (e) La primera hoja debajo de D tiene el valor 14,entonces D vale como máximo 14. Este todaví...
A B C D 3 [3, 3] [3, 3] (f) (f) El segundo sucesor de D vale 5, así que otra vez tenemos que seguir explorando. El tercer ...
Poda alfa-beta <ul><li>Los dos parámetros alfa y beta describen los límites sobre los valores que aparecen a lo largo del ...
MAX V i {     } Si V i  >     modificar   Si V i         poda   Retornar   {     } Si V i  <    modificar   ...
Fin
Upcoming SlideShare
Loading in …5
×

busquedas con adversarios

3,150 views

Published on

Busquedas heuriticas con adversarios en inteligencia artificial

Published in: Technology
2 Comments
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
3,150
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
197
Comments
2
Likes
0
Embeds 0
No embeds

No notes for slide

busquedas con adversarios

  1. 1. INGENIERIA INFORMATICA Y SISTEMAS INTELIGENCIA ARTIFICIAL BUSQUEDAS CON ADVERSARIOS Sesión 5
  2. 2. Árboles y búsqueda con adversario <ul><li>Los entornos competitivos, en los cuales los objetivos del agente están en conflicto, dan ocasión a problemas de búsqueda entre adversarios, a menudo conocido como juegos. </li></ul>
  3. 3. <ul><li>La manera natural de responder un juego es mediante un árbol de juegos que es un tipo especial de árbol semántico en los que los nodos representan configuraciones de tableros </li></ul>
  4. 4. <ul><li>y las ramas indican como una configuración puede transformarse en otra mediante un solo movimiento. </li></ul>
  5. 5. <ul><li>Por supuesto existe un giro especial en el hecho de que las decisiones son tomadas por dos adversarios que toman una decisión a la vez. </li></ul>
  6. 6. Un juego se define formalmente como una clase de problemas de búsquedas con los componentes siguientes:
  7. 7. El estado inicial: <ul><li>Que incluye la posición del tablero e identifica al jugador que mueve. </li></ul>
  8. 8. Una función sucesor: <ul><li>Que devuelve una lista de pares (movimiento, estado), indicando un movimiento legal y el estado que resulta. </li></ul>
  9. 9. Un test Terminal: <ul><li>Que determina cuando se termina el juego. A los estados donde el juego se ha terminado se les llama estados terminales. </li></ul>
  10. 10. Una función de utilidad: <ul><li>También llamada función objetivo o función de rentabilidad, que da un valor numérico a los estados terminales. </li></ul><ul><li>En los juegos, el resultado es un triunfo, pérdida o empate, con valores +1, -1 o 0. </li></ul>
  11. 11. Un árbol (parcial) de búsqueda para el juego de tres en raya.
  12. 12. Búsqueda entre adversarios <ul><li>Uso : decidir mejor jugada en cada momento para cierto tipo de juegos. </li></ul><ul><li>¿Que tipo de juegos? </li></ul><ul><ul><li>2 jugadores. </li></ul></ul><ul><ul><li>Movimientos alternos (jugador MAX, jugador MIN) </li></ul></ul>
  13. 13. Representación del juego <ul><li>Representación del estado </li></ul><ul><li>Representación del estado ganador </li></ul><ul><ul><li>(por estructura o propiedades o función de utilidad) </li></ul></ul><ul><li>Definir los operadores de movimiento </li></ul>
  14. 14. Búsqueda entre adversarios
  15. 15. Búsqueda entre adversarios <ul><li>En una busqueda con adversarios se debe : generar todo el árbol de jugadas. </li></ul><ul><li>Se etiquetan las jugadas terminales, dependiendo de si gana MAX o MIN, con un valor de utilidad de, por ejemplo, “+1” o “-1”. </li></ul><ul><li>El objetivo es encontrar un conjunto de movimientos accesible que dé como ganador a MAX. </li></ul><ul><li>Se propagan los valores de las jugadas terminales de las hojas hasta la raíz. </li></ul><ul><li>Una búsqueda en profundidad minimiza el espacio. </li></ul>
  16. 16. Búsqueda entre adversarios
  17. 17. Búsqueda entre adversarios
  18. 18. Búsqueda entre adversarios <ul><li>Aproximación heurística : definir una función que nos indique lo cerca que estamos de una jugada ganadora (o perdedora). </li></ul><ul><li>En esta función interviene información del dominio. </li></ul><ul><li>Esta función no representa ningún coste ni es una distancia en pasos. </li></ul><ul><li>Por convención: </li></ul><ul><ul><li>las jugadas ganadoras se evalúan a “+  ” </li></ul></ul><ul><ul><li>las jugadas perdedoras se evalúan a “-  ” </li></ul></ul><ul><li>El algoritmo busca con profundidad limitada. </li></ul><ul><li>Cada nueva decisión implicará repetir parte de la búsqueda. </li></ul>
  19. 19. Algoritmo minimax (1) <ul><li>Calcula la decisión minimax del estado actual. </li></ul><ul><li>Usa un cálculo simple recurrente de los valores minimax de cada estado sucesor. </li></ul><ul><li>La recursión avanza hacia las hojas del árbol. </li></ul><ul><li>Los valores minimax retroceden por el árbol cuando la recursión se va deshaciendo. </li></ul>
  20. 20. Algoritmo minimax (2) <ul><li>Primero utiliza la función Utilidad para descubrir que sus valores son 3, 12 y 8. </li></ul><ul><li>Entonces toma el mínimo de estos valores, 3, y lo devuelve como el valor del nodo B . </li></ul>A B
  21. 21. Minimax
  22. 22. Ejemplo 3 en raya e: estado x profundidad  entero e = número de filas, columnas y diagonales completas disponibles para max - número de filas, columnas y diagonales completas disponibles para min max juega con X y desea maximizar e min juega con  y desea minimizar e valores altos: buena posición para el que tiene que mover (profundidad par o impar) Controlar las simetrías X X X0 X 0 X 0 X 0 X 0 X 0 X X 0 0 X X 0 X 0 X 0 X 0 6-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 Min= -1 Min= 1 Min= -2 Max = 1 La mejor jugada de max es pues tras lo cual min podría jugar X 0 X
  23. 23. 0 X X 0 X 0 X X 0 X X X 0 0 X X 0 X 0 X 0 X 0 X 0 X 0 X 0 X 0 X 0 0 X 4-2=2 3-2=1 4-2=2 2-2=0 4-2=2 3-2=1 Min=0 0 X X 0 0 X X 0 0 X 0 X 0 0 X X 4-2=2 4-2=2 5-2=3 3-2=1 4-2=2 4-2=2 Min=0 Min=1 Min=0 Max = 1 La mejor jugada de max es pues tras lo cual min podría jugar 0 X X 0 0 X X …………… ... …………… ... 0 X X 0 0 X X 0 0 X X
  24. 24. 0 0 X X 0 0 X X X X 0 0 X X 0 0 X X X 0 0 X X X 0 0 X X X X 0 0 0 X X X 0 0 X X 0 X 0 0 X X 0 X 0 0 X 0 X 2-1=1 3-1=2 2-1=1 3-1=2 Min=1 Min= -  Min= -  Min= -  Min= -  Max=1 La mejor jugada de max es pues X 0 0 X X
  25. 25. Poda alfa-beta <ul><li>Problema de la búsqueda minimax: el número de estados que tiene que examinar es exponencial con el número de movimientos. </li></ul><ul><li>Es posible calcular la decisión minimax correcta sin mirar todos los nodos en el árbol. </li></ul><ul><li>La poda alfa-beta permite eliminar partes grandes del árbol, sin influir en la decisión final. </li></ul>
  26. 26. A B C D a1 a2 a3 b1 b2 b3 c1 c2 c3 d1 d2 d3 3 12 8 2 4 6 14 5 2 3 3 2 2 MAX MIN El mejor movimiento de MAX en la raíz es a1, porque conduce al sucesor con el valor minimax mas alto, y la mejor respuesta de MIN es b1, por que conduce al sucesor con el valor minimax mas bajo.
  27. 27. A B C D 3 [-  , +  ] [-  , 3] (a) (a) La primera hoja debajo de B tiene el valor 3. De ahí B, que es un nodo MIN, tiene un valor de cómo máximo 3.
  28. 28. A B C D 3 [-  , +  ] [-  , 3] (b) (b) La segunda hoja debajo de B tiene el valor 12; MIN evitara este movimiento, entonces el valor de B es todavía como máximo 3. 12
  29. 29. A B C D 3 [3, +  ] [3, 3] (c) (c) La tercera hoja debajo de B tiene el valor 8; hemos visto a todos los sucesores de B, entonces el valor de B es exactamente 3. Ahora, podemos deducir que el valor de la raíz es al menos 3., por que MAX tiene una opción digna de 3 en la raíz. 12 8
  30. 30. A B C D 3 [3, +  ] [3, 3] (d) (d) La primera hoja debajo de C tiene el valor 2. De ahí, C que es un nodo MIN, tiene un valor de cómo máximo 2. Pero sabemos que B vale 3, entonces MAX nunca elegiría C. Por lo tanto, no hay ninguna razón en mirar a los otros sucesores de C. Este es un ejemplo de la poda Alfa-Beta. 12 8 [-  , 2] 2
  31. 31. A B C D 3 [3, 14] [3, 3] (e) (e) La primera hoja debajo de D tiene el valor 14,entonces D vale como máximo 14. Este todavía es mas alto que la mejor alternativa de MAX (es decir, 3), entonces tenemos que seguir explorando a los sucesores de D. Note también que ahora tenemos límites sobre todos los sucesores de la raíz, entonces el valor de la raíz es como máximo 14. 12 8 [-  , 2] [-  , 14] 2 14
  32. 32. A B C D 3 [3, 3] [3, 3] (f) (f) El segundo sucesor de D vale 5, así que otra vez tenemos que seguir explorando. El tercer sucesor vale 2, así que ahora D vale exactamente 2. La decisión de MAX en la raíz es moverse a B, dando un valor de 3. 12 8 [-  , 2] [2,2] 2 14 5 2
  33. 33. Poda alfa-beta <ul><li>Los dos parámetros alfa y beta describen los límites sobre los valores que aparecen a lo largo del camino: </li></ul><ul><ul><li> = 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 </li></ul></ul><ul><ul><li> = 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 </li></ul></ul><ul><li>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. </li></ul>
  34. 34. MAX V i {   } Si V i >  modificar  Si V i   poda  Retornar  {   } Si V i <  modificar  Si V i   poda  Retornar  MIN V i Las cotas  y  se transmiten de padres a hijos de 1 en 1 y en el orden de visita de los nodos.  es la cota inferior de un nodo max.  es la cota superior de un nodo min.
  35. 35. Fin

×