SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Sistemas de producci´on: CLIPS
Francisco J. Mart´ın Mateos
Dpto. Ciencias de la Computaci´on e Inteligencia Artificial
Universidad de Sevilla
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Sistemas de producci´on: Ejemplo
Reglas para identificar un animal
Si el animal tiene pelos entonces es mam´ıfero
Si el animal produce leche entonces es mam´ıfero
Si el animal es mam´ıfero y tiene pezu˜nas entonces es ungulado
Si el animal es mam´ıfero y rumia entonces es ungulado
Si el animal es ungulado y tiene el cuello largo entonces es una
jirafa
Si el animal es ungulado y tiene rayas negras entonces es una
cebra
¿C´omo identificamos un animal que tiene pelos, pezu˜nas y
rayas negras?
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Sistemas de producci´on
Un sistema de producci´on es un mecanismo computacional
basado en reglas de producci´on de la forma: “Si se cumplen
las condiciones entonces se ejecutan las acciones”
El conjunto de las reglas de producci´on forma la base de
conocimiento que describe como evoluciona un sistema
Las reglas de producci´on act´uan sobre una memoria de trabajo
o base de datos que describe el estado actual del sistema
Si la condici´on de una regla de producci´on se satisface
entonces dicha regla est´a activa
El conjunto de reglas de producci´on activas en un instante
concreto forma el conjunto de conflicto o agenda
La estrategia de resoluci´on selecciona una regla del conjunto
de conflicto para ser ejecutada o disparada modificando as´ı la
memoria de trabajo
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Ciclo de ejecuci´on
Reglas
Equiparacion de patrones
Agenda
Hechos
Disparo
Resolucion de conflictos
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Sistemas de producci´on
Componentes:
Base de hechos (memoria de trabajo). Elemento din´amico
Base de reglas (base de conocimiento). Elemento est´atico
Motor de inferencia (produce los cambios en la memoria de
trabajo)
Elementos adicionales:
Algoritmo de equiparaci´on de patrones: Algoritmo para
calcular eficientemente la agenda
Estrategia de resoluci´on de conflictos: Proceso para decidir en
cada momento qu´e regla de la agenda debe ser disparada
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Resoluci´on de conflictos
Una activaci´on s´olo se produce una vez
Estrategias m´as comunes:
Tratar la agenda como una pila
Tratar la agenda como una cola
Elecci´on aleatoria
Regla m´as espec´ıfica (n´umero de condiciones)
Activaci´on m´as reciente (en funci´on de los hechos)
Regla menos utilizada
Mejor (pesos)
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Reglas de producci´on
Modelo de regla:
<Condiciones> => <Acciones>
Condiciones
Existencia de cierta informaci´on
Ausencia de cierta informaci´on
Relaciones entre datos
Acciones
Incluir nueva informaci´on
Eliminar informaci´on
Presentar informaci´on en pantalla
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
CLIPS
CLIPS ≡ C Language Integrated Production Systems
http://clipsrules.sourceforge.net/
Lenguaje basado en reglas de producci´on.
Desarrollado en el Johnson Space Center de la NASA.
Relacionado con OPS5 y ART
Caracter´ısticas:
Conocimiento: Reglas, objetos y procedimental
Portabilidad: implementado en C
Integraci´on y Extensibilidad: C, Java, FORTRAN, ADA
Documentaci´on
Bajo coste: software libre
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Hechos en CLIPS
Estructura de un hecho simple
(<simbolo> <datos>*)
Ejemplos:
(conjunto a b 1 2 3)
(1 2 3 4) no es un hecho v´alido
Conjunto de hechos iniciales
(deffacts <nombre>
<hecho>*)
Acci´on: A˜nadir hechos
(assert <hecho>*)
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Reglas en CLIPS
Estructura de una regla (I):
(defrule <nombre>
<condicion>*
=>
<accion>*)
Ejemplo:
(defrule mamifero-1
(tiene-pelos)
=>
(assert (es-mamifero)))
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Interacci´on con CLIPS
Cargar el contenido de un archivo:
(load <archivo>)
Inicializaci´on:
(reset)
Ejecuci´on:
(run)
Limpiar la base de conocimiento:
(clear)
Ayuda del sistema:
(help)
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Ejemplo
Reglas
(defrule mamifero-1
(tiene-pelos)
=>
(assert (es-mamifero)))
(defrule ungulado-1
(es-mamifero)
(tiene-pezugnas)
=>
(assert (es-ungulado)))
(defrule jirafa
(es-ungulado)
(tiene-cuello-largo)
=>
(assert (es-jirafa)))
(defrule mamifero-2
(da-leche)
=>
(assert (es-mamifero)))
(defrule ungulado-2
(es-mamifero)
(rumia)
=>
(assert (es-ungulado)))
(defrule cebra
(es-ungulado)
(tiene-rayas-negras)
=>
(assert (es-cebra)))
Conjunto de hechos iniciales
(deffacts hechos-iniciales
(tiene-pelos)
(tiene-pezugnas)
(tiene-rayas-negras))
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Ejemplo: tabla de seguimiento
Hechos E Agenda D
f0 (initial-fact) 0
f1 (tiene-pelos) 0 mamifero-1: f1 1
f2 (tiene-pezugnas) 0
f3 (tiene-rayas-negras) 0
f4 (es-mamifero) 1 ungulado-1: f4,f2 2
f5 (es-ungulado) 2 cebra: f5,f3 3
f6 (es-cebra)
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Plantillas
Estructura de una plantilla (I):
(deftemplate <nombre>
<campo>*)
<campo> := (slot <nombre-campo>)
Ejemplos:
(deftemplate persona
(slot nombre)
(slot ojos))
(persona (nombre Ana)
(ojos verdes))
(persona (nombre Juan)
(ojos negros))
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Variables simples y restriciones
Variables simples: ?x, ?y, ?gv32
Toman un valor simple (n´umero, s´ımbolo o cadena de texto)
Restricciones (I): Condiciones sobre las variables que se
comprueban en el momento de verificar las condiciones de una
regla
Negativas:
(dato ?x&˜a)
Disyuntivas:
(dato ?x&a|b)
Conjuntivas:
(dato ?x&˜a&˜b)
Acci´on: Presentar informaci´on en pantalla
(printout t <dato>*)
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Ejemplo
(deftemplate persona
(slot nombre)
(slot ojos))
(deffacts personas
(persona (nombre Ana) (ojos verdes))
(persona (nombre Juan) (ojos negros))
(persona (nombre Luis) (ojos negros))
(persona (nombre Blanca) (ojos azules)))
(defrule empareja
(persona (nombre ?nombre1)
(ojos ?ojos1&azules|verdes))
(persona (nombre ?nombre2&˜?nombre1)
(ojos negros))
=>
(printout t ?nombre1 " tiene los ojos " ?ojos1 crlf)
(printout t ?nombre2 " tiene los ojos negros" crlf)
(printout t "------------------------" crlf))
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Variables m´ultiples y eliminaciones
Variables: $?x, $?y, $?gv32
Toman un valor m´ultiple
Estructura de una regla (II):
(defrule <nombre>
<condicion>*
=>
<accion>*)
<condicion> := <patron> |
(not <patron>) |
<variable-simple> <- <patron>
Acci´on: Eliminar hechos:
(retract <identificador-hecho>*)
<identificador-hecho> := <variable-simple>
Variables mudas: Toman un valor que no es necesario recordar
Simple: ?
M´ultiple: $?
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Ejemplo
Uni´on de conjuntos
(deffacts datos-iniciales
(conjunto 1 a b)
(conjunto 2 b c))
(defrule inicio
=>
(assert (union)))
(defrule union
?union <- (union $?u)
(conjunto ? $? ?e $?)
(not (union $? ?e $?))
=>
(retract ?union)
(assert (union ?e ?u)))
Ejercicio: Intersecci´on de conjuntos
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Ejemplo: tabla de seguimiento
Hechos E S Agenda D S
f0 (initial-fact) 0 inicio: f0 1
f1 (conj-1 a b) 0
f2 (conj-2 b c) 0
f3 (union) 1 2 union: f3,f1, 2
union: f3,f1, 2
union: f3,f2, 2
union: f3,f2, 2
f4 (union b) 2 3 union: f4,f1, 3
union: f4,f2, 3
f5 (union c b) 3 4 union: f5,f1, 4
f6 (union a c b) 4
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Plantillas y reglas
Estructura de una plantilla (II):
(deftemplate <nombre>
<campo>*)
<campo> := (slot <nombre-campo>) |
(multislot <nombre-campo>)
Estructura de una regla (III):
(defrule <nombre>
<condicion>*
=>
<accion>*)
<condicion> := <patron> |
(not <patron>) |
<variable-simple> <- <patron> |
(test <llamada-a-una-funcion>)
Funciones matem´aticas:
B´asicas: +, -, *, /
Comparaciones: =, !=, <, <=, >, >=
Exponenciales: **, sqrt, exp, log
Trigonom´etricas: sin, cos, tan
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Ejemplo
Clasificaci´on de elementos
(deftemplate triangulo
(slot nombre)
(multislot lados))
(deffacts triangulos
(triangulo (nombre A) (lados 3 4 5))
(triangulo (nombre B) (lados 6 8 9))
(triangulo (nombre C) (lados 6 8 10)))
(defrule inicio
=>
(assert (triangulos-rectangulos)))
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Ejemplo
Clasificaci´on de elementos
(defrule almacena-triangulo-rectangulo
?h1 <- (triangulo (nombre ?n) (lados ?x ?y ?z))
(test (= ?z (sqrt (+ (** ?x 2) (** ?y 2)))))
?h2 <- (triangulos-rectangulos $?a)
=>
(retract ?h1 ?h2)
(assert (triangulos-rectangulos $?a ?n)))
(defrule elimina-triangulo-no-rectangulo
?h <- (triangulo (nombre ?n) (lados ?x ?y ?z))
(test (!= ?z (sqrt (+ (** ?x 2) (** ?y 2)))))
=>
(retract ?h))
(defrule fin
(not (triangulo))
(triangulos-rectangulos $?a)
=>
(printout t "Lista de triangulos rectangulos: " $?a crlf))
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Problemas de terminaci´on
Una misma regla se puede activar con distinto conjunto de
hechos dando lugar a una iteraci´on infinita en el proceso de
deducci´on
(deftemplate rectangulo
(slot nombre)
(slot base)
(slot altura))
(deffacts informacion-inicial
(rectangulo (nombre A) (base 9) (altura 6))
(rectangulo (nombre B) (base 7) (altura 5))
(rectangulo (nombre C) (base 6) (altura 8))
(rectangulo (nombre D) (base 2) (altura 5))
(suma 0))
(defrule suma-areas-de-rectangulos
(rectangulo (base ?base) (altura ?altura))
?suma <- (suma ?total)
=>
(retract ?suma)
(assert (suma (+ ?total (* ?base ?altura)))))
Ejercicio: Corregir ejemplo anterior
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Restricciones evaluables
Restricciones (II):
Evaluables:
(dato ?x&:<llamada-a-un-predicado>)
Ejemplo:
(defrule maximo
(vector $? ?x $?)
(not (vector $? ?y&:(> ?y ?x) $?))
=>
(printout t "El maximo es " ?x crlf))
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Ejemplo
Ordenaci´on de los elementos de un vector
(defrule inicial
(vector $?x)
=>
(assert (vector-aux ?x)))
(defrule ordena
?f <- (vector-aux $?b ?m1 ?m2&:(< ?m2 ?m1) $?e)
=>
(retract ?f)
(assert (vector-aux $?b ?m2 ?m1 $?e)))
(defrule final
(not (vector-aux $?b ?m1 ?m2&:(< ?m2 ?m1) $?e))
(vector $?x)
(vector-aux $?y)
=>
(printout t "La ordenacion de " ?x " es " ?y crlf))
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Restricciones evaluables
Hechos E S Agenda D S
f0 (initial-fact) 0
f1 (vector 3 2 1 4) 0 inicial: f1 1
f2 (vector-aux 3 2 1 4) 1 2 ordena: f2 2
ordena: f2 - 2
f3 (vector-aux 2 3 1 4) 2 3 ordena: f3 3
f4 (vector-aux 2 1 3 4) 3 4 ordena: f4 4
f5 (vector-aux 1 2 3 4) 4 final: f0,,f1,f5 5
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
Bibliograf´ıa
Giarratano, J.C. y Riley, G. “Expert Systems Principles and
Programming (2nd ed.)” (PWS Pub. Co., 1994)
Cap. 7: “Introduction to Clips”
Giarratano, J.C. “CLIPS 6.0 User’s Guide”
Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS

Más contenido relacionado

Destacado

Destacado (9)

Practica2 solax
Practica2 solaxPractica2 solax
Practica2 solax
 
Clip ejemplos animales
Clip ejemplos animalesClip ejemplos animales
Clip ejemplos animales
 
Clips parte2x
Clips parte2xClips parte2x
Clips parte2x
 
Clips parte4 resumen
Clips parte4 resumenClips parte4 resumen
Clips parte4 resumen
 
8. diagramas
8. diagramas8. diagramas
8. diagramas
 
Clips parte1
Clips parte1Clips parte1
Clips parte1
 
Ejemplo
Ejemplo Ejemplo
Ejemplo
 
8. diagramas
8. diagramas8. diagramas
8. diagramas
 
8. diagramas
8. diagramas8. diagramas
8. diagramas
 

Similar a Sistemas de producción: Introducción a CLIPS

Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)Ricardo Tesoriero
 
Tdd y clean code SG campus
Tdd y clean code SG campusTdd y clean code SG campus
Tdd y clean code SG campusSoftware Guru
 
Introducción a la programación en bioinformática
Introducción a la programación en bioinformáticaIntroducción a la programación en bioinformática
Introducción a la programación en bioinformáticaHernán Morales Durand
 
Matlab (1)
Matlab (1)Matlab (1)
Matlab (1)numpad
 
Matlab
MatlabMatlab
Matlabford81
 
Ciclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - AlgoritmiaCiclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - AlgoritmiaDaniel Gómez
 
Recursividad y Cola (Estructura de Datos)
Recursividad y Cola (Estructura de Datos)Recursividad y Cola (Estructura de Datos)
Recursividad y Cola (Estructura de Datos)sandra gutierrez
 
CLASE 05 - 2018-3.pdf
CLASE 05 - 2018-3.pdfCLASE 05 - 2018-3.pdf
CLASE 05 - 2018-3.pdfAndrCamones
 
6 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 20096 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 2009Pepe
 
Machine Learning con Tensorflow y R, presentado por RStudio
Machine Learning con Tensorflow y R, presentado por RStudioMachine Learning con Tensorflow y R, presentado por RStudio
Machine Learning con Tensorflow y R, presentado por RStudioSoftware Guru
 
Trabajar en el sector agroalimentario aragonés con datos y portales de datos ...
Trabajar en el sector agroalimentario aragonés con datos y portales de datos ...Trabajar en el sector agroalimentario aragonés con datos y portales de datos ...
Trabajar en el sector agroalimentario aragonés con datos y portales de datos ...Aragón Open Data
 
Getting deeper with TPL & async (Spanish version)
Getting deeper with TPL & async (Spanish version)Getting deeper with TPL & async (Spanish version)
Getting deeper with TPL & async (Spanish version)Iran Reyes Fleitas
 
Explicación del programa buscapersona
Explicación del programa buscapersonaExplicación del programa buscapersona
Explicación del programa buscapersonaMiguel Méndez
 
Fundamentos-de-programacion-c-ricardo-villalobos.pdf
Fundamentos-de-programacion-c-ricardo-villalobos.pdfFundamentos-de-programacion-c-ricardo-villalobos.pdf
Fundamentos-de-programacion-c-ricardo-villalobos.pdfssuserf46a26
 
Porqué Cervantes programaba mejor que tú
Porqué Cervantes programaba mejor que túPorqué Cervantes programaba mejor que tú
Porqué Cervantes programaba mejor que túAgile Spain
 
Por qué Cervantes programaba mejor que tú
Por qué Cervantes programaba mejor que túPor qué Cervantes programaba mejor que tú
Por qué Cervantes programaba mejor que túJavier Acero
 

Similar a Sistemas de producción: Introducción a CLIPS (20)

Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)Transformaciones modelo a modelo: ATL (ParteII)
Transformaciones modelo a modelo: ATL (ParteII)
 
Tdd y clean code SG campus
Tdd y clean code SG campusTdd y clean code SG campus
Tdd y clean code SG campus
 
Introducción a la programación en bioinformática
Introducción a la programación en bioinformáticaIntroducción a la programación en bioinformática
Introducción a la programación en bioinformática
 
Matlab (1)
Matlab (1)Matlab (1)
Matlab (1)
 
Matlab
MatlabMatlab
Matlab
 
Seguridad so pii_2011
Seguridad so pii_2011Seguridad so pii_2011
Seguridad so pii_2011
 
Ciclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - AlgoritmiaCiclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - Algoritmia
 
Recursividad y Cola (Estructura de Datos)
Recursividad y Cola (Estructura de Datos)Recursividad y Cola (Estructura de Datos)
Recursividad y Cola (Estructura de Datos)
 
CLASE 05 - 2018-3.pdf
CLASE 05 - 2018-3.pdfCLASE 05 - 2018-3.pdf
CLASE 05 - 2018-3.pdf
 
Unidad 1 IO.ppt
Unidad 1 IO.pptUnidad 1 IO.ppt
Unidad 1 IO.ppt
 
6 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 20096 Upv Solo Pruebas 2009
6 Upv Solo Pruebas 2009
 
Machine Learning con Tensorflow y R, presentado por RStudio
Machine Learning con Tensorflow y R, presentado por RStudioMachine Learning con Tensorflow y R, presentado por RStudio
Machine Learning con Tensorflow y R, presentado por RStudio
 
Trabajar en el sector agroalimentario aragonés con datos y portales de datos ...
Trabajar en el sector agroalimentario aragonés con datos y portales de datos ...Trabajar en el sector agroalimentario aragonés con datos y portales de datos ...
Trabajar en el sector agroalimentario aragonés con datos y portales de datos ...
 
Getting deeper with TPL & async (Spanish version)
Getting deeper with TPL & async (Spanish version)Getting deeper with TPL & async (Spanish version)
Getting deeper with TPL & async (Spanish version)
 
Explicación del programa buscapersona
Explicación del programa buscapersonaExplicación del programa buscapersona
Explicación del programa buscapersona
 
Introducción a Clojure
Introducción a ClojureIntroducción a Clojure
Introducción a Clojure
 
Python workshop
Python workshopPython workshop
Python workshop
 
Fundamentos-de-programacion-c-ricardo-villalobos.pdf
Fundamentos-de-programacion-c-ricardo-villalobos.pdfFundamentos-de-programacion-c-ricardo-villalobos.pdf
Fundamentos-de-programacion-c-ricardo-villalobos.pdf
 
Porqué Cervantes programaba mejor que tú
Porqué Cervantes programaba mejor que túPorqué Cervantes programaba mejor que tú
Porqué Cervantes programaba mejor que tú
 
Por qué Cervantes programaba mejor que tú
Por qué Cervantes programaba mejor que túPor qué Cervantes programaba mejor que tú
Por qué Cervantes programaba mejor que tú
 

Último

PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 

Último (20)

PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 

Sistemas de producción: Introducción a CLIPS

  • 1. Sistemas de producci´on: CLIPS Francisco J. Mart´ın Mateos Dpto. Ciencias de la Computaci´on e Inteligencia Artificial Universidad de Sevilla Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 2. Sistemas de producci´on: Ejemplo Reglas para identificar un animal Si el animal tiene pelos entonces es mam´ıfero Si el animal produce leche entonces es mam´ıfero Si el animal es mam´ıfero y tiene pezu˜nas entonces es ungulado Si el animal es mam´ıfero y rumia entonces es ungulado Si el animal es ungulado y tiene el cuello largo entonces es una jirafa Si el animal es ungulado y tiene rayas negras entonces es una cebra ¿C´omo identificamos un animal que tiene pelos, pezu˜nas y rayas negras? Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 3. Sistemas de producci´on Un sistema de producci´on es un mecanismo computacional basado en reglas de producci´on de la forma: “Si se cumplen las condiciones entonces se ejecutan las acciones” El conjunto de las reglas de producci´on forma la base de conocimiento que describe como evoluciona un sistema Las reglas de producci´on act´uan sobre una memoria de trabajo o base de datos que describe el estado actual del sistema Si la condici´on de una regla de producci´on se satisface entonces dicha regla est´a activa El conjunto de reglas de producci´on activas en un instante concreto forma el conjunto de conflicto o agenda La estrategia de resoluci´on selecciona una regla del conjunto de conflicto para ser ejecutada o disparada modificando as´ı la memoria de trabajo Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 4. Ciclo de ejecuci´on Reglas Equiparacion de patrones Agenda Hechos Disparo Resolucion de conflictos Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 5. Sistemas de producci´on Componentes: Base de hechos (memoria de trabajo). Elemento din´amico Base de reglas (base de conocimiento). Elemento est´atico Motor de inferencia (produce los cambios en la memoria de trabajo) Elementos adicionales: Algoritmo de equiparaci´on de patrones: Algoritmo para calcular eficientemente la agenda Estrategia de resoluci´on de conflictos: Proceso para decidir en cada momento qu´e regla de la agenda debe ser disparada Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 6. Resoluci´on de conflictos Una activaci´on s´olo se produce una vez Estrategias m´as comunes: Tratar la agenda como una pila Tratar la agenda como una cola Elecci´on aleatoria Regla m´as espec´ıfica (n´umero de condiciones) Activaci´on m´as reciente (en funci´on de los hechos) Regla menos utilizada Mejor (pesos) Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 7. Reglas de producci´on Modelo de regla: <Condiciones> => <Acciones> Condiciones Existencia de cierta informaci´on Ausencia de cierta informaci´on Relaciones entre datos Acciones Incluir nueva informaci´on Eliminar informaci´on Presentar informaci´on en pantalla Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 8. CLIPS CLIPS ≡ C Language Integrated Production Systems http://clipsrules.sourceforge.net/ Lenguaje basado en reglas de producci´on. Desarrollado en el Johnson Space Center de la NASA. Relacionado con OPS5 y ART Caracter´ısticas: Conocimiento: Reglas, objetos y procedimental Portabilidad: implementado en C Integraci´on y Extensibilidad: C, Java, FORTRAN, ADA Documentaci´on Bajo coste: software libre Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 9. Hechos en CLIPS Estructura de un hecho simple (<simbolo> <datos>*) Ejemplos: (conjunto a b 1 2 3) (1 2 3 4) no es un hecho v´alido Conjunto de hechos iniciales (deffacts <nombre> <hecho>*) Acci´on: A˜nadir hechos (assert <hecho>*) Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 10. Reglas en CLIPS Estructura de una regla (I): (defrule <nombre> <condicion>* => <accion>*) Ejemplo: (defrule mamifero-1 (tiene-pelos) => (assert (es-mamifero))) Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 11. Interacci´on con CLIPS Cargar el contenido de un archivo: (load <archivo>) Inicializaci´on: (reset) Ejecuci´on: (run) Limpiar la base de conocimiento: (clear) Ayuda del sistema: (help) Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 12. Ejemplo Reglas (defrule mamifero-1 (tiene-pelos) => (assert (es-mamifero))) (defrule ungulado-1 (es-mamifero) (tiene-pezugnas) => (assert (es-ungulado))) (defrule jirafa (es-ungulado) (tiene-cuello-largo) => (assert (es-jirafa))) (defrule mamifero-2 (da-leche) => (assert (es-mamifero))) (defrule ungulado-2 (es-mamifero) (rumia) => (assert (es-ungulado))) (defrule cebra (es-ungulado) (tiene-rayas-negras) => (assert (es-cebra))) Conjunto de hechos iniciales (deffacts hechos-iniciales (tiene-pelos) (tiene-pezugnas) (tiene-rayas-negras)) Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 13. Ejemplo: tabla de seguimiento Hechos E Agenda D f0 (initial-fact) 0 f1 (tiene-pelos) 0 mamifero-1: f1 1 f2 (tiene-pezugnas) 0 f3 (tiene-rayas-negras) 0 f4 (es-mamifero) 1 ungulado-1: f4,f2 2 f5 (es-ungulado) 2 cebra: f5,f3 3 f6 (es-cebra) Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 14. Plantillas Estructura de una plantilla (I): (deftemplate <nombre> <campo>*) <campo> := (slot <nombre-campo>) Ejemplos: (deftemplate persona (slot nombre) (slot ojos)) (persona (nombre Ana) (ojos verdes)) (persona (nombre Juan) (ojos negros)) Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 15. Variables simples y restriciones Variables simples: ?x, ?y, ?gv32 Toman un valor simple (n´umero, s´ımbolo o cadena de texto) Restricciones (I): Condiciones sobre las variables que se comprueban en el momento de verificar las condiciones de una regla Negativas: (dato ?x&˜a) Disyuntivas: (dato ?x&a|b) Conjuntivas: (dato ?x&˜a&˜b) Acci´on: Presentar informaci´on en pantalla (printout t <dato>*) Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 16. Ejemplo (deftemplate persona (slot nombre) (slot ojos)) (deffacts personas (persona (nombre Ana) (ojos verdes)) (persona (nombre Juan) (ojos negros)) (persona (nombre Luis) (ojos negros)) (persona (nombre Blanca) (ojos azules))) (defrule empareja (persona (nombre ?nombre1) (ojos ?ojos1&azules|verdes)) (persona (nombre ?nombre2&˜?nombre1) (ojos negros)) => (printout t ?nombre1 " tiene los ojos " ?ojos1 crlf) (printout t ?nombre2 " tiene los ojos negros" crlf) (printout t "------------------------" crlf)) Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 17. Variables m´ultiples y eliminaciones Variables: $?x, $?y, $?gv32 Toman un valor m´ultiple Estructura de una regla (II): (defrule <nombre> <condicion>* => <accion>*) <condicion> := <patron> | (not <patron>) | <variable-simple> <- <patron> Acci´on: Eliminar hechos: (retract <identificador-hecho>*) <identificador-hecho> := <variable-simple> Variables mudas: Toman un valor que no es necesario recordar Simple: ? M´ultiple: $? Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 18. Ejemplo Uni´on de conjuntos (deffacts datos-iniciales (conjunto 1 a b) (conjunto 2 b c)) (defrule inicio => (assert (union))) (defrule union ?union <- (union $?u) (conjunto ? $? ?e $?) (not (union $? ?e $?)) => (retract ?union) (assert (union ?e ?u))) Ejercicio: Intersecci´on de conjuntos Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 19. Ejemplo: tabla de seguimiento Hechos E S Agenda D S f0 (initial-fact) 0 inicio: f0 1 f1 (conj-1 a b) 0 f2 (conj-2 b c) 0 f3 (union) 1 2 union: f3,f1, 2 union: f3,f1, 2 union: f3,f2, 2 union: f3,f2, 2 f4 (union b) 2 3 union: f4,f1, 3 union: f4,f2, 3 f5 (union c b) 3 4 union: f5,f1, 4 f6 (union a c b) 4 Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 20. Plantillas y reglas Estructura de una plantilla (II): (deftemplate <nombre> <campo>*) <campo> := (slot <nombre-campo>) | (multislot <nombre-campo>) Estructura de una regla (III): (defrule <nombre> <condicion>* => <accion>*) <condicion> := <patron> | (not <patron>) | <variable-simple> <- <patron> | (test <llamada-a-una-funcion>) Funciones matem´aticas: B´asicas: +, -, *, / Comparaciones: =, !=, <, <=, >, >= Exponenciales: **, sqrt, exp, log Trigonom´etricas: sin, cos, tan Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 21. Ejemplo Clasificaci´on de elementos (deftemplate triangulo (slot nombre) (multislot lados)) (deffacts triangulos (triangulo (nombre A) (lados 3 4 5)) (triangulo (nombre B) (lados 6 8 9)) (triangulo (nombre C) (lados 6 8 10))) (defrule inicio => (assert (triangulos-rectangulos))) Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 22. Ejemplo Clasificaci´on de elementos (defrule almacena-triangulo-rectangulo ?h1 <- (triangulo (nombre ?n) (lados ?x ?y ?z)) (test (= ?z (sqrt (+ (** ?x 2) (** ?y 2))))) ?h2 <- (triangulos-rectangulos $?a) => (retract ?h1 ?h2) (assert (triangulos-rectangulos $?a ?n))) (defrule elimina-triangulo-no-rectangulo ?h <- (triangulo (nombre ?n) (lados ?x ?y ?z)) (test (!= ?z (sqrt (+ (** ?x 2) (** ?y 2))))) => (retract ?h)) (defrule fin (not (triangulo)) (triangulos-rectangulos $?a) => (printout t "Lista de triangulos rectangulos: " $?a crlf)) Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 23. Problemas de terminaci´on Una misma regla se puede activar con distinto conjunto de hechos dando lugar a una iteraci´on infinita en el proceso de deducci´on (deftemplate rectangulo (slot nombre) (slot base) (slot altura)) (deffacts informacion-inicial (rectangulo (nombre A) (base 9) (altura 6)) (rectangulo (nombre B) (base 7) (altura 5)) (rectangulo (nombre C) (base 6) (altura 8)) (rectangulo (nombre D) (base 2) (altura 5)) (suma 0)) (defrule suma-areas-de-rectangulos (rectangulo (base ?base) (altura ?altura)) ?suma <- (suma ?total) => (retract ?suma) (assert (suma (+ ?total (* ?base ?altura))))) Ejercicio: Corregir ejemplo anterior Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 24. Restricciones evaluables Restricciones (II): Evaluables: (dato ?x&:<llamada-a-un-predicado>) Ejemplo: (defrule maximo (vector $? ?x $?) (not (vector $? ?y&:(> ?y ?x) $?)) => (printout t "El maximo es " ?x crlf)) Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 25. Ejemplo Ordenaci´on de los elementos de un vector (defrule inicial (vector $?x) => (assert (vector-aux ?x))) (defrule ordena ?f <- (vector-aux $?b ?m1 ?m2&:(< ?m2 ?m1) $?e) => (retract ?f) (assert (vector-aux $?b ?m2 ?m1 $?e))) (defrule final (not (vector-aux $?b ?m1 ?m2&:(< ?m2 ?m1) $?e)) (vector $?x) (vector-aux $?y) => (printout t "La ordenacion de " ?x " es " ?y crlf)) Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 26. Restricciones evaluables Hechos E S Agenda D S f0 (initial-fact) 0 f1 (vector 3 2 1 4) 0 inicial: f1 1 f2 (vector-aux 3 2 1 4) 1 2 ordena: f2 2 ordena: f2 - 2 f3 (vector-aux 2 3 1 4) 2 3 ordena: f3 3 f4 (vector-aux 2 1 3 4) 3 4 ordena: f4 4 f5 (vector-aux 1 2 3 4) 4 final: f0,,f1,f5 5 Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS
  • 27. Bibliograf´ıa Giarratano, J.C. y Riley, G. “Expert Systems Principles and Programming (2nd ed.)” (PWS Pub. Co., 1994) Cap. 7: “Introduction to Clips” Giarratano, J.C. “CLIPS 6.0 User’s Guide” Ingenier´ıa del Conocimiento Sistemas de producci´on: CLIPS