;;; SENSORES.CLP (C 310196) (UR 060396) ;;; Sensores en una planta industrial. ;;;============================================================================ ;;;**************************************************************************** ;;; ENUNCIADO: * ;;;**************************************************************************** ;;; 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. ;;;**************************************************************************** ;;; SOLUCIóN: * ;;;**************************************************************************** ;;;-------------------+ ;;; Plantillas: | ;;;-------------------+ ;;; Utilizaré una plantilla para representar el estado de cada sensor: (deftemplate sensor (slot identificador (type NUMBER) (default ?NONE) (range 1 10)) (slot estado (type SYMBOL) (allowed-symbols correcto incorrecto) (default correcto))) ;;;-------------------+ ;;; Ejemplo: | ;;;-------------------+ ;;; El estado de los sensores es correcto por defecto. Con una declaración ;;; "deffacts" incluimos todos los hechos sobre los sensores. Indicamos que ;;; el estado de la planta industrial es correcto con otro hecho. (deffacts sensores (sensor (identificador 1)) (sensor (identificador 2)) (sensor (identificador 3)) (sensor (identificador 4)) (sensor (identificador 5)) (sensor (identificador 6)) (sensor (identificador 7)) (sensor (identificador 8)) (sensor (identificador 9)) (sensor (identificador 10)) (planta-industrial correcto))