ensayo jess2

Upload: emmanuel-sanchez

Post on 04-Apr-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/31/2019 Ensayo JESS2

    1/11

    Introduccin

    En el presente ensayo hablaremos sobre JESS que es en s, una breve

    descripcin del porque naci esa idea de desarrollar esta herramienta, tambin

    describimos el uso de JESS, para quienes van dirigidos, si tiene algn costo el

    usar la librera.

    JESS permite crear sistemas que piensen por si solo es por eso, que describimos

    las partes que conforma a JESS como un sistema experto. De la misma manera

    hablamos del ciclo de inferencia, que no es ms la forma que trabaja al trata de

    solucionar un problema.

    Tambin explicaremos que este leguaje es como cualquier otro al hacer uso de

    sentencia o condiciones, cabe aclarar que la sintaxis depender de java, pero la

    forma de trabajar es como en cualquier otro entorno de programacin.

    Con la ayuda de JESS podemos realizar nuestro propio sistema experto con base

    a reglas que nosotros mismo lo podemos definir.

  • 7/31/2019 Ensayo JESS2

    2/11

    JESS (Java Expert System Shell)

    JESS (Java Expert System Shell) fue escrito por Ernest Friedman-Hill en Sandia

    National Laboratories en Livermore, California como parte de un proyecto de

    investigacin interna y su primera versin fue escrita a finales de 1995. Nos sirve

    para realizar sistemas expertos, es uno de los motores ms rpidos de reglas

    disponibles. Su lenguaje tiene gran alcance que le permite acceder a todas las API

    de Java.

    Por otra parte cabe mencionar que fue escrito cuando Java era muy nuevo as que

    se ha ido mejorando con el paso del tiempo, con diferentes aportaciones de

    usuarios de JESS que han contribuido con cdigo, parches y sugerencias, tiene

    muchas caractersticas nicas y por supuesto JESSdirectamente puede manipular

    y razonar sobre objetos Java para el uso de JESS se debe entender qu es un

    sistema experto, la relacin que tienen con la IA (Inteligencia Artificial) mas la

    integracin que tiene con JADE, JESS es un programa que emula al razonamiento

    humano, de manera que ejecuta ciertas reglas (definidas por el programador)

    sobre el conocimiento que se tiene.

    Los sistemas expertos estn siendo muy utilizados ltimamente por todos, antes

    se pensaba en cosas que solo las podan realizar los seres humanos dada que su

    realizacin requieren ciertas habilidades, por ejemplo, la capacidad de pensar,

    memorizar, aprender, ahora salen sistemas que son inteligentes gracias a la IA y

    software como JESS que nos permiten crear sistemas que piensen por s

    mismos, ya que estn programados para que hagan determinadas cosas con lainformacin precisa de un dominio y con capacidad de aprender sobre l y estos

    llegan a trabajar de forma similar a una persona que est especializada en el

    dominio elegido.

    http://www.sandia.gov/http://www.sandia.gov/http://www.sandia.gov/http://www.sandia.gov/
  • 7/31/2019 Ensayo JESS2

    3/11

    En ese sentido est orientado a actuar como un especialista humano quien puede

    ser consultado acerca de una serie de problemas que caen dentro del rango de su

    experiencia para que puedan resolver adecuadamente los problemas que se

    encuentren a la hora de funcionar. Porque no solamente manipula gran cantidad

    de datos si no que tambin los puede manipular inteligentemente.

    En relacin a lo antes mencionado un sistema experto en JESS est formado por:

    Base de conocimientos (BC): contiene conocimiento modelado extrado del

    dilogo con el experto.

    Base de hechos (BH) (Memoria de trabajo): contiene los hechos sobre un

    problema que se ha descubierto durante el anlisis y pueden ir aumentando a

    medida que se descubran nuevos hechos en los ciclos de inferencia.

    Motor de inferencia: modela el proceso de razonamiento humano. Es el que

    decide qu reglas de inferencia ejecutar siguiendo los pasos de un algoritmo.

    Mdulos de justificacin: Explica el razonamiento utilizado por el sistema para

    llegar a una determinada conclusin.

    Interfaz de usuario: es la interaccin entre el Sistema Experto y el usuario, y se

    realiza mediante el lenguaje natural.

    Para esto hay dos estrategias: el encadenamiento hacia delante (forwardschaining), que es la estrategia que suele utilizar JESS para sus sistemas expertos

    ya que lo hace de manera ms clara y precisa segn ellos, consiste en aplicar al

    conocimiento base otro conocimiento (las reglas) para obtener nuevos resultados,

    y el encadenamiento hacia atrs (backwards chaining): parte de una hiptesis

    inicial y luego intenta demostrarla con la informacin que se tiene.

  • 7/31/2019 Ensayo JESS2

    4/11

    Cada vez que haya una pregunta por resolver, se buscar la solucin siguiendo el

    algoritmo elegido y muchas veces se podr obtener nueva informacin en forma

    de hechos.

    A esto se le llama el Ciclo de Inferencia:

    1. Se buscan todas las posibles reglas aplicables

    2. Se selecciona una de las reglas segn un orden de preferencia.

    3. Se aplica la regla seleccionada y se actualiza.

    Por ello JESS provee un conjunto de archivos .java y .class, los cuales permiten eldesarrollo de estos sistemas basados en reglas y fciles de usar fue concebido

    originalmente como una herramienta para la construccin de sistemas

    expertos. En el mundo de los sistemas multi-agente, que puede ser utilizado como

    un componente de decisin de un agente, que es implementado de una manera

    declarativa, que pueden acoplarse de diferentes formas con el lenguaje de

    programacin Java as se pueden crear objetos, llamar a mtodos, o ejecutar

    interfaces sin tener que compilar ningn cdigo Java. Para realizar el cometido de

    que en JESS se puedan realizar sistemas expertos utiliza una versin avanzada

    del algoritmo RETE para procesar reglas. RETE mejora la eficacia del

    emparejamiento de reglas en el Motor de Inferencias que se basa en la

    informacin que hay en la Base del Conocimiento y en un algoritmo para

    responder preguntas que el mismo programa puede formularse al querer realizar

    una determinada accin y as satisfacer las necesidades que se generen en ese

    momento.

    En ese sentido RETE es un algoritmo de reconocimiento de patrones eficiente

    para implementar un sistema de produccin de reglas. Fue creado por el

    Dr. Charles L. Forgy. Este algoritmo es hoy en da la base de muchos sistemas

    http://es.wikipedia.org/wiki/Reconocimiento_de_patroneshttp://es.wikipedia.org/w/index.php?title=Sistema_de_producci%C3%B3n_de_reglas&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Charles_Forgy&action=edit&redlink=1http://es.wikipedia.org/wiki/Sistema_expertohttp://es.wikipedia.org/wiki/Sistema_expertohttp://es.wikipedia.org/w/index.php?title=Charles_Forgy&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Sistema_de_producci%C3%B3n_de_reglas&action=edit&redlink=1http://es.wikipedia.org/wiki/Reconocimiento_de_patrones
  • 7/31/2019 Ensayo JESS2

    5/11

    expertos muy famosos, incluyendo CLIPS, JESS, Drools, y Soar. Es la base de

    diversas implementaciones ms eficientes de sistemas expertos. Sacrifica

    memoria para incrementar velocidad de procesamiento. En la mayora de los

    casos el incremento de velocidad comparado con la implementacin simple es de

    varios rdenes de magnitud.

    De tal forma sistema experto basado en RETE construye una red de nodos, donde

    cada uno de ellos representa un patrn que aparece en la parte izquierda de una

    regla. As se pueden llevar acabo dichas reglas sin ocasionar conflictos en el

    sistemas experto, por la simplicidad que tiene RETE es uno o si no el ms usado

    para este tipo de sistemas. En realidad JESS usa el algoritmo RETE de un modo

    distinto a otros sistemas, pues tambin incluye un tipo de encadenamiento hacia

    atrs, que va desde lo ya hecho hasta la pregunta que se puede generar.

    De acuerdo con lo dicho anteriormente JESS es un Sistema Basado en Reglas,

    por lo que pertenece a la IA, es decir, se obtiene un resultado "inteligente", pero

    para llegar a l no se realiza ningn tipo de razonamiento humano, simplemente

    se hacen emparejamientos de reglas preestablecidas para que este compare y

    reaccione de la mejor forma posible en ese momento, esto se define como

    programacin orientada a reglas, porque como ya mencionamos se gua en base

    a reglas que el usuario o programador definen en el momento de crear su sistema

    experto, El rendimiento de un sistema basado en Rete no depende tanto de la

    cantidad de reglas y hechos, sino en el nmero de coincidencias parciales

    generadas por las reglas.

    La licencia de JESS no es de cdigo libre, suele ser libre para uso educativo o

    para el uso en el gobierno pero para uso comercial como empresas y comercios

    ah si cobran porque ellos pueden sacar provecho de los sistemas que realicen

    http://es.wikipedia.org/wiki/Sistema_expertohttp://es.wikipedia.org/wiki/CLIPShttp://es.wikipedia.org/w/index.php?title=Jess_programming_language&action=edit&redlink=1http://es.wikipedia.org/wiki/Droolshttp://es.wikipedia.org/w/index.php?title=Soar_(cognitive_architecture)&action=edit&redlink=1http://es.wikipedia.org/wiki/V%C3%A9rtice_(teor%C3%ADa_de_grafos)http://es.wikipedia.org/wiki/V%C3%A9rtice_(teor%C3%ADa_de_grafos)http://es.wikipedia.org/w/index.php?title=Soar_(cognitive_architecture)&action=edit&redlink=1http://es.wikipedia.org/wiki/Droolshttp://es.wikipedia.org/w/index.php?title=Jess_programming_language&action=edit&redlink=1http://es.wikipedia.org/wiki/CLIPShttp://es.wikipedia.org/wiki/Sistema_experto
  • 7/31/2019 Ensayo JESS2

    6/11

    con JESS, y como sabemos un sistema experto bueno no es sencillo de realizar y

    por eso vale mucho ms dinero que un estudiante este realizando pruebas con

    este, segn sus creadores es nada ms para que se pueda seguir manteniendo

    JESS con aportaciones o pagos que realicen los usuarios. Para descargarlo se

    hace atrs ves de su pgina http://www.jessrules.com/, ellos mismos mencionan

    en ella que no hay ms sitios autorizados para que se pueda descargar el software

    de JESS.

    En JESS como en cualquier otro lenguaje podemos encontrar elementos bsicos

    como palabras reservadas, variables locales o globales, funciones y estructuras

    como if-then, while, foreach, for, try-catch,... Y cuyo funcionamiento es bastante

    similar a java. Por eso es que no es muy difcil aprenderlo e implementarlo, trabaja

    en base a 3 puntos que son claves para su funcionamiento:

    Hechos:son la forma que utiliza JESS para representar el conocimiento.

    Reglas:nos indican la accin que se debe llevar a cabo cuando surge una

    determinada condicin.

    Preguntas:se utilizan para obtener respuestas.

    Como se ha dicho al comienzo, JESS se puede integrar en Java y acceder a sus

    clases y libreras. Y viceversa, Java se puede integrar en JESS. Ahora lo que se

    va a ver es cmo se puede integrar JESS en un agente inteligente

    especficamente en JADE que es el que hemos estado usando en las practicas de

    IA, para que se nos facilite mas, en verdad no hemos buscado mas creadores de

    agentes inteligentes solo sabemos este, suponemos que hay mas pero en este

    ensayo hablaremos de JADE. Antes de la integracin de ambas herramientas, es

    esencial tener en cuenta alguna de las principales cuestiones relativas al

    funcionamiento de ambos agentes JADE y motores de Jess. Adems, hay una

    http://www.jessrules.com/http://www.jessrules.com/
  • 7/31/2019 Ensayo JESS2

    7/11

    serie de enfoques diferentes que permiten elegir la cantidad del programa de

    agentes que desea implementar en JESS.

    Un agente inteligente es algo ms que un programa informtico, es una entidad

    capaz de realizar tareas en nombre de un usuario o de modo autnomo (siguiendo

    sus propios objetivos), pudiendo incluso aprender del comportamiento del usuario

    para obtener resultados ms eficaces. Su autonoma implica que no necesita estar

    interactuando constantemente con el usuario, puede seguir funcionando

    recolectando informacin, aprendiendo y comunicndose con otros agentes. En

    este contexto la racionalidad es la caracterstica que posee una eleccin de ser

    correcta, ms especficamente, de tender a maximizar un resultado esperado.

    Este concepto de racionalidad es ms general y por ello ms adecuado

    que inteligencia (la cual sugiere entendimiento) para describir el comportamiento

    de los agentes inteligentes.

    En muchas aplicaciones es necesario tener sistemas que puedan decidir por ellos

    mismos que necesitan para satisfacer sus objetivos y presentar una solucin a un

    usuario. Tales sistemas son conocidos como agentes (agentes inteligentes o

    agentes autnomos), estos tienen que actuar en entornos cambiantes e

    impredecibles, donde existe la posibilidad de que las acciones emprendidas

    puedan fallar en algunas ocasiones.

    JADE es una plataforma para implementar agentes inteligentes que cumple las

    especificaciones FIPA (estndar de las tecnologas basadas en agentes). Como

    est totalmente implementado en JAVA, es posible su integracin con JESS, de

    manera que ya podramos dotar de aprendizaje a los agentes inteligentes.

    La creacin de agentes inteligentes en JADE no es muy complicada, ya que es un

    http://es.wikipedia.org/wiki/Racionalidadhttp://es.wikipedia.org/wiki/Inteligenciahttp://jade.tilab.com/http://www.fipa.org/http://www.fipa.org/http://jade.tilab.com/http://es.wikipedia.org/wiki/Inteligenciahttp://es.wikipedia.org/wiki/Racionalidad
  • 7/31/2019 Ensayo JESS2

    8/11

    documento .java donde las clases heredan de jade.core.Agent. Esos agentes

    pueden tener comportamientos, que es donde se va a integrar JESS.

    En primer lugar, vale la pena recordar que, en principio, un agente JADE es un

    nico subproceso. Esto significa que se debe tener cuidado si un agente debe sercapaz de interactuar con su entorno, mientras que el razonamiento y toma de

    decisiones. Esto no es JESS relacionado, sin embargo. Independientemente de si

    usted utiliza JESS, ste es un tema a tener en cuenta. Una de las clases ms

    importantes que tiene JAVA para comunicarse con JESS es jess.Rete. Con ella se

    genera el motor de reglas y cada objeto de esta clase tiene su propia memoria de

    trabajo, esto para que vaya reconociendo lo que va haciendo el programa y vaya

    aprendiendo lo que se debe y no se debe hacer en determinado momento del ciclo

    de vida del agente.

    Al ser un motor de reglas, JESS incluye una clase especial llamada Rete, que

    implementa el motor de inferencia basado en reglas. Para incrustar JESS en una

    aplicacin Java (tal como un agente JADE), slo tiene que crear una

    Jess.Rete objeto y manipularlo adecuadamente. Ahora, uno de los mtodos

    incluidos en esta clase que permite llevar a cabo el motor de inferencia

    es Rete.run(). Este mtodo har que el motor de forma consecutiva despedir a las

    normas aplicables, y regresar slo cuando no hay ms reglas al fuego, es decir,

    cuando el motor se detiene, por lo tanto, mientras que el hilo de la llamada ser

    bloqueado.

    Ahora bien, si bloquear el subproceso de llamada, bloqueamos todo el subproceso

    nico agente. Esto puede ser relevante o no, dependiendo del tiempo que el

    razonamiento basado en reglas tomar. Afortunadamente, el jess.Reteclase

    incluye otro mtodo de ejecucin que nos permite especificar el nmero mximo

    de ciclos que el motor debe funcionar. Esto nos permitir intercalar el

  • 7/31/2019 Ensayo JESS2

    9/11

    razonamiento basado JESS con las actividades de otros agentes, La integracin

    de JADE y JESS se puede hacer en un nmero de formas diferentes.

    Con respecto a lo antes mencionado un ejemplo puede ser que si eres comprador

    constante de algn producto en lnea el agente te clasifique en primer lugar aquien ms le compras as sucesivamente los que no van siendo de tu agrado,

    tambin se puede una lista de los peores vendedores de esos productos segn tu

    opinin e ir aprendiendo de ti. Los agentes van relacionados con el sistema

    experto y el agente sigue lo que el sistemas aprendi del usuario, ya solo el

    agente interacciona con las cosas aprendidas.

    En conclusin JESS (Java Expert System Shell) es tanto una regla basada

    lenguaje para la especificacin de los sistemas expertos, y un sistema basado en

    normas para la ejecucin de los sistemas expertos. Un sistema experto es un

    sistema que puede razonar sobre hechos acerca del mundo mediante reglas, y

    tomar las acciones apropiadas como resultado. El sistema de JESS se implementa

    en Java, y se puede ejecutar tanto como un intrprete independiente

    (interpretando cadenas individuales de JESS, o archivos enteros que contienen

    JESS cdigo) o de cdigo Java. JESS tambin es capaz de llamar a cdigo

    externo Java.

    As podemos relacionar JESS con JADE para poder crear agentes inteligentes que

    puedan Pensar por ellos mismos a la hora de presentarse problemas o

    preguntas en el sistema, como mencionamos los sistemas expertos son y seguirn

    siendo muy utilizados por las personas, los medios de comunicacin y los

    transportes ya que no facilitaran la vida diaria, hasta llegar el momento en que casi

    no hagamos nada, eso para nosotros est mal, porque en nuestro punto de vista

    nos haremos cada vez mas intiles, pero para cosas donde arriesguemos la vida

    es bueno que este un sistema experto.

  • 7/31/2019 Ensayo JESS2

    10/11

    En JESS, la condicin de una regla puede estar compuesta por varios patrones,

    usa el algoritmo RETE para unir estos patrones y poder solucionar los problemas

    que se generen a la hora de interactuar con el sistema, ya que los modelos derepresentacin basados en reglas son de los que ms se usan porque resulta muy

    apropiado en situaciones en las que el conocimiento que se desea representar

    surge de forma natural a diferencia de otros modelos.

    Referencias

    Sandia National Laboratories (2012). Jess. Consultado en Noviembre 2, 2012 en

    http://www.jessrules.com/jess.

    Wikipedia (2012). Jess (programming language). Consultado en Noviembre 2,

    2012 enhttp://en.wikipedia.org/wiki/Jess_(programming_language).

    Pete Barnum (2006). Basic Tutorial JESS. Consultado en Noviembre 2, 2012 en

    http://www.cs.rochester.edu/~brown/242/docs/JessTutorial.html.

    Barbie Morales (2008). JESS un Sistema Experto. Consultado en Noviembre 2,

    2012 enhttp://ai-barbie.blogspot.mx/2008/10/jess-un-sistema-experto.html.

    Diana (2008). La base del conocimiento en JESS. Consultado en Noviembre 2,

    2012 enhttp://jess-jade.wetpaint.com/page/La+base+del+conocimiento+en+JESS.

    Wikipedia (2011). Algoritmo Rete. Consultado en Noviembre 2, 2012 en

    http://es.wikipedia.org/wiki/Algoritmo_Rete.

    Jason Morris (2005). El Zen de Jess II. Consultado en Noviembre 3, 2012 en

    http://www.jessrules.com/jess/zen.shtml.

    Martin Strauss (2007). JESS. Consultado en Noviembre 3, 2012 en

    http://www.dfki.de/~kipp/seminar_ws0607/reports/martin_strauss.pdf.

    http://www.jessrules.com/jesshttp://www.jessrules.com/jesshttp://en.wikipedia.org/wiki/Jess_(programming_language)http://en.wikipedia.org/wiki/Jess_(programming_language)http://en.wikipedia.org/wiki/Jess_(programming_language)http://www.cs.rochester.edu/~brown/242/docs/JessTutorial.htmlhttp://www.cs.rochester.edu/~brown/242/docs/JessTutorial.htmlhttp://ai-barbie.blogspot.mx/2008/10/jess-un-sistema-experto.htmlhttp://ai-barbie.blogspot.mx/2008/10/jess-un-sistema-experto.htmlhttp://ai-barbie.blogspot.mx/2008/10/jess-un-sistema-experto.htmlhttp://jess-jade.wetpaint.com/page/La+base+del+conocimiento+en+JESShttp://jess-jade.wetpaint.com/page/La+base+del+conocimiento+en+JESShttp://jess-jade.wetpaint.com/page/La+base+del+conocimiento+en+JESShttp://es.wikipedia.org/wiki/Algoritmo_Retehttp://es.wikipedia.org/wiki/Algoritmo_Retehttp://www.jessrules.com/jess/zen.shtmlhttp://www.jessrules.com/jess/zen.shtmlhttp://www.dfki.de/~kipp/seminar_ws0607/reports/martin_strauss.pdfhttp://www.dfki.de/~kipp/seminar_ws0607/reports/martin_strauss.pdfhttp://www.dfki.de/~kipp/seminar_ws0607/reports/martin_strauss.pdfhttp://www.jessrules.com/jess/zen.shtmlhttp://es.wikipedia.org/wiki/Algoritmo_Retehttp://jess-jade.wetpaint.com/page/La+base+del+conocimiento+en+JESShttp://ai-barbie.blogspot.mx/2008/10/jess-un-sistema-experto.htmlhttp://www.cs.rochester.edu/~brown/242/docs/JessTutorial.htmlhttp://en.wikipedia.org/wiki/Jess_(programming_language)http://www.jessrules.com/jess
  • 7/31/2019 Ensayo JESS2

    11/11