Ejemplos CLIPS
Ejemplo Resolución Conflictos
Ejemplo Fuego
Ejercicio 1: Resolución de conflictos
Examinar actividad
WINDOW
DIALOG
FACTS
AGENDA
EXECUTION
WATCH
compilations
facts
rules
activations
EXECUTION
STEP (paso a paso)
2
Resolución de conflictos
EXECUTION
OPTIONS
STRATEGY: DEPH (las reglas recién activadas se
colocan las primeras en la agenda). Estrategia por
defecto.
Otras estrategias: (set-strategy lex)
Lex equivale a Refracción, Reciencia y
Especificidad
3
Ejemplo1RC
(deffacts HECHOS-INICIALES (A) (D) (C) (B) (Z))
(defrule r1
(A)(B)(C)
=>
(printout t "regla1" crlf))
(defrule r2
(C) (D)
=>
(printout t "regla2" crlf))
(defrule r3
(Z)
=>
(printout t "regla3" crlf))
(defrule r4
(C) (A)
=>
(printout t "regla4" crlf))
Cargar base de conocimiento
CLIPS>(load"E:/Docencia/IAI/Clips/Ejemp
losClase/ejemplo1RC.clp")
Defining deffacts: HECHOS-INICIALES
Defining defrule: r1 +j+j+j
Defining defrule: r2 +j+j
Defining defrule: r3 +j
Defining defrule: r4 =j+j
TRUE
5
Establecer memoria de trabajo
inicial y filtrar reglas
CLIPS> (reset)
==> f-0 (initial-fact)
==> f-1 (A)
==> f-2 (D)
==> f-3 (C)
==> Activation 0 r4: f-3,f-1
==> Activation 0 r2: f-3,f-2
==> f-4 (B)
==> Activation 0 r1: f-1,f-4,f-3
==> f-5 (Z)
==> Activation 0 r3: f-5
6
Paso a paso
CLIPS>(run)
FIRE 1 r3: f-5
regla3
FIRE 2 r1: f-1,f-4,f-3
regla1
FIRE 3 r2: f-3,f-2
regla2
FIRE 4 r4: f-3,f-1
regla4
7
Limpiar entorno
CLIPS> (clear)
8
Ejemplo2fuego
; plantillas iniciales
(deftemplate emergencia (slot tipo))
(deftemplate respuesta (slot accion))
(deftemplate sistema-extincion (slot tipo) (slot estatus))
; datos inicicales caso
(deffacts iniciales
"Util para depurar base"
(emergencia (tipo fuego-Clase-A))
(sistema-extincion (estatus off)
(tipo dispersor-agua))
)
9
Ejemplo2fuego (cont.)
; reglas
(defrule emergencia-fuego-Clase-A
(emergencia (tipo fuego-Clase-A))
(sistema-extincion (tipo dispersor-agua)
(estatus off))
=>
(printout T "Activar dispersor agua." crlf)
)
(defrule emergencia-fuego-Clase-B
(emergencia (tipo fuego-Clase-B))
(sistema-extincion (tipo dioxido-carbono)
(estatus off))
=>
(printout T "Utilizar extintor de dioxido de carbono." crlf)
)
10
Cargar base de conocimiento
CLIPS> (load
"E:/Docencia/IAI/Clips/EjemplosClase/Ejemplo
2fuego.clp")
Defining deftemplate: emergencia
Defining deftemplate: respuesta
Defining deftemplate: sistema-extincion
Defining deffacts: iniciales
Defining defrule: emergencia-fuego-Clase-A +j+j
Defining defrule: emergencia-fuego-Clase-B
+j+j
TRUE
11
Paso a paso
(run 1)
FIRE 1 emergencia-fuego-Clase-A: f-
1,f-2
Activar dispersor agua.
12
Establecer memoria de trabajo
inicial y filtrar reglas
CLIPS> (reset)
==> f-0 (initial-fact)
==> f-1 (emergencia (tipo fuego-Clase-A))
==> f-2 (sistema-extincion (tipo dispersor-
agua) (estatus off))
==> Activation 0 emergencia-fuego-Clase-A:
f-1,f-2
13
Limpiar entorno
CLIPS> (clear)
14
Ejercicio1
(deffacts HECHOS-INICIALES (A) (C) (D) (E) (G) (H) (K) )
(defrule R-1 (K) (L) (M)=> (assert (I)))
(defrule R-2 (I) (L) (J)=> (assert (Q)))
(defrule R-3 (C) (D) (E)=> (assert (B)))
(defrule R-4 (A) (B)=> (assert (Q)))
(defrule R-5 (L) (N) (O) (P)=> (assert (Q)))
(defrule R-6 (C) (H)=> (assert (R)))
(defrule R-7 (R) (J) (M)=> (assert (S)))
(defrule R-8 (T) (F) (H)=> (assert (B)))
(defrule R-9 (A)=> (assert (F)))
(defrule r-10 (A) (R) => (assert (T)))
(defrule r-11 (C) (A) (R) => (assert(V))) 15
Ejercicio1
Determinar el orden de disparo de las
reglas con la estrategia LEX
Comprobar con CLIPS Paso a Paso
16