Fundamentos de Inteligencia Artificial Búsqueda

Slides:



Advertisements
Presentaciones similares
Ing. Victor Jaime Polo Romero
Advertisements

INGENIERIA INFORMATICA Y BUSQUEDAS CON ADVERSARIOS
El cálculo en la alfabetización matemática
ESTIMACIÓN DE DENSIDAD
Branch-and-bound Search
Búsqueda en árboles de juego
¿Por que estudiar búsquedas?
Maestro Sr. Jaime O. López López
INTELIGENCIA ARTIFICIAL
Damas Chinas Condori Mollehuara Miguel Montenegro Rubio Willy
Complejidad Computacional
Programación entera En muchos problemas reales las variables sólo pueden tomar valores enteros Ejemplos: decisiones sobre inversiones, compras, arranques,
Programación entera En muchos problemas reales las variables sólo pueden tomar valores enteros Ejemplos: decisiones sobre inversiones, compras, arranques,
Inteligencia Artificial
Inteligencia Artificial
Inteligenica Artificial I Alejandro Permingeat Inteligencia Artificial de Russell y Norving 1° edición 1996 Parte II Capítulo V.
REDES SEMANTICAS Y BUSQUEDAS
IBD Clase 7.
ESTRUCTURA DE DATOS Unidad 04 Árboles BINARIOS DE BUSQUEDA.
Unidad de competencia II Estadística descriptiva:
Montículos Daniel González Pérez Cristina Sánchez Aragón
Los elementos invertibles de Z6 son 1 y 5
Generación de Números Seudo-Aleatorios
BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA
Trabajo en Equipo “Escoge a tus aliados y aprende a luchar acompañado”
Sistemas de Ecuaciones
Inteligencia Artificial Búsqueda informada y exploración
Tema 1.- Aritmética. 1.-Usar el algoritmo de Euclides para calcular el máximo común divisor de a y b y expresarlo en función de a y b para: a) a= 56,
Métodos básicos de Búsqueda
Investigación de Operaciones II
Operaciones sobre un árbol
Investigación Algorítmica
ESTRUCTURAS DE DATOS AVANZADAS
Cap 4 Búsqueda Heurística
Búsqueda Informada Heurísticas.
Inteligencia Artificial Búsqueda informada y exploración
Números enteros.
BUSQUEDA EN JUEGOS DE ADVERSARIO Sección 1-4
Solución de problemas por búsqueda inteligente
Indicadores de Desempeño

AUDITORIA DE LA SEGURIDAD en Telecomunicaciones y redes de computadoras Unidad VI.
Tema 3. Optimización de Código
Inteligencia Artificial Resolver problemas mediante búsqueda
Recurrencia Programación II 3-4 de febrero de 2009.
ESTRATEGIAS DE BUSQUEDA A CIEGAS
Tema Nº4.
Inteligencia Artificial Resolver problemas mediante búsqueda
Inteligencia Artificial Gonzalo Villarreal Farah
1 LOS PROBLEMAS DE DISEÑO EN INGENIERÍA: CONCEPTO Y FORMULACIÓN NELSON VÍLCHEZ UNIVERSIDAD TECNOLÓGICA DEL CENTRO COORDINACIÓN DE INGENIERÍA.
L. Enrique Sucar Marco López ITESM Cuernavaca
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado.
Trabajo presentado por: LUIS FERNANDO OBANDO ING
Solución de problemas por Búsqueda
Optimización, Búsqueda Heurística
Agentes de resoluciones d problemas Parte I. Un agente puede adoptar una meta o un propósito para satisfacer.
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Métodos de Búsqueda Informada. Búsqueda de la mejor Ruta En esta sección no sólo nos interesa encontrar una posible ruta, sino obtener aquella ruta que.
Diseño y análisis de algoritmos
complejidad de un problema.
¿Por que estudiar búsquedas? Recordemos que la mayoría de los problemas en inteligencia artificial, involucran como tema central un proceso de búsqueda.
METODOS DE BUSQUEDA INFORMADOS CAPITULO 5
Parte II. Algorítmica. 5. Backtracking. 1. Análisis de algoritmos.
Parte I. Estructuras de Datos.
Búsqueda en profundidad Se elige la primera alternativa (por convención la de más a la izquierda) y se sigue hacia abajo hasta alcanzar la meta o hasta.
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
INTELIGENCIA ARTIFICIAL. Redes Neuronales Artificiales Mecanismos de aprendizaje ◦ Entrada x ◦ Salida y ◦ Peso w ◦ Transferencia ~
Toribio Sarmiento Miguel Sesarego Cruz Rosmery. BUSQUEDA DE LA SOLUCION EN UN ESPACIO ESTADO BUSQUEDA SISTEMATICA O CIEGA EN PROFUNDIDAD EN AMPLITUD NO.
Matemáticas Discretas MISTI
Transcripción de la presentación:

