SISTEMAS BASADOS EN EL CONOCIMIENTO Grado en Ingeniería Informática Hoja de Problemas Tema 2 Sistemas Basados en Reglas 1. Dado el siguiente fragmento de un árbol familiar: “Isa y Juan son los padres de Pepe; Juan, por su parte, es padre de Gema, la madre de Luis. Pili y Paco son padres de Mar. Mar y Pepe son los padres de Ana, cuya hija es Bea”. a) Representar mediante la definición de hechos hombre, mujer y progenitor (que se aplica a dos personas indicando que la primera de ellas es el progenitor de la segunda), la información del párrafo anterior. b) Escribir una base de conocimiento que permita obtener las diferentes relaciones de parentesco entre personas (padre, madre, hijo, hija, abuelo/a, tío/a, primo/a, suegro/a, descendiente, ascendiente, etc.). c) Ejecutar la inferencia paso a paso, viendo el contenido de la base de hechos (Facts) y el conjunto conflicto (Agenda). d) Repetir lo mismo con diferentes estrategias: amplitud (breadth), profundidad (depth). ¿Qué diferencia existe? e) Modificar la representación de la información sobre las personas para hacerlo mediante una plantilla (template) en la que al menos se defina el nombre, DNI y sexo. Rescribir la base de conocimiento para adaptarla a la nueva representación. 2. Escribir un sistema basado en reglas que permita ordenar una lista de números utilizando (p.e. mediante el método de la burbuja). La lista se encuentra en un hecho del tipo (lista 3 4 2 7 9 1). 3. Escribir un sistema basado en reglas para calcular las notas de los alumnos de una asignatura. La asignatura tiene una componente teórica (examen) y otra práctica. Cada una de las partes se introduce en el sistema por separado. En el cálculo de la nota final hay que tener en cuenta el peso de cada componente, que deben aprobar por separado, si no se presentan a una parte la nota será “no presentado”, etc. Además estos parámetros deben ser fácilmente modificables. 4. Componer y completar el problema de las Jarras visto en clase. a) Definir un hecho con la situación inicial (ambas jarras vacías) b) Definir una regla que detenga la ejecución si se alcanza el estado final deseado. c) Analizar el comportamiento del sistema con diferentes estrategias de control (anchura y profundidad) d) Modificarlo para evitar ciclos simples (generar el mismo estado que el nodo padre) e) Escribir una regla que elimine estados repetidos (puede ser útil la función (fact-index ?h), que devuelve el número entero que corresponde al índice del hecho ?h). Observar la mejora de rendimiento. f) Escribir una o más reglas que reconstruyan el camino desde el nodo inicial hasta el final, dejando un hecho con la lista de nodos. g) Escribir una o más reglas que muestren por la salida estándar el contenido de las jarras en cada estado del camino a la solución. h) Modificar la base de conocimiento para que se muestre también las acciones que llevan a los estados. 5. Construir un sistema basado en reglas que resuelva el siguiente problema. Se tienen cinco monedas dispuestas como se encuentran a continuación: A R A R A El anverso de la moneda está representado por A y el reverso por R. En cada movimiento se puede dar la vuelta a cualquier par de monedas contiguas. La situación final que se quiere obtener es la siguiente: R R R A R. Intentar resolverlo en general para cualquier número de monedas. 1 SISTEMAS BASADOS EN EL CONOCIMIENTO Grado en Ingeniería Informática Hoja de Problemas Tema 2 Sistemas Basados en Reglas 6. Dada la siguiente base de conocimiento, indicar el contenido de la memoria de trabajo, el conjunto conflicto y la regla disparada en cada uno de los ciclos de ejecución si se utilizan las siguientes estrategias de resolución de conjunto conflicto: a) Anchura b) Profundidad c) LEX d) Orden de escritura (defrule R1 (defrule R2 (defrule R3 (defrule R4 (a ?h (a (b (a ?x b) <- (b c ?x) b d) ?x b) ?y c) => (assert (a ?x ?y))(retract ?h)) => (assert (b ?x d))) (a ?x ?y) => (assert (a ?x ?y)(a b b))) => (assert (b ?x c))) Inicialmente la memoria de trabajo contiene el hecho (a c b) 7. Sistema de Ayuda a la Decisión para la Gestión de Embalses. Se desea construir un sistema basado en el conocimiento para la gestión de riesgos en una cuenca hidrográfica. La cuenca está dividida en subcuencas, cuyas lluvias inciden en un embalse. Por tanto hay varios embalses en la cuenca, uno por subcuenca. Los embalses tienen una capacidad y, en un momento determinado, un volumen, que puede obtenerse gracias a un sensor. Para obtener información de las lluvias caídas en las últimas horas se dispone en cada subcuenca de varios pluviómetros. Además se dispone de información del caudal que en cada momento está entrando a un embalse a través de su aforo de entrada. A partir de la capacidad del embalse y su volumen se puede calcular el porcentaje de llenado. Subcuenca 1 Subcuenca 2 E1 E2 AP1 AP2 AP3 AP4 En las cercanías del cauce de los ríos se identifican áreas problema. Éstas son poblaciones o, en general, zonas en las que pueden producirse daños por inundación. Para cada una de estas áreas problema se conoce qué embalses pueden provocar daños en ella. En el ejemplo de la figura, el embalse E1 puede causar daños en las áreas problemas AP1, AP2 y AP4, mientras que el embalse E2 puede afectar a AP3 y AP4. 2 SISTEMAS BASADOS EN EL CONOCIMIENTO Grado en Ingeniería Informática Hoja de Problemas Tema 2 Sistemas Basados en Reglas Se cuenta con un equipo de expertos hidrólogos, que han caracterizado un conjunto de patrones típicos de problemas que se pueden producir a partir de estos datos. Dos de estos patrones son los siguientes: • Patrón de emergencia en un área problema: se identifica cuando un embalse tiene un porcentaje de llenado alto, su caudal de entrada es alto y además las lluvias caídas son altas. Cuando se cumplen esas condiciones, se identifica un problema en cada una de las áreas problema que se puedan ver afectadas por ese embalse. La gravedad de este problema se considera alta. • Patrón de riesgo en las márgenes del río: Se identifica cuando un embalse tiene un porcentaje de llenado medio, su caudal de entrada es medio o alto y además las lluvias caídas son altas. Cuando se cumplen esas condiciones, se identifica un problema en cada una de las áreas problema que se puedan ver afectadas por ese embalse. La gravedad de este problema se considera media. Se pide: Construir una base de conocimiento en clips que permita identificar los problemas que puede haber en un momento determinado. Los datos de entrada al sistema serán hechos clips con los valores numéricos de los sensores de los embalses (volumen), aforos de entrada (caudal) y pluviómetros (lluvias). Sin embargo, para la resolución del ejercicio se asumirá que los datos de las lluvias y el caudal de entrada ya se encuentran abstraídos, es decir, se conoce para cada subcuenca su valor cualitativo de lluvia (baja, media o alta) y el caudal del aforo de entrada a los embalses (bajo, medio o alto). Por tanto, puede olvidarse de la existencia de pluviómetros y medidores de caudal en los aforos de entrada. En cambio, lo que sí que habrá que calcular es el porcentaje de llenado del embalse (volumen / capacidad * 100) y su valor cualitativo. Se considera los siguientes rangos de valores para el porcentaje de llenado: bajo: < 30 % medio: entre 30 y 70 % alto: > 70 % La plantilla para los hechos que contienen los valores numéricos de los sensores debe ser: (deftemplate sensor (slot id) (slot valor) ; valor numérico ) En cuanto al resultado que debe dar el sistema es un hecho problema en la memoria de trabajo por cada área problema que pueda sufrir daños y tipo de problema. Es decir, si hay tres áreas problema que dependen de un embalse, deben aparecer tres hechos en la memoria de trabajo y si un área puede tener daños por dos embalses habrá dos hechos distintos en la memoria de trabajo. A continuación se muestra la declaración de la plantilla de estos objetos. (deftemplate problema (slot tipo) ; nombre del patrón (emergencia, riesgo ...) (slot localizacion) ; área problema en donde se pueden producir daños (slot gravedad) ; gravedad del problema (nula, baja, media, alta) ) 3
© Copyright 2024