lunes 14 de mayo de 2007

Agentes BDI (Belief-Desire-Intention)

Un agente BDI es un tipo de agente racional que presenta actitudes mentales: Creencias (Beliefs), Deseos (Desires) e Intenciones(Intentions).
Este modelo tiene cierta base filosófica, basándose en una teoría del razonamiento práctico humano expuesta por Michael Bratman. (Bratman, M. E. [1987] (1999). Intention, Plans, and Practical Reason. CSLI Publications. ISBN 1-57586-192-5.)

Creencias

Representan el estado de información del agente, es decir, sus conocimientos sobre el entorno (sobre si mismo y sobre otros agentes).
Las creencias pueden contener también reglas de inferencia, permitiendo encadenamiento hacia adelante para inferir nuevo conocimiento.
Normalmente, esta información será guardada en una base de datos (Base de Conocimientos).
El conocimiento que posee un agente (Hechos + Reglas) puede no ser necesariamente verdad, e incluso cambiar en el futuro.

Deseos

Los deseos o metas representan el estado de motivación del agente, esto es, los objetivos o las situaciones que el agente quisiera lograr o causar.
Ejemplos de deseos: lograr el mejor precio, hacerse rico, etc.
El uso de metas añade la restricción posterior de que dicho conjunto de metas debe ser consistente, evitando metas concurrentes.

Intenciones

Las intenciones representan el estado deliberativo del agente; lo qué el agente ha elegido hacer.
Las intenciones son los deseos en los cuales el agente tiene que un cierto grado de confianza (en sistemas puestos en ejecución, esto significa que el agente ha comenzado a ejecutar un plan).

Planes

Los planes son secuencias de acciones que un agente puede realizar para alcanzar una o más de sus intenciones.
Los planes pueden incluir otros planes, por ejemplo: un plan para conducir puede incluir un plan para encontrar las llaves del coche.
Esto refleja que en el modelo de Bratman, los planes están inicialmente concebidos de forma parcial, entrando en detalle mientras qprogresan.

El modelo BDI es una extensión de los Sistemas Basados en Reglas, añadiendo los conceptos de Deseos, Intenciones y Planes.

viernes 11 de mayo de 2007

Sistemas Basados en Reglas de Producción

Las reglas de producción son un método procedimental de representación del conocimiento, es decir, pone énfasis en representar y soportar las relaciones inferenciales del dominio, en contraposición a los métodos declarativos (énfasis en la representación de los hechos).
La estructura de una regla es:

SI <antecedentes>
ENTONCES <consecuentes>

Los antecedentes son las condiciones y los consecuentes las conclusiones, acciones o hipótesis.
Cada regla por si misma constituye un gránulo completo de conocimiento.

La inferencia en los Sistemas Basados en Reglas se realiza mediante emparejamiento. Hay dos tipos, según el sentido:
  • Sistemas de encadenamiento hacia adelante: una regla es activada si los antecedentes emparejan con algunos hechos del sistema.
  • Sistemas de encadenamiento hacia atrás: una regla es activada si los consecuentes emparejan con algunos hechos del sistema.
Arquitectura de los Sistemas Basados en Reglas:



  • Base de Conocimientos: reúne todo el conocimiento del sistema (Hechos + Reglas).
  • Memoria Activa: contiene los hechos que representan el estado actual del problema (iniciales + inferidos a posteriori) y las reglas activadas (en condiciones de ser ejecutadas).
  • Motor de Inferencias: decide que reglas activadas se ejecutarán.
Más información:

jueves 10 de mayo de 2007

Jess: un Sistema Experto Basado en Reglas para Java

Jess es un Sistema Basado en Reglas de Producción (IA, Tema 3, parte 3, pág. 13) y un entorno de scripting implementado enteramente en Java por Ernest Friedman-Colina en Sandia National Laboratories en Livermore, California.
Usando Jess, se puede construir software en Java con capacidad para obtener resultados inteligentes, usando conocimiento que se provee en forma de reglas declarativas.
Jess es pequeño, ligero, y uno de los motores de reglas más rápidos disponibles. Su lenguaje de scripting permite el acceso a todas las API de Java.
Para realizar su cometido, utiliza una versión avanzada del algoritmo RETE (IA, Tema 3, parte 3, pág. 17) para procesar reglas. RETE mejora la eficacia del emparejamiento de reglas en el Motor de Inferencias.
Jess permite encadenamiento de reglas hacia adelante, emparejando hechos en Memoria Activa con antecedentes, y hacia atrás, emparejando hipótesis en Memoria Activa con consecuentes. Además puede manipular y razonar directamente sobre objetos de Java. Se pueden crear objetos, llamar a métodos, o ejecutar interfaces sin tener que compilar ningún código Java.
Jess no es gratuito, pero está disponible sin ningún coste para uso académico.

JADE trae un ejemplo sencillo de Jess, cuyo código fuente está en jade\src\examples\jess, o bien puede descargarse ya compilado y con el javadoc creado desde aquí. Implementa un comportamiento (BasicJessBehaviour.java) que permite integrar Jess dentro del código de un agente (JessAgent.java). Las reglas que se especifican (JadeAgent.clp) son muy simples; simplemente contesta con un mensaje propose cuando se le envía un cfp.





Conviene recordar que Jess es un Sistema Basado en Reglas, por lo que pertece a la IA simbólica, es decir, se obtiene un resultado "inteligente", pero para llegar a él no se realiza ningún tipo de razonamiento humano, simplemente se hacen emparejamientos de reglas preestablecidas.

jueves 3 de mayo de 2007

Agentes Inteligentes y Libros Digitales

La Universitat Oberta de Catalunya creo un sistema en el que se implementa un libro inteligente para la asignatura Matemática Discreta del segundo semestre de los estudios de Ingeniería Técnica Informática.

Este libro digital, implementado mediante un conjunto de agentes inteligentes, permite simulaciones interactivas, lectura del texto, realización de informes de seguimiento y adaptación del libro según estrategias establecidas por el profesor.

Para implementar este se ha diseñado un conjunto de componentes autónomos y reutilizables
(agentes) que trabajan sobre una plataforma cliente-servidor. A este conjunto de agentes orientados a los sistemas de aprendizaje se le ha denominado ALF [4] (Adaptative Learning Framework). Su arquitectura por capas se muestra en la Ilustración 1.

La representación del conocimiento en ALF se basa en las redes semánticas. En una red semántica la información se representa como un conjunto de nodos conectados unos con otros mediante un conjunto de arcos etiquetados que representan las relaciones entre los nodos. Los contenidos escritos por el profesor deben estructurarse en forma de red, cuyos nodos son nodos de información y cada conexión entre ellos una relación conceptual.



http://cv.uoc.es/~grc0_000252_web/Articles/Pon_Huelva.PDF

jueves 26 de abril de 2007

Sistema Multiagente Adaptativo para el Comercio Electrónico

En este sistema de comercio electrónico, se pretende el desarrollo de un modelo de comercio que facilite la entrada de PYMES en el mundo del comercio electrónico. Así, se ha implementado un sistema de comercio electrónico, fundamentado en una arquitectura de comercio basada en los catálogos electrónicos de productos (e-CoUSAL).

Este sistema se basa en un modelo de agente adaptativo , el cuál propone una capa de meta-conocimiento que proporciona a cada agente la habilidad de tomar decisiones apropiadas en el control del proceso o adaptar su comportamiento en tiempo real a nuevas circunstancias que puedan aparecer. Esto dota al agente de un mecanismo de auto-control dinámico que organiza su comportamiento en concordancia con su estado interno y el estado de su entorno. El meta-conocimiento permite dinámicamente actualizar el conjunto de reglas lógicas internas que describen el comportamiento del agente.

El meta-conocimiento por tanto, se basa en datos del agente en sí mismo, de su entorno y de los sistemas de decisión utilizados en la definición de su comportamiento junto con el modo en que estos criterios de decisión se modifican.
Mediante una adaptación, de este modelo general de agente adaptativo (Figura 3), a las características de la arquitectura de comercio electrónico de e-CoUSAL (Figura 4), fijamos el papel del usuario como actor que interacciona con el sitio intermediario, que basándose en la interacción (como entrada explícita) y en el meta-conocimiento (almacenado y generado dinámicamente), le presenta las páginas personalizadas que ofrecen información relevante de acuerdo a cada cliente concreto.

http://www-lsi.ugr.es/~fguti/taller/06/Ana%20Gil.pdf

jueves 19 de abril de 2007

Redes de Neuronas Artificiales (RNA)

Es un mecanismo de emulación del funcionamiento del cerebro a bajo nivel, usado para construir sistemas inteligentes.
Son sistemas masivamente paralelos formados por un gran número de elementos de procesos simples (neuronas artificiales) unidas por conexiones unidireccionales ponderadas (con un peso asociado) y que, normalmente se organizan en capas.
El procesamiento en cada elemento de proceso es local, depende sólo de entradas (con sus pesos de conexión) y, opcionalmente, de su estado anterior.
La red se adapta mediante un aprendizaje que modifica los pesos de las conexiones (pesos sinápticos), que son los responsables de almacenar el conocimiento.

Modelo de neurona artificial:

Donde:

Entradas: pueden ser binarias ({0, 1}), bipolares ({−1,+1}) o contínuas ([0, 1]), con pesos sinápticos, que representan la intensidad de la conexión ([0, 1]).

Funciones del cuerpo de la neurona:
  • Función de transferencia (): Calcula la entrada al elemento de proceso, combinando los valores de los pesos y de las entradas.
  • Función de activación (g): Calcula el estado de activación de la neurona en función de las entradas y, opcionalmente, del estado de activación actual.
  • Función de salida (a): Genera la salida de la neurona en función del estado de activación.
Más información:

viernes 13 de abril de 2007

Introducción al aprendizaje en agentes

En este blog vamos a estudiar las diferentes formas que existen para que los agentes software adquieran conocimiento por si mismos, es decir, que realicen un proceso de aprendizaje. Esto se conseguirá mediante la Inteligencia Artificial (IA), que consiste en diseñar sistemas de computación que muestren las características que asociamos con la inteligenciaen los seres humanos, tales como aprendizaje, razonamiento, comprensión del lenguaje y resolución de problemas.

Existen dos aproximaciones distintas, es decir, dos fomas de ver la IA:
  • IA subsimbólica: sistemas que "piensen" de forma inteligente. Es decir, que reproduzcan los mecanismos y procesos mentales de los seres inteligentes. Ejemplo: Redes de Neuronas Artificiales.
  • IA simbólica: sistemas que "actúen" de forma inteligente. Es decir, lo que importa es que el resultado obtenido se considere "inteligente". Ejemplo: Sistemas Expertos.
En próximas entradas iremos estudiando en profundidad los diferentes enfoques de la IA.