Fundamentos de Inteligencia Artificial Búsqueda Coordinación de Ciencias Computacionales Instituto Nacional de Astrofísica, Óptica y Electrónica Manuel Montes (mmontesg@inaoep.mx; 8218) Luis Villaseñor (villasen@inaoep.mx; 8306)

Objetivos de la sección Aprender cómo hallar trayectorias en redes, resolviendo así problemas de búsqueda. Presentar los métodos más populares de búsqueda. Aprender a evaluar los procedimientos de búsqueda Su eficiencia, su facilidad de implementación, su pertinencia para cierto tipo de problemas.

Métodos básicos de búsqueda Profundidad primero Amplitud primero Ascenso de colina Búsqueda en haz Primero el mejor A tientas Heuristicos Una ruta Ruta optima Juegos Museo británico Ramificación y cota Programación dinámica A* Búsqueda Minimax Poda Alfa-beta Continuación heurística Profundidad progresiva

Redes y búsqueda 4 4 a b c 3 5 5 s g 3 2 4 4 d e f Encontrar una trayectoria del punto S al punto G involucra dos costos: El costo del cálculo para encontrar la trayectoria El costo del viaje cuando se sigue la trayectoria

Árbol de búsqueda Es una representación que considera todas las trayectorias posibles en la red: Los nodos representan trayectorias, y las ramas conectan trayectorias a extensiones de trayectoria de un solo paso. Idea es construir al vuelo este árbol, siguiendo una estrategia de búsqueda. El número total de trayectorias de un árbol con factor de ramificación b y profundidad d es bd.

Árbol de búsqueda (cont.) f d f b f d e a c g g c g f g Trayectoria s-d-a-b-e-f-g

Búsqueda en profundidad primero Para llevar a cabo una búsqueda en profundidad, Inserte en una pila el elemento raíz (nodo de partida) Hasta que el elemento tope sea el nodo meta, o se vacié la pila Si nodo tope tiene hijos, insertar el hijo siguiente aun no visitado, según ordenamiento. Si no, entonces eliminar nodo tope. Si el nodo meta se alcanza, mencione éxito, de lo contrario, notifique el fracaso.

Árbol generado s a d b d a e c e e b b f d f b f d e a c g g c g f g 1 2 b d a e 3 4 c e e b b f 6 5 d f b f d e a c g 7 g c g f g

Búsqueda en amplitud primero Para llevar a cabo una búsqueda en amplitud, Inserte en una cola el elemento raíz (nodo de partida) Hasta que el elemento frontal sea el nodo meta, o se vacié la cola Si nodo frontal tiene hijos, insertar todos sus hijos al final de la cola. Eliminar nodo frontal. Si el nodo meta se alcanza, mencione éxito, de lo contrario, notifique el fracaso.

Árbol generado s a d b d a e c e e b b f d f b f d e a c g g c g f g 1 2 a d 3 4 6 5 b d a e 7 8 9 10 11 12 c e e b b f 13 14 15 16 17 18 19 20 21 d f b f d e a c g g c g f g

Comparación de procedimientos ¿cual de los dos procedimientos es mejor? ¿son ambos completos? ¿garantizan encontrar una solución, si es que existe? ¿son ambos óptimos? ¿se encontrara la mejor solución en caso de existir varias? ¿y que pasa con su complejidad temporal y espacial? Profundidad cuando se tiene la segurudad que todas las trayectorias llegan a callejones sin salidas (no arboles de busqueda infinitos, o muy largas) En amplitud sirve aun con grafos muy grandes; pero desperdicio cuando todas las trayectorias llevan a la meta despues de cierta profundidad En amplitud no es buena con alto grado de ramificacion (ejemplo de cajas); bd nivel d y ramificacion b. (tanto en tiempo como espacio) En profundidad solamente es b*m(profundidad maxima), tiempo igual Profundidad mejor cuando existen multiples soluciones.

