













Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Resumen del tema tres de la asignatura de FIA
Tipo: Resúmenes
1 / 21
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!














Fundamentos de la Inteligencia Artificial Capítulo 3 (Tema 9 del Libro). Técnicas basadas en búsquedas heurísticas 9.1 Introducción El problema de utilizar una estrategia de búsqueda no informada es que al realizar una búsqueda sistemática sin ningún tipo de información que le permita discernir las regiones más prometedoras de aquellas que lo son menos, es el tiempo necesario para encontrar una solución puede llegar a ser prohibitivo. Alternativa: Mecanismo que permita dirigir la búsqueda hacia las zonas más prometedoras, de modo que se pueda llegar a una solución sin necesidad de llegar a tantos nodos como se requiere en una estrategia de búsqueda a ciegas. En el ámbito de la IA, a estos mecanismos se les denomina heurísticas. Las heurísticas son criterios, reglas o métodos que ayudan a decidir cuál es la mejor alternativa entre varias posibles para alcanzar un determinado objetivo. Para ello se dispone de información o conocimiento sobre el problema que se intenta resolver. Este conocimiento se obtiene a partir de cualquier pista, intuición o experiencia que se tenga sobre el dominio del problema. Lo que se espera del conocimiento en la búsqueda es que el número de nodos examinados para llegar a la solución se reduzca notablemente con respecto a una búsqueda sin conocimiento. Dado que las heurísticas se basan en el uso de conocimiento a veces impreciso, es natural que en muchos casos fallen en la predicción de la mejor alternativa. Una buena heurística es aquella capaz de tomar una buena decisión, no necesariamente la mejor, en un alto porcentaje de ocasiones. El tiempo medio para llegar a una solución mejora notablemente, aunque en el peor de los casos el tiempo puede ser igual que el de una búsqueda a ciegas. En muchas ocasiones se usa el término heurístico en contraposición con el término algorítmico, para hacer referencia a procedimientos que no garantizan la calidad de la solución, ni en ocasiones la completitud. Sin embargo, hay algoritmos exactos en los que la búsqueda se guía mediante heurísticas.
El problema de la lechera Se dispone de dos medidores de líquidos; uno de 5 litros y otro de 7. Ambos están vacíos al inicio y en cualquier momento pueden ser llenados o vaciados usando un depósito con suficiente capacidad. El líquido se trata de leche y puede ser traspasado de uno a otro medidor hasta que el primero se vacíe o hasta que el segundo se llene. Problema: Encontrar la secuencia de acciones que se deben seguir para que en el mayor de los medidores se disponga exactamente de 4 litros. Lo relevante de los estados será la situación de los dos medidores. Un estado vendrá dado por el valor de un par de variables (x,y) con 0<= x <= 7 y 0<=y<=5. El estado inicial es (0,0) y los estados objetivos (4,y). Prerrequisitos: Una aplicación sistemática de estas reglas debería encontrar la solución, sin embargo, es seguro que no son completadas todas ellas de la misma forma por una experimentada lechera al tratar de resolver el problema de medir 4 litros; sino que su experiencia le dictará algún modo de manejarlas que no será usando un algoritmo de búsqueda a ciegas. El comportamiento de la lechera, con el fin de explicitar su conocimiento para poder incorporarlo en una heurística, es una tarea de ingeniería del conocimiento que en este caso podría dar lugar a otro conjunto de reglas sobre cómo aplicar de forma ordenadas las reglas anteriores. Este tipo de reglas se sobre cómo utilizar reglas se llaman metarreglas:
Por lo tanto, f* es discriminante perfecto. Para problemas complejos, los valores no se pueden calcular en un tiempo razonable, por lo que el motor de búsqueda anterior n oes factible. Lo que se puede hacer es trabajar con aproximaciones de g* y h*. Esto es lo que se hace en el algoritmo A* , en el que se utilizan las siguientes aproximaciones:
Propiedades Dependen de la definición de la función heurística h. Para su estudio, se introduce la siguiente notación:
- s es el estado inicial
● gP(n’) → Coste desde s a n’ a través del camino P
- Una condición suficiente para que A* expanda un nodo es que exista un camino estrictamente C*-acotado desde s hasta n
Tanto h* como la heurística trivial h(n) = 0, para todo nodo n , cumplen las dos propiedades. Aunque al principio la monotonía parece menos restrictiva que la consistencia, se trata de propiedades equivalentes, como la prueba del siguiente teorema:
Diseño de heurísticos simples El problema del 8-puzzle (problema de búsqueda en espacios de estados)
- h1(n) = número de fichas que en el estado n están fuera de su posición en el objetivo - h2(n) = suma de las distancias ortogonales de cada ficha a su posición en el objetivo Para estimar el coste de resolver el subproblema planteado por un estado n , se puede tener en cuenta la diferencia entre n y el objetivo que se desea alcanzar, que es un estado conocido. Una primera idea suele ser contar el número de fichas que en el estado n no están en la posición que les corresponde como objetivo. La heurística h1 es admisible, ya que para cualquier ficha que esté descolocada debe ser desplazada al menos una vez para alcanzar la posición que le corresponde en el objetivo. Salvo para estados que estén muy próximos al objetivo, esta heurística es una estimación muy optimista del coste que representa el estado n : Se trata de una heurística muy poco informada. La heurística h2 también es admisible ya que cada ficha se debe mover al menos tantas veces como indica su distancia a la situación que le corresponde en el objetivo. Es una estimación menos optimista, por lo que está más informada. Se cumple que h2>=h1 para todo n. La igualdad se da para los estados cuyas fichas descolocadas están a una distancia 1 de su posición en el objetivo. Para los tres nodos anteriores, h2 toma los siguientes valores: Las dos heurísticas son monótonas. Para mostrar que se pueden definir heurísticas admisibles pero no monótonas, consideramos la siguiente: - h3(n) = 2 x número de fichas que están a una distancia ortogonal 2 de su posición en el objetivo. Es admisible, menos informada que h2 y no monótona. Para probar esto último basta con encontrar un ejemplo en el que no se cumpla la desigualdad triangular El problema del viajante de comercio Para definir las heurísticas, hay que estimar el coste de ir desde la última ciudad del estado a la ciudad de partida, pasando una sola vez por cada una de las ciudades no visitadas. Para realizar estas estimaciones de manera optimista, se puede razonar de la siguiente manera. Si N es el número de ciudades del problema, y un estado n no objetivo contiene una secuencia de k ciudades, 1<= k<=N, para llegar a una solución desde n habrá que recorrer un número de N-k+1 arcos. Por tanto, se puede obtener una estimación optimista del coste de resolver n suponiendo que todos los arcos tienen un coste igual al coste del arco mínimo de entre aquellos arcos no incluidos en la solución parcial, que representa el estado n , y que además no tocan a las ciudades intermedias.
- h1(n) = (N-k+1)x coste del arco mínimo no incluido en n y que no toca a las ciudades intermedias de n Se trata de una heurística admisible, y se puede probar que también es monótona. Se puede afinar un poco más el razonamiento, y definir otra heurística. - h2(n) = Suma de los costes de los (N-K+1) arcos de coste mínimo no incluidos en n y que no tocan a las ciudades intermedias de n. En este caso los valores son: También se puede definir una heurística que intuitivamente se aproximará mejor que los anteriores el valor de h* como: - h3(n) = (N-k+1) x coste medio de los arcos no incluidos en n y que no tocan a las ciudades intermedias de n Aunque es una estimación razonable, es una heurística no admisible. Se pueden usar otros criterios de razonamiento como el hecho de que para llegar de un estado n a una solución habrá que abandonar la última ciudad del estado, así como todas las no visitadas; o bien que habrá que llegar a todas las no visitadas y de nuevo a la ciudad de partida Otros ejemplo: Problema de las N-reinas, problema del secuenciamiento de tareas con cabezas y prioridades. Relajación de las condiciones de optimalidad La experiencia muestra que en muchos problemas A* pasa mucho tiempo discriminando entre caminos cuyos costes no varían significativamente. En estos casos la admisibilidad es realmente un inconveniente más que una virtud, ya que fuerza al algoritmo a gastar un tiempo desproporcionado para seleccionar el mejor de entre un conjunto de candidatos iguales. Lo que se plantea ahora es la posibilidad de hacer que A* sea más eficiente, aunque para ello sea preciso perder la admisibilidad. Es lo que se suele hacer en la práctica en la mayoría de los problemas ● Ajuste de los pesos de g y h : La estrategia de búsqueda de A* está basada en la ecuación f = h + h. El sumando g trata de ajustar el algoritmo a una estrategia de búsqueda por anchura o de coste uniforme. El sumando h , trata de acercar la búsqueda hacia la solución sin que se expandan todos los
Este resultado tiene consecuencias inmediatas:
El valor de la variable Límite se refiere al número máximo de nodos que se pueden almacenar en la TABLA_A, y por tanto la profundidad máxima de un camino registrado en la tabla. La llamada a la función SiguienteSucesor(n) proporciona en cada llamada un sucesor del nodo, en principio un orden no determinado, por lo que es preciso algún mecanismo de control de los sucesores generador. Este mecanismo se puede apoyar en TABLA_A. El funcionamiento de SMA* es :
En la práctica, son útiles para resolver muchos problemas, y se pueden usar además en combinación con otras estrategias de búsqueda, como por ejemplo los esquemas de ramificación y poda.. 9.6 Algoritmos de ramificación y poda Constituyen el método más empleado en la resolución de problemas de optimización combinatoria. Tienen muchos elementos en común con otros algoritmos vistos como el A*, pero tienen algunas características propias. En primer lugar, con los algoritmos anteriores, la búsqueda se plantea como un proceso en el que la solución se va construyendo paso a paso, de modo que un camino desde el inicial a un estado representa parte de la solución del problema y el estado representa un subproblema que se debe resolver para llegar a una solución del problema original. Sin embargo, en un algoritmo de ramificación y poda, el planteamiento es otro: Cada estado se interpreta como un subconjunto de soluciones del problema original, en el estado inicial se tienen todas las soluciones y a partir de aquí, mediante la ramificación, se descompone en la unión disjunta de varios conjuntos, hasta llegar a conjuntos unitarios que representan soluciones del problema. Este planteamiento lleva asociado que el espacio de búsqueda tenga estructura de árbol. Los algoritmos de ramificación y poda tienen cuatro componentes fundamentales:
criterio de parada. En este caso pierde la admisibilidad, pero el algoritmo devolverá la mejor solución encontrada, con su coste UB, y la mejor cota inferior, LB, obtenida durante la búsqueda. Es una característica importante de estos algoritmos: son admisibles si disponen de tiempo de ejecución suficiente, pero producen una solución y cota inferior si el tiempo es limitado. 9.7 Algoritmos de mejora iterativa o búsqueda local La solución que proporciona un algoritmo de búsqueda viene dada por un nodo objetivo junto a un camino desde el nodo inicial hasta este nodo. Sin embargo, hay muchos problemas para los cuales el nodo solución contiene toda la información necesaria y en este caso el camino es irrelevante. Ejemplo: TSP y el problema de las N-reinas. Para otros problemas como el 8-puzzle y el problema de planificación de actuaciones de robots, la información importante es el camino desde el estado inicial a la solución. Para problemas como TSP, es posible plantear otro tipo de búsqueda que consiste en partir de un estado que representa una solución del problema y luego hacer pequeños cambios en la configuración de este estado buscando mejoras de la solución. Esta es la idea de los métodos de mejora iterativa, que se suelen denominar también de búsqueda local por el hecho de que con los cambios que se realizan en la configuración de un estado, lo que se hace es generar configuraciones próximas o vecinas a esta configuración. La estructura básica de un método de búsqueda local es la que se muestra en este algoritmo. Parte de una solución inicial y en cada iteración calcula un conjunto de soluciones vecinas mediante una regla de vecindad. Cada una de estas soluciones debe ser evaluada, siendo ésta una de las acciones más críticas del algoritmo por su elevado tiempo de ejecución, ya que el número de soluciones vecinas puede ser grande o el procedimiento de evaluación de cada solución muy costoso. Después, se selecciona una de las soluciones vecinas con un determinado criterio, la que tiene menor coste. Si cumple el criterio de aceptación, que puede ser que sea mejor que la solución actual S, la solución seleccionada sustituye a S, y el proceso continúa hasta que se cumpla el criterio de finalización. La regla de vecindad debe cumplir la propiedad de conectividad, es decir, desde cualquier estado debe poder alcanzarse un objetivo óptimo mediante una secuencia de transformaciones. Las reglas suelen ser simétricas, si una solución x es vecina de otra y , y también es vecina de x. El diseño del algoritmo en un problema como TSP es muy simple. Si el grafo de conexiones está totalmente conectado, entonces cualquier permutación de las ciudades, prescindiendo de la ciudad de partida, es una solución del problema. El coste de esta solución se calcula de forma inmediata en un tiempo de orden O(N), siendo N el número de ciudades. Los algoritmos de búsqueda local realizan una búsqueda en un espacio de soluciones potenciales del problema tratando de encontrar aquella que maximice, o minimice, una determinada función objetivo. Esta
función objetivo tiene normalmente una forma o relieve ( landscape ) muy irregular, con numerosos máximos y mínimos locales, por lo que la búsqueda del óptimo global es muy costosa. Por este motivo la búsqueda se suele asociar metafóricamente con una excursión a través de una cordillera en la que se trata de alcanzar la cima más alta. Normalmente, la búsqueda local no mantiene traza de todo el proceso realizado hasta el momento, sino que solamente utiliza información sobre el estado actual y sus vecinos. La búsqueda local es una estrategia en muchos casos que también se pueden combinar con otras estrategias, como los algoritmos evolutivos. ● Algoritmos de escalada o máximo gradiente: El criterio de aceptación de la solución vecina S1, frente a la solución actual S, es que S1 sea mejor o igual que S. En la selección se intenta elegir una solución que mejore S, o bien la mejor de todas las soluciones de la vecindad. Este tipo de búsqueda es simple, pero tiene algunos inconvenientes: ○ Óptimos locales: todos los vecinos son peores con lo que la búsqueda finaliza sin encontrar el óptimo global ○ Regiones planas: los vecinos tienen el mismo valor que la solución actual y la búsqueda es aleatoria ○ Crestas: si hay crestas con pendientes muy marcadas, puede ser fácil alcanzar la cima de la cresta, pero si la pendiente es muy suave en dirección al óptimo global, resulta difícil guiar la búsqueda a través de la cima sin desviarse hacia los lados de la cresta; a menos que existan operadores específicos para generar vecinos a través de la cima En estos tres casos lo que ocurre es que la búsqueda se queda estancada en un óptimo local, que puede ser una solución razonable o no. Lo que se puede hacer en estos casos es reiniciar la búsqueda a partir de otra situación de partida, lo que se denomina búsqueda multiarranque. ● Temple simulado: Consiste en admitir, con cierta probabilidad, algunas transiciones en las que la solución actual empeore; de este modo se puede salir de óptimos locales. Las diferencias principales de este algoritmo respecto al algoritmo de escalada son los siguientes: En temple simulado se realiza una selección aleatoria entre los vecinos del estado actual, y si la solución es mejor que la actual, se realiza la transición de forma incondicional, como en el caso del algoritmo de escalada. Pero si la solución es peor, entonces la nueva solución se acepta con una determinada probabilidad que depende de dos parámetros: la temperatura T y el incremento de energía ΔE. Los nombres de estos parámetros se eligen por analogía del método con el proceso físico de enfriamiento de un líquido Al principio, la temperatura tiene un valor alto T0, de modo que la probabilidad de aceptar una solución peor es alta. A medida que la búsqueda progresa, T se va actualizando de la forma siendo t la iteración actual y alfa una función que decrece al aumentar t. De este modo, la probabilidad de aceptar una solución que empeora a la actual va disminuyendo.