Paradigma Orientado a Agentes

Anuncio
Paradigma Orientado a
Agentes
Inteligencia Artificial
Silvana Arias – Carla Espinosa – Livia Loaiza – Beatriz Pasaca
2010
Paradigma Orientado a Agentes
PARADIGMA ORIENTADO A AGENTES
En los últimos años diferentes aplicaciones basadas en el paradigma de agente han ido
apareciendo intentando buscar fundamentalmente una solución al problema de la explosión de la
información. Unido a otros factores, como es el espectacular aumento del uso de la red, ha
provocado que internet haya sido y sea un excelente campo de pruebas para el desarrollo y
generación de agentes.
De manera que, luego de la masiva aplicación del paradigma de orientación a objetos, surge la
necesidad de subir un nivel más de abstracción para poder desarrollar aplicaciones de mayor
complejidad. Entidades autónomas, paralelismo, capacidad de comunicación, colaboración y
negociación son algunas de las claves del paradigma de agentes.
Siendo que un agente inteligente es (a grandes rasgos) una entidad que observa y actúa en un
entorno para intentar alcanzar unos objetivos.
Los agentes inteligentes hay que entenderlos más cómo un paradigma de diseño que cómo una
solución a un problema. Y entendidos como un paradigma de diseño, son innegablemente útiles,
ya que sirven para modelar un programa siguiendo un comportamiento inspirado en el de los
seres vivos. También sirven para implementar la noción de agente situado en un entorno, que
permite definir los límites en el sistema y así mejorar el rendimiento nuestro agente: no es
necesario diseñar un agente que opere en cualquier entorno, sino uno que lo haga en el entorno
que hemos definido. Lo importante para diseñar el agente no es sólo los objetivos, sino el entorno
y la interacción con el mismo.
Sin embargo, el hecho de usar este paradigma no ayuda a resolver por sí mismo los problemas.
Hay otro factor importante: a veces se plantea un problema en términos de agentes inteligentes y
se espera que el simple planteamiento en estos términos sirva para resolver el problema. La
realidad es que el problema es complejo de resolver empleando cualquier paradigma, el problema
es complejo en términos absolutos, da igual cómo lo resolvamos.
En los últimos años el uso del paradigma agente/sistema ha crecido notablemente. Este
paradigma se ha venido aplicando a diferentes áreas, como pueden ser control de procesos,
robots móviles y recuperación de información.
El paradigma de sistemas multi-agente constituye actualmente un área de creciente interés dentro
de la Inteligencia Artificial, entre otras cosas, por ser aplicable a la resolución de problemas
complejos no resueltos de manera satisfactoria mediante técnicas clásicas.
Paradigma Orientado a Agentes
Paradigma de Objetos vs Paradigma de Agente.
Objetos





Ejecuta los métodos invocados
Flujo de control del llamante
Encapsula estado y comportamiento
Estado: valor de variables
Comportamiento: salida a partir de una
entrada
 Mensajes invocan procedimiento
 Asociaciones entre objetos
Agentes
 Autonomía de decisión
 Flujo de control propio
 Encapsula
la
activación
del
comportamiento
 Estado mental: objetivos, creencias, ...
 Comportamiento: cómo decidir lo que
hacer
 Interacciones:
actos
de
habla
(intencionalidad)
 Organización: relaciones sociales entre
agentes
Metodología
Una metodóloga constituye un conjunto de etapas o fases que van guiando a los
diseñadores partiendo de una definición de alto nivel hacia una aproximación a una
implementación.
La necesidad de utilizar una metodología

Desarrollar SMAs es complejo

Hay soluciones tecnológicas:

Arquitecturas: subsunción, BDI, capas.

Entornos de desarrollo: Zeus, AgentBuilder.

Plataformas de ejecución: JADE, FIPA-OS, Jackal, OAA, etc.

Pero hace falta responder a varias cuestiones:






Qué problema tengo que resolver
Desarrollar muchos agentes o agentes de elevada complejidad
Explicar a otros cómo es el SMA
Trabajar más de una persona: Coordinar el trabajo
Valorar la calidad del desarrollo
Qué proceso seguir
Paradigma Orientado a Agentes
La metodología ayuda
Lo necesario para definir una metodología
 Definir los resultados a producir
• Documentación
• Código, prototipos, pruebas
 Un lenguaje para definir los resultados
• Visuales: Data Flow Diagrams, Entity-Relationship diagrams, Message Sequence
Charts, UML
• Formales: Z, redes de Petri
 Actividades orientadas a producir los resultados
• De análisis, diseño, implementación, validación,etc.
 Guías
 Métricas
 Paradigma de ingeniería del software
• Estructuración de actividades
• Estimación de habilidades necesarias en el equipo de desarrollo
• Gestión del proceso
Paradigma Orientado a Agentes
Metodologías de desarrollo de SMA
A continuación se enumeran las principales metodologías de agentes.



Ingenias. Esta metodología ha sido diseñada por un grupo de investigadores de la
Universidad Complutense de Madrid. Ingenias se basa en los resultados obtenidos por la
metodología Message y, por lo tanto, se basa en 5 metamodelos desde los cuales se
define el sistema multiagente.
Gaia. Intenta ayudar a ir desde unos requisitos iniciales a un diseño lo suficientemente
detallado para ser implementado automáticamente.
MaSE. Parte del paradigma orientado a objetos y considera que un agente es sólo una
especialización de un objeto. Esta especialización consiste en que los agentes se coordinan
unos con otros mediante conversaciones y actúan para alcanzar sus propias metas y las
metas de todo el sistema.
Paradigma Orientado a Agentes

Otras como: Zeus, Adelfe, AAII (Australian Artificial Intelligence Institute), Tropos, Zeus,c
MAS-CommonKADS, MESSAGE, Newell.
MaSE (Multi-agent systems Software Engineering)
Parte del paradigma orientado a objetos y asume que un agente es sólo una especialización de un
objeto. La especialización consiste en que los agentes se coordinan unos con otros vía
conversaciones y actúan proactivamente para alcanzar metas individuales y del sistema.
En MaSE los agentes son sólo una abstracción conveniente, que puede o no poseer inteligencia. En
este sentido, los componentes inteligentes y no inteligentes se gestionan igualmente dentro del
mismo armazón. El proceso de desarrollo en MaSE es un conjunto depasos, la mayoría de los
cuales se ejecutan dentro de la herramienta que soporta MaSE, AgentTool
El análisis en MaSE consta de tres pasos: capturar los objetivos, capturar los casos de uso y refinar
roles. Como productos de estas etapas se esperan: diagramas de objetivos, que representan los
requisitos funcionales del sistema; diagramas de roles, que identifica roles, tareas asociadas a
roles y comunicaciones entre roles y entre tareas; y casos de uso, mostrados no como diagrama
sino como una enumeración de los casos de uso considerados con la posibilidad de usar diagramas
de secuencia para detallarlos.
El diseño consta de cuatro pasos: crear clases de agentes, construir conversaciones, ensamblar
clases de agentes y diseño del sistema. Como productos de estas etapas, MaSE espera: diagramas
de clases de agentes, que enumeran los agentes del sistema, roles jugados e identifican
conversaciones entre los mismos; descomposición del sistema (agente) en subsistemas
(componentes del agente) e interconexión de los mismos (definición de la arquitectura del agente
mediante componentes); diagramas UML de despliegue para indicar cuántos agentes habrá en el
sistema y de qué tipo.
GAIA
GAIA es una metodóloga para el diseño de sistemas basados en agentes cuyo objetivo es obtener
un sistema que maximice alguna medida de calidad global.
GAIA pretende ayudar al analista a ir sistemáticamente desde unos requisitos iniciales a un diseño
que, según los autores, esté lo suficientemente detallado como para ser implementado
directamente.
En GAIA se entiende que el objetivo del análisis es conseguir comprender el sistema y su
estructura sin referenciar ningún aspecto de implementación. Esto se consigue a través de la idea
de organización. Una organización en GAIA es una colección de roles, los cuales mantienen ciertas
relaciones con otros y toman parte en patrones institucionalizados de interacción con otros roles.
Paradigma Orientado a Agentes
Los roles agrupan cuatro aspectos: responsabilidades del agente, los recursos que se le permite
utilizar, las tareas asociadas e interacciones.
GAIA propone trabajar inicialmente con un análisis a alto nivel. En este análisis se usan dos
modelos, el modelo de roles para identificar los roles clave en el sistema junto con sus
propiedades definitorias y el modelo de interacciones que define las interacciones mediante una
referencia a un modelo institucionalizado de intercambio de mensajes. Tras esta etapa, se entraría
en lo que GAIA considera diseño a alto nivel. El objetivo de este diseño es generar tres modelos: el
modelo de agentes que define los tipos de agente que existen, cuántas instancias de cada tipo y
que papeles juega cada agente, el modelo de servicios que identifica los servicios (funciones del
agente) asociados a cada rol, y un Modelo de conocidos, que define los enlaces de comunicaciones
que existen entre los agentes.
A partir de aquí, los autores de GAIA proponen aplicar técnicas clásicas de diseño orientado a
objetos. Sin embargo, GAIA declara que queda fuera de su ámbito. Esta metodología sólo busca
especificar como una sociedad de agentes colabora para alcanzar los objetivos del sistema, y que
se requiere de cada uno para lograr esto último.
PASSI
Para comprender esta metodóloga, es importante tener en cuenta la definición de agente
propuesta en [CP00]. Un agente es “una instancia de una clase agente que es la implementación
de software de una entidad autónoma capaz de lograr sus objetivos a través de sus decisiones
autónomas, sus acciones y sus relaciones sociales”. Un agente puede tener varios roles para
alcanzar sus metas, siendo un rol una función temporal asumida por el agente en la sociedad
mientras busca alcanzar una sub-meta.
Dentro de esta metodología podemos identificar varias fases con las cuales se asegura llegar de la
especificación del sistema a una versión implementable.
Dentro de la etapa de análisis, tenemos las siguientes fases:
 Descripción del dominio: utilizando los diagramas de casos de uso de UML se describe el
dominio de la aplicación, identificación de agentes: a partir del diagrama anterior y
utilizando Rational Rose identificamos los agentes que componen el sistema,
 Identificación de roles: los roles de los agentes los representamos mediante diagramas de
secuencia e identificación de tareas: se dibuja un diagrama de actividad para cada agente
y se deciden que tareas son necesarias para realizar las funcionalidades descritas
anteriormente.
Paradigma Orientado a Agentes
En la segunda etapa, la etapa de diseño, podemos identificar otras fases entras cuales se
encuentran: descripción de ontologías: se describe la sociedad desde el punto de vista ontológico,
descripción de roles: se modela la vida de los agentes observando sus roles, descripción de
protocolos: se define cuales protocolos se utilizarán y si es necesario, se definirán los nuevos,
definición de la estructura y del comportamiento de los agentes: se diseña la estructura de la
sociedad y de los agentes en particular.
Finalmente tenemos las fases de implementación y configuración. La fase de producción de
código no está completamente implementada, pero está en desarrollo la búsqueda de una
solución en un metalenguaje basado en XML. En cuanto a la configuración, se acentúa su
importancia si se trabaja con agentes móviles y con problemas significativos en la diseminación de
los agentes en el sistema.
Integración de metodologías
 El paradigma de agente extiende al de objeto:
 Aprovechar las metodologías OO
• Más fácil de aceptar por los ingenieros software
• Aprovecha herramientas y experiencia
 Ciclo de desarrollo iterativo e incremental, basado en casos de uso
 Extensiones:
• Aspectos sociales (organización, interacciones, negociación)
• Comportamiento (autonomía, estado mental, objetivos, tareas)
• Concurrencia y distribución
 Modelado desde varios puntos de vista (Vowel Engineering, AAII, MAS-CommonKADS,
MESSAGE)
 Para poder gestionar la complejidad del SMA
 Modelos: Entorno, dominio/ontología, roles, objetivos/tareas,
interacciones/protocolos, organización, agente.
 Análisis
 Casos de uso para capturar requisitos funcionales
 Roles y servicios para agrupar las distintas funcionalidades asociadas a un agente o
grupo de agentes
 Diseño
 Independiente de la arquitectura (Gaia)
 Basado en una arquitectura concreta (MaSE, AAII, Zeus)
 Define el modelo computacional del agente => arquitectura del agente (MASCommonKADS)
 Relevancia de las herramientas (Zeus, MaSE, MESSAGE)
Paradigma Orientado a Agentes
Arquitectura
Agente = Programa de Agente + Arquitectura
La arquitectura se refiere la parte Hardware (sensores y efectores) que están entre el entorno y el
Programa de Agente; proporciona al programa las percepciones del entorno que se obtienen a
partir de los sensores e indica a los efectores los comandos asociados a las acciones que tienen
que ejecutar. Para ejemplificarla podemos mencionar una computadora, una cámara, un brazo
robótico u otro dispositivo que funcione como sensor.
La parte más importante de la estructura para el desarrollo del sistema de agente planteado en
esta investigación es sin duda el diseño del programa de agente, para esto es necesario tomar en
cuenta puntos como el entorno en el que se desarrollará, las percepciones que se obtienen del
ambiente, las acciones que realizará el agente y los objetivos que debe alcanzar el agente.
Podemos mencionar una serie de pasos para la construcción de un programa de agente:
1. Analizar el tipo de problema que vamos a tratar para poder definir claramente el
problema.
2. Definir el entorno, las percepciones, las acciones y las metas
Paradigma Orientado a Agentes
3. Representar el conocimiento definiendo una técnica de representación
4. Diseñar el agente con la base de conocimiento y el mecanismo de inferencia respectivo.
5. Realizar las pruebas correspondientes.
Las Arquitecturas de Agentes analizan los agentes como entidades reactivas/preactivas
independientes. Las arquitecturas de agentes conceptualizan los agentes como un agregado de
componentes de percepción, acción y razonamiento. Los componentes de percepción alimentan
los de razonamiento, los cuales gobiernan las acciones de los agentes, incluyendo lo que se va a
percibir a continuación.
Las Arquitecturas de Sistemas de Agentes analizan los agentes como entidades interactivas que
proporcionan y consumen servicios. Las arquitecturas de sistemas facilitan las operaciones y las
interacciones de los agentes bajo las restricciones del entorno, y les permiten aprovechar las
facilidades y los servicios disponibles.
Lenguajes de Agentes.
Un lenguaje de agentes se definen como lenguajes que permiten programar agentes con los
términos desarrollados teóricamente acerca de los agentes, utilizando una estructura
correspondiente a un agente y propiedades de agencia modeladas con anterioridad
Los principales lenguajes de programación son:
 Lenguajes de agentes de propósito general: Destinados a programar agentes genéricos
utilizables en cualquier aplicación.
 Lenguajes de agentes específicos: Lenguajes para un tipo de agentes específicos (ej.
Telescript y Agent-Tel, utilizados para la telefonía móvil / celular).
También se pueden distinguir los siguientes niveles en la programación de agentes:
 Lenguajes de programación de la estructura del agente: permiten programar las
funcionalidades básicas para definir a un agente: funciones de creación de procesos y
funciones de comunicación entre agentes. Sólo es utilizado por programadores de
plataformas de desarrollos de agentes.
Lenguajes de programación del comportamiento del agente: permiten definir el conocimiento del
agente: conocimiento inicial (modelo de entorno, creencias, deseos, objetivos), funciones de
mantenimiento de dicho conocimiento (reglas, planes), funciones para alcanzar sus objetivos
(planes, reglas) y funciones para desarrollar habilidades (programación de servicios).
Paradigma Orientado a Agentes
Análisis de la Metodología BDI
Modelo BDI.
Un sistema que maneja agentes racionales tiene ciertos estados mentales, que son: creencias,
deseos e intenciones formando así el modelo BDI (belief, desire, intention) que representa
respectivamente la información, los motivos y los estados de liberación de un agente.
El modelo BDI combina modelos ontológicos del razonamiento humano y se mantiene en relación
con otros modelos de agentes, sin embargo tiene algunas limitaciones como lo son:
 Algunas conductas no han sido bien establecidas, en particular el modelo básico BDI
parece ser inapropiado para construir sistemas que deben aprender y adaptar su
conducta.
 No tiene consideraciones de arquitectura para aspectos explícitos de la conducta de los
multi-agentes.
 Algunos paradigmas de programación han sido modelos computacionales bien definidos y
entendidos, el modelo BDI al ser un modelo de especulación filosófica, no es sujeto de
demostración.
Creencias.
Un agente debe obtener la información del estado del medio ambiente. Basándose en la definición
presentada por Michael Georgeff [2001], las creencias representan el estado del medio ambiente
como una variable, una base de datos, un conjunto de expresiones lógicas o alguna otra estructura
de datos. Éstas se pueden se pueden ver como el componente informativo de un estado del
sistema, representando una posibilidad “imperfecta” de un posible mundo que va cambiando
constantemente, siendo así un modelo del mundo y del resto de los agentes.
Para esto, nos será muy útil clasificar la información en conocimiento y creencias acerca del
mundo, sabiendo que la diferencia es que conocimiento es algo que es verdadero en el mundo y
las creencias es lo que el agente entiende acerca del mundo, entonces un agente puede creer algo
que es falso pero no puede saberlo.
Deseos.
También llamados metas, es otro de los componentes mentales más importantes en un agente; es
el valor de una variable, el registro de una estructura o una expresión simbólica en alguna lógica.
Representa algún estado final deseado y el estado “motivacional” del sistema.
Intenciones.
Un sistema necesita terminar los planes y submetas que adopta, sin embargo debe ser capaz de
reconsiderarlos. Estos planes terminados se llaman intenciones, que son simplemente un conjunto
Paradigma Orientado a Agentes
de procesos en ejecución que pueden ser interrumpidos para retroalimentarse del posible mundo
en cambio.
El sistema debe almacenar sus intenciones actuales y éstas capturan el componente de liberación
del sistema. Para cada mundo que se puede acceder por medio de deseos existe un
correspondiente mundo que se puede acceder por medio de intenciones que contiene solo la
mejor manera de hacer una acción así como de determinar una función de liberación apropiada
[Georgeff, Pell & Pollac, 1998].
Intérprete básico.
Las entradas al sistema son eventos recibidos por medio de una cola de eventos. El sistema puede
reconocer eventos internos y externos; los eventos externos pueden generar eventos internos.
Asumimos que los eventos son atómicos y se reconocen una vez que se completan y no cuando
ocurren.
Las salidas son acciones atómicas que son realizadas por una función de ejecución. El sistema
puede reconocer eventos correspondientes a una ejecución exitosa o no exitosa de las acciones.
Basándose en el estado actual y los eventos en la cola, el sistema selecciona y ejecuta opciones
que corresponden a las subrutinas, reglas, tareas, planes o autómatas finitos.
El intérprete continuamente hace lo siguiente:
1. Determina las opciones disponibles.
2. Libera algunas para realizarlas.
3. Actualiza su estado y ejecuta las acciones atómicas apropiadas.
4. La cola de eventos es actualizada para que contenga todos los eventos reconocidos que
ocurrieron durante el ciclo.
Arquitectura BDI
Entrando más a fondo con el sistema anterior, vamos a considerar el caso de una arquitectura BDI.
Éste incluye las creencias, deseos e intenciones de un agente. Asumimos que los eventos son
atómicos y son reconocidos después de que ocurrieron. De forma similar las salidas de las acciones
de los agentes son atómicas.
El interprete queda como se muestra en la siguiente figura:
Paradigma Orientado a Agentes
El proceso del intérprete anterior funciona de la siguiente manera:
1) Al inicio de cada ciclo, el generador de opciones (option generator) lee la cola de eventos
(event-queue) y regresa una lista de opciones;
2) El liberador selecciona un subconjunto de opciones para ser adoptados y las agrega a la
estructura de intenciones.
3) Si existe una intención que realiza una acción atómica en este punto, el agente la ejecuta.
4) Si algún evento externo ha ocurrido durante el ciclo del intérprete es agregado a la cola de
eventos.
5) Los eventos internos son agregados cuando ocurren.
6) El agente modifica las estructuras de deseos e intención desechando todos los deseos e
intenciones exitosas, así como los deseos imposibles y acciones no – realizables.
Este sistema es una versión simplificación del sistema de razonamiento procedural (PRS), uno de
los primeros en implementar sistemas orientados hacia agentes basados en la arquitectura BDI y
su sistema sucesor dMARS (distributed multiagent reasoning system).
Es necesario representar las creencias acerca del estado actual del mundo y considerar sólo
aquellos conjuntos de literales sin disyunciones o implicaciones. Después, se debe representar la
información acerca de las opciones disponibles para los agentes y los planes, que se pueden ver
como una forma especial de creencias.
Cada plan tiene un cuerpo que describe las acciones primitivas o sub-metas que tienen que ser
logradas por un plan de ejecución para ser exitoso. Las condiciones bajo las cuales un plan puede
Paradigma Orientado a Agentes
ser elegido como una opción son especificadas por una condición de invocación y una precondición. La condición de innovación especifica el evento clave que es necesario para una
invocación del plan, y la precondición especifica la situación que debe ser tomada por el plan para
ser ejecutada.
Por último, cada intención del sistema se forma tomando ciertos planes de acción que están
representados implícitamente usando una cola convencional en tiempo real de planes, que están
relacionados jerárquicamente (similar a como un intérprete de prolog maneja las cláusulas). [Rao
& Georgeff, 1995]
Descargar