Problema de los jarrones de agua 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. ¿cómo podemos obtener exactamente 2 litros en el jarrón de 3? ¿qué tenemos que hacer para resolver este problema automáticamente? ¿se debe representar el espacio de estados en su totalidad? ¿hay alguna manera de representar en forma resumida todos los posibles estados? P

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 …

Reglas de producción Los estados se representan como (X,Y), donde X = 0,1,2,3,4 y Y = 0,1,2,3. (X,Y|X<4)  (4,Y) (X,Y|Y<3)  (X,3) (X,Y|X>0)  (0,Y) (X,Y|Y>0)  (X,0) (X,Y|X+Y>=4 Y>0)  (4,Y-(4-X)) (X,Y|X+Y>=3 X>0)  (X-(3-Y),3)) (X,Y|X+Y<=4 Y>0)  (X+Y,0)) (X,Y|X+Y<=3 X>0)  (0,X+Y)

Métodos Heurísticos La búsqueda se puede mejorar si existe una forma de ordenar las posibilidades de modo que las más prometedoras se exploren primero. Mayor conocimiento, menor tiempo de búsqueda Tres métodos muy conocidos: Ascenso de colina (-> profundidad primero), Búsqueda en Haz (-> anchura primero), Primero el mejor

Ascenso de colina Mediciones de calidad convierten la búsqueda en profundidad en ascenso de colina. Se ordenan las posibilidades (estados hijo) usando una medición heurística de la distancia que queda por recorrer. Distancia en línea recta al estado objetivo. Mejor medición, mejor el ascenso de colina

Distancias entre ciudades 4 4 a b c 3 5 5 s g 3 2 4 4 d e f a b c 10.4 6.7 4 11 s g 8.9 d e f 3 6.9

Árbol generado s a d b d a e c e e b b f d f b f d e a c g g c g f g 10.4 8.9 a d 10.4 6.9 b d a e 6.7 3.0 c e e b b f d f b f d e a c g g c g f g

Problemas del ascenso de colina En problemas orientados a ajuste de parámetros: Problema de la falta de colina Se encuentra un punto optimo, pero se trata de un máximo local. Problema de la meseta La operación de mejoramiento local fracasa por completo. Todas las pruebas de paso normal dejan intacta la medición de calidad. Problema del borde 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.

Búsqueda en haz Parecida a la búsqueda en amplitud en cuanto a que avanza de nivel en nivel. Sólo se mueve hacia abajo a través de los w mejores nodos de cada nivel. Extiende varias trayectorias parciales y elimina el resto. El número de nodos se mantiene manejable aún cuando la ramificación sea alta y la búsqueda sea profunda.

Árbol generado s a d b d a e c e e b b f d f b f d e a c g g c g f g 10.4 8.9 a d 6.7 8.9 10.4 6.9 b d a e 4.0 6.9 6.7 3.0 c e e b b f Callejón sin salida d f b f d e a c g g c g f g

Búsqueda primero el mejor Extiende la mejor trayectoria parcial en cada punto. Considera todos los nodos abiertos hasta el momento. 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. Generalmente la búsqueda primero el mejor encuentra trayectorias más cortas a los estados meta.

Árbol generado s a d b d a e c e e b b f d f b f d e a c g g c g f g 10.4 8.9 a d 10.4 6.9 b d a e 6.7 3.0 c e e b b f d f b f d e a c g g c g f g

¿cuál es el mejor método? Primero en profundidad es bueno cuando se sabe – con seguridad – que el árbol no es muy profundo. Primero en anchura, cuando el factor de ramificación no es muy grande. Los métodos heurísticos son adecuados cuando existe una medida natural de la distancia entre cada estado y el estado meta.

Encontrando la mejor ruta Estos métodos consideran, a diferencia de los anteriores, el peso de las ramas. Su objetivo no es únicamente encontrar una ruta, sino encontrar la mejor (típicamente la más corta). Entre ellos se encuentran: El procedimiento del museo británico Ramificación y cota El algoritmo A*

Procedimiento británico ¿qué hacer para asegurar encontrar la ruta óptima? Procedimiento de museo británico: Primero encontrar todas las rutas al objetivo Después seleccionar la mejor Puede usarse búsqueda en anchura o en profundidad como estrategia de exploración. Terminar hasta recorrer el árbol completamente. ¿qué inconveniente le encuentran?

Árbol generado con DFS s d a e b f c g a b c e d f g 1 14 11 9 8 10 12 13 15 16 17 18 19 20 21 22 23 24 25 26 a 2 b 3 4 c e 6 5 d f 7 g

Aplicabilidad No tiene problemas con árboles (muy) pequeños. En la mayoría de los casos no es aplicable. Por explosión exponencial Si tenemos un árbol (mediano) con niveles d = 10, y un factor de ramificación b = 10. Los estados visitados son bd. 1010 = 10 billones de estados

Ramificación y cota Menos sacrificado para encontrar la ruta óptima. Idea básica es expandir en cada ocasión la ruta parcial con el menor costo hasta el momento. Es decir, todos los nodos abiertos hasta el momento entran en consideración. Similar a método “primero el mejor”, pero al revés. 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.

Algoritmo básico Formar una cola de trayectos parciales. Inicialmente sólo tiene el elemento raíz. Hasta que la cola se vacié o se alcance el nodo objetivo, determinar si el primer elemento alcanza el nodo objetivo. Si alcanza el objetivo, salir. Si no, entonces; Borrar el nodo de la cola Agregar sus hijos a la cola Ordenar los nodos por costo acumulado Si el nodo objetivo fue encontrado mencionar éxito, de lo contrario anunciar falla.

Árbol generado s a d b d a e c e e b b f d f b f d e a c g g c g f g 1 2 3 a d 4 4 5 6 3 7 b d 8 9 a e 6 8 7 c e e b b f 11 12 10 13 11 10 9 d f b f d e a c g 15 14 13 g c g f g

Asegurar la ruta optima 5 3 b b 1 1 s s 2 a g 2 a g 3 3 ¿cuál es la respuesta del método? ¿cómo podemos asegurar encontrar la ruta óptima? ¿cuándo debemos terminar el algoritmo? Cuando todas las rutas parciales tengan igual o mayor peso que la trayectoria encontrada

Árbol completo s a d b d a e c e e b b f d f b f d e a c g g c g f g 1 2 3 a d 4 4 5 6 3 7 b d 8 9 a e 6 11 12 10 8 7 c e e b b f 11 12 10 13 11 10 9 d f b f d e a c g 14 16 15 14 15 15 13 g c g f g

Estimación de la distancia restante Usar una estimación de la distancia restante a la meta puede mejorar considerablemente el método. Si es buena estimación, entonces ella mas distancia recorrida debe ser un buen cálculo de la longitud total de la trayectoria: e(long trayectoria) = d(ya recorrida) + e(dist. restante) Si las conjeturas fueran correctas este método se mantendría todo el tiempo en la ruta optima. Mejor estimación, mejor la búsqueda

Subestimaciones son apropiadas Las estimaciones no son perfectas; esto puede traer serios problemas al método. ¿que sucederá con sobreestimaciones de la distancia restante? Desvío permanente de la trayectoria óptima No existiría la certeza, hasta recorrer el árbol completo, que la ruta encontrada es la optima. El método funciona adecuadamente con subestimaciones de la distancia restante.

Árbol generado con distancia directa entre ciudades 1 13.4 a d 12.9 2 b d 19.4 a e 12.9 3 c e e b 17.7 b f 13 4 d f b f d e a c g 13 g c g f g

Trayectorias redundantes Ramificación y cota puede mejorarse eliminando las trayectorias redundantes. Se relaciona con el principio de programación dinámica. 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. No hay necesidad de buscar por otras trayectorias hacia o desde el punto intermedio.

Árbol generado s a d b d a e c e e b b f d f b f d e a c g g c g f g 1 2 3 a d 4 4 3 7 b d 8 9 a e 6 7 5 c e e b b f 11 12 10 13 11 10 6 d f b f d e a c g 14 16 15 14 15 15 13 g c g f g

Procedimiento A* Es una búsqueda de ramificación y cota con: Estimación de distancia restante Eliminación de trayectorias redundantes Si la estimación de la distancia restante es un limite inferior de la distancia real, entonces A* produce soluciones optimas.