Clips parte4 resumen
Upcoming SlideShare
Loading in...5
×
 

Clips parte4 resumen

on

  • 398 views

 

Statistics

Views

Total Views
398
Views on SlideShare
274
Embed Views
124

Actions

Likes
0
Downloads
2
Comments
0

3 Embeds 124

http://sistemsconoc.blogspot.mx 113
http://www.sistemsconoc.blogspot.mx 8
http://sistemsconoc.blogspot.com 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Clips parte4 resumen Clips parte4 resumen Presentation Transcript

  • CLIPSParte 4RESUMEN
  • El sistema CLIPSCLIPS es un entorno para desarrollarsistemas expertos.Define un lenguaje que permite larepresentación de:Define un lenguaje que permite larepresentación de:conocimiento declarativo (marcos)conocimiento procedimental (reglas deproducción)Su base es un motor de inferenciascon razonamiento hacia adelante.
  • CLIPSLenguaje Integrado de Sistemas deproduccion C.Herramienta para el desarrollo deHerramienta para el desarrollo deSistemas expertosEntorno completo para construir SEbasados en reglas y/o objetosSensible a mayusculas y minusculas
  • Representación delconocimientoOfrece dos paradigmasConocimiento heuristico:Se usa reglasSe usa reglasConocimiento proceduralFunciones y objetos
  • Estructura de un programa enCLIPSProvee los elementos basicos de unSEMemoria Global de datos(MT):Memoria Global de datos(MT):conocimiento factualBase de conocimientos: ReglasMotor de Inferencia: Controla laejecucion de reglasUn programa consiste: reglas, hechosy objetos).
  • PROGRAMACION BASICAMEMORIA DE TRABAJOEstructuraElementos basicos de programacionElementos basicos de programacionAbstraccion de datos
  • EstructuraTodos los elementos de MT son:HechosInstancias de una clase de objetosInstancias de una clase de objetosHechoUnidad de datos fundamentalForma basica para representarinformacion
  • Elementos basicos deprogramacionTres elementosTipos primitivosPara representar informacionPara representar informacionFuncionesPara manipular datosConstructoresPara añadir conocimiento a la BC
  • Tipos primitivosSon valores de unico campoInformacion simbolica: SYMBOL,STRINGSTRINGInformacion numerica: INTEGER,FLOATDirecciones: EXTERNAL-ADDRESS,FACT-ADDRESS, INSTANCE-ADDRESS.
  • FuncionesFragmento de codigo ejecutable quedevuelve un valor o tiene efecto lateralutil.TiposTiposFunciones predefinidasFunciones definidas por el usuarioUsan notacion prefija(+ 4 (* 3 4) 2)
  • ConstructoresSon estructuras sintacticas que seusan para definir elementos comofunciones, reglas, hechos, clases, etc.funciones, reglas, hechos, clases, etc.
  • ComentariosLa mayoria sino todos losconstructores permiten incorporar uncomentario entre comilas(“).comentario entre comilas(“).En otras partes se usa ;
  • Abstraccion de datos ….Tres formas de representarinformacion en CLIPSHechosHechosObjetosVariables globales
  • 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) (marcabrastem) (precio 10))(refrigerador (nom ref4) (tipo electrodomestico) (marca lg)(precio 8)))
  • HechosLos dos elementos que permiten representar problemasutilizando reglas de producción son los hechos y las reglas.Los hechos en CLIPS pueden ser de dos tipos:– ordered facts– deftemplate facts– deftemplate factsLos ordered facts tienen formato libre, por lo tanto no tienenuna estructura predefinida, siguen el esquema general:(relación p1 p2 ... pn)• relación ha de ser un símbolo; el resto de parámetros puedeser de cualquier tipo, por ejemplo:(padre Juan Pedro)(num-hijos Juan 2)
  • Hechos Ordenados(puerta abierta)(interruptor encendido)(datos 5)(datos 5)(valor 3)
  • Hechos no ordenados(refrigerador (nom ref1) (tipoelectrodomestico) (marca lg) (precio5))5))(refrigerador (nom ref2) (tipoelectrodomestico) (precio 7) (marcaphi))
  • HechosLa creación de hechos se realiza mediante lasentencia assert (uno solo) o deffacts (unconjunto), 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)))
  • Definir Plantillas(deftemplate refrigerador(slot nom)(slot tipo)(slot tipo)(slot marca)(slot precio)(slot energia))
  • HechosLos deftemplate facts tienen una estructurapredefinida; pueden asimilarse arepresentaciones al estilo de las ontologías.En estos hechos se define una serie decampos (slots) que enmarcan su estructura.campos (slots) que enmarcan su estructura.Cada campo puede tener una serie derestricciones como:tipocardinalidadun valor por defecto que puede ser:una constanteun función para calcularlo
  • HechosSintaxis:(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)))
  • Hechos(facts) permite saber que hechos haydefinidos.(clear) borra todos los hechos(clear) borra todos los hechosdefinidos.(retract <índice-hecho>) elimina elhecho identificado por el índice dado.(get-deftemplate-list) retorna la lista dedeftemplates definidos.
  • ReglasLas reglas en CLIPS están formadas por:Una parte izquierda (LHS) que define lascondiciones a cumplirUna parte derecha (RHS) que define lasUna parte derecha (RHS) que define lasacciones a realizarSintaxis:(defrule nombre-regla "comentario"(condición-1) (condición-2) ...=>(acción-1) (acción-2) ...)
  • Reglas(defrule regla-ejemplo "Ejemplo de unaregla"(interruptor encendido)(interruptor encendido)(puerta abierta)=>(assert (comida estropeada)))
  • Mas reglas-Variables(defrule regla-ejemplo-1 "Ejemplo de unaregla"(refrigerador (nom ?x))(refrigerador (nom ?x))(puerta abierta)=>(printout t ?x ))
  • VariablesPara poder establecer patrones en las condicionesde las reglas hacen falta variablesLas variables en CLIPS se denotan poniendo uninterrogante 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 losvalores que instancien las variables y permitancumplir las condicionesLas variables de las reglas son locales, siqueremos definir variables globales debemos usarla construcción defglobal (las variables globales sedenotan ?*variable*)
  • Notaciónsquare 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
  • Mas reglas-Evaluaciones(defrule eje-test(datos ?x)(valor ?y)(valor ?y)(test (>= (abs (- ?y ?x)) 1))=>(printout t "siempre"))
  • Mas reglas-Operadoreslógicos(defrule regla-ejemplo-2 "Ejemplo de unaregla"(refrigerador (nom ?x) (precio 5 | 10))(refrigerador (nom ?x) (precio 5 | 10))(puerta abierta)=>(printout t ?x ))
  • Reglas de CLIPS: LHSEn 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.30Tests 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
  • Ejemplos de LHSPersonas de nombre juan o pedro:(persona (nombre juan|pedro))Personas con nombres diferentes:31Personas 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
  • El lenguaje de reglas deCLIPSEn la parte derecha de las reglas (RHS) podemosponer cualquier sentencia válida en CLIPSPodemos obtener la dirección de un hecho parausarlo en la RHS mediante el operador <-, por32usarlo en la RHS mediante el operador <-, porejemplo:(defrule mi-regla?x <- (persona (nombre juan))=>(retract ?x))32
  • Reglas de CLIPS: módulosLas reglas de CLIPS se pueden agrupan/organizaren módulos.La ventaja principal es el poder estructurar elconocimiento y poder enfocar la ejecución de las33conocimiento y poder enfocar la ejecución de lasreglas según su objetivo.La definición de un módulo se realiza mediante laconstrucción: (defmodule <nombre> "comentario"<export-import>)33
  • Reglas de CLIPS módulosNada de lo definido en un módulo esvisible salvo que lo exportemos.Para utilizar construcciones de otroPara utilizar construcciones de otromódulo también tenemos queimportarlas explícitamente.Existe un módulo por defecto llamadoMAIN al que pertenece todo lo nodefinido en otro módulo.
  • El lenguaje de programaciónCLIPS incluye un lenguaje deprogramación que permite definir nuevasfunciones o programar las acciones a35funciones o programar las acciones arealizar 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
  • GRACIAS