ensayo jess2
Post on 04-Apr-2018
214 Views
Preview:
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
top related