miércoles, 8 de mayo de 2013

Ensayo acerca de CLIPS(Herramienta para elaboración de sistemas expertos)(Inteligencia Artificial)

Ya tenía ratos de no publicar nada,pero hace un par de minutos me encontraba haciendo una tárea para uno de los cursos que mas me llamaba la atención  y que mas deseaba llevar(incluso pasé toda la carrera ansioso por llegar a él)  al momento de ver el pénsum e iniciar mi carrera ya que fue una de mis motivaciones a estudiarla(además de mi intereses por la robótica)  y es  con uno de los que voy a cerrar(si todo sale bien) en un par de semanas: Inteligencia  Artificial. Lamentablemente no recibí el curso como hubiera querido y me hubiese gustado ya que el monton de cursos mas no me dejaban tiempo para leer e investigar por mi cuenta, ademas de que el curso solo se imparte una vez a la semana los viernes, y todos en ingenieria USAC saben que los viernes en el primer semestre del año, el edificio se cierra muchas veces por lo de la huelga, etc. ademas que de por sí el catedrático es conocido por no llegar constantemente a dar clases.

La tarea que me encuentro realizando consiste en realizar un ensayo de una página acerca de la herramienta que he usado a lo largo del semestre en el laboratorio,CLIPS, que sirve para la elaboración de sistemas expertos(sub-area de la IA), este ensayo no pretende ser útil para quien desea aprender a utilizar CLIPS o quien desea aprender conceptos acerca de sistemas expertos,solo pretende ser una breve descripción o introducción a la herramienta pero se me hizo interesante postearlo ya que cuando inicie con la herramienta, antes de aprender a usarla,quise aprender que erá en sí, y encontre muy poca información, al menos en español, para aquellas personas que estudian sistemas en la USAC o cualquier carrera o lugar donde el metodo es similar de enseñanza("aqui esta lo que tienen que hacer, con la herramienta que lo tienen que hacer, vayan y aprendan solos y por su cuenta como hacerlo y como usar la herramienta") puede ser útil primero tener una ídea de que se hace con la herramienta antes de apnender a hacerlo en sí, acá esta mi ensayo:

CLIPS(C Language Integrated Production System)  es una herramienta para la creación de sistemas expertos.  El estudio de sistemas expertos es una rama de la inteligencia artificial que consiste en la creación y estudio de sistemas informáticos que simulan el proceso de aprendizaje, memorización, razonamiento y acción de un experto humano en cualquier área de la ciencia y el conocimiento.
 Los orígenes se remontan a 1984 en un centro espacial de la nasa. En ese entonces LISP era el lenguaje usado mayoritariamente para el trabajo en el área de sistemas expertos, pero tenía 3 problemas que lo llevaron a su fallo: baja disponibilidad, alto costo, pobre integración con otros lenguajes.  Estas razones llevaron  a que la división de inteligencia artificial de la nasa decidiera que se creara una herramienta para sistemas expertos escrita y basada en el lenguaje C. En 1986 la versión 3.0 de CLIPS fue liberada para grupos afuera de la NASA.

La interacción con clips se lleva a cabo principalmente a través de un command prompt, en este se teclean las instrucciones  para evaluación y ejecución, aunque también CLIPS permite otras formas de interactuar, como carga de archivos, procesamiento BATCH e integración con otros lenguajes.

CLIPS provee 3 elementos básicos para la escritura de programas: tipos de datos primitivos, funciones para manipular datos y “constructs para agregar a una base de conocimiento.
Los tipos de datos básicos son un conjunto que incluye algunos de los tipos que ya conocemos como por ejemplo: float,integer,string(y symbol) además de otros no tan conocidos como :external-address, fact-address, instance-name and instance-address.
Una función en CLIPS es una pieza de código ejecutable identificada por un nombre específico y que retorna un valor útil o realiza un efecto secundario útil (como desplegar información).

De los 3 elementos que mencione, tal vez el más útil y usado es el elemento conocido como “constructs”, que como mencione sirve para agregar información a la base de conocimiento de CLIPS, siendo los “constructs” más usados los siguientes: defmodule, defrule,deffacts,  deftemplate,defglobal,  deffunction,  defclass,  definstances,  defmessage-handler,  defgeneric,  y defmethod.

En clips existen 3 formatos para representar información: facts, objetos, variables globales. Cada fact representa una pieza de información y que son la unidad fundamental de datos usada por las reglas, una regla es una de las formas principales de representar información en CLIPS, una regla es utilizada para representar heurísticas, las cuales especifican una serie de acciones a ser realizadas para una determinada situación. Al crear un sistema experto, el creador define un set de reglas que trabajan en conjunto para resolver un problema.
El segundo elemento que mencione, objetos  se maneja en CLIPS por medio de COOL (Clips Object Oriented Language), un objeto en CLIPS es similar a lo que ya conocemos de programación orientada a objetos pero con ciertas variantes. Y por último, una variable global en CLIPS no es nada diferente a lo que ya conocemos de lenguajes de programación comunes, es decir que una variable global es un “espacio” de almacenamiento al cual se le puede asignar a que almacene un valor, y este valor será visible en todo el entorno CLIPS.

1 comentario: