Sunteți pe pagina 1din 12

UNIVERSIDAD DE CUENCA FACULTAD DE INGENIERIA MAESTRIA EN TELEMATICA SISTEMAS DISTRIBUIDOS TEMA: AGENTES DE SOFTWARE CUENCA ECUADOR JULIO 2007

GRUPO ING. LUIS ESPINOZA M ING. ALCIDES ARAUJO ING. EMILIO LANDAZURI

INDICE DE CONTENIDOS

INDICE DE ILUSTRACIONES................................................................................................2 Objetivo.......................................................................................................................................3 1. Introduccin y Conceptos.......................................................................................................3 2. Agentes de Software en Sistemas Distribuidos.......................................................................5 2.9. Interfaces inteligentes de usuario.................................................................................9 3. Tecnologa de Agentes..........................................................................................................10 3.1. Lenguajes de comunicacin de agentes ....................................................................10 Conclusiones:............................................................................................................................11 Bibliografa:..............................................................................................................................12 INDICE DE ILUSTRACIONES Ilustracin 1. Agente...................................................................................................................3 Ilustracin 2. Agentes Vs Objetos...............................................................................................5 Ilustracin 3. Agentes de reflejo simple......................................................................................6 Ilustracin 4. Agentes bien informados......................................................................................6 Ilustracin 5. Agentes Basado en metas......................................................................................6 Ilustracin 6. Agentes basados en utilidad..................................................................................7 Ilustracin 7. Agentes Inteligentes de Informacion....................................................................7 Ilustracin 8. Paltaforma de Agentes........................................................................................10 Ilustracin 9. Ejemplo de diferentes mensajes..........................................................................11 Ilustracin 10. Ejemplo de mensaje FIPA ACL entre dos agentes...........................................11

Objetivo. Describir el concepto de Agente y sus principales caractersticas. Clasificar los Agentes. Describir la plataforma utilizada en los Agentes Revisar brevemente los lenguajes de programacin utilizados para los agentes. 1. Introduccin y Conceptos Como sucede con toda nueva rama del conocimiento, existe bastante confusin en cuanto al vocabulario de las tecnologas semnticas. Primero trataremos de explicar qu se entiende por agente, agente inteligente y agente semntico, trminos que aparecen casi siempre que se habla de la Web semntica. A fin de resaltar las semejanzas y diferencias entre ellos, se usara definiciones y ejemplos. Si consultamos el diccionario de la Real Academia Espaola, veremos que agente significa "Persona que obra con poder de otra". Si actualizamos un poco la definicin ("Programa o mquina que obra con poder de una persona o de otro programa o mquina"), tendremos una primera idea de lo que se entiende por agente en ingeniera. En general, se acepta que un agente es cualquier sistema capaz de percibir cambios en su entorno, de representar de algn modo la informacin sobre el estado actual de sus objetivos y de actuar sobre su entorno basndose en stos y en experiencias pasadas. Cuando se consideran entornos virtuales (la Web, intranets, etc.), se habla de agentes de software; en entornos fsicos, los agentes pueden ser animales, personas, robots o autmatas. Por ejemplo, el vehculo Mars Pathfinder que recorri la superficie de Marte durante varios meses de 1997 era un agente en un entorno fsico bastante agresivo para la vida humana.

Ilustracin 1. Agente Segn Michael Wooldridge, un agente es un sistema de software capaz de actuar autnoma y flexiblemente en un entorno cambiante Ver Ilustracin 1. Para Gerhard Weiss, un agente es una entidad computacional que percibe y acta autnomamente en su entorno. Ambas definiciones coinciden en que los agentes gozan de cierta libertad de actuacin en su entorno; es decir, no se limitan a efectuar ciertas tareas siempre de la misma forma, sino que tienen sus propias ideas sobre cmo alcanzar sus objetivos. Segn Jeffrey Bradshaw, las principales caractersticas de los agentes son stas (no todas son obligatorias y algunas pueden darse en mayor o menor grado): 3

Persistencia: El cdigo de un agente se ejecuta continuamente, no cuando el usuario lo decide, y decide por s mismo cuando deje ejecutar alguna accin. Los agentes siempre permanecen activos: se ejecutan en un bucle infinito y observan su entorno, actualizan su estado y determinan qu acciones realizar. Se comportan como buitres (siempre mirando, siempre esperando a que llegue el turno de actuar. Autonoma: Un agente puede tomar decisiones sin la intervencin humana o de otros agentes. Es decir, para cumplir sus objetivos, un agente controla sus propias acciones. Reactividad: Un agente es capaz de percibir su entorno y mantener un vnculo constante con l, de modo que puede responder adecuadamente a los cambios. Los agentes ms reactivos tienen en cuenta la posibilidad de que se produzcan fallos o de que las cosas no vayan como se esperaba. Proactividad: Un agente no acta dirigido solamente por los sucesos que se producen en su entorno, sino que tambin toma iniciativas para lograr sus objetivos. Es decir, los agentes reconocen y utilizan las oportunidades que se les presentan. Las iniciativas pueden proceder de experiencias pasadas, pues los agentes aprenden del pasado. Habilidad social: Un agente constituye una entidad social integrada en una sociedad, en la cual hay tareas, recursos y papeles que se distribuyen entre los agentes. Algunos objetivos slo se pueden conseguir mediante la colaboracin con otros agentes o con humanos. Como los agentes son programas, debemos concluir que los programas son tambin agentes? El programa es, en cierto sentido, consciente de su entorno porque devuelve una salida, tras recibir una entrada (la ejecucin del programa). Sin embargo, no es un agente: su salida actual no afecta a sus futuras salidas; dicho de otro modo, no tiene memoria de sus actos ni puede aprender de ellos. Adems, el programa carece de persistencia: slo permanece activo un tiempo muy breve; una vez que devuelve el resultado, se vuelve inactivo. Vemos, en definitiva, que no todos los programas son agentes. Muchas personas piensan que los agentes no son ms que objetos con algunas funciones aadidas. Existen ciertas semejanzas entre objetos y agentes: en primer lugar, se caracterizan por su estado y por su comportamiento; en segundo, se comunican entre s mediante mensajes. Tambin hay diferencias. Primera: los objetos no tienen ningn control sobre sus acciones, que estn determinadas desde su creacin; por el contrario, los agentes las controlan para cumplir sus objetivos. stos pueden tener un comportamiento impredecible. A diferencia de los objetos, los agentes pueden decir "no". Segunda diferencia: los agentes gozan de ms autonoma y flexibilidad que los objetos. Como las clases definen los mtodos y atributos como pblicos o privados, los objetos (instancias de las clases) no pueden cambiar la visibilidad de mtodos y atributos. Si el mtodo dispararFlecha de un objeto arcoOlmpico es pblico, el objeto no puede impedir que otros objetos lo usen. Un agente, en cambio, s podra impedir que otros agentes usaran su dispararFlecha (volvindolo privado, p. ej.), siempre que eso favoreciera sus objetivos. Tercera diferencia: tal como se mencion antes, los agentes siempre estn activos (vigilan su entorno, actualizan su estado y determinan qu acciones son apropiadas); los objetos vienen a ser muertos a tiempo casi completo, porque slo viven (estn activos) cuando sus mtodos son llamados por otros objetos. Cuarta y ltima diferencia: los objetos jams se equivocan (en todo caso, se equivocan quienes los programan), mientras que los agentes puede tomar decisiones equivocadas e 4

incluso aprender de sus errores pasados. El objeto nunca aprender nada de ese error, pues ya naci mejor dicho, se instancia con l. Ver Ilustracin 2.

Ilustracin 2. Agentes Vs Objetos Suele usarse el trmino agente inteligente para referirse a agentes dotados de cierta inteligencia artificial y que, por tanto, gozan de un alto grado de autonoma, reactividad, proactividad y habilidad social. Segn Barbara Hayes-Roth, los agentes inteligentes realizan continuamente tres funciones: perciben las condiciones cambiantes del entorno; actan para modificar las condiciones del entorno; y razonan para interpretar percepciones, resolver problemas, extraer inferencias y determinar acciones. Los agentes inteligentes suelen relacionarse con los sistemas expertos. Un sistema experto es un programa que intenta imitar el comportamiento de un experto en un dominio concreto. Por ejemplo, un sistema experto en medicina podra, a partir de los sntomas del enfermo, emitir diagnsticos. Los agentes difieren de los sistemas expertos en dos aspectos esenciales: primero, stos no interaccionan con el entorno; segundo, los agentes suelen desarrollarse con la intencin de colaborar con otros agentes, mientras que los sistemas expertos no colaboran ni intercambian informacin entre ellos 2. Agentes de Software en Sistemas Distribuidos Dar una clasificacin completa de los agentes es complicado: pues cada autor suele proponer su propia clasificacin, a menudo tan discutible como cualquier otra. Los agentes pueden clasificarse segn su movilidad (estticos, dinmicos), segn si son deliberativos (contienen modelos simblicos de su entorno y reglas de razonamiento) o reactivos (no poseen modelos simblicos de su entorno y, por tanto, actan siguiendo el esquema estmulo-respuesta), segn las tareas que desempean, las caractersticas que predominan, etc. Hyacinth S. Nwana clasifica as los agentes: agentes colaboradores, agentes de interfaz, agentes mviles, agentes de informacin, agentes reactivos, agentes hbridos y sistemas heterogneos de agentes. A continuacin veremos algunos de ellos 2.1. Agentes de reflejo simple: Este tipo de agente no contiene internamente estados y sus procesos o acciones que realiza son respuestas a la entrada de percepciones, a esta conexin entre percepciones y acciones se las denomina reglas de condicin-accin. Ejemplo: Si el carro de adelante est frenando entonces empiece a frenar. Ver Ilustracin 3.

Ilustracin 3. Agentes de reflejo simple 2.3. Agentes bien informados de todo lo que pasa: Este tipo de agente guarda estados internos lo que nos sirve sin consideracin para ejecutar una accin. Los sensores no nos pueden informar a la vez de todos los estados que maneja nuestro ambiente, es por este caso que el agente necesita actualizar algo de informacin en el estado interno. Esto le permite discernir que entre estados del ambiente que generan la misma entrada de percepciones pero, sin embargo; para cada uno de los estados se necesitan acciones distintas.

Ilustracin 4. Agentes bien informados 2.4. Agentes basados en metas: Adems de los estados, los agentes necesitan cierto tipo de informacin sobre sus metas Estas metas van a detallar las situaciones a las que se desea llegar de este modo, el programa de agente puede combinar las metas con la informacin de los resultados (acciones) que emprenda y de esta manera poder elegir aquellas acciones que permitan alcanzar la meta.

Ilustracin 5. Agentes Basado en metas 2.5 Agentes basados en utilidad: Las metas por s solas me garantizan la obtencin de una conducta de alta calidad. En mi programa de agente se podra tener un conjunto de metas pero la obtencin de stas no me garantizan distinciones entre estados felices e infelices, mediante una medida de desempeo se podra establecer una comparacin entre los diversos estados del 6

mundo (ambientes) para poder encontrar el estado de felicidad para el agente. Este estado ofrecer una mayor utilidad al agente.

Ilustracin 6. Agentes basados en utilidad

2.6. Agentes inteligentes de informacin: No es necesario que un agente dedicado a la recuperacin de informacin posea todas las propiedades que se han citado, pero s las que a continuacin se describen: Autonoma: actuar sin ningn tipo de intervencin humana directa, y tener control sobre sus propios actos. Sociabilidad: comunicarse por medio de un lenguaje comn con otros agentes, e incluso con los humanos. Capacidad de reaccin: percibir su entorno, y reaccionar para adaptarse a l. Iniciativa: emprender las acciones para resolver un problema. Estn diseados especficamente para procesar consultas, y poseen al menos uno de los siguientes elementos: capacidad de proceso, conocimiento del entorno donde se mueven e informacin de un dominio.

Ilustracin 7. Agentes Inteligentes de Informacion

2.7. Agentes cooperativos: Para que un agente pueda ser autosuficiente y conocedor del entorno en el que se encuentra, debe coordinarse y cooperar con cada uno de los otros agentes. Existen varias formas para hacer esto. En un sistema compartido un agente cualquiera descompone la consulta y asigna las subconsultas a otros agentes. Cada uno sabe cules son las capacidades y limitaciones del

resto. No existe un agente maestro; el grupo de agentes recibe las subconsultas, y todos ellos trabajan por igual para encontrar la solucin. En un sistema contractual los agentes siguen teniendo todos el mismo estatus. Sin embargo, el agente que recibe la consulta no asigna las subconsultas al grupo de agentes, sino que las enva a todos ellos para que stos le indiquen quin puede resolverlas, y de entre ellos selecciona aquellos cuyo dominio sea ms adecuado. Por el contrario, un sistema federado es una estructura jerrquica de agentes controlada por un facilitador o agente principal. Los agentes federados se comunican slo con su agente principal, el cual conoce las capacidades y limitaciones de cada uno de sus agentes. Una vez recibida la consulta, el facilitador principal se comunica con el resto de facilitadores con el fin de seleccionar los agentes locales ms adecuados de cada federacin para resolver las subconsultas que permitan resolver la consulta completa (Haverkamp y Gauch, 1998). 2.8. Agentes mviles: es uno de los ltimos desarrollos en tecnologa de agentes. Se basan en el principio organizador de redes de comunicacin entre ordenadores, conocido como Control de Procedimientos Remotos (RPC) y concebido en 1976. Cuando un ordenador cliente de una red (no importa su tamao) dirige una peticin al servidor de ficheros para ejecutar una aplicacin, el cliente debe realizar al menos dos comunicaciones: una solicitando la ejecucin de un programa determinado, y otra informando al servidor que la operacin se ha completado con xito. La alternativa a este procedimiento es la Programacin Remota (RP), consistente en acordar por adelantado qu tareas pueden realizar los clientes sin ningn tipo de verificacin ni confirmacin por parte de los servidores. De esta forma un cliente enviara una instruccin al servidor de ficheros, y una vez all ejecutar un programa en concreto. Este procedimiento (remoto) que es una orden realizada por el cliente pero ejecutada en el servidor (local) recibe el nombre de operacin o instruccin mvil, haciendo hincapi en que se trata de una orden remota que se ejecuta localmente. Un agente mvil puede suspender el proceso que est realizando, transportarse a s mismo por medio de la Red y reanudar la ejecucin del proceso que estaba llevando a cabo donde estime oportuno. Esta capacidad le permite al agente seleccionar la informacin recuperada antes de enviarla por la Red, lo que evita la transferencia de grandes cantidades de informacin que podra ser intil. El hecho de que un agente pueda deambular por la Red ejecutando procesos segn le parezca, plantea un par de problemas. Uno es que el lenguaje creado para disear la arquitectura de un agente mvil debe ser independiente. Se sugieren lenguajes tales como Java, Perl (conocido en su primera versin como Practical extraction and report language) o Kqml (Knowledge, query and manipulation language). El otro es la seguridad. Imagnese el estado de nervios que puede tener el administrador de un sistema, sabiendo que en su red puede haber agentes mviles circulando libremente y ejecutando tareas a su antojo y sin restricciones. Una forma de prevenir esto es utilizar pasillos de seguridad destinados a soportar y restringir las idas y venidas de los agentes mviles. En cualquier caso es necesario imponer lmite al nmero de agentes mviles con permiso para ejecutar tareas dentro de un sistema local. Independientemente del tipo de cooperacin o coordinacin que se elija, los agentes deben poder comunicarse entre s. Hay dos formas de realizar esta comunicacin: directa, como en 8

el caso de los sistemas compartidos o las redes contractuales, o indirecta, caso de los sistemas federados Otro procedimiento de comunicacin que a menudo utilizan los agentes es el de los tablones de anuncios. Consiste en una serie de recursos (memoria) que el servidor pone a disposicin del grupo de agentes que soporta, para que stos puedan comunicarse e interactuar. En lugar de que un mensaje se transmita de un agente a otro, ste es colocado en un tabln de anuncios, el cual es supervisado por todos los agentes encargados de resolver las subconsultas o de procesarlas. Los resultados de los procesos se colocan en el tabln para que todos los agentes puedan verlos, hasta que se encuentra la solucin a la consulta. 2.9. Interfaces inteligentes de usuario Su objetivo es llevar a cabo bsquedas conceptuales ms que localizar simples cadenas de caracteres. Cuando un usuario hace una consulta, la interfaz recoge los trminos de sta como algo representativo de la materia en la que se est interesado. Posteriormente, y a partir de su base de conocimiento, realiza una consulta expandida. Es decir, partiendo de los trminos suministrados por el usuario, se aaden otros relacionados con el mismo concepto, realizando as una consulta mucho ms completa que la que en un principio se pretenda hacer. Por ejemplo la consulta perro puede ser expandida a perro o can o sabueso. 2.10. Agentes de consulta: un sistema de agentes orientados a consulta origina uno o ms agentes en respuesta a la pregunta formulada por un usuario. Estos agentes trabajan en representacin del individuo mientras dura la consulta, recogiendo informacin de todas las bases de datos disponibles. Cuando una persona realiza una pregunta, sta se descompondr en subconsultas para su resolucin. Si los agentes existentes son incapaces de dar una respuesta en toda su amplitud, se generan nuevos agentes que buscarn en otras bases de datos. Si an as la respuesta no es lo suficientemente amplia, se crearn nuevos agentes hasta poder ofrecer la respuesta adecuada. 2.11. Agentes de usuario: los agentes orientados a usuario estn asociados a una persona en concreto. A diferencia de los agentes de consulta, que se generan cada vez que tienen que realizar una consulta para un individuo, los agentes de usuario siempre estn activos, buscando informacin y suministrndosela a su creador. Los agentes de consulta son tiles para recuperar informacin donde las fuentes son relativamente estticas y la informacin que se busca es dinmica. Por el contrario, los agentes de usuario son ms efectivos cuando se trata de recuperar informacin que es relativamente constante, pero cuyas fuentes son dinmicas. Los agentes de usuario pueden ser utilizados para recuperar informacin de bases de datos, de revistas electrnicas, o incluso de los mensajes e-mail. Su objetivo es disminuir el trabajo necesario en la recuperacin de la informacin. En definitiva, hacer la vida de su propietario ms fcil. Los agentes de usuario pueden aprender a recuperar informacin de una forma ms pertinente y relevante mediante realimentacin positiva o negativa. Cuando el agente presenta al usuario los documentos recuperados, ste podr indicar si est, o no, contento con un grupo determinado de ellos. Tambin es posible realizar el aprendizaje a travs de algoritmos genticos, donde el agente no es ms que un conjunto de perfiles. En funcin de las respuestas, la idoneidad de los perfiles aumentar o disminuir. 9

3. Tecnologa de Agentes Tenemos la nocin de que son los agentes, pero no como se desarrollan los agentes, precisamente el aislar sus componentes e incorporarlos en un modelo es lo que llevo a la FIPA (Foundation for Interlligent Physical Agents) a desarrollar un modelo general para los agentes de software, en este modelo los agentes se regitran y operan bajo el regimen presentado en la Ilustracin 8.

Ilustracin 8. Paltaforma de Agentes

Una modelo provee los servicios necesarios para cualquier sistema multiagentes, dentro de las facilidades provistas estn la creacin y eliminacin de agentes, localizacin de agentes, y comunicacin nter agentes. El componente de gestin mantiene la informacin de lo que sucede con el agente, provee las facilidades para su creacin y eliminacin as como tambin la ubicacin del agente, en tal sentido provee un servicio de nombrado con un identificador global nico que referencia a sui posicin. Hay tambin un servicio de directorio local con el cual un agente puede buscar por otros agentes, el servicio de directorio in el modelo FIPA esta basado en el uso de atributos, lo cual significa que un agente provee descripcin de sus servicios. Esto es muy similar a como opera el directorio de paginas amarillas. El servicio de directorio puede ser accedido por agentes remotos que residen sobre diferentes plataformas. Un componente importante de la plataforma de agentes es el Canal de comunicacin de agentes (Agent Comunication Channel) o ACC como se lo conoce. En la mayora de modelos de sistemas multi-agente, la comunicacin entre ellos se desarrolla mediante el intercambio de mensajes, para el caso del modelo de FIPA el modulo ACC es el responsable de todas las comunicaciones entre diferentes plataformas, es el responsable de establecer y administrar una comunicacin punto a punto. Un ACC puede ser implementado como un servicio que escucha en un puerto especfico los mensajes entrantes, los mensajes que son reenviados a otros servidores o agentes. Para garantizar la interoperabilidad entre plataformas, la comunicacin entre ACC de diferentes plataformas es conocido como Internet Inter-ORB Protocol (IIOP). 3.1. Lenguajes de comunicacin de agentes La comunicacin entre agentes se lleva adelante con por medio de un protocolo de capa de aplicacin, conocido como ACL (Agent Comunication Language). En ACL hay una separacin estricta entre el propsito del mensaje y su contenido.

10

Message purpose Description INFORM Inform that a given proposition is true QUERY-IF Query whether a given proposition is true QUERY-REF Query for a give object CFP Ask for a proposal PROPOSE Provide a proposal ACCEPTTell that a given proposal is accepted PROPOSAL REJECT-PROPOSAL Tell that a given proposal is rejected REQUEST Request that an action be performed SUBSCRIBE Subscribe to an information source

Message Content Proposition Proposition Expression Proposal specifics Proposal Proposal ID Proposal ID Action specification Reference to source

Ilustracin 9. Ejemplo de diferentes mensajes

La esencia de un ACL es enviar y recibir agentes que al menos entienden lo mismo sobre el propsito del mensaje (Ver Ilustracin 9.), El propsito de un mensaje frecuentemente determina la reaccin del receptor. Al igual que la mayora de protocolos de comunicacin los mensajes ACL consisten de una cabecera y un contenido. La cabecera contiene un campo que identifican el propsito del mensaje y otros campos para identificar el emisor y el receptor. Es necesario que se entregue suficiente informacin para que el agente receptor interprete adecuadamente el contenido del mensaje. Al final una cabecera de mensaje ACL tambin podra contener un campo de identificacin del lenguaje o esquema de codificacin para el contenido. Esta aproximacin trabaja bien siempre y cuando tanto el emisor como el receptor tienen un acuerdo comn de cmo interpretar los datos, los smbolos en un mensaje. Cuando no hay adecuado acuerdo, un campo adicional es muchas veces usado para identificar una relacin estandarizada de smbolos y su significado, tal relacin suele llamarse ontologa. Ver Ilustracin 10. Field Purpose Sender Receiver Language Ontology Content Conclusiones: Un agente de software es un tipo especial de proceso el cual opera como una unidad autnoma y es capaz de cooperar con otros agentes. La tecnologa de agentes de software ha mostrado una nueva forma de trabajar con computadores, permitiendo delegar en un programa (el agente) ciertas tareas que, de otra forma, solamente podra hacer el usuario. En algunos casos, puede tratarse simplemente de tareas repetitivas, pero en otros, puede ser una solucin a problemas tales como la sobrecarga de informacin. Los agentes han surgido como una solucin posible y adecuada a la creciente dificultad de las personas para encontrar informacin til, sobre todo con la creciente popularidad de internet. En este sentido, pueden verse como una buena herramienta que asiste en el proceso de 11 Value INFORM max@http://fanclub-beatrix.royalty-spotters.nl:7239 elke@iiop://royalty-watcher.uk:5623 Prolog genealogy female(beatrix),parent(beatrix,juliana,bernhard)
Ilustracin 10. Ejemplo de mensaje FIPA ACL entre dos agentes

abastecimiento y demanda de informacin, actuando como intermediarios entres quienes poseen la informacin y quienes la necesitan. Dentro de los sistemas distribuidos, los agentes se diferencian de los procesos normales en su interaccin dada por los protocolos de comunicacin de la capa de aplicacin llamados lenguajes de comunicacin de agentes (ACL). En los ACL, se hace una distincin estricta entre el propsito del mensaje y su contenido. Bibliografa: [1] Tanenbaum Andrew,Distrituted Systems, Edicion 2002, Prentice Hall. [2] Tanenbaum Andrew Sistemas Operativos Distribuidos, Primera Edicin , Prentice Hall. [3] Pedro Hpola y Benjamn Vargas Quesada, Agentes inteligentes y tipologa. Los agentes de informacin, Abril 1999, http://www.genmagic.com/technology/techwhitepaper.html [4] Agentes de Bsqueda inteligente, http://www.alexa.com [5] Agentes de consulta, http://www.thewebtools.com [6] Proyecto Guardian (http://ksl-web.stanford.edu/projects/guardian/) [7] Proyecto Robocoup rescue http://www.rescuesystem.org/robocuprescue/

12

S-ar putea să vă placă și