CLIPS
INTRODUCCIÓN
• Herramienta para SBC (SE) desarrollada desde 1986
por la sección de tecnología de software de la NASA.
• Acceso al código fuente para adaptarlo.
• Es fácilmente integrable en aplicaciones en diferentes
lenguajes y está disponible en Windows, Mac y Linux.
Portable
• Disponible en: [Link]
SOPORTA:
• Programación declarativa: Reglas
• Programación procedimental
• Programación orientada a objetos: COOL (Clips
Object-Oriented Language)
INTRODUCCIÓN
Incluye Extensiones para Lógica Borrosa
(FuzzyCLIPS)
Es un sistema de producción que incluye:
• un sistema de mantenimiento de verdad con
encadenamiento hacia delante
• adición dinámica de reglas y hechos
• diferentes estrategias de resolución de conflictos
Diferencia minúsculas de mayúsculas (palabras
reservadas en minúscula)
Comentarios empiezan con ;
ARQUITECTURA
Motor de Inferencia Memoria
Base de
de Trabajo
Conocimientos
(Hechos)
(Reglas) Agenda
Interfaz
HECHOS
• Es el conocimiento factual
• Son verdades en determinado dominio
• Se almacenan en la Memoria de Trabajo
• Los introduce o define el usuario al hacer una
consulta
• Existen 3 tipos de hechos:
1) Hechos simples
2) Hechos compuestos
3) Plantilla de hechos
EJEMPLO: BIBLIOTECA
HECHOS
documento
libroDisponible prestamo
deuda
ACCIÓN
CONDICIÓN
HECHOS SIMPLES
SINTAXIS: (nombre)
Ejemplo: (notas=buenas)
DEFINICIÓN DE HECHOS INICIALES:
(deffacts nombre
Hecho1
Hecho2
…….)
Ejemplo Biblioteca
(deffacts hechosBib
(libro=disponible)
(deuda=no)
(documento=tiene) )
REGLAS
Se almacenan en la Base de Conocimientos
Definición de una regla
(defrule nombreRegla
condición
=>
acción)
condición: Puede incluir:
• hechos (por defecto ligados con and)
• expresion lógica: operadores and, or, not:
(or hecho1 hecho2 …)
(and hecho1 hecho2 … )
(not hecho)
REGLAS
acción: Puede incluir:
• (assert hecho) inserta hecho a la Base Hechos
• (printout t expresiones crlf) muestra las
expresiones en pantalla. crlf es salto de línea
• Llamados a funciones
• Sentencias (if, while, …)
REGLAS
Ejemplo Biblioteca
(defrule regla1
(libro=disponible)
(deuda=no)
(documento=tiene)
=>
(assert (prestamo=si))
(printout t “se presta el libro” crlf)
)
REGLAS
Ejemplo Biblioteca
(defrule regla2
(or (libro=nodisponible)
(deuda=si)
(documento=notiene))
=>
(assert (prestamo=no))
(printout t “no se presta el libro” crlf)
)
PROCEDIMIENTO EN CLIPS
1. ABRIR EDITOR FILE ->NEW
2. ESCRIBIR EN EL EDITOR:
; HECHOS
; REGLAS
3. GUARDAR: FILE->SAVE AS->[Link]
4. LIMPIAR: EXECUTION->CLEAR CLIPS
5. CARGAR Y COMPILAR: BUFFER->LOAD BUFFER
ERRORES?
si IR A 2
no
IR A 6
6. SELECCIONAR OPCIONES(1 VEZ):
EXECUTION-> WATCH
7. CARGAR LOS HECHOS INICIALES:
EXECUTION->RESET
8. EJECUTAR: EXECUTION->RUN
EJEMPLO PROCEDIMIENTO EN CLIPS
1. ABRIR EDITOR FILE ->NEW
EJEMPLO PROCEDIMIENTO EN CLIPS
2. ESCRIBIR EN EL EDITOR HECHOS Y REGLAS
EJEMPLO PROCEDIMIENTO EN CLIPS
3. GUARDAR: FILE->SAVE AS->[Link]
EJEMPLO PROCEDIMIENTO EN CLIPS
4. LIMPIAR: EXECUTION->CLEAR CLIPS
5. CARGAR Y COMPILAR: BUFFER->LOAD BUFFER
EJEMPLO PROCEDIMIENTO EN CLIPS
SIN ERRORES:
6. SELECCIONAR OPCIONES(1 VEZ):
EXECUTION-> WATCH -> OK
EJEMPLO PROCEDIMIENTO EN CLIPS
7. CARGAR LOS HECHOS INICIALES:
EXECUTION->RESET
8. EJECUTAR: EXECUTION->RUN
PROBLEMAS EN CLIPS
1. ESCRIBIR EN CLIPS LAS REGLAS:
r1 : A = a y B = b entonces C = c
r2 : Si D = d y E = e y F = f entonces G = g
r3 : Si H = h y I = i entonces J = j
r4 : Si C = c y G = g entonces K = k
r5 : Si G = g y J = j entonces L = l
r6 : Si K = k y L = l entonces M = m
Con los hechos iniciales:
A = a, B = b, D = d, E = e, F = f, H = h, I = i
PROBLEMAS EN CLIPS
2. ACONSEJAR A UN BACHILER LA CARRERA Y LA
UNIVERSIDAD PARA ESTUDIAR
FACTOR OBJETO VALOR
NOTAS COLEGIO NOTAEXACTAS Buenas, regulares
NOTASOCIALES Buenas, regulares
NOTANATURAL Buenas, regulares
PREFERENCIA PREFERENCIA medicina, derecho,
INGENIERIAenieria
, otra
CARRERA CARRERA medicina, derecho,
INGENIERIAenieria
, otra
SITU ECONOMICA SITECO Buena, regular
UNIVERSIDAD UNIVERSIDAD UPEA, UCB, OTRA
DISPO CARR UNIV DISPOINGENIERIA UPEA, UCB, OTRA
DISPODER UPEA, UCB, OTRA
DISPOMED UPEA, UCB, OTRA
RELACIONES CAUSALES
Los hechos iniciales están de azul. Las acciones no
pueden ser hechos iniciales
NOTAS
COLEGIO
CARRERA
PREFERENCIA
UNIVERSIDAD
SITUACION
ECONOMICA
DISPONIBILIDAD
CARR UNIV
REGLAS
R1: SI NOTAEXACTAS=BUENAS Y PREFERENCIA=INGENIERIA
ENTONCES CARRERA=INGENIERIA
R2: SI CARRERA=INGENIERIA Y SITECO=BUENA Y DISPOING=UCB
ENTONCES UNIVERSIDAD=UCB
R3: SI CARRERA=INGENIERIA Y SITECO=BUENA DISPOING=UPEA
ENTONCES UNIVERSIDAD=UPEA
R4: SI CARRERA=INGENIERIA Y SITECO=BUENA Y
DISPOING=OTRA ENTONCES UNIVERSIDAD=OTRA
R5: SI CARRERA=INGENIERIA Y SITECO=REGULAR Y
DISPOING=UPEA ENTONCES UNIVERSIDAD=UPEA
R6: SI CARRERA=INGENIERIA Y SITECO=REGULAR Y
DISPOING=OTRA ENTONCES UNIVERSIDAD=OTRA
………..
A) ESCRIBIR LAS 6 REGLAS EN CLIPS (PARA INGENIERÍA)
B) COMPLETAR REGLAS PARA TODOS LOS CASOS
EN AMBOS CASOS INCLUIR LOS HECHOS INICIALES PARA
PREFERENCIA, NOTAS, SITECO, DISPONIBILIDAD DE CARRERAS.
GRACIAS