clips lucio salgado lucsalgado@yahoo.com. clips lenguaje integrado de sistemas de produccion c....

Post on 15-Jan-2015

13 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

CLIPS

Lucio Salgado

lucsalgado@yahoo.com

CLIPS

Lenguaje Integrado de Sistemas de produccion C.

Herramienta para el desarrollo de Sistemas expertos

Entorno completo para construir SE basados en reglas y/o objetos

Sensible a mayusculas y minusculas

Representación del conocimiento

Ofrece dos paradigmas Conocimiento heuristico:

Se usa reglas Conocimiento procedural

Funciones y objetos

Estructura de un programa en CLIPS

Provee los elementos basicos de un SE 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).

PROGRAMACION BASICA

MEMORIA DE TRABAJO Estructura Elementos basicos de programacion Abstraccion de datos

Estructura

Todos los elementos de MT son: Hechos Instancias de una clase de objetos

Hecho Unidad de datos fundamental Forma basica para representar

informacion

Elementos basicos de programacion

Tres elementos Tipos primitivos

Para representar informacion Funciones

Para manipular datos Constructores

Para añadir conocimiento a la BC

Tipos primitivos

Son valores de unico campo Informacion simbolica: SYMBOL,

STRING Informacion numerica: INTEGER,FLOAT Direcciones: EXTERNAL-ADDRESS,

FACT-ADDRESS, INSTANCE-ADDRESS.

Funciones

Fragmento de codigo ejecutable que devuelve un valor o tiene efecto lateral util.

Tipos Funciones predefinidas Funciones definidas por el usuario

Usan notacion prefija(+ 4 (* 3 4) 2)

Constructores

Son estructuras sintacticas que se usan para definir elementos como funciones, reglas, hechos, clases, etc.

Comentarios

La mayoria sino todos los constructores permiten incorporar un comentario entre comilas(“).

En otras partes se usa ;

Abstraccion de datos ….

Tres formas de representar informacion en CLIPS Hechos Objetos Variables globales

Definir Plantillas

(deftemplate refrigerador

(slot nom)

(slot tipo)

(slot marca)

(slot precio)

(slot energia)

)

Hechos Ordenados

(puerta abierta)

(interruptor encendido)

(datos 5)

(valor 3)

Hechos no ordenados

(refrigerador (nom ref1) (tipo electrodomestico) (marca lg) (precio 5))

(refrigerador (nom ref2) (tipo electrodomestico) (precio 7) (marca phi))

Definición de Hechos iniciales

(deffacts iniciales "Todos los hechos " (puerta abierta) (interruptor encendido) (datos 5) (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)))

Reglas

(defrule regla-ejemplo "Ejemplo de una regla"

(interruptor encendido)

(puerta abierta)

=>

(assert (comida estropeada))

)

Mas reglas-Variables

(defrule regla-ejemplo-1 "Ejemplo de una regla"

(refrigerador (nom ?x))

(puerta abierta)

=>

(printout t ?x )

)

Mas reglas-Evaluaciones

(defrule eje-test

(datos ?x)

(valor ?y)

(test (>= (abs (- ?y ?x)) 1))

=>

(printout t "siempre")

)

Mas reglas-Operadores lógicos

(defrule regla-ejemplo-2 "Ejemplo de una regla"

(refrigerador (nom ?x) (precio 5 | 10)) (puerta abierta) => (printout t ?x ))

Mas reglas-Bind

(defrule T (puerta abierta) =>

(printout t "Cierto hecho H" crlf) (assert (M))) (defrule C (logical (M)) => (printout t "Introduzca un nombre de estudiante: ") (bind ?nom (readline)) (assert (nuevo ?nom)))

top related