PRACTICA-2.TXT Reglas en CLIPS. =============================================================================== ******************************************************************************* * PROBLEMA 1: ******************************************************************************* En una planta industrial hay diez sensores enumerados del 1 al 10. Cada sensor puede dar el mensaje "correcto" o "incorrecto". Construir una plantilla para representar los sensores y escribir una o más reglas que impriman en pantalla un mensaje si 3 o más sensores dan el mensaje "incorrecto". Crear una declaración "deffacts" en la que se incluyan todos los sensores con el mensaje "correcto" por defecto. Cargar el programa en CLIPS y probarlo en los siguientes casos: - Los sensores 3 y 5 dan el mensaje "incorrecto". - Los sensores 2, 8 y 9 dan el mensaje "incorrecto". - Los sensores 1, 3, 5 y 10 dan el mensaje "incorrecto". utilizando el comando "modify" para modificar el contenido de los hechos. ¿Cómo actua el comando "modify"?. ¿Cómo nos aseguramos de que los sensores examinados sea distintos?. ¿Qué se debe hacer para evitar que el mensaje aparezca en varias ocasiones?. Comprobar examinando el conjunto de reglas activas que el mensaje sólo se muestra en pantalla una vez. ******************************************************************************* * PROBLEMA 2: ******************************************************************************* Dados hechos que describen el color de pelo y el color de ojos de una persona, utilizando la siguiente plantilla: (deftemplate persona (slot nombre (type SYMBOL)) (slot color-ojos (type SYMBOL)) (slot color-pelo (type SYMBOL))) y un hecho que describe un color de pelo y un color de ojos determinados, utilizando la siguiente plantilla: (deftemplate busqueda-de (slot color-ojos (type SYMBOL)) (slot color-pelo (type SYMBOL))) Escribir un o más reglas que: - Impriman en pantalla un mensaje indicando que una persona tiene el color de ojos buscado o el color de pelo buscado, pero no ambos. - Impriman en pantalla un mensaje indicando que una persona tiene el color de ojos y el color de pelo buscado. Cargar el programa en CLIPS y ejecutarlo con el siguiente conjunto de hechos sobre personas: (persona (nombre Javier) (color-pelo negro) (color-ojos castanno)) (persona (nombre Manolo) (color-pelo negro) (color-ojos azul)) (persona (nombre Curro) (color-pelo castanno) (color-ojos castanno)) (persona (nombre Dario) (color-pelo rubio) (color-ojos verde)) (persona (nombre Jaime) (color-pelo castanno) (color-ojos verde)) (persona (nombre Felipe) (color-pelo rubio) (color-ojos azul)) y el siguiente hecho sobre el objeto de la busqueda. (busqueda-de (color-ojos verde) (color-pelo rubio))) ¿Cuál es el identificador de los hechos que activan las distintas reglas?. ******************************************************************************* * PROBLEMA 3: ******************************************************************************* Dados los siguientes patrones para hechos que describen relaciones familiares: - (padre-de (padre ) (hijo )) - (madre-de (madre ) (hijo )) - (hombre ) - (mujer ) - (mujer-de (esposa ) (esposo ) (esposa )) escribir reglas para inferir las siguientes relaciones: - Hermano. - Hermana. - Abuelo. - Abuela. - Abuelos. (Abuelo y abuela que son matrimonio) - Primo. - Tío. - Tía. Aplicar las reglas desarrolladas con el siguiente ejemplo: "Alberto y Belinda son una feliz pareja con dos hijos, Diana y Enrique, casados respectivamente con Carlos y Fiorina. Estas dos últimas parejas han tenido descendencia, dos hermosos chicos que han decidido llamar Gabriel e Hilario respectivamente". Cargar el programa en CLIPS y evaluarlo para comprobar que el conjunto de relaciones obtenido no es redundante, es decir, no hay relaciones que se repitan. ******************************************************************************* * PROBLEMA 4: ******************************************************************************* Las plantas requieren diferentes tipos de nutrientes para desarrollarse adecuadamente. Tres de los nutrientes de mayor importancia son el nitrógeno, el fósforo y el potasio. Una deficiencia en alguno de estos nutrientes puede producir varios síntomas. Escribir como reglas en CLIPS las siguientes reglas heurísticas que indican que deficiencia se está produciendo. - Si la planta crece muy poco entonces puede tener una deficiencia de nitrógeno. - Si la planta tiene un color amarillo pálido entonces puede tener una deficiencia de nitrógeno. - Si las hojas tienen un color pardo rojizo entonces la planta puede tener una deficiencia de nitrógeno. - Si la raíz de la planta tiene poco crecimiento entonces puede tener una deficiencia de fósforo. - Una planta con tallo fusiforme puede tener una deficiencia de fósforo. - Una planta con color púrpura puede tener una deficiencia de fósforo. - Un retraso en la madurez de una planta puede deberse a una deficiencia de fósforo. - Si los bordes de las hojas aparecen chamuscados, la planta puede tener una deficiencia de potasio. - Una planta con los tallos debilitados puede tener una deficiencia de potasio. - Una planta con semillas o frutas marchitas puede tener una deficiencia de potasio. La entrada del programa debe ser una descripción de los síntomas de la planta. La salida debe indicar de que nutriente o nutrientes se ha producido una deficiencia imprimiéndolo en pantalla. Hacerlo de forma que no aparezcan en pantalla múltiples salidas indicando una misma deficiencia. Cargar el programa en CLIPS y utilizarlo con las siguientes entradas: - La raiz de la planta crece poco - La planta tiene color púrpura - La planta tiene los tallos debilitados Hacer un seguimiento de las activaciones de las reglas y: - Comprobar el orden de ejecución de las reglas activas. Para ello realizar la ejecución regla a regla con "(run 1)" y examinar constantemente la lista de reglas activas. ¿ Cómo trata CLIPS el conjunto de reglas activas?. - Comprobar que no se producen dos salidas indicando que la planta sufre una deficiencia de fósforo.