Tipos de agentes Clasificación AEIOU Los criterios de clasificación de los agentes están inspirados en la observación de los agentes desde distintas perspectivas. En primer lugar, nos podemos fijar en sus características individuales, en segundo lugar, podemos observar el entorno y su comportamiento externo; finalmente, podemos considerar su utilidad. Yves Demazeau propuso un modelo de clasificación llamado de las vocales (AEIOU). La A de Agente, caracteriza sus rasgos individuales: arquitectura, funcionamiento interno, complejidad, etc. La E de Entorno, caracteriza los requisitos computacionales para que el agente funcione adecuadamente. La I de Interacción, considera las capacidades de comunicación del agente, con quien se comunica y la forma de comunicación (tipo de mensajes, contenido, protocolos, etc.). La O de Organización, considera el papel del agente en el conjunto del sistema y el modelo de cooperación con otros agentes. La U de Utilidad, toma en cuanta la utilidad, es decir, la aplicación de la que forma parte el agente. A: Tipos de agentes según sus características individuales - Agentes reactivos – realizan tareas sencillas. Su modelo computacional está basado en un ciclo recepción de eventos externos/reacción (condición-acción). La reacción consiste en la ejecución de procedimientos o rutinas sencillas según el estado interno del agente. El comportamiento reactivo puede consistir en cambiar el estado interno, o en ejecutar funciones internas o externas sobre el entorno. Este tipo de agentes no realizan procesos de razonamiento, ni tienen mecanismo explícito de representación del conocimiento. El mecanismo de control se basa normalmente en autómatas de estado finito extendidos. Puede sustituirse este mecanismo por una red neuronal. - Agentes cognitivos – realizan tareas complejas. Utilizan algún tipo de representación explícita (simbólica) del conocimiento. Para la realización de tareas necesitan llevar a cabo procesos de razonamiento y otros procesos cognitivos como la planificación y aprendizaje. Su arquitectura tiene como núcleo central algún tipo de procesador de conocimiento que integra la información procedente del entorno y controla el comportamiento interno y las acciones del agente de acuerdo con el conocimiento de éste. Su modelo computacional se basa en un ciclo percepciónasimilación-razonamiento-actuación. La percepción permite recibir información del entorno. En la asimilación la información percibida se transforma para integrarla en el conocimiento interno. El razonamiento determina la forma de utilizar la información en la resolución de objetivos y tareas internas. Las acciones (actuación) se ejecutan como consecuencia de los procesos de razonamiento; tienen una finalidad y en consecuencia una justificación. El formalismo de representar el conocimiento puede estar basado en formalismos lógicos (lógica de predicados, lógica modal, lógica deóntica, lógica temporal, etc.) o en formalismos computacionales (objetos, frames u ontologías, combinados con reglas y procedimientos). 1 La resolución de problemas puede basarse en alguna de las aproximaciones siguiente: - Resolución basada en objetivos – el agente genera objetivos e intenta resolverlos mediante procesos de descomposición en subobjetivos e inferencias y búsqueda de información. - Resolución dirigida por eventos o creencias – el control de la resolución del problema está dirigido por la recepción de información, que desencadena procesos de inferencia que a su vez permiten generar nuevas informaciones o realizar acciones. - Planificación – implica modelar el problema a resolver en términos de objetivos que representan estados a alcanzar por el agente. Resolver el objetivo implica la búsqueda de las acciones necesarias para pasar del estado actual del agente al estado que representa el objetivo a resolver. El componente de planificación obtiene la secuencia de acciones para realizar un objetivo. Es necesario supervisar la ejecución del plan, ya que algunas de las acciones planificadas puede fallar o no dar los resultados esperados. En este caso el agente debe de elaborar un nuevo plan, bien a partir del estado actual o bien volviendo a la situación en que se encontraba antes deshaciendo las acciones ya ejecutadas. Si se considera el componente de percepción se pueden distinguir distintos tipos de agentes. Los agentes reactivos más simples perciben la información exterior en forma de eventos. Los agentes cognitivos además de eventos reciben mensajes expresados en un lenguaje de comunicación que entienda, de aquí se derivan los agentes FIPA y los agentes KQML. Otros aspectos que se pueden considerar para identificar tipos de agentes son los siguientes: - Autonomía – caracteriza el control del agente sobre sus propias acciones y su estado interno. Un agente autónomo debe ser capaz de decidir qué acciones ejecutar o qué objetivos elegir sin un control exterior explícito. Según sea su autonomía, el agente puede ser autónomo, semiautónomo o dependiente. Un agente reactivo no es un agente autónomo, el agente cognitivo si lo es. - Movilidad – capacidad de un agente de desplazarse en el entorno, conservando su estado interno. Puede hablarse de agentes fijos y agentes móviles. Los agentes móviles son casi siempre reactivos, y los agentes fijos tienden a ser fijos por su complejidad interna. - Aprendizaje – capacidad del agente de cambiar su comportamiento según su experiencia, es decir, según la interacción con el entorno y con otros agentes, y de sus propios procesos internos. Tanto los agentes reactivos como los cognitivos pueden incorporar aprendizaje. Los primeros a través de mecanismos de aprendizaje simbólico de modelos explícitos (clasificación, metamodelado, reglas, etc.), y los segundos a través de mecanismos subsimbolicos (redes neuronales). E: Tipos de agentes según el entorno en el que funcionan Se puede considerar como el entorno de un agente toda la infraestructura computacional que le rodea, por ejemplo, sistema operativo, protocolos de comunicación, software de utilidad, etc. El entorno proporciona los medios necesarios para que un agente desarrolle su ciclo de vida, esto es, pueda ser creado, funcione y desaparezca. Se pueden considerar dos tipos de agentes: los que requieren un entorno especial, es decir una plataforma de software específica para su funcionamiento, y los que se ejecutan en las plataformas computacionales existentes. Ejemplos de agentes que requieren de una plataforma específica son los agentes móviles, agentes FIPA. 2 Los agentes que no usan plataformas específicas se crean mediante los recursos del sistema operativo y siguen el ciclo de vida de cualquier aplicación. La tendencia general es implementarlos en un lenguaje independiente de la plataforma – por ejemplo Java – que proporcione también mecanismos de comunicación. I: Tipos de agentes según el modo de interacción La interacción comprende la comunicación y el intercambio de información entre un agente y otras entidades. Se distinguen tres tipos de interacciones: agente-agente, agente-entorno y agentepersona. Las comunicaciones agente-agente pueden llevarse a cabo mediante lenguajes estándar de comunicación entre agentes, como ACL y KQML. Puede implicarse el uso de protocolos de comunicación para sistemas distribuidos y telecomunicaciones como: RMI, CORBA, SOAP, HTML, XML, INAP, CMIP, etc. y en ocasiones el uso de protocolos propietarios. Las comunicaciones agente-persona deben hacerse utilizando los medios adecuados para que las personas entiendan y se expresen como la mayor sencillez y naturalidad, como el lenguaje natural (voz o texto), los sensores y efectores adecuados o, según el dominio, lenguajes semiformales, gráficos, información estructurada, animaciones, etc. Los agentes especializados en la interacción con el usuario se llaman agentes de interfaz. La interacción con el entorno comprende la comunicación con distintos tipos de elementos de los cuales tiene que obtener información o recibirla de forma espontánea: sistema operativo, pilas de protocolos, librerías, interfaces de usuario, bases de datos, sistemas de mensajería, servidores vocales, etc. Los agentes especializados en la interacción con los recursos se han catalogado según el recurso con el que interactúan y según el protocolo utilizado (ORB, TCP/IP, HTTP, CMIP, RMI, SOAP, etc.). Así se pueden tener agentes de bases de datos con ORB o SOAP, agentes de mensajería con HTML, agentes de generación de voz con RMI, etc. O: Tipos de agentes según el modo de organización Desde el punto de vista de la organización permite considerar a los agentes como entidades individuales que tienen un rol o función dentro de un conjunto o sistema multiagente (SMA) con una finalidad común. Para llevar a cabo esta finalidad común se requiere una estructura organizativa y unas capacidades de los agentes. Se pueden distinguir los agentes siguientes: - agentes individualistas – no tienen capacidad de cooperación y realizan sus tareas solos, sin requerir la colaboración de otros agentes. - agentes cooperantes – realizan tareas solos o colaborando con otros agentes. En el caso de los agentes que forman parte de organizaciones pueden ser clasificados de acuerdo con diferentes criterios: o representación del modelo de cooperación – puede ser implícita o explícita. Los agentes reactivos tienen una representación implícita expresada mediante reglas simples o algoritmos codificados en los mecanismos de control. La cooperación y organización emergen a partir de los procesos de interacción con otros agentes. Los agentes cognitivos tienen una representación explícita que incluye la definición de roles, responsabilidades, planes comunes, normas organizativas, mecanismos de resolución de conflictos, etc. 3 o rol del agente en la organización – puede ser fijo o variable. Los agentes que tienen un rol fijo son agentes estáticos: realizan un conjunto de tareas fijas y sus relaciones o dependencias de control con el resto de los agentes de la organización son estáticas (tienen relaciones jerárquicas o siguen un modelo cliente-servidor, ofertante-contratista, etc.). Los agentes con rol variable se les denomina agentes flexibles o evolutivos: pueden cambiar sus objetivos y responsabilidades durante el ciclo de funcionamiento y en consecuencia pueden cambiar sus relaciones con otros agentes (en ocasiones pueden ser ofertantes y en otras contratistas, por mencionar un ejemplo). En una organización jerárquica donde hay ascensos, cualquier agente puede llegar a asumir un determinado rol (director, presidente, etc.). o resolución de conflictos - un agente puede tener conflictos internos o externos. Los primeros sedan en agentes cognitivos, debido a los mecanismos de definición y de procesado de conocimiento. Los formalismos declarativos son abiertos e incrementales, pero durante su interpretación surgen conflictos que el procesador debe resolver, por ejemplo: un objetivo puede ser resulto de distintas formas, una creencia puede ser interpretada de distintas formas, la asimilación de una información puede dar lugar a creencias contradictorias o inconsistentes con otras, etc. Los conflictos externos surgen de la interacción entre varios agentes: competición por un determinado recurso, envío de información irrelevante o no demandada, producción de información falsa, errónea, incompleta o incomprensible, obstaculización o bloqueo del progreso de la información hacia otros agentes, etc. El objetivo de la estructura organizativa es mantener la coherencia entre los agentes y minimizar los conflictos. Tanto los agentes como la propia estructura organizativa pueden tener mecanismos explícitos de resolución de conflictos, entre los que surgen otros tipos de agentes: agente especialista – detectan los conflictos o reciben quejas de los agentes implicados, comprueban si existen los conflictos y los resuelven enviando directrices a los agentes adecuados. La resolución de conflictos forma parte del rol del agente. En los modelos jerárquicos los conflictos se generan en los niveles inferiores e intentan ser resueltos por el agente superior, quien si no puede hacerlo lo reporta a su superior que a su vez intentará resolverlo o reportarlo. agente de negociación – los conflictos se resuelven intercambiando información y si es necesario relajando las exigencias en la resolución de los objetivos. El conflicto cesa cuando la negociación tiene éxito, es decir, cuando las partes convergen en una solución aceptable para todos. Para que los agentes sean capaces de negociar necesitan un modelo de negociación – por ejemplo, red de contratos, mercado, subasta, etc. – y un protocolo de negociación donde se indiquen los tipos de mensajes y las reglas de generación y respuesta para llevar a cabo el proceso de negociación. U: Utilidad Permite clasificar a los agentes de acuerdo a su finalidad o el propósito con el que fueron construidos. Por lo general se utilizan dos criterios: el dominio de la aplicación y el tipo de tarea que realiza dentro de él. Áreas: comercio electrónico, telecomunicaciones, economía, gestión de procesos de negocio, administración, defensa, optimización de procesos de fabricación, diseño colaborativo, ocio y entretenimiento, etc. 4 Las tareas que realizan los agentes comprenden actividades especializadas como: monitorización, el diagnóstico, el control de sistemas, búsqueda de información, clasificación, asesoría, ayuda inteligente, etc.; tareas de mediación (recubrimiento de recursos), por ejemplo bases de datos o interfaces de usuario; tareas de coordinación entre agentes y de resolución de conflictos. La taxonomía o clasificación presentada nos puede ayudar a comprender el funcionamiento de un sistema basado en agentes, identificando los agentes que lo conforman (A), su comportamiento externo (I), las relaciones con otros agentes (O), el entorno computacional (E) y su finalidad (U). Para un equipo de ingeniería el problema se plantea de la forma siguiente: a partir de los requisitos de la aplicación (U) y posiblemente parte del entorno computacional (E) se debe decidir en primer lugar si se deben o no utilizar agentes. En caso afirmativo se debe determinar qué tipo de agentes son los adecuados (A); cuál es su comportamiento (I); y cuál su organización(O). ACL – Agent Communication Language KQML Knowledge Query and Manipulation language RMI – Remote Method Invocation CORBA - Common Object Request Broker Architecture SOAP – Simple Object Access Protocol HTML – HyperText Markup Language INAP - Intelligent Network Application Protocol CMIP - Common Management Information Protocol XML – Extensible Markup Language ORB - Object Request Broker TCP/IP – Transmission Control Protocol/Internet Protocol HTTP – HyperText Transfer Protocol Información obtenida del libro: Agentes software y sistemas multiagente: conceptos, arquitecturas y aplicaciones Ana mas Prentice Hall-Pearson 5