Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Inteligencia Artificial

12,315 views

Published on

El procedimiento del museo británico; Ramificación y cota; El algoritmo A*. Procedimiento británico. ¿qué hacer para asegurar encontrar la ruta óptima?

Published in: Technology
  • Be the first to comment

Inteligencia Artificial

  1. 1. Fundamentos de Inteligencia Artificial Búsqueda Coordinación de Ciencias Computacionales Instituto Nacional de Astrofísica, Óptica y Electrónica Manuel Montes ( [email_address] ; 8218) Luis Villaseñor ( [email_address] ; 8306)
  2. 2. Objetivos de la sección <ul><li>Aprender cómo hallar trayectorias en redes, resolviendo así problemas de búsqueda . </li></ul><ul><li>Presentar los métodos m á s populares de búsqueda . </li></ul><ul><li>Aprender a evaluar los procedim i entos de búsqueda </li></ul><ul><ul><li>Su eficiencia, su facilidad de implementación, su pertinencia para cierto tipo de problemas . </li></ul></ul>
  3. 3. Métodos básicos de búsqueda Búsqueda Una ruta Ruta optima Juegos Profundidad primero A mplitud primero Ascenso de colina Búsqueda en haz Primero el mejor Museo británico Ramificación y cota Programación dinámica A* M i nima x Poda Alfa-beta Continuación heurística Profundidad progresiva A tientas Heuristicos
  4. 4. Redes y búsqueda <ul><li>Encontrar una trayectoria del punto S al punto G involucra dos costos: </li></ul><ul><ul><li>El costo del c á lculo para encontrar la trayectoria </li></ul></ul><ul><ul><li>El costo del viaje cuando se sigue la trayectoria </li></ul></ul>s a d e b c f g 3 3 4 4 4 4 5 5 2
  5. 5. Árbol de búsqueda <ul><li>Es una representación que considera todas las trayectorias posibles en la red: </li></ul><ul><ul><li>Los nodos representan trayectorias, y las ramas conectan trayectorias a extensiones de trayectoria de un solo paso. </li></ul></ul><ul><li>Idea es construir al vuelo este árbol, siguiendo una estrategia de búsqueda. </li></ul><ul><li>El número total de trayectorias de un árbol con factor de ramificación b y profundidad d es b d . </li></ul>
  6. 6. Árbol de búsqueda (cont.) s a d a e b d c e b f b e d f b f d e a c g g c g f g Trayectoria s-d-a-b-e-f-g
  7. 7. Búsqueda en profundidad primero <ul><li>Para llevar a cabo una búsqueda en profundidad , </li></ul><ul><ul><li>Inserte en una pila el elemento raíz (nodo de partida) </li></ul></ul><ul><ul><li>Hasta que el elemento tope sea el nodo meta, o se vacié la pila </li></ul></ul><ul><ul><ul><li>Si nodo tope tiene hijos, insertar el hijo siguiente aun no visitado, según ordenamiento. </li></ul></ul></ul><ul><ul><ul><li>Si no, entonces eliminar nodo tope. </li></ul></ul></ul><ul><ul><li>Si el nodo meta se alcanza, mencione éxito, de lo contrario, notifique el fracaso. </li></ul></ul>
  8. 8. Árbol generado s a d a e b d c e b f b e d f b f d e a c g g c g f g 1 2 3 4 5 6 7
  9. 9. Búsqueda en amplitud primero <ul><li>Para llevar a cabo una búsqueda en amplitud, </li></ul><ul><ul><li>Inserte en una cola el elemento raíz (nodo de partida) </li></ul></ul><ul><ul><li>Hasta que el elemento frontal sea el nodo meta, o se vacié la cola </li></ul></ul><ul><ul><ul><li>Si nodo frontal tiene hijos, insertar todos sus hijos al final de la cola. </li></ul></ul></ul><ul><ul><ul><li>Eliminar nodo frontal. </li></ul></ul></ul><ul><ul><li>Si el nodo meta se alcanza, mencione éxito, de lo contrario, notifique el fracaso. </li></ul></ul>
  10. 10. Árbol generado s a d a e b d c e b f b e d f b f d e a c g g c g f g 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
  11. 11. Comparación de procedimientos <ul><li>¿cual de los dos procedimientos es mejor? </li></ul><ul><li>¿son ambos completos? </li></ul><ul><ul><li>¿garantizan encontrar una solución, si es que existe? </li></ul></ul><ul><li>¿son ambos óptimos? </li></ul><ul><ul><li>¿se encontrara la mejor solución en caso de existir varias? </li></ul></ul><ul><li>¿y que pasa con su complejidad temporal y espacial? </li></ul>
  12. 12. Problema de los jarrones de agua <ul><li>Se tienen dos jarrones, uno de 4 y otro de 3 litros. Ninguno tiene marcas de medidas sobre él. También se tiene una toma de agua que puede usarse para llenar los jarrones. </li></ul><ul><li>¿cómo podemos obtener exactamente 2 litros en el jarrón de 3 ? </li></ul><ul><li>¿qué tenemos que hacer para resolver este problema automáticamente? </li></ul><ul><li>¿se debe representar el espacio de estados en su totalidad? ¿hay alguna manera de representar en forma resumida todos los posibles estados? </li></ul>
  13. 13. Una posible solución Tarea 7: Dibujar árbol de búsqueda resultante al aplicar las búsquedas en profundidad y en anchura. Jueves 18 de sept … … … …
  14. 14. Reglas de producción <ul><li>Los estados se representan como (X,Y), donde X = 0,1,2,3,4 y Y = 0,1,2,3. </li></ul><ul><li>(X,Y|X<4)  (4,Y) </li></ul><ul><li>(X,Y|Y<3)  (X,3) </li></ul><ul><li>(X,Y|X>0)  (0,Y) </li></ul><ul><li>(X,Y|Y>0)  (X,0) </li></ul><ul><li>(X,Y|X+Y>=4  Y>0)  (4,Y-(4-X)) </li></ul><ul><li>(X,Y|X+Y>=3  X>0)  (X-(3-Y),3)) </li></ul><ul><li>(X,Y|X+Y<=4  Y>0)  (X+Y,0)) </li></ul><ul><li>(X,Y|X+Y<=3  X>0)  (0,X+Y) </li></ul>
  15. 15. Métodos Heurístic o s <ul><li>La búsqueda se puede mejorar si existe una forma de ordenar las posibilidades de modo que las m á s prometedoras se exploren primero . </li></ul><ul><li>Mayor conocimiento, menor tiempo de búsqueda </li></ul><ul><li>Tres métodos muy conocidos: </li></ul><ul><ul><li>Ascenso de colina (-> profundidad primero), </li></ul></ul><ul><ul><li>Búsqueda en Haz (-> anchura primero), </li></ul></ul><ul><ul><li>Primero el mejor </li></ul></ul>
  16. 16. Ascenso de colina <ul><li>Mediciones de calidad convierten la búsqueda en profundidad en ascenso de colina. </li></ul><ul><li>Se ordenan las posibilidades (estados hijo) usando una medición heurística de la distancia que queda por recorrer. </li></ul><ul><ul><li>Distancia en línea recta al estado objetivo. </li></ul></ul><ul><li>Mejor medición, mejor el ascenso de colina </li></ul>
  17. 17. Distancias entre ciudades s a d e b c f g 3 4 6.7 10.4 11 8.9 6.9 s a d e b c f g 3 3 4 4 4 4 5 5 2
  18. 18. Árbol generado s a d a e b d c e b f b e d f b f d e a c g g c g f g 8.9 10.4 10.4 6.9 3.0 6.7
  19. 19. Problemas del ascenso de colina <ul><li>En problemas orientados a ajuste de parámetros: </li></ul><ul><ul><li>Problema de la falta de colina </li></ul></ul><ul><ul><ul><li>Se encuentra un punto optimo, pero se trata de un máximo local . </li></ul></ul></ul><ul><ul><li>Problema de la meseta </li></ul></ul><ul><ul><ul><li>La operación de mejoramiento local fracasa por completo. Todas las pruebas de paso normal dejan intacta la medición de calidad . </li></ul></ul></ul><ul><ul><li>Problema del borde </li></ul></ul><ul><ul><ul><li>Es como estar en el filo de una navaja , solamente puede salirse del problema si se tiene un número muy grande de direcciones para orientar los pasos. </li></ul></ul></ul>
  20. 20. Búsqueda en haz <ul><li>Parecida a la búsqueda en amplitud en cuanto a que avanza de nivel en nivel. </li></ul><ul><li>Sólo se mueve hacia abajo a tr a vés de los w mejores nod o s de cada nivel. </li></ul><ul><ul><li>Extiende varias trayectorias parciales y elimina el resto. </li></ul></ul><ul><li>El n ú mero de nodos se mantiene manejable aún cuando la ramificación sea alta y la búsqueda sea profunda. </li></ul>
  21. 21. Árbol generado s a d a e b d c e b f b e d f b f d e a c g g c g f g 8.9 10.4 10.4 6.9 3.0 6.7 8.9 6.7 4.0 6.9 Callejón sin salida
  22. 22. Búsqueda primero el mejor <ul><li>Extiende la mejor trayectoria parcial en cada punto. </li></ul><ul><ul><li>Considera todos los nodos abiertos hasta el momento. </li></ul></ul><ul><li>Ascenso de colina inspecciona la que parece la mejor trayectoria hasta el final; la búsqueda primero el mejor analiza varias trayectorias a la vez, siempre siguiendo la mejor trayectoria parcial conocida al momento. </li></ul><ul><li>Generalmente la búsqueda primero el mejor encuentra trayectorias más cortas a los estados meta. </li></ul>
  23. 23. Árbol generado s a d a e b d c e b f b e d f b f d e a c g g c g f g 8.9 10.4 10.4 6.9 3.0 6.7
  24. 24. ¿cuál es el mejor método? <ul><li>Primero en profundidad es bueno cuando se sabe – con seguridad – que el árbol no es muy profundo . </li></ul><ul><li>Primero en anchura, cuando el factor de ramificación no es muy grande . </li></ul><ul><li>Los métodos heurísticos son adecuados cuando existe una medida natural de la distancia entre cada estado y el estado meta. </li></ul>
  25. 25. Encontrando la mejor ruta <ul><li>Estos métodos consideran, a diferencia de los anteriores, el peso de las ramas . </li></ul><ul><li>Su objetivo no es únicamente encontrar una ruta, sino encontrar la mejor (típicamente la más corta). </li></ul><ul><li>Entre ellos se encuentran: </li></ul><ul><ul><li>El procedimiento del museo británico </li></ul></ul><ul><ul><li>Ramificación y cota </li></ul></ul><ul><ul><li>El algoritmo A* </li></ul></ul>
  26. 26. Procedimiento británico <ul><li>¿qué hacer para asegurar encontrar la ruta óptima? </li></ul><ul><li>Procedimiento de museo británico: </li></ul><ul><ul><li>Primero encontrar todas las rutas al objetivo </li></ul></ul><ul><ul><li>Después seleccionar la mejor </li></ul></ul><ul><li>Puede usarse búsqueda en anchura o en profundidad como estrategia de exploración. </li></ul><ul><ul><li>Terminar hasta recorrer el árbol completamente . </li></ul></ul><ul><li>¿qué inconveniente le encuentran? </li></ul>
  27. 27. Árbol generado con DFS s a b c e d f g 1 2 3 4 5 6 7 14 d a e d b f b e b f d e a c g c g f g 11 9 8 10 12 13 15 16 17 18 19 20 21 22 23 24 25 26
  28. 28. Aplicabilidad <ul><li>No tiene problemas con árboles (muy) pequeños . </li></ul><ul><li>En la mayoría de los casos no es aplicable . </li></ul><ul><ul><li>Por explosión exponencial </li></ul></ul><ul><li>Si tenemos un árbol (mediano) con niveles d = 10, y un factor de ramificación b = 10. </li></ul><ul><ul><li>Los estados visitados son b d . </li></ul></ul><ul><ul><li>10 10 = 10 billones de estados </li></ul></ul>
  29. 29. Ramificación y cota <ul><li>Menos sacrificado para encontrar la ruta óptima. </li></ul><ul><li>Idea básica es expandir en cada ocasión la ruta parcial con el menor costo hasta el momento . </li></ul><ul><ul><li>Es decir, todos los nodos abiertos hasta el momento entran en consideración. </li></ul></ul><ul><li>Similar a método “primero el mejor”, pero al revés. </li></ul><ul><ul><li>En lugar de seguir el trayecto que aparentemente tiene la menor distancia hacia el objetivo, se sigue aquel que hasta el momento es el más corto. </li></ul></ul>
  30. 30. Algoritmo básico <ul><li>Formar una cola de trayectos parciales. Inicialmente sólo tiene el elemento raíz. </li></ul><ul><li>Hasta que la cola se vacié o se alcance el nodo objetivo, determinar si el primer elemento alcanza el nodo objetivo. </li></ul><ul><ul><li>Si alcanza el objetivo, salir. </li></ul></ul><ul><ul><li>Si no, entonces; </li></ul></ul><ul><ul><ul><li>Borrar el nodo de la cola </li></ul></ul></ul><ul><ul><ul><li>Agregar sus hijos a la cola </li></ul></ul></ul><ul><ul><ul><li>Ordenar los nodos por costo acumulado </li></ul></ul></ul><ul><li>Si el nodo objetivo fue encontrado mencionar éxito, de lo contrario anunciar falla. </li></ul>
  31. 31. Árbol generado a d a e b d c e b f b e d f b f d e a c g g c g f g s 3 4 7 8 9 6 11 10 11 12 10 13 13 1 2 4 5 6 3 8 7 9 15 14
  32. 32. Asegurar la ruta optima <ul><li>¿cuál es la respuesta del método? </li></ul><ul><li>¿cómo podemos asegurar encontrar la ruta óptima? </li></ul><ul><li>¿cuándo debemos terminar el algoritmo? </li></ul><ul><ul><li>Cuando todas las rutas parciales tengan igual o mayor peso que la trayectoria encontrada </li></ul></ul>s b a g 2 3 5 1 s b a g 2 3 3 1
  33. 33. Árbol completo a d a e b d c e b f b e d f b f d e a c g g c g f g s 3 4 7 8 9 6 11 10 11 12 10 13 13 1 2 4 5 6 3 8 7 9 15 14 14 16 15 15 10 11 12
  34. 34. Estimación de la distancia restante <ul><li>Usar una estimación de la distancia restante a la meta puede mejorar considerablemente el método. </li></ul><ul><li>Si es buena estimación, entonces ella mas distancia recorrida debe ser un buen c á lculo de la longitud total de la trayectoria : </li></ul><ul><ul><li>e (long trayectoria) = d (ya recorrida) + e (dist. restante) </li></ul></ul><ul><li>Si las conjeturas fueran correctas este método se mantendría todo el tiempo en la ruta optima. </li></ul><ul><ul><li>Mejor estimación, mejor la búsqueda </li></ul></ul>
  35. 35. Subestimaciones son apropiadas <ul><li>Las estimaciones no son perfectas; esto puede traer serios problemas al método. </li></ul><ul><li>¿que sucederá con sobreestimaciones de la distancia restante? </li></ul><ul><ul><li>Desvío permanente de la trayectoria óptima </li></ul></ul><ul><ul><li>No existiría la certeza, hasta recorrer el árbol completo, que la ruta encontrada es la optima. </li></ul></ul><ul><li>El método funciona adecuadamente con subestimaciones de la distancia restante. </li></ul>
  36. 36. Árbol generado con distancia directa entre ciudades a d a e b d c e b f b e d f b f d e a c g g c g f g s 13.4 12.9 19.4 12.9 13 13 1 2 3 4 17.7
  37. 37. Trayectorias redundantes <ul><li>Ramificación y cota puede mejorarse eliminando las trayectorias redundantes . </li></ul><ul><li>Se relaciona con el principio de programación dinámica . </li></ul><ul><ul><li>El mejor camino del punto de inicio a la meta, a través de un lugar intermedio específico, es el mejor camino hacia éste desde el lugar de inicio, seguido por el mejor camino desde éste a la meta. </li></ul></ul><ul><ul><li>No hay necesidad de buscar por otras trayectorias hacia o desde el punto intermedio. </li></ul></ul>
  38. 38. Árbol generado a d a e b d c e b f b e d f b f d e a c g g c g f g s 3 4 7 8 9 6 11 10 11 12 10 13 13 1 2 4 3 5 6 15 14 14 16 15 15 7
  39. 39. Procedimiento A* <ul><li>Es una búsqueda de ramificación y cota con: </li></ul><ul><ul><li>Estimación de distancia restante </li></ul></ul><ul><ul><li>Eliminación de trayectorias redundantes </li></ul></ul><ul><li>Si la estimación de la distancia restante es un limite inferior de la distancia real, entonces A* produce soluciones optimas . </li></ul>

×