Вы находитесь на странице: 1из 8

INSTITUTO TECNOLOGICO DE ACAPULCO

INTELIGENCIA ARTIFICIAL 1
Unidad IV : Proyecto de CLIPS
Cmo construir un Sistema Experto?

PROFR. ING. FRANCISCO GAZGA PORTILLO AULA: 7SA

INTEGRANTES:
Renteria Ortega Juan Gilberto Prez Orozco Rodolfo Salinas Gmez Vctor Manuel 06320418 06320408 06320438
Acapulco, Gro. A 01 de Junio del 2011

CLIPS
EL CONCEPTO DE REGLA.
Durante los aos de esplendor de los Sistemas Expertos, la idea de Sistema basado en Reglas goz de gran predicamento en los ambientes de investigacin y desarrollo en Inteligencia Artificial y Ciencia Cognitiva. Pero conviene desde un principio clasificar las diversas clases de reglas que aparecen en nuestro discurso ordinario y en los programas as implementados. En primer lugar, podemos distinguir las reglas declarativas de las reglas procedimentales. Una regla declarativa puede leerse como: Si p es verdad, entonces q tambin es verdad ; por el contrario, una regla procedimental puede leerse como Si p es verdad, entonces llevar a cabo la accin a . Una regla es deductiva cuando establece una relacin puramente lgica, en el sentido del clculo de proposiciones clsico, entre su LHS y su RHS, llamados entonces ms propiamente antecedentes y consecuentes. Por ejemplo: SI el recuento de leucocitos es inferior a 6000, ENTONCES hay leucopenia. En general, las reglas pueden servir como elemento estructural de un programa; sin embargo, su empleo exclusivo lleva a sistemas difciles de mantener, depurar y modificar. Es por ello conveniente emplear adems elementos adicionales que estructuren los datos (plantillas, marcos, objetos) y las mismas reglas (mdulos).

DEFINICION.
Es un entorno completo para la construccin de SE basados en reglas y/o objetos. La versin estndar de CLIPS, favorece tres estilos de programacin diferentes: procedural, orientado a objetos y basado en reglas. Tambin, proporciona un entorno de desarrollo interactivo orientado a texto, incluyendo una herramienta de depuracin, ayuda on-line y un editor integrado, aunque se han desarrollado interfaces visuales para plataformas Macintosh, Windows 3.x y el sistema X Windows. Se dise para facilitar el desarrollo de software que modele el conocimiento humano (expertise): y y y y y Con propsitos especficos: alta portabilidad, bajo coste, y facilidad de integracin. CLIPS permite integracin completa con otros lenguajes de programacin como C o Ada. Puede ser llamado desde un lenguaje procedural, realizando su funcin y devolver el control al programa que le llam. Tambin se puede definir cdigo procedural como funciones externas llamadas desde CLIPS. Cuando el cdigo externo finaliza su ejecucin devuelve el control a CLIPS.

El entorno CLIPS puede almacenar el conjunto de definiciones que constituyen un programa. Los elementos bsicos de un programa basado en reglas son los hechos y las propias reglas. Un programa CLIPS bsico incorporar, por tanto, definiciones relativas a: y y y Los tipos de hechos que va a manipular el programa. Los hechos iniciales, disponibles antes de que se ejecute el programa. Las reglas encargadas de manipularlos, y siguen un formato condicin accin.

PARADIGMAS.
CLIPS, ofrece al usuario paradigmas heursticos y procedurales para representar el conocimiento. Conocimiento heurstico: reglas y y y Las reglas se utilizan para representar heursticos que especifican un conjunto de acciones a realizar para una situacin dada. El creador del SE define una coleccin de reglas que, en conjunto, resuelven un problema. Se puede pensar que las reglas son como sentencias IF-THEN de lenguajes procedurales como C o Ada. Sin embargo, las reglas actan ms bien como sentencias SIEMPRE QUEENTONCES.

Conocimiento procedural: funciones y objetos. Este tipo de conocimiento se expresa mediante funciones definidas por el usuario (deffunctions), funciones genricas y la programacin orientada a objetos (POO). sta en CLIPS soporta las cinco caractersticas generalmente aceptadas: clases, mensajes, abstraccin, encapsulamiento, herencia y polimorfismo. Tambin es posible desarrollar software utilizando slo reglas, slo objetos, o una mezcla de ambos.

ELEMENTOS
En las representaciones basadas en reglas se considera que el conocimiento est constituido fundamentalmente por hechos y reglas. Los hechos son afirmaciones incondicionales acerca de algn aspecto del dominio del sistema; las reglas son afirmaciones condicionales de la forma SI combinacin de hechos del caso ENTONCES acciones sobre los hechos del caso. La base de conocimientos (reglas y hechos) y la memoria de trabajo (hechos) son manejadas por otro modulo separado, el llamado motor de inferencias.

Segn esto, el intrprete o motor de inferencias CLIPS manipulara dos componentes (en esta manipulacin es precisamente en lo que consiste la ejecucin de un programa a partir de su definicin): y La lista de hechos o memoria de trabajo. Es una lista que contiene todos los hechos o datos conocidos o disponibles para el programa. Antes de ejecutar un programa hay que preparar la lista de hechos borrando todo su contenido e incluyendo a continuacin los hechos que el programa describe como iniciales. El contenido de la lista de hechos cambia normalmente a medida que se ejecuta un programa. La agenda. Es una lista con todas las reglas activadas del programa. Una regla se activa cuando hay una correspondencia entre su parte izquierda (antecedente o condicin) y el contenido de la lista de hechos. Siempre que hay ms de una regla activada en la agenda se utiliza un mecanismo de resolucin de conflictos para decidir cul de ellas ser la que finalmente se ejecute (o, como se dice en la jerga de la programacin basada en reglas, se dispare ). El efecto de disparar una regla consiste normalmente en una modificacin de la lista de hechos. Cada vez que la lista de hechos se ve modificada, es necesario recalcular el contenido de la agenda.

El funcionamiento bsico del entorno CLIPS durante la ejecucin de un programa puede resumirse de la siguiente forma: 1. Inicializacin. a) Se borra el contenido de la lista de hechos y la agenda b) Se aaden los hechos iniciales a la lista de hechos c) Se aaden a la agenda las reglas activadas por los hechos iniciales 2. Evaluacin. Se desencadena un proceso cclico consistente en los siguientes pasos: a) Se selecciona la primera regla de la agenda. Con frecuencia, durante un ciclo de ejecucin, es posible que varias reglas estn activadas en la agenda. Para decidir cul de ellas resulta elegida se utiliza una estrategia de control (o resolucin de conflictos) que puede formar parte de la definicin del programa. b) Se dispara la regla, es decir, se ejecutan las acciones de su parte derecha. Como norma general, las reglas se utilizan para modificar el contenido de la lista de hechos. c) Se recalcula el contenido de la agenda (conjunto de reglas activadas) en funcin del nuevo estado de la lista de hechos. Este proceso se repite hasta que o bien la agenda queda vaca, o bien alguna regla provoca explcitamente la terminacin del programa invocando la orden (halt).

ORDENES BSICAS.
y (clear). Esta llamada elimina todas las definiciones de programa (tipos de hechos, reglas, etc.) que pudiese haber almacenadas en el entorno. En otras palabras, deja el entorno de CLIPS listo para la definicin de un nuevo programa, y su efecto es el equivalente salir del entorno CLIPS y abrirlo de nuevo. (reset). Esta llamada realiza todas las tareas previas a la ejecucin del programa cargado actualmente en el entorno CLIPS. Concretamente borra el contenido de la lista de hechos y la agenda. Guarda en la lista de hechos, los hechos iniciales y en la agenda las reglas activadas por ellos. (run). Inicia el ciclo de evaluacin del programa, que se detendr bien cuando la agenda quede vaca o se ejecute la orden (halt). (step). Realiza un nico ciclo de evaluacin, es decir, se dispara nicamente una regla. Esta orden es un muy til para trazar paso a paso la ejecucin de un programa.

HECHOS.
Todo sistema de produccin dispone de una base de datos o memoria de trabajo donde almacenar los hechos conocidos en cada momento. En CLIPS esta memoria de trabajo se implementa mediante una lista de hechos. Cada hecho de esta lista tiene una direccin y un ndice (un nmero entero no negativo) que lo identifican unvocamente. Los hechos ms simples en CLIPS son los llamados hechos ordenados . Su sintaxis es la siguiente: (<nombre de - relacin> <valor>*)

REGLAS
Las reglas son los elementos que describen la forma en que deben procesarse los hechos. En trminos generales, el objetivo de una regla es modificar el contenido de la memoria de trabajo. Esto se consigue normalmente aadiendo, borrando o modificando uno o ms hechos. El espritu de la programacin basada en reglas exige que, en la medida de lo posible, cada regla represente un heurstico o inferencia bsica completa. En otras palabras, si es posible, ninguna regla debe depender de otra. Las reglas en CLIPS se definen utilizando la definicin o construccin defrule: (defrule <nom-regla> [<comentario>] <elemento-condicional>* => <accin>*)

