Académique Documents
Professionnel Documents
Culture Documents
2. Base de Hechos
3. Base de Reglas
4. Motor de inferencia
Fases
Equiparación
Motor
Base de de Base de
Hechos Inferencia Reglas
(BH) (MI) (BR)
2. Base de Hechos
3. Base de Reglas
4. Motor de inferencia
Fases
Equiparación
ORDERED FACTS
(hola)
(alumnos Pepe Juan Luis)
(nombre “Juan”)
(edad 14)
CLIPS: Base de Hechos
(deftemplate robot
(slot bandeja
(type SYMBOL)
(allowed-values LLENA VACIA)
(default VACIA)))
Abstracción
Encapsulación
Herencia
Polimorfismo
CLIPS: Base de Hechos
Creación de clases
(defclass ANIMAL (is-a INITIAL-OBJECT)
(defclass <nombre-plantilla>
(role abstract)
(is-a <clase-padre>)
(slot edad
<propiedades de la clase>
(type INTEGER)
<definición-de-slot1>
(create-accessor read-write)))
<definición-de-slot2>
…
(defclass ELEFANTE (is-a ANIMAL)
<definición-de-slotN>)
(role concrete)
(slot edad (source-composite)))
Propiedades de la clase
(role abstract/concrete)
(pattern-match non-reactive/reactive)
(deffacts OtrosHechos
(cliente (nombre Juan Pérez) (id 33435))
(cliente (nombre Rosa Gómez) (id 33436)))
(definstances instancias-animales
([Dumbo] of ELEFANTE (edad 1)))
Sirven para
Identificar de forma única y simplificada cada hecho/instancia (p.e. f-10 es el hecho con
Nunca disminuye y nunca se reasigna. Para cada nuevo hecho/instancia que se cree
o modifique se incrementa en uno
CLIPS: Base de Hechos
ÓRDENES BÁSICAS DE MANEJO DE LA MT
(reset) Elimina todos los hechos de la MT, elimina las activaciones de la agenda y restaura las
condiciones iniciales:
Añade initial-fact e initial-object
2. Base de Hechos
3. Base de Reglas
4. Motor de inferencia
Fases
Equiparación
“El coste del envío se incrementa en 1000 pesetas si se recibe en el mismo día”
(defrule coste-del-envio
(envio ?paquete ?origen ?destino)
(dia-entrega ?paquete hoy)
?coste-inicial<-(coste ?paquete ?precio)
=>
(retract ?coste-inicial)
(assert (coste-final ?paquete (+ ?precio 1000)))
CLIPS: Sintaxis de las Reglas
(defrule <nombre_regla>
[<documentacion opcional>]
(premisa 1)
(premisa 2) (defrule marca-del-600
... “Marca del modelo 600”
(modelo 600)
(premisa N) =>
=> (assert (marca-es SEAT)))
(accion 1)
(accion 2)
...
(accion M))
CLIPS: Sintaxis de las Reglas
1. Un patrón
2. Un test
3. Una negación
CLIPS: Sintaxis de las Reglas
1. PATRONES
(defrule encontrar-dato
(dato ? azul rojo $?)=>)
2. TEST
Funciones de comparación
• Numérica: =, <>, <, >, >=, <=
• Cualquier tipo: eq, neq
(defrule ejemplo
(dato ?x)
(test (= ?x 3)) =>)
CLIPS: Sintaxis de las Reglas
3. NOT
(defrule ejemplo1
(dato rojo)
(not (dato rojo ?x ?x)
=>)
(defrule ejemplo2
(intevalo-tiempo ?tiempo1 ?tiempo2)
(not(test (> ?tiempo1 ?tiempo2)))
=>)
CLIPS: Sintaxis de las Reglas
Las acciones de una regla están implícitamente unidas por la conectiva AND
Las acciones de una regla únicamente se podrán llevar a cabo si se satisfacen todas
las premisas del antecedente de la misma
1. assert / make-instance
Creación de un hecho/instancia para incorporarlo en la MT
2. retract /unmake-instance
Eliminación de un hecho/instancia de la MT
3. modify / modify-instance
Modificación de un hecho/instancia de la MT
(defrule coste-del-envio
(envio (paquete ?paquete) (origen ?o) (destino ?d))
(dia-entrega (paquete ?paquete)(dia hoy))
?coste-inicial <- (coste (paquete ?paquete)
(precio ?precio))
=>
(modify ?coste-inicial (precio (+ ?precio 1000))))
CLIPS: Sintaxis de las Reglas
4. halt
7. Llamada a función
NO son Reglas
¿QUÉ HACER?
¿QUÉ HACER?
NO son Reglas
¿QUÉ HACER?
Crear dos reglas, una para cada bloque de premisas
¿QUÉ HACER?
tales elementos
NO son Reglas
¿QUÉ HACER?
2. Base de Hechos
3. Base de Reglas
4. Motor de inferencia
Fases
Equiparación
...
Carácterísticas
Causar movimiento
Ser sistemático
Ser eficiente
Índice
2. Base de Hechos
3. Base de Reglas
4. Motor de inferencia
Fases
Equiparación
1. Fase de selección
a) Restricción
b) Equiparación
Fase de selección
Selección de la instancia de regla que va a ser ejecutada en la fase de acción
Estrategias de Selección
Ciclo de inferencia: Fases
Fase de acción
Motor de inferencia
(defrule R2
R1,?A=Tucky
(animal ?A) Ciclo 1
(esqueleto ?A no) R1,?A=Piolín
=> (assert (invertebrado ?A)))
(animal Tucky)
(animal Piolín)
(defrule R3
(esqueleto Piolín si)
(vertebrado ?A)
(esqueleto Tucky si)
(ladra ?A)
(ladra Tucky)
(assert (perro ?A)))
(vertebrado Tucky)
Ejemplo de Sistemas de Producción
BASE DE REGLAS BASE DE HECHOS
(animal Tucky)
(animal Piolín)
(defrule R1
(esqueleto Piolín si)
(animal ?A)
(esqueleto Tucky si)
(esqueleto ?A si)
(ladra Tucky)
=> (assert (vertebrado ?A)))
(vertebrado Tucky)
2. Base de Hechos
3. Base de Reglas
4. Motor de inferencia
Fases
Equiparación
Equiparación de constantes
Equiparación de variables
Equiparación de constantes
Caso a)
(defrule R1
BR (A B)
El hecho f-1 equipara con la premisa
=> (assert (C D)))
(A B) de la regla
Caso b)
(defrule R1
BR (clase1 (nombre1 A))
=> (assert (C D))) El hecho f-1 equipara con la premisa
(clase1 (nombre1 A)) de la regla
f-1(clase1 (nombre1 A))
BH El hecho f-2 no equipara
f-2(C D)
Equiparación de variables (I)
Una variable que aparece una sola vez en la regla se equipara con
cualquier valor que
(defrule R1
BR (A ?X B)
=>... 1) ?X=C
2) ?X=3
f-1 (A C B)
BH f-2 (A 3 B)
f-3 (A D C)
Equiparación de variables (II)
Una variable que aparece dos o más veces en la regla debe equipararse
en todas las ocurrencias con el mismo valor
(defrule R1
(A ?X)
BR (B ?Y)
=>... 1) ?X=C, ?Y=C
f-1 (A C)
BH f-2 (B C)
f-3 (M V)
(defrule R1
(A ?X)
BR (not((B ?X)) 1) ?X=C
=>... 2) ?X=B
Una instancia de una regla es un par formado por la regla y por los
elementos de la MT que hacen cierto el antecedente de la regla
Conjunto Conflicto={R1(f-1),R1(f-3)}
Ejercicios
1. Suponga un sistema inteligente que atiende varias cesáreas simultáneamente.
Se desea modelizar la siguiente heurística:
“Si al hospital llega una madre embarazada con el bebé en posición podálica,
el sistema debe recomendar hacer cesárea”
(COLOR ?c ?cc) Para representar los colores de las fichas con las que
juega el ordenador y el contrario
(TURNO ?t) Para representar que el turno lo tienen las fichas rojas si
?t toma el valor R, o bien B si el turno lo tienen las fichas
blancas
En la MT se tienen (COLOR R B) y (TURNO R)
2. Base de Hechos
3. Base de Reglas
4. Motor de inferencia
Fases
Equiparación
Estrategias de selección
Arbitrariedad
Combinación de estrategias
Estrategias de selección
Orden de escritura
Prioridad
(defrule marca-del-600
“Marca del modelo 600”
(declare (salience 10))
(modelo 600)
=>
(assert (marca-es SEAT)))
Estrategias de selección
Especificidad
(defrule ejemplo
(item ?x ?y ?x)
(test (and (numberp ?x) (> ?x (+10 ?y)) (< ?x 100))) =>)
Especificidad = 5
Estrategias de selección
Novedad
Para R1: 4, 0
Para R2: 4, 2
Por novedad se elige para su ejecución R2
Estrategias de selección
Principio de refracción
ES Prioridad + P.R.
Motor de Inferencias (CLIPS)
Las nuevas activaciones se sitúan por encima de las activaciones con igual
prioridad
Bread strategy
Las nuevas activaciones se sitúan por debajo de las activaciones con igual
prioridad
Simplicity strategy
Las nuevas activaciones se sitúan por encima de las activaciones con mayor o
igual especificidad
Complexity strategy
Las nuevas activaciones se sitúan por debajo de las activaciones con mayor o
igual especificidad
CLIPS: Estrategias de resolución de conflictos
Random strategy
LEX strategy
Novedad, especificidad
MEA strategy
Se aplica la misma estrategia que LEX pero mirando solo el primer patrón que
equipara en la regla. Si coincide se aplica LEX
BH
f-1 (envio E1 Madrid Barcelona)
f-2 (dia-entrega E1 hoy)
f-3 (coste E1 700)
ERROR: El coste del envío es único f-4 (coste E1 1700)
SOLUCIÓN: Modificar la regla
Problemas al añadir y borrar
(defrule R1
(envio ?e ?origen ?destino) Motor de inferencia
BR
(dia-entrega ?e hoy)
Ciclo1
coste-inicial <- (coste ?e ?coste)
=> ?e=E1
(assert (coste ?e (+ ?coste 1000) ?origen=Madrid
(retract ?coste-inicial)) ?destino=Barcelona
?coste=700
f-1 (envio E1 Madrid Barcelona)
BH f-2 (dia-entrega E1 hoy)
f-3 (coste E1 700) Conjunto Conflicto={R1(f-1,f-2,f-3)}
BH
f-1 (envio E1 Madrid Barcelona)
f-2 (dia-entrega E1 hoy)
PROBLEMA: Bucle infinito f-3 (coste E1 700)
SOLUCIÓN: introducir señalizadores, f-4 (coste E1 1700)
utilizar un nuevo hecho (coste-final)
Índice
2. Base de Hechos
3. Base de Reglas
4. Motor de inferencia
Fases
Equiparación
Se buscan reglas cuyo antecedente esté satisfecho por esos hechos (BH)