Universidad Nacional de Educación a Distancia Grado en Ingeniería Informática y Grado en Ingeniería en Tecnologías de la Información Asignatura: Fundamentos de Inteligencia Artificial (2º curso) Soluciones exámenes Junio 2022 Ejercicio 1, Semana 1. (Valoración: 2.5 puntos) Explique brevemente si cada una de las cuatro afirmaciones siguientes es realmente verdadera o falsa. Utilice ejemplos sencillos que ilustren su explicación. (1) La “distancia inferencial” es un concepto utilizado en herencia múltiple en sistemas de marcos. (2) No se pueden tener propiedades repetidas con el mismo nombre en diferentes marcos clase. (3) En los marcos instancia se pueden utilizar propiedades que no se hayan definido en los marcos clase. (4) Los arcos “subclase-de” de una red semántica son ejemplos de arcos estructurales, mientras que los arcos “parte-de” de una red semántica son ejemplos de arcos descriptivos. SOLUCIÓN por Severino Fernández Galán: (1) Verdadero. Véase la explicación de carácter práctico dada en la página 161 del texto base de la asignatura. (2) Falso. Debido al carácter local de las propiedades, se pueden tener propiedades repetidas con el mismo nombre en diferentes marcos clase. Véase la explicación y ejemplo que aparece en la página 155 del texto base de la asignatura. (3) Falso. Las propiedades deben ser necesariamente definidas en algún marco clase. Por ejemplo, dado el marco clase “País” con propiedades “Capital” y “Extensión”, no podríamos crear un marco instancia “España” de “País” en el que intentáramos rellenar la propiedad “Lengua oficial”. (4) Falso. Tanto los arcos “subclase-de” como “parte-de” de una red semántica son ejemplos de arcos estructurales. En redes semánticas, la agregación es un proceso básico asociado a arcos estructurales; por ejemplo, “la cara forma parte de la cabeza” se representaría como: Cara Parte-de Cabeza Ejercicio 2, Semana 1. (Valoración: 2.5 puntos) Describa detalladamente las características de la búsqueda tabú. SOLUCIÓN por Severino Fernández Galán: La búsqueda tabú es un método de búsqueda local. La búsqueda local se suele emplear en problemas en los que el nodo meta por sí sólo contiene toda la información sobre la solución de un problema y no es necesario considerar la información proveniente del camino que ha llevado a la meta. La búsqueda local consiste en realizar cambios en el estado actual que nos lleven a un estado vecino de cara a acabar en el estado meta tras una serie de iteraciones. Se suele partir de un estado inicial y se calculan los estados vecinos del actual mediante una regla de vecindad. Los vecinos del nodo actual son evaluados y se selecciona normalmente el mejor de ellos que cumpla cierto criterio de aceptación. Dicho vecino pasa a ser el nodo actual en la siguiente iteración de la búsqueda local. Este proceso se repite hasta que se cumpla cierto criterio de finalización; por ejemplo, que se haya realizado un determinado número de iteraciones o que no se hayan producido mejoras en la calidad del nodo actual durante las últimas iteraciones. La búsqueda local realiza una búsqueda en un espacio de estados a los que se puede asociar una función objetivo. La función objetivo puede contener numerosos óptimos locales, lo cual puede dificultar enormemente la consecución del óptimo global. En cualquier caso, la búsqueda local es un método eficiente que puede encontrar soluciones aceptablemente buenas en un tiempo reducido. Además, se puede combinar con otros métodos de búsqueda más sofisticados, como pueden ser los algoritmos evolutivos. De forma ideal, la regla de vecindad debería cumplir la denominada “regla de conectividad”, según la cual desde cualquier estado se debe poder alcanzar el objetivo óptimo mediante una secuencia de transformaciones. El método de búsqueda tabú tiene las siguientes peculiaridades: • Dispone de un mecanismo de memoria (lista tabú) para evitar la generación de algunos vecinos. Por ejemplo, la lista tabú puede contener los últimos vecinos visitados o ciertos criterios de transformación de nodos. • Se pueden aplicar excepciones a lo que indica la lista tabú mediante el denominado “criterio de aspiración”. Un criterio de aspiración muy utilizado consiste en admitir nodos tabú que mejoren al mejor nodo encontrado hasta el momento. Un inconveniente de la búsqueda tabú es que requiere un ajuste apropiado de sus parámetros en función del problema abordado (sobre todo del tamaño de la lista tabú, del criterio para la construcción de la lista tabú o de la definición del criterio de aspiración), de cara a que el proceso de búsqueda resulte eficaz y se obtenga una buena solución. Este ajuste depende fuertemente de la forma de la función objetivo y de la distribución de sus óptimos locales, es decir, del problema particular que estemos intentando resolver. Ejercicio 4, Semana 1. (Valoración: 1.5 puntos) Explique brevemente si cada una de las dos afirmaciones siguientes es realmente verdadera o falsa: (1) Las lógicas de órdenes superiores al primero son extremadamente complejas, y en muchos casos no existen algoritmos para averiguar si una fórmula dada es válida. Sin embargo, siempre es posible averiguar si una fórmula dada es satisfacible. (2) En los sistemas basados en reglas, cuando los objetivos y subobjetivos están bien definidos el encadenamiento hacia adelante no acarrea costes computacionales (espaciales y/o temporales) particularmente altos. SOLUCIÓN por Ángeles Manjarrés Riesco: (1) Falso. En lógica de primer orden el problema de la satisfactibilidad es indecidible, lo que significa que no existe ningún algoritmo que cumpla las condiciones: (i) es correcto (nunca devuelve respuestas equivocadas), (ii) es completo (devuelve todas las respuestas correctas), (iii) es terminante (nunca entra en un bucle infinito). Existen algoritmos que son correctos y completos, aunque no siempre terminan. Esta clase de problemas se denominan semidecidibles (o recursivamente enumerables). Los límites de las metodologías para la lógica de primer orden están en el carácter no finito de los dominios; de hecho, no es difícil escribir una fórmula que sólo admita modelos infinitos. En el caso de las lógicas más expresivas que la lógica de primer orden, como las lógicas de órdenes superiores los problemas de satisfactibilidad son, claro está, aún más complejos, y no es posible encontrar siquiera algoritmos completos. En muchos casos no solamente no existen algoritmos para averiguar si una fórmula es válida (semidecidibilidad), sino que tampoco es posible averiguar si una fórmula dada es satisfacible; en este caso, se dice que una lógica es no recursivamente enumerable. (2) Falso. El encadenamiento hacia delante aplica las reglas de la base de conocimiento hasta que no se generen nuevos hechos. Una regla se puede aplicar si todas las cláusulas del antecedente de la regla se verifican, teniendo en cuenta el contenido de la base de hechos. El encadenamiento hacia delante permite encontrar el conjunto de objetivos que se verifican a partir de un conjunto de entradas, mientras que el encadenamiento hacia atrás permite determinar si se verifica un objetivo dado con ciertas entradas. Cuando se conocen las entradas pero no están claros los objetivos a alcanzar es más indicado el encadenamiento hacia delante, mientras que cuando los objetivos están bien definidos es más indicado el encadenamiento hacia atrás. El coste computacional del encadenamiento hacia adelante puede ser alto al margen de que objetivos y subobjetivos estén bien definidos. Los costes computacionales que acarrea un sistema basado en reglas dependen de las estrategias de selección de reglas, equiparación etc. utilizadas, las dimensiones de la base de conocimiento, el número de condiciones y variables en cada regla, etc. Ejercicio 1, Semana 2. (Valoración: 2.5 puntos) Explique los diferentes tipos de relaciones que pueden aparecer en un sistema de marcos. Ilustre la explicación con ejemplos tomados del mundo real. SOLUCIÓN por Severino Fernández Galán: Existen dos tipos de marcos, clases e instancias, y mientras que las primeras expresan conceptos genéricos, las segundas constituyen ejemplos concretos de dichos conceptos genéricos. Los diferentes marcos quedan enlazados entre sí por medio de relaciones. Las relaciones estándar más importantes son las de “Subclase-de”, que une una clase específica con otra clase más genérica que la engloba, y la de “Instancia”, que une una instancia con la clase a la que pertenece. Sobre este tipo de relaciones se puede aplicar herencia de propiedades. Existen otras relaciones no estándar que expresan dependencias entre conceptos del dominio y sobre las que no se puede aplicar herencia de propiedades. Por ejemplo, la relación “Fraternal” une dos clases cuya clase padre coincide, la relación “Disjunta” une dos clases que no pueden tener una instancia común y, finalmente, diferentes relaciones “A medida” o “Ad-hoc” entre dos clases pueden ser definidas por el usuario. Las relaciones ad-hoc sólo se pueden definir entre marcos clase y para que se puedan definir también entre marcos instancia previamente hay que comprobar que: (1) La relación ad-hoc debe haber sido definida previamente entre dos marcos clase y (2) Los marcos instancia deben ser respectivamente instancias de dichos marcos clase. Algunos de los entornos para construir sistemas basados en marcos no implementan relaciones no estándar. En este caso, el ingeniero de conocimiento las representaría mediante marcos adicionales y haría inferencia con ellas mediante: procedimientos, reglas o demonios. Un ejemplo de todo el conjunto de relaciones comentado anteriormente se puede encontrar en la figura 4.12 de la página 145 del texto base de la asignatura. Ejercicio 2, Semana 2. (Valoración: 2.5 puntos) Explique brevemente si cada una de las cuatro afirmaciones siguientes es realmente verdadera o falsa. Utilice ejemplos sencillos que ilustren su explicación. (1) El algoritmo IDA* realiza búsquedas primero en profundidad iterativamente desde el nodo raíz. (2) En el algoritmo A*, si para todo nodo “n” se cumple que h(n) es mayor o igual que h*(n), entonces este algoritmo encuentra el camino solución óptimo. (3) La búsqueda primero en profundidad iterativa y la búsqueda primero en anchura iterativa poseen la misma complejidad espacial. (4) La búsqueda primero en anchura iterativa puede encontrar una solución que no sea la más próxima al estado inicial. SOLUCIÓN por Severino Fernández Galán: (1) Verdadero. Basta con que el alumno haga una muy breve explicación de este algoritmo (tal como aparece en la sección 9.4.1 del texto base de la asignatura) o, alternativamente, realice un sencillo dibujo mostrando que el menor valor de f=g+h de los nodos descartados en la búsqueda en profundidad de la iteración actual será el límite de la búsqueda en profundidad de la siguiente iteración. (2) Falso. La aseveración sería verdadera si se sustituye “mayor o igual” por “menor o igual”. En la explicación conviene describir qué es h y qué es h*, tal como aparece en la sección 9.3 del texto base de la asignatura, y poner un ejemplo muy sencillo de grafo donde h sea menor o igual que h* para todos los nodos. Por ejemplo, una opción válida es aquélla en la que h=0 para todos los nodos. (3) Falso. Mientras que la complejidad espacial de la búsqueda primero en profundidad iterativa es proporcional con la profundidad del árbol de búsqueda, la complejidad espacial de la búsqueda primero en anchura iterativa es exponencial con la profundidad del árbol de búsqueda. Por ejemplo, en el árbol siguiente, si el estado actual es el nodo E, la búsqueda en profundidad iterativa sólo necesita almacenar el camino entre A y E, mientras que la búsqueda en anchura iterativa puede llegar a tener que almacenar el árbol entero. A B C D E (4) Verdadero, ya que la búsqueda primero en anchura iterativa usa un parámetro AnchuraLímite que permite controlar el número máximo de hijos generados desde cada estado padre. Por tanto, puede ocurrir que la solución más próxima al estado inicial no sea visitada, mientras que otra más profunda sí lo sea. Por ejemplo, en el caso del árbol del apartado (3), si E y D son las metas, la búsqueda es de izquierda a derecha y AnchuraLímite=1, se encontraría la meta E. Ejercicio 4, Semana 2. (Valoración: 1.5 puntos) Explique brevemente si cada una de las dos afirmaciones siguientes es realmente verdadera o falsa: (1) Un método deductivo sintáctico es aquél que busca una demostración final de la validez de una fórmula utilizando un mecanismo de deducción basado en sintetizar dicha fórmula en un número finito de símbolos. (2) En los sistemas basados en reglas, el encadenamiento mixto nunca acarrea costes computacionales (espaciales y/o temporales) particularmente altos. SOLUCIÓN por Ángeles Manjarrés Riesco: (1) Falso. Los métodos semánticos son aquellos que se basan en razonamientos en el dominio semántico (por ejemplo, el uso de tablas de verdad en lógica proposicional), mientras que los métodos sintácticos se basan en utilizar manipulación sintáctica, para mostrar la validez de una fórmula (por ejemplo, el método de resolución). Sin embargo, se ha aceptado como correcta la respuesta VERDADERO cuando se ha argumentado que la aplicación de métodos sintácticos implica transformar la fórmula aplicando reglas sintácticas, y que esto podría describirse como “sintetización” de la fórmula. Así, el método de resolución para la lógica proposicional es un método sintáctico basado en refutación (es decir, en demostrar que la negación de la fórmula es insatisfacible). Esto requiere el reconocimiento de pares (fórmula, negación). Como dos fórmulas pueden tener un mismo significado exhibiendo formas sintácticas muy distintas, es necesario utilizar reglas de transformación que permitan llegar a una forma común, tales como las leyes de Morgan. Estas reglas, aplicadas de forma iterativa, permiten llegar a una forma en la cual la conectiva más externa es ∧, y el resto de fórmulas consiste en una disyunción de literales. En definitiva, el método de resolución consiste en negar la fórmula y transformarla en conjunción de cláusulas aplicando reglas de forma iterativa con el fin de obtener la cláusula vacía. (2) Falso. El encadenamiento mixto consiste en aplicar el encadenamiento hacia delante y hacia atrás a la vez, explorando bidireccionalmente una misma de red de inferencia hasta que los dos caminos de búsqueda se encuentran. Para un sistema dado podrá resultar significativamente más eficiente buscar en una dirección, en otra, o simultáneamente en ambas, dependiendo básicamente de la red de inferencia concreta y el grado de conocimiento que el usuario del sistema tenga de los datos y de los objetivos. En ocasiones el encadenamiento mixto puede paliar las limitaciones, y mantener las ventajas, del encadenamiento hacia atrás y hacia delante, mejorando el rendimiento de los sistemas. Es aconsejable cuando el número de nodos de la red de inferencia en cada paso crece exponencialmente con el número de pasos que se han dado. Resultados empíricos sugieren que, para búsquedas completamente desinformadas (sin conocimiento del problema que guíe la selección de reglas a aplicar), es una estrategia efectiva mientras que, para búsquedas informadas, no suele ser así. No obstante, independientemente de que se use o no la estrategia de encadenamiento más adecuada, un sistema basado en reglas siempre podrá comportar altos costes computacionales en función de sus dimensiones, su complejidad, las estrategias de control utilizadas... En particular, para que el encadenamiento mixto resulte eficiente es preciso definir cuidadosamente las reglas y el mecanismo de control, identificando acertadamente las reglas que serán aplicables en el encadenamiento hacia delante y hacia atrás. De otro modo el encadenamiento hacia delante podría explorar una parte de la red de inferencia distinta de la recorrida por el encadenamiento hacia atrás, y los caminos de búsqueda podrían no llegar a encontrarse.