FUNCIONES
Una funcin es la codificacin de un algoritmo identificado con un nombre que puede o no devolver valores tiles a otras partes del programa. Existen dos grandes grupos de funciones: y y Funciones definidas por el sistema. Son aquellas que estn implementadas en CLIPS. Funciones definidas por el usuario. Aquellas que se han escrito en un lenguaje distinto a CLIPS (p.e. C o ADA). Los comandos que permiten construir funciones en CLIPS son: deffunction. Permite construir funciones en el ambiente de CLIPS usando funciones de CLIPS. Las llamadas a las funciones en CLIPS se hacen en notacin prefija. Es decir, en primer lugar se escribe el nombre de la funcin y a continuacin los argumentos de dicha funcin separados por uno o ms espacios, todo ello encerrado entre parntesis. La siguiente tabla muestra distintas llamadas usando las funciones suma y multiplicacin. defgeneric y defmethod. Permiten definir funciones genricas. stas permiten diferente tipo de cdigo dependiendo de los argumentos pasados a la funcin genrica.

CONSTRUCTORES
Los constructores son aquellas sentencias de CLIPS que permiten crear objetos. La llamada a un constructor se realiza siempre entre parntesis y suele comenzar con la palabra def. Los constructores, que se estudiarn con detenimiento ms adelante, son: defmodule, defrule, deffacts, deftemplate, defglobal, deffunction, defclass, definstances, defmessage-handler, defgeneric y defmethod.

OBJETOS
Un objeto en CLIPS es un smbolo, string, nmero (entero o real), un campo multievaluado, una direccin externa, una direccin de un hecho o una instancia de una clase definida por el usuario. Cada objeto se describe en dos partes: propiedades y comportamiento. Si una serie de objetos presentan propiedades y comportamientos iguales, todos ellos se agrupan en una clase. O en otras palabras, una clase es un modelo (o plantilla) que recoge las propiedades y comportamientos comunes de una serie de objetos. Dada una clase, cada uno de los objetos que la componen recibe el nombre de instancia. Para referirnos a una instancia utilizaremos su nombre o su direccin. Los objetos se describen con dos componentes: propiedades y comportamiento. Las propiedades de los objetos se determinan especificando valores en las casillas de la clase del objeto, de forma similar a las casillas de los hechos. El comportamiento se determina mediante cdigo procedural que est asociado a la clase del objeto y recibe el nombre de manipuladores-de-mensajes (message-handlers).

SINTAXIS
Todos los comandos en CLIPS comienzan y terminan en parntesis: (comando). Esta sintaxis significa que para poder ejecutar el comando comando, deber de introducirse (comando) tal y como se muestra: En primer lugar se introduce el carcter ( , seguido de los caracteres c , o , m , a , n , d , o y finalmente el carcter ) . Sin embargo, cada comando presenta una sintaxis propia y puede presentar una serie de opciones que pueden ser optativas u obligatorias. Para poder utilizar una notacin general para todos ellos es necesario seguir unas normas bsicas de escritura. Seguiremos las mismas normas que las empleadas en los manuales de CLIPS con objeto de que al lector le resulte familiar dicha sintaxis cuando recurra a esos manuales. Seguiremos el siguiente convenio: y Los corchetes, [ ] indicarn que lo que se encuentra en su interior es opcional. P.e. (comando [opcin]) indica que opcin puede o no especificarse junto con el comando comando. As, las entradas siguientes son vlidas: (comando), (comando opcin). Lo que se encuentre entre los smbolos < y >, indica que debe de sustituirse necesariamente, incluidos los smbolos < y >, por algn valor del tipo especificado. P.e. <entero> indica que debe sustituirse por un valor entero. De esta forma, entradas vlidas para la sintaxis (comando <entero>) seran: (comando 1), (comando 10) o (comando -5). El smbolo * se asocia a un tipo, e indica que la descripcin puede reemplazarse por cero o ms ocurrencias del tipo especificado. En general se presenta de la forma <tipo>* P.e. <entero>* indica que debe sustituirse por cero o ms valores enteros. Entradas vlidas seran 0, 0 1, 0 1 -1 o simplemente ningn entero. El smbolo + se asocia a un tipo, e indica que la descripcin puede reemplazarse por uno o ms ocurrencias del tipo especificado. En general se presenta de la forma <tipo>+. Es equivalente a <tipo> <tipo>*. P.e. <entero>+ indica que debe sustituirse por uno o ms valores enteros. Entradas vlidas seran 0, 0 1, 0 1 -1. Necesariamente debe sustituirse por al menos un entero. La barra vertical | indica que debe hacerse una eleccin entre los elementos que se encuentran separador por la barra. En general se presenta de la forma opcion-1 | opcion-2 | ... |opcion-n. P.e. yo | tu | el debe reemplazarse por yo, o tu o el. El smbolo ::= se utiliza para definir los trminos que aparecen en una expresin. En general presenta la forma <Termino-a-definir> ::= <Definicin-del-termino>.

Вам также может понравиться