Download - Clips parte4 resumen
![Page 1: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/1.jpg)
CLIPS
Parte 4RESUMEN
![Page 2: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/2.jpg)
El sistema CLIPS
� CLIPS es un entorno para desarrollar sistemas expertos.
� Define un lenguaje que permite la representación de: Define un lenguaje que permite la representación de: � conocimiento declarativo (marcos)� conocimiento procedimental (reglas de
producción)
� Su base es un motor de inferencias con razonamiento hacia adelante.
![Page 3: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/3.jpg)
CLIPS
� Lenguaje Integrado de Sistemas de produccion C.
� Herramienta para el desarrollo de � Herramienta para el desarrollo de Sistemas expertos
� Entorno completo para construir SE basados en reglas y/o objetos
� Sensible a mayusculas y minusculas
![Page 4: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/4.jpg)
Representación del conocimiento
� Ofrece dos paradigmas� Conocimiento heuristico:
� Se usa reglas� Se usa reglas
� Conocimiento procedural� Funciones y objetos
![Page 5: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/5.jpg)
Estructura de un programa en CLIPS
� Provee los elementos basicos de un SE� Memoria Global de datos(MT): � Memoria Global de datos(MT):
conocimiento factual� Base de conocimientos: Reglas� Motor de Inferencia: Controla la
ejecucion de reglas
� Un programa consiste: reglas, hechos y objetos).
![Page 6: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/6.jpg)
PROGRAMACION BASICA
� MEMORIA DE TRABAJO� Estructura� Elementos basicos de programacion� Elementos basicos de programacion� Abstraccion de datos
![Page 7: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/7.jpg)
Estructura
� Todos los elementos de MT son:� Hechos� Instancias de una clase de objetos� Instancias de una clase de objetos
� Hecho� Unidad de datos fundamental� Forma basica para representar
informacion
![Page 8: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/8.jpg)
Elementos basicos de programacion
� Tres elementos� Tipos primitivos
� Para representar informacion� Para representar informacion
� Funciones� Para manipular datos
� Constructores� Para añadir conocimiento a la BC
![Page 9: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/9.jpg)
Tipos primitivos
� Son valores de unico campo� Informacion simbolica: SYMBOL,
STRINGSTRING� Informacion numerica: INTEGER,FLOAT� Direcciones: EXTERNAL-ADDRESS,
FACT-ADDRESS, INSTANCE-ADDRESS.
![Page 10: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/10.jpg)
Funciones
� Fragmento de codigo ejecutable quedevuelve un valor o tiene efecto lateral util.Tipos� Tipos� Funciones predefinidas� Funciones definidas por el usuario
� Usan notacion prefija(+ 4 (* 3 4) 2)
![Page 11: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/11.jpg)
Constructores
� Son estructuras sintacticas que se usan para definir elementos como funciones, reglas, hechos, clases, etc.funciones, reglas, hechos, clases, etc.
![Page 12: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/12.jpg)
Comentarios
� La mayoria sino todos los constructores permiten incorporar un comentario entre comilas(“).comentario entre comilas(“).
� En otras partes se usa ;
![Page 13: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/13.jpg)
Abstraccion de datos ….
� Tres formas de representar informacion en CLIPS� Hechos� Hechos� Objetos� Variables globales
![Page 14: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/14.jpg)
Definición de Hechos iniciales
(deffacts iniciales "Todos los hechos "(puerta abierta)(interruptor encendido)(datos 5)(valor 3)(valor 3)(refrigerador (nom ref1) (tipo electrodomestico) (marca lg) (precio 5))(refrigerador (nom ref2) (tipo electrodomestico) (marca phi) (precio 7))(refrigerador (nom ref3) (tipo electrodomestico) (marca brastem) (precio 10))(refrigerador (nom ref4) (tipo electrodomestico) (marca lg) (precio 8))
)
![Page 15: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/15.jpg)
Hechos
� Los dos elementos que permiten representar problemas utilizando reglas de producción son los hechos y las reglas.
� Los hechos en CLIPS pueden ser de dos tipos: – ordered facts– deftemplate facts– deftemplate facts
� Los ordered facts tienen formato libre, por lo tanto no tienen una estructura predefinida, siguen el esquema general:
(relación p1 p2 ... pn)
• relación ha de ser un símbolo; el resto de parámetros puede ser de cualquier tipo, por ejemplo:
(padre Juan Pedro)(num-hijos Juan 2)
![Page 16: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/16.jpg)
Hechos Ordenados
(puerta abierta)(interruptor encendido)(datos 5)(datos 5)(valor 3)
![Page 17: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/17.jpg)
Hechos no ordenados
� (refrigerador (nom ref1) (tipo electrodomestico) (marca lg) (precio 5))5))
� (refrigerador (nom ref2) (tipo electrodomestico) (precio 7) (marca phi))
![Page 18: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/18.jpg)
Hechos
� La creación de hechos se realiza mediante la sentencia assert (uno solo) o deffacts (un conjunto), por ejemplo:
(assert (padre Pepe Juan))(assert (padre Pepe Juan))(assert (persona (nombre "pedro") (edad 25)))(deffacts mis-hechos
(casa roja) (pelota verde)(persona (nombre "luis”) (edad 33)))
![Page 19: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/19.jpg)
Definir Plantillas
(deftemplate refrigerador(slot nom)(slot tipo)(slot tipo)(slot marca)(slot precio)(slot energia)
)
![Page 20: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/20.jpg)
Hechos� Los deftemplate facts tienen una estructura
predefinida; pueden asimilarse a representaciones al estilo de las ontologías.
� En estos hechos se define una serie de campos (slots) que enmarcan su estructura. campos (slots) que enmarcan su estructura. Cada campo puede tener una serie de restricciones como:� tipo� cardinalidad� un valor por defecto que puede ser:
� una constante� un función para calcularlo
![Page 21: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/21.jpg)
Hechos
� Sintaxis:(deftemplate nombre-template "comentario“
(slot nombre-slot1)(slot nombre-slot2))(slot nombre-slot2))
� Por ejemplo:(deftemplate persona “persona humana /
hombre”(slot nombre (type STRING))(slot edad (type INTEGER) (default 0)))
![Page 22: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/22.jpg)
Hechos
� (facts) permite saber que hechos hay definidos.
� (clear) borra todos los hechos � (clear) borra todos los hechos definidos.
� (retract <índice-hecho>) elimina el hecho identificado por el índice dado.
� (get-deftemplate-list) retorna la lista de deftemplates definidos.
![Page 23: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/23.jpg)
Reglas
� Las reglas en CLIPS están formadas por:� Una parte izquierda (LHS) que define las
condiciones a cumplirUna parte derecha (RHS) que define las � Una parte derecha (RHS) que define las acciones a realizar
� Sintaxis:(defrule nombre-regla "comentario"
(condición-1) (condición-2) ...=>(acción-1) (acción-2) ...)
![Page 24: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/24.jpg)
Reglas
(defrule regla-ejemplo "Ejemplo de una regla"
(interruptor encendido)(interruptor encendido)(puerta abierta)=>(assert (comida estropeada))
)
![Page 25: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/25.jpg)
Mas reglas-Variables
(defrule regla-ejemplo-1 "Ejemplo de una regla"
(refrigerador (nom ?x))(refrigerador (nom ?x))(puerta abierta)=>(printout t ?x )
)
![Page 26: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/26.jpg)
Variables
� Para poder establecer patrones en las condiciones de las reglas hacen falta variables
� Las variables en CLIPS se denotan poniendo un interrogante delante del nombre (?variable)
� Existen variables anónimas (no importa su valor) para un valor ? o para múltiples valores $?
� Durante la ejecución de las reglas se buscan los valores que instancien las variables y permitan cumplir las condiciones
� Las variables de las reglas son locales, si queremos definir variables globales debemos usar la construcción defglobal (las variables globales se denotan ?*variable*)
![Page 27: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/27.jpg)
Notación
� square brackets [...] � contents are optional:� (example [test])
� pointed brackets (less than / greater than signs) < ... >>
� replace contents by an instance of that type� (example <char>)
� star *� replace with zero or more instances of the type� <char>*
� plus +� replace with one or more instances of the type� <char>+ (is equivalent to <char> <char>* )
� vertical bar |� choice among a set of items:� true | false
![Page 28: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/28.jpg)
Mas reglas-Evaluaciones
(defrule eje-test(datos ?x)(valor ?y)(valor ?y)(test (>= (abs (- ?y ?x)) 1))=>(printout t "siempre")
)
![Page 29: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/29.jpg)
Mas reglas-Operadores lógicos
(defrule regla-ejemplo-2 "Ejemplo de una regla"
(refrigerador (nom ?x) (precio 5 | 10))(refrigerador (nom ?x) (precio 5 | 10))(puerta abierta)=>(printout t ?x )
)
![Page 30: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/30.jpg)
Reglas de CLIPS: LHS
� En la parte izquierda de una regla pueden aparecer diferentes tiposde condiciones:
� Patrones constantes, con variables o con wildcards: se instanciandirectamente con hechos en la base de hechos.
� Expresiones not, and, or, exist y forall con patrones.
30
� Tests de expresiones sobre las variables vinculadas.
� Los patrones indican qué tipo de hechos deben instanciar las reglasy se establecen a través de restricciones sobre variables o valoresconstantes.
� Estas restricciones se pueden combinar mediante conectivaslógicas:
~ (no)& (y)| (o)
30
![Page 31: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/31.jpg)
Ejemplos de LHS
� Personas de nombre juan o pedro: (persona (nombre juan|pedro))
� Personas con nombres diferentes:
31
� Personas con nombres diferentes: (persona (nombre ?x)) (persona (nombre ?y&~?x))
� Nadie se llama pedro: (not (persona (nombre pedro)))
� Todo el mundo es mayor de edad:
(forall (persona (nombre ?n) (edad ?x)) (test (> ?x 18)))
31
![Page 32: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/32.jpg)
El lenguaje de reglas de CLIPS
� En la parte derecha de las reglas (RHS) podemosponer cualquier sentencia válida en CLIPS
� Podemos obtener la dirección de un hecho parausarlo en la RHS mediante el operador <-, por
32
usarlo en la RHS mediante el operador <-, porejemplo:(defrule mi-regla
?x <- (persona (nombre juan))=>
(retract ?x))
32
![Page 33: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/33.jpg)
Reglas de CLIPS: módulos
� Las reglas de CLIPS se pueden agrupan/organizar en módulos.
� La ventaja principal es el poder estructurar el conocimiento y poder enfocar la ejecución de las
33
conocimiento y poder enfocar la ejecución de las reglas según su objetivo.
� La definición de un módulo se realiza mediante la construcción: (defmodule <nombre> "comentario" <export-import>)
33
![Page 34: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/34.jpg)
Reglas de CLIPS módulos
� Nada de lo definido en un módulo es visible salvo que lo exportemos.
� Para utilizar construcciones de otro � Para utilizar construcciones de otro módulo también tenemos que importarlas explícitamente.
� Existe un módulo por defecto llamado MAIN al que pertenece todo lo no definido en otro módulo.
![Page 35: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/35.jpg)
El lenguaje de programación
� CLIPS incluye un lenguaje de programación que permite definir nuevasfunciones o programar las acciones a
35
funciones o programar las acciones a realizar en la parte derecha de las reglas.
� Toda sentencia o estructura de control esuna función que recibe unos parámetrosy retorna un resultado (paradigmafuncional).
35
![Page 36: Clips parte4 resumen](https://reader034.vdocuments.site/reader034/viewer/2022052311/55a0b60a1a28ab956b8b4860/html5/thumbnails/36.jpg)
GRACIAS