Programa de doctorado Informática Industrial 2009-2010 Departamento de Tecnología Electrónica – Universidad de Sevilla Sistemas MultiAgente (MAS) Dra. María del Carmen Romero Ternero ([email protected]) http://www.dte.us.es/personal/mcromero Índice Parte 1: Fundamentos de los Agentes y Sistemas Multiagente 1. Introducción: orígenes, usos y áreas de aplicación 2. Definiciones de agente 3. Características de los agentes 4. Clasificación de los agentes 5. Sistema multiagente 6. Arquitecturas 7. Agentes vs. sistemas expertos Parte 2: Comunicación entre agentes 1. Fundamentos 2. Estructura de los mensajes z z 4. 5. 6. 7. FIPA-ACL KQML Semántica de los mensajes: Ontologías Protocolos de Interacción Negociación Tecnologías para interacción en entornos abiertos Parte 3: Metodologías y Herramientas de Desarrollo 1. Modelo de programación 2. Ingeniería de Software Orientada a Agentes 3. El desarrollo con agentes 4. Agentes vs. objetos 5. Herramientas de desarrollo 6. Metodologías de desarrollo 03.02.10 Parte 4: Más sobre agentes Tecnología de agentes z z z z No es algo nuevo No se trata de una tecnología cerrada (corrientes tecnológicas de la IS, IS la IA, IA y las telecomunicaciones) No es la panacea Ventajas del desarrollo con agentes: 9 9 9 Son amigables, flexibles, adaptables a los usuarios, robustos... Menor coste (facilitan la reutilización) Reducción del mantenimiento − − 9 9 03.02.10 La funcionalidad puede cambiarse modificando sus conocimientos, estrategias y objetivos. La funcionalidad puede extenderse incluyendo nuevos agentes, nuevo conocimiento y nuevos objetivos en cada agente. agente Se integran y son compatibles con otras tecnologías (web, BDs, componentes...) Simplifica labor de ingenieros ingenieros, utilizando patrones de agente para concentrar los esfuerzos en la definición del comportamiento. Introducción: Orígenes Objetivos que han marcado la historia de la computación: z Ubicuidad: Reducción del coste de la capacidad computacional. computacional Interconexión: Los sistemas computacionales forman redes de grandes sistemas distribuidos. distribuidos Inteligencia: La complejidad de las tareas puede automatizarse y delegarse a los ordenadores ordenadores. Delegación: El juicio de los sistemas computacionales es aceptado frecuentemente. Orientación humana: Uso de conceptos y metáforas que reflejan cómo entendemos el mundo. 03.02.10 Introducción: Orígenes (II) z Grandes desafíos para desarrolladores de software: z z Delegación – actuar de modo independiente. I li Inteligencia i – actuar del d l modo d que represente nuestros mejores j intereses mientras se interactúa con otros humanos o sistemas. z Sistemas que actúen de un modo efectivo en nuestro nombre. z Si t Sistemas con h habilidad bilid d de d cooperación ió y capaces de d alcanzar l consensos con otros sistemas. Sistemas Multiagente 03.02.10 Introducción: Usos z z Personalización de servicios z z z z Flexibilidad de la distribución z z z Delegación de tareas z z z z z 03.02.10 Servicios de información en Internet Recuperación y extracción de información Comercio Electrónico Mercado de servicios electrónico Negociación Equipos móviles y PCs domésticos Redes públicas de telecomunicaciones Provisión de servicios bajo demanda Descentralización del control y gestión de redes Gestión ó de procesos (workflow) f Simulación de sistemas dinámicos Juegos R bóti Robótica … Introducción: Dominios - Agentes Recuperación de la información Sistemas cooperativos Robótica Sistemas de información Sistemas distribuidos Gestión del conocimiento Comercio electrónico Inteligencia artificial Internet Interfaces de usuario 03.02.10 Introducción: Áreas - Multiagente Psicología I li Inteligencia i artificial e IAD Sociología C á t Carácter Reactividad Organizaciones Cooperación Proactividad Aprendizaje d Movilidad MAS Racionalidad Comunicaciones Programación OA P Programación ió OO Autonomía Teoría de la decisión 03.02.10 Sistemas distribuidos Mercados Teorías económicas Una primera aproximación z z z 03.02.10 Un agente es un sistema capaz de actuar independientemente a favor de su usuario o propietario. Un sistema multiagente es un sistema constituido por un número de agentes que interactúan entre sí sí. Para interactuar satisfactoriamente, los agentes necesitan las habilidades de cooperación, coordinación y negociación. Características ((básicas)) de los agentes z Autonomía: Los agentes actúan sin intervención humana directa o de otros agentes y tienen alguna j en clase de control sobre sus acciones y estado interno. El software tradicional se ejecuta entornos interactivos, donde responde a órdenes directas del usuario. z Reactividad: Percibe el entorno en el q que está inmerso y responde p de manera oportuna p a cambios que q tienen lugar en él (para actuar adecuadamente un agente debe poder conocer en todo momento el “mundo” que le rodea). z Iniciativa (p proactividad): Tiene que tener un carácter emprendedor y tomar la iniciativa para actuar guiado por los objetivos que debe satisfacer. En cada momento el agente decide qué acción llevar a cabo. No sólo actúa en función de los estímulos que percibe sino que realiza acciones como resultado l d de d sus decisiones. d z 03.02.10 Sociabilidad: Capacidad de interaccionar con otros agentes (incluso humanos) utilizando alguna clase d lenguaje de l j de d comunicación i ió de d agentes. t Los L agentes t colaboran l b entre t síí para la l ejecución j ió de tareas (MAS). El agente y su mundo PERCEPCIÓN (entrada) AGENTE ACTUADORES 03.02.10 SENSORES ENTORNO ACCIÓN (salida) ¿Cómo influye el entorno en el agente? z En la mayoría de los casos el agente sólo controlará parte del entorno. z Una misma acción realizada por el mismo agente en ocasiones diferentes puede tener efectos muy distintos (entornos no deterministas) deterministas). z Un agente debe estar preparado para fallar o para la incertidumbre de no saber si ha tenido éxito o no. z Un agente dispone de un repertorio de acciones disponibles con sus correspondientes precondiciones. z El principal problema al que se enfrenta un agente es decidir qué acción realizar para alcanzar sus objetivos de diseño. 03.02.10 Características ((complementarias) p ) de los agentes z Movilidad: habilidad para trasladarse en una red electrónica (agentes móviles). z Veracidad: se supone que un agente no comunica información falsa intencionadamente intencionadamente. z Benevolencia: se supone que un agente no tiene objetivos contradictorios y siempre intenta realizar la tarea que se le solicita. z Inteligencia: racional, coherente y adaptable. 03.02.10 z Racional: el agente tiene unos conocimientos de su entorno, unos objetivos y unas reglas que determinan cómo alcanzar los objetivos a partir del conocimiento que maneja. z Coherente: el conocimiento que maneja el agente (base de conocimiento) tiene un alto grado de cohesión, para que el comportamiento del agente sea el adecuado. z Adaptable: el agente es capaz de actualizar su base de conocimiento y su comportamiento (base de reglas) a partir de las percepciones que recibe del entorno y de sus comportamientos anteriores (aprender). Es una de las características más complejas y difíciles de llevar a cabo. cabo Clasificación de agentes Agentes Agentes humanos Agentes hardware Agentes software Agentes de información Agentes de transacción Agentes cooperativos ([21] Brenner, Brenner 1998) 03.02.10 ([22] Nwana, 1996) Clasificación de agentes (II) Nº agentes t multiagente Sociabilidad agente único inmóvil simple complejo Movilidad ([4] Wooldridge, 2001) 03.02.10 móvil Grado de inteligencia Colaboración/ negociación C Comunicación i ió Interacción con usuario Ejecución remota Migración Movilidad Inteligencia Preferencias Razonamiento Planificación (pro-activo) Aprendizaje (adaptativo) Multi Agent System Multi-Agent 03.02.10 ([4] Wooldridge, 2001) Características de los MAS Cada agente no tiene información completa ni capacidad para resolver el problema. z Tienen puntos de vista limitados. z No hay un sistema de control global. global z Los datos están descentralizados. z Computación asíncrona. z 03.02.10 Modelos 03.02.10 ([16] Bradshaw, 1997) Arquitecturas de agentes Basadas en la lógica z Deliverativas D li ti z Reactivas z Híbridas z 03.02.10 (Agentes, http://www.upv.es/sma/web/agentes.htm) Arquitectura q BDI (Belief, Desire, Intention) CREENCIAS (Experiencias pasadas) DESEOS (Cómo quiero que quede el entorno en un futuro próximo) INTENCIONES 03.02.10 Cómo es el mundo en este momento Entrada de eventos procedentes del entorno ENTORNO Acciones a realizar para alcanzar un deseo. Qué acción debe emprender en este momento ([1] ANA MAS, 2005) Ejemplos de agentes BDI Jadex (http://vsis-www.informatik.uni-hamburg.de/projects/jadex/) (http://jason.sourceforge.net/JasonWebSite/Jason%20Home.php) z Jason J z SPARK (http://www.ai.sri.com/~spark/) z JACK (http://www.agent-software.com.au/) z JAM y UM-PRS UM PRS (http://www.marcush.net/IRS/irs_downloads.html) z 03.02.10 Arquitectura reactiva - Ejemplo Distancia ángulo … SEGUIR UN OBJETO Distancia a obstáculos … EVITAR OBSTÁCULOS SENSORES 03.02.10 Fuerza a la salida a elegir entre una de las dos acciones MAS vs vs. Sistemas Expertos Agentes Interactúan con el entorno Sistemas Expertos Distribución de la toma de decisiones z Mayor grado de interacción con usuario z Interacción con otros agentes Sistemas de decisión centralizados 03.02.10 Sistemas cerrados Interacción con el usuario bajo petición Comunicación entre agentes z Distintas formas de interaccionar: 9 9 9 9 z KSE (Knowledge Sharing Effort, ARPA 1990) 9 9 9 z Comunicación mediante el entorno. Si Sistemas de d pizarra. i Sin comunicación (inferencia; teoría de juegos). En el nivel de conocimiento. Sintaxis: KIF (Knowledge Interchange Format) S áti Semática: O Ontolingua t li (definición (d fi i ió de d ontologías) t l í ) Pragmática: KQML (Knowledge Query Manipulation Language) FIPA (Foundation for Intelligence g Physical y Agents g , 1996)) 9 FIPA ACL 9 Basado en la teoría de actos del habla 9 9 03.02.10 9 Performativas e o at as Comunicación en el “nivel de conocimiento” SL (Semantic Language) Requisitos q para p un lenguaje g j de comunicación de agentes z Forma: debería ser declarativa, sintácticamente simple y fácil de leer por humanos y programas. z Contenido: distinguir el lenguaje que expresa los actos comunicativos del lenguaje que expresa el contenido del mensaje. z Semántica z Implementación: transparente a las capas inferiores y debe permitir a los agentes simples implementar subconjuntos del lenguaje. z Red: debe dar soporte a la tecnología actual y ser independiente de los mecanismos de transporte. z E t Entorno: permitir iti heterogeneidad h t id d y dinamismo. di i z Confiabilidad: dar soporte para una comunicación segura y fiable entre los agentes. 03.02.10 KQML z z Es un lenguaje de comunicación y protocolo, protocolo orientado a mensajes, para el intercambio de información. KQML es independiente de z z z z protocolos de transporte (TCP/IP, HTTP, ...), sintaxis de contexto, ontologías l í y protocolos de alto nivel (contract net, subasta, ...). Objetivo Intención Acto de habla Mensaje Prepara para el transporte Recupera de transporte 03.02.10 Servicio de transporte de mensajes KQML – Mensajes z Mensajes KQML z z 03.02.10 Representan un acto de habla o performativas performativas. Consta de una lista de pares atributo-valor. ([3] Pavón, 2003) KQML – Performativas 03.02.10 ([3] Pavón, 2003) FIPA ACL Arquitectura abstracta Mensajería Directorio ACL Implementación concreta: C++ & SMTP Mensajería Servicios de directorio LDAP ACL Implementación concreta: Elementos Java Mensajería j Mensaje de transporte ACL DIRECCIONAMIENTO Y OTROS ATRIBUTOS Mensaje Carga útil Expresado en un ACL Mensaje Emisor: nombre de agente Receptor: nombre de agente Contenido del mensaje En lenguaje de contenidos. 03.02.10 Puede referenciar una ontología. Emisor Receptor CODIFICACIÓN Contenido Emisor: descriptor de transporte R Receptor: t d descriptor i t de d transporte t t Otros atributos: seguridad… Carga útil Mensaje Emisor Receptor Contenido FIPA ACL - Mensajes (i f (inform :sender agente1 :receiver agente2 :content (precio libro 50) :in-reply-to py round 4 :reply-with bi04 :language sl :ontology ontolibro ) Ejemplo 03.02.10 Parámetros de los mensajes: :sender :language :receiver :ontology :content :reply-by :reply-with :protocol :in-reply-to i l t :conversation-id ti id :envelope Tipos de mensajes: accept-proposal inform agree inform if inform-if cancel inform-refrequest cfp not-understood propose p p confirm disconfirm query-if Failure query-ref refuse reject proposal reject-proposal request-when request-whenever q subscribe Funcionamiento de un MAS 1. El agente monitoriza la actividad del usuario z z z Lee/escucha la conversación del usuario Reconoce patrones en la conversación Deduce información y objetivos en función de experiencia pasada 2. El agente persigue lograr sus objetivos z z z Toma decisiones Puede descomponer objetivos en sub-objetivos Ejecuta tareas 3. Para cumplir objetivos necesita colaboración con otros agentes z z z N Negociación i ió Delegación Coordinación 4 Los agentes necesitan servicios de localización de agentes 4. z Páginas blancas/amarillas 5. Comunicación con el usuario z 03.02.10 z z Interfaces avanzadas Información implícita a partir de experiencia pasada o preferencias del usuario Gestión de diálogos Semántica: Ontologías z Problemática: z z z z z Ontología común para representar el conocimiento de distintos universos de discurso. Implementaciones: z z z z z z OIL Ontolingua g KIF RDF / Esquemas XML / DTD OWL Sistemas gestores de ontologías: z z 03.02.10 Diferentes términos para un mismo concepto. El mismo término p para diferentes conceptos. p Diferentes sistemas de clases. Protégé 2000 (Zeus, JADE) Tecnologías g para p interacción en entornos abiertos z XML z z Java y RMI z z Desarrollo de MAS e interoperabilidad p entre agentes heterogéneos (pero desarrollados en Java). CORBA z 03.02.10 Estructuración de la información. Independencia de las plataformas; permite intercambio de mensajes XML entre agentes desarrollados en cualquier lenguaje de programación para el que se haya definido una correspondencia con el IDL. Modelos de programación Sistemas multiagente Sistemas basados en componentes Programación orientada a objetos Programación modular Programación estructurada Programación máquina 03.02.10 Materialización del concepto de agente Objeto 9 9 9 9 Componente Estado Comportamiento p Interfaz Herencia Chips 03.02.10 9 9 9 9 9 Reflexión Empaquetado p q Serialización Repositorio Seguridad Componentes Agente 9 9 9 9 9 9 9 9 9 9 9 ACL Razonamiento Planificación Movilidad Reglas de decisión ... Objetivos y tareas Aprendizaje Ontologías Colaboración Roles Procesadores MAS 9 9 9 9 9 Estructuras organizativas Roles en la organización Normas Recursos Objetivos comunes Redes ([1] ANA MAS, 2005) Ingeniería del Software OA Definición del problema Representación del conocimiento Diseño de agentes Implantación de agentes g Pruebas P b agentes 03.02.10 POA – Diseño del agente Definición del problema Representación del conocimiento Diseño de agentes z z z z 03.02.10 Diseño Diseño Diseño Diseño de la base de conocimiento de la máquina de inferencia del interfaz del lenguaje de comunicación Implantación de agentes Pruebas agentes POA – Implantación del agente Definición del problema Representación del conocimiento Diseño de agentes z z z z z Análisis y selección de herramientas Implantación de la base de conocimiento Implantación de la máquina de inferencia Implantación del interfaz Implantación de la comunicación 03.02.10 Implantación de agentes Pruebas agentes Agente vs vs. Objeto Agente Objeto Autonomía de decisión Ejecuta métodos invocados Flujo de control propio Flujo de control del llamante Encapsula activación del Encapsula estado y comportamiento comportamiento Estado mental: objetivos, creencias… Estado: valor de variables Comportamiento: cómo decidir lo que Comportamiento: salida a partir de una hacer entrada Interacciones: actos de habla Mensajes invocan procedimiento (intencionalidad) Organización: relaciones sociales entre Asociaciones entre objetos agentes 03.02.10 Agente vs vs. Objeto (II) z Wooldridge (1999): “Objects j do it for free,, agents g do it for money.” y z Parunak ((1999): ) Un agente es: 9 Un objeto con iniciativa. 9 Un objeto con actitud u orientación. 9 Un objeto que puede decir “No” (o “Adelante”). 9 Un objeto pro-activo. 03.02.10 POA vs. vs POO Aspecto POA POO Unidad d d básica bá Agente Objeto b Parámetros que definen el estado de la unidad básica Creencias, obligaciones, capacidades selecciones capacidades, Sin restricciones Proceso de cómputo Métodos de paso de mensajes y de respuestas Tipos de mensajes Informes, requerimientos, ofertas, promesas… Sin restricciones Restricciones sobre los métodos Honestidad, consistencia… Ninguno 03.02.10 Estructura de un agente Programa Función AGENTE-ESQUELETO AGENTE ESQUELETO () estática: memoria; memoria ← ACTUALIZA (memoria, percepción) acción ← ESCOGE-ACCIÓN ((memoria)) memoria ← ACTUALIZA (memoria, acción) devuelve (acción) Fin AGENTE-ESQUELETO() 03.02.10 Herramientas AOP z Lenguajes de programación z Java z z z Plataformas ata o as de desarrollo desa o o z z z z z z 03.02.10 JADE (Java Agent DEvelopment Framework) FIPA-OS (FIPA Open Source) ABLE (A (Agentt B Building ildi and d Learning L i Environment) E i t) Jackal OAA ((Open p Agent g Architecture)) Entornos de desarrollo z z J Javalog l (programación ( ió lógica) ló i ) Jess (sistemas basados en reglas de producción) Zeus, AgentBuilder Lenguaje de descripción ó de agentes z AUML ¿Qué es y para qué sirve JADE? z Combinación de dos productos: z z z Arquitectura para ejecutar agentes que soporta: z z z 03.02.10 Una plataforma de agentes FIPA-Compliant FIPA Compliant. Una herramienta de desarrollo de agentes Java. Un modelo de programación de agentes asíncrono asíncrono. Comunicación entre agentes: en la misma y en diferentes plataformas plataformas. Movilidad, seguridad y otras utilidades. Arquitectura de JADE Agente C A li ió MAS Aplicación Agente D Agente A Agente B Capa homogénea Plataforma JADE Java Contenedor principal Contenedor J2SE J2EE Redes inalámbricas y cableadas 03.02.10 Internet Contenedor J2ME Algunas metodologías para desarrollo de MAS z z AAII (1997), basada en BDI MAS-CommonKADS ((1998)) 9 9 z Gaia (2000) 9 z OO con conversaciones entre objetos objetos. MESSAGE (2001), INGENIAS (2003) 9 03.02.10 MAS como conjunto de entidades que interactúan. interactúan MaSE (2001) 9 z Considera 6+1 modelos: Organización, Tareas, Agente, Comunicaciones, Experiencia, Diseño, Coordinación. C CommonKADS KADS (1994) extendido did con OO, OO SDL y MSC. MSC Meta-modelos. Meta modelos. MAS en la metodología INGENIAS MODELO DE ORGANIZACIÓN MODELO DE AGENTE MAS MODELO DE INTERACCIONES 03.02.10 MODELO DE OBJETIVOS/TAREAS MODELO DE ENTORNO ([2] Pavón, 2003) ¿Cuándo usar agentes? z En el diseño de sistemas distribuidos los agentes proporcionan: 9 9 9 z En el análisis de un sistema los agentes tienen mayor grado de abstracción que objetos o componentes: 9 9 9 z 9 9 9 03.02.10 Mayor autonomía y capacidad de decisión Varios componentes heterogéneos que mantienen relaciones entre ellos y con escala de tiempo diferentes M d l d de Modelado d sistemas i t naturales t l y sociales i l Facilitan la evolución: 9 z Aspectos sociales Lenguajes g j y protocolos p de comunicación Distribución de datos, control, conocimiento y recursos Adaptación a modificaciones y al entorno Escalabilidad: añadir agentes para soportar más carga de trabajo Desarrollo incremental Sistemas abiertos: capacidad de aceptar nuevos elementos NO son siempre la solución ideal: 9 Ausencia de control/visión global del sistema Problemas de los MAS z z z z z z z z 03.02.10 Descomposición del problema. Comunicación entre agentes. Coherencia en las actuaciones. Representación del conocimiento de otros agentes. Coordinación de acciones. acciones Gestionar el uso de recursos. Evitar comportamientos globales no deseados. Diseño de MAS: metodología y desarrollo. desarrollo Más sobre agentes 03.02.10 Agentes móviles z Agente móvil: Agente que realiza sus tareas no sólo en la computadora de su propietario, sino también en otras en la red: ¾ ¾ ¾ z Un agente móvil tiene capacidad para decidir a qué servidores moverse: ¾ z z Hay instrucciones explícitas para que el agente pueda parar su ejecución, migrar a otro nodo (preservando su estado), y continuar su ejecución. Puede moverse a uno o más servidores. servidores Es una extensión del modelo cliente-servidor: ¾ 03.02.10 buscando información en beneficio de su p propietario, p , negociando y cerrando tratos en su nombre, utilizando servicios remotos. Los clientes envían parte de ellos al servidor (o a varios servidores) para ejecutarse. ejecutarse ([3] Pavón, 2003) Agentes g para p recuperación p de información z z z z Acceso a diversas fuentes de información. Capaz de agrupar y manipular la información obtenida para ponerla a disposición ó del usuario. Usualmente a través de la Web. Ti Tipos (no ( excluyentes) l t ) z z z z 03.02.10 Agentes de búsqueda Agentes de filtrado Agentes de monitorización W b semántica Web á ti ([14] Botti, 2003) Agentes g para p recuperación p de información - Aplicaciones 03.02.10 ([14] Botti, 2003) Agentes para el comercio electrónico … 03.02.10 Referencias [1] ANA MAS (2005), Agentes software y sistemas multiagente: Conceptos, arquitecturas y aplicaciones, Pearson – Prentice Hall, ISBN 84-205-4367-5 [2] J. Pavón, J.J. Gómez-Sanz (2003), Agent Oriented Software Engineering with INGENIAS, CEEMAS 2003, Lectures Notes in Computer Science 2691, Springer-Verlag, 394 – 403, http://ingenias sourceforge net/ http://ingenias.sourceforge.net/ [3] J. Pavón (2003), Agentes inteligentes - Comunicación entre agentes, Departamento de Sistemas Informáticos y Programación, UCM, http://grasia.fdi.ucm.es [4] M. Wooldridge (2001), An introduction to MultiAgent Systems, Wiley, ISBN: 0-471-49691-X [[5]] Zarnekow,, 1998 [6] FIPA, http://www.fipa.org [7] KQML, http:// www.cs.stanford.edu/kqml [8] KIF, http:// logic.stanford.edu/kif [[9]] Ontologías, g , http:// p // www.ontoknowledge.org g g [10] Protégé, http://protege.stanford.edu/ [11] Tutorial de Jade, de Juan Botía disponible en http://ants.dif.um.es/~juanbot/ [12] http://www.upv.es/sma/web/materiales.htm [[13]] V. Botti et al. ((2002), ), Agentes g [cdrom], [ ], Universidad Politécnica de Valencia,, Departamento p de Sistemas Informáticos y Computación, http://www.upv.es/sma/web/agentes.htm [14] CJ. Gómez y J. Pavón (2003), Curso de doctorado: Agentes Inteligentes - Desarrollo de Sistemas Multi-Agente. La metodología INGENIAS, UCM, Departamento de Sistemas Informáticos y Programación, http://grasia.fdi.ucm.es [15] P. P Cuesta Cuesta, Universidad de Vigo, Vigo http://trevinca.ei.uvigo.es/~pcuesta/sm/enlaces.htm http://trevinca ei uvigo es/~pcuesta/sm/enlaces htm [16] J.M. Bradshaw (1997), Software Agents, AAAI Press, ISBN-13: 978-0262522342 03.02.10 Referencias (II) [17] Agentes, Universidad Politécnica de Valencia, http://www.upv.es/sma/web/agentes.htm [18] Web sobre metologías de agentes, http://ma.ei.uvigo.es/isoa/metodologias.php#OTROS [19] P. Valckenaers et al. (2007), Applications and environments for multi-agent systems, Autonomous Agent Multi-Agent System, 14:61–85 [20] C.A. C A Iglesias I l i (1998), (1998) Definición D fi i ió de d una metodología t d l í para ell desarrollo d ll de d sistemas i t multiagente, Tesis doctoral, Departamento de Ingeniería de Sistemas Telemáticos, Universidad Politécnica De Madrid. [21] W. Brenner et al. (1998), Intelligent Software Agents, Springer Verlag (Heidelberg). [22] H.S. H S Nwana (1996) (1996), Software Agents: An Overview Overview, Knowledge Engineering Review, Review 11(3): 205-244. [23] AgentLink, European Commission's IST-funded Coordination Action for Agent-Based Computing, http://www.agentlink.org/ [24] P. Suau, Tutorial de JADE, http://www.dccia.ua.es/ http://www.dccia.ua.es/~pablo/tutorial pablo/tutorial_agentes/index.html agentes/index.html [25] Jacques Ferber (1999), Multi-Agent Systems: an Introduction to Distributed Artificial Intelligence, Addison-Wesley, ISBN: 0-201-36048-9. [26] G. Weiss (editor) (1999), Multi-Agent Systems, The MIT Press. [[27]] S. Russell y P. Norvig g (1995), ( ) Artificial Intelligence: g A Modern Approach pp , Prentice Hall, ISBN: 0-13-360124-2. [28] Revista: Autonomous Agents and Multi-Agent Systems, Kluwer Academic Publishers, http://www.kluweronline.com/issn/1387-2532 [29] Revista: IEEE Intelligent Systems, http://www.computer.org/intelligent/ ... 03.02.10 Referencias Agentes software y sistemas multiagente: Conceptos, arquitecturas y aplicaciones, Pearson – Prentice Hall, ISBN 84-205-4367-5 [2] J. Pavón, J.J. Gómez-Sanz (2003), Agent Oriented Software Engineering with INGENIAS, CEEMAS 2003, Lectures Notes in Computer Science 2691, Springer-Verlag, 394 – 403, http://ingenias.sourceforge.net/ [3] J. Pavón (2003), Agentes inteligentes - Comunicación entre agentes, Departamento de Sistemas Informáticos y Programación, UCM, http://grasia.fdi.ucm.es [4] M. Wooldridge (2001), An introduction to MultiAgent Systems, Wiley, ISBN: 0-471-49691-X [5] Zarnekow, 1998 [6] FIPA, http://www.fipa.org [7] KQML, KQML http:// www www.cs.stanford.edu/kqml cs stanford edu/kqml [8] KIF, http:// logic.stanford.edu/kif [9] Ontologías, http:// www.ontoknowledge.org [10] Protégé, http://protege.stanford.edu/ [11] Tutorial de Jade, de Juan Botía disponible en http://ants.dif.um.es/~juanbot/ [12] http://www.upv.es/sma/web/materiales.htm htt // / / b/ t i l ht [13] Acl.pdf [14] V. Botti et al. (2002), Agentes [cdrom], Universidad Politécnica de Valencia, Departamento de Sistemas Informáticos y Computación, http://www.upv.es/sma/web/agentes.htm [15] desarrolloSMA.pdf Jennings [13] Sycara [1] ANA MAS (2005), Jennings [13] Sycara … mirar documento soton -hiparsys documento soton … mirar http://trevinca.ei.uvigo.es/~pcuesta/sm/enlaces.htm hiparsys 03.02.10 Web sobre metologías de agentes, http://ma.ei.uvigo.es