Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Sistemas MultiAgente (MAS)Sistemas MultiAgente (MAS)Dra. María del Carmen Romero Ternero ([email protected])http://www.dte.us.es/personal/mcromeroDra. María del Carmen Romero Ternero ([email protected])http://www.dte.us.es/personal/mcromero
Programa de doctorado Informática Industrial 2007-2008Departamento de Tecnología Electrónica – Universidad de SevillaPrograma de doctorado Informática Industrial 2007-2008Departamento de Tecnología Electrónica – Universidad de Sevilla
27.06.08
ÍndiceÍndiceParte 1: Fundamentos de los Agentes y Sistemas Multiagente
1. Introducción: orígenes, usos y áreas de aplicación2. Definiciones de agente3. Características de los agentes4. Clasificación de los agentes5. Sistema multiagente6. Arquitecturas7. Agentes vs. sistemas expertos
Parte 2: Comunicación entre agentes1. Fundamentos2. Estructura de los mensajes
FIPA-ACLKQML
4. Semántica de los mensajes: Ontologías5. Protocolos de Interacción6. Negociación7. Tecnologías para interacción en entornos abiertos
Parte 3: Metodologías y Herramientas de Desarrollo1. Modelo de programación2. Ingeniería de Software Orientada a Agentes3. El desarrollo con agentes4. Agentes vs. objetos5. Herramientas de desarrollo6. Metodologías de desarrollo
Parte 4: Más sobre agentes
27.06.08
Tecnología de agentesTecnología de agentes
No es algo nuevoNo se trata de una tecnología cerrada (corrientes tecnológicas de la IS, la IA, y las telecomunicaciones)No es la panaceaVentajas del desarrollo con agentes:
Son amigables, flexibles, adaptables a los usuarios, robustos...Menor coste (facilitan la reutilización)Reducción del mantenimiento
− 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.
Se integran y son compatibles con otras tecnologías (web, BDs, componentes...)Simplifica labor de ingenieros, utilizando patrones de agente para concentrar los esfuerzos en la definición del comportamiento.
No es algo nuevoNo se trata de una tecnología cerrada (corrientes tecnológicas de la IS, la IA, y las telecomunicaciones)No es la panaceaVentajas del desarrollo con agentes:
Son amigables, flexibles, adaptables a los usuarios, robustos...Menor coste (facilitan la reutilización)Reducción del mantenimiento
− 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.
Se integran y son compatibles con otras tecnologías (web, BDs, componentes...)Simplifica labor de ingenieros, utilizando patrones de agente para concentrar los esfuerzos en la definición del comportamiento.
27.06.08
Introducción: OrígenesIntroducción: Orígenes
Objetivos que han marcado la historia de la computación:
Ubicuidad: Reducción del coste de la capacidad computacional.
Interconexión: Los sistemas computacionales forman redes de grandes sistemas distribuidos.
Inteligencia: La complejidad de las tareas puede automatizarse y delegarse a los 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.
Objetivos que han marcado la historia de la computación:
Ubicuidad: Reducción del coste de la capacidad computacional.
Interconexión: Los sistemas computacionales forman redes de grandes sistemas distribuidos.
Inteligencia: La complejidad de las tareas puede automatizarse y delegarse a los 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.
27.06.08
Introducción: Orígenes (II)Introducción: Orígenes (II)
Grandes desafíos para desarrolladores de software:Delegación – actuar de modo independiente.Inteligencia – actuar del modo que represente nuestros mejores intereses mientras se interactúa con otros humanos o sistemas.
Sistemas que actúen de un modo efectivo en nuestro nombre.
Sistemas con habilidad de cooperación y capaces de alcanzar consensos con otros sistemas.
Grandes desafíos para desarrolladores de software:Delegación – actuar de modo independiente.Inteligencia – actuar del modo que represente nuestros mejores intereses mientras se interactúa con otros humanos o sistemas.
Sistemas que actúen de un modo efectivo en nuestro nombre.
Sistemas con habilidad de cooperación y capaces de alcanzar consensos con otros sistemas.
Sistemas Multiagente
27.06.08
Introducción: UsosIntroducción: Usos
Servicios de información en InternetRecuperación y extracción de informaciónComercio ElectrónicoMercado de servicios electrónicoNegociaciónEquipos móviles y PCs domésticosRedes públicas de telecomunicacionesProvisión de servicios bajo demandaDescentralización del control y gestión de redesGestión de procesos (workflow)Simulación de sistemas dinámicosJuegosRobótica…
Servicios de información en InternetRecuperación y extracción de informaciónComercio ElectrónicoMercado de servicios electrónicoNegociaciónEquipos móviles y PCs domésticosRedes públicas de telecomunicacionesProvisión de servicios bajo demandaDescentralización del control y gestión de redesGestión de procesos (workflow)Simulación de sistemas dinámicosJuegosRobótica…
Personalización de servicios
Flexibilidad de la distribución
Delegación de tareas
Personalización de servicios
Flexibilidad de la distribución
Delegación de tareas
27.06.08
Introducción: Dominios - AgentesIntroducción: Dominios - Agentes
Interfaces de usuario
Comercio electrónico
Sistemas de información
Internet Inteligencia artificial
Sistemas cooperativos
Sistemas distribuidos
Gestión del conocimiento
Recuperación de la información
Robótica
Agentes
27.06.08
Introducción: Áreas - MultiagenteIntroducción: Áreas - Multiagente
Inteligencia Inteligencia artificial e IADartificial e IAD
PsicologíaPsicologíaSociologíaSociología
Sistemas Sistemas distribuidosdistribuidos
Programación OOProgramación OO
Teorías económicasTeorías económicasTeoría de la decisiónTeoría de la decisión
ProactividadProactividad
AprendizajeAprendizaje
RacionalidadRacionalidad
AutonomíaAutonomíaMercadosMercados
Programación OAProgramación OA
ComunicacionesComunicaciones
MovilidadMovilidad
OrganizacionesOrganizacionesCarácterCarácter
ReactividadReactividad
CooperaciónCooperación
MASMAS
27.06.08
Una primera aproximaciónUna primera aproximación
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í.Para interactuar satisfactoriamente, los agentes necesitan las habilidades de cooperación, coordinación y negociación.
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í.Para interactuar satisfactoriamente, los agentes necesitan las habilidades de cooperación, coordinación y negociación.
27.06.08
Características (básicas) de los agentes
Características (básicas) de los agentes
Autonomía:Los agentes actúan sin intervención humana directa o de otros agentes y tienen algunaclase de control sobre sus acciones y estado interno. El software tradicional se ejecuta enentornos interactivos, donde responde a órdenes directas del usuario.
Reactividad:Percibe el entorno en el que está inmerso y responde de manera oportuna a cambios quetienen lugar en él (para actuar adecuadamente un agente debe poder conocer en todomomento el “mundo” que le rodea).
Iniciativa (proactividad):Tiene que tener un carácter emprendedor y tomar la iniciativa para actuar guiado por losobjetivos que debe satisfacer. En cada momento el agente decide qué acción llevar acabo. No sólo actúa en función de los estímulos que percibe sino que realiza accionescomo resultado de sus decisiones.
Sociabilidad:Capacidad de interaccionar con otros agentes (incluso humanos) utilizando alguna clasede lenguaje de comunicación de agentes. Los agentes colaboran entre sí para la ejecuciónde tareas (MAS).
Autonomía:Los agentes actúan sin intervención humana directa o de otros agentes y tienen algunaclase de control sobre sus acciones y estado interno. El software tradicional se ejecuta enentornos interactivos, donde responde a órdenes directas del usuario.
Reactividad:Percibe el entorno en el que está inmerso y responde de manera oportuna a cambios quetienen lugar en él (para actuar adecuadamente un agente debe poder conocer en todomomento el “mundo” que le rodea).
Iniciativa (proactividad):Tiene que tener un carácter emprendedor y tomar la iniciativa para actuar guiado por losobjetivos que debe satisfacer. En cada momento el agente decide qué acción llevar acabo. No sólo actúa en función de los estímulos que percibe sino que realiza accionescomo resultado de sus decisiones.
Sociabilidad:Capacidad de interaccionar con otros agentes (incluso humanos) utilizando alguna clasede lenguaje de comunicación de agentes. Los agentes colaboran entre sí para la ejecuciónde tareas (MAS).
27.06.08
El agente y su mundoEl agente y su mundo
AGENTEAGENTE ENTORNOENTORNO
ACCIÓN(salida)
SENSORES
PERCEPCIÓN(entrada)
ACTUADORES
27.06.08
¿Cómo influye el entorno en el agente?¿Cómo influye el entorno en el agente?
En la mayoría de los casos el agente sólo controlará parte del entorno.
Una misma acción realizada por el mismo agente en ocasionesdiferentes puede tener efectos muy distintos (entornos no deterministas).
Un agente debe estar preparado para fallar o para la incertidumbre de no saber si ha tenido éxito o no.
Un agente dispone de un repertorio de acciones disponibles con sus correspondientes precondiciones.
El principal problema al que se enfrenta un agente es decidirqué acción realizar para alcanzar sus objetivos de diseño.
En la mayoría de los casos el agente sólo controlará parte del entorno.
Una misma acción realizada por el mismo agente en ocasionesdiferentes puede tener efectos muy distintos (entornos no deterministas).
Un agente debe estar preparado para fallar o para la incertidumbre de no saber si ha tenido éxito o no.
Un agente dispone de un repertorio de acciones disponibles con sus correspondientes precondiciones.
El principal problema al que se enfrenta un agente es decidirqué acción realizar para alcanzar sus objetivos de diseño.
27.06.08
Características (complementarias) de los agentes
Características (complementarias) de los agentes
Movilidad: habilidad para trasladarse en una red electrónica (agentes móviles).
Veracidad: se supone que un agente no comunica información falsa intencionadamente.
Benevolencia: se supone que un agente no tiene objetivos contradictorios y siempre intenta realizar la tarea que se le solicita.
Inteligencia: racional, coherente y adaptable.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.
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.
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.
Movilidad: habilidad para trasladarse en una red electrónica (agentes móviles).
Veracidad: se supone que un agente no comunica información falsa intencionadamente.
Benevolencia: se supone que un agente no tiene objetivos contradictorios y siempre intenta realizar la tarea que se le solicita.
Inteligencia: racional, coherente y adaptable.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.
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.
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.
27.06.08
Clasificación de agentesClasificación de agentes
([21] Brenner, 1998)
Agentes
Agentes humanos Agentes hardware Agentes software
Agentes de información
Agentes cooperativos
Agentes de transacción
([22] Nwana, 1996)
27.06.08
Clasificación de agentes (II)Clasificación de agentes (II)
Movilidad
Nº agentes
Grado de inteligencia
simple complejo móvil
inmóvil
agente único
multiagente
([4] Wooldridge, 2001)
Sociabilidad
Inteligencia
Movilidad
Ejecución remota
MigraciónPreferencias
RazonamientoPlanificación (pro-activo)
Aprendizaje (adaptativo)
Interacción con usuario
Comunicación
Colaboración/negociación
27.06.08
Multi-Agent SystemMulti-Agent System
([4] Wooldridge, 2001)
27.06.08
Características de los MASCaracterísticas de los MAS
Cada agente no tiene información completa ni capacidad para resolver el problema.Tienen puntos de vista limitados.No hay un sistema de control global.Los datos están descentralizados.Computación asíncrona.
Cada agente no tiene información completa ni capacidad para resolver el problema.Tienen puntos de vista limitados.No hay un sistema de control global.Los datos están descentralizados.Computación asíncrona.
27.06.08
ModelosModelos
([16] Bradshaw, 1997)
27.06.08
Arquitecturas de agentesArquitecturas de agentes
Basadas en la lógicaDeliverativasReactivasHíbridas
Basadas en la lógicaDeliverativasReactivasHíbridas
(Agentes, http://www.upv.es/sma/web/agentes.htm)
27.06.08
Arquitectura BDI (Belief, Desire, Intention)
Arquitectura BDI (Belief, Desire, Intention)
([1] ANA MAS, 2005)
Entrada de eventos procedentes del
entorno
Acciones a realizar para alcanzar un
deseo. Qué acción debe emprender en
este momento
ENTORNO
CREENCIAS(Experiencias
pasadas)
DESEOS(Cómo quiero que quede el
entorno en un futuro próximo)
INTENCIONES
Cómo es el mundo en este
momento
27.06.08
Ejemplos de agentes DBIEjemplos de agentes DBI
Jadex JasonSPARKJACKJAM y UM-PRS
Jadex JasonSPARKJACKJAM y UM-PRS
(http://vsis-www.informatik.uni-hamburg.de/projects/jadex/)
(http://jason.sourceforge.net/JasonWebSite/Jason%20Home.php)
(http://www.ai.sri.com/~spark/)
(http://www.agent-software.com.au/)
(http://www.marcush.net/IRS/irs_downloads.html)
27.06.08
Arquitectura reactiva - EjemploArquitectura reactiva - Ejemplo
SENSORESSENSORES
Distanciaángulo
Distanciaángulo
Distancia aobstáculos
Distancia aobstáculos
SEGUIR UNOBJETO
SEGUIR UNOBJETO
EVITAROBSTÁCULOS
EVITAROBSTÁCULOS
…
…Fuerza a la salida a elegir
entre una de las dos acciones
27.06.08
MAS vs. Sistemas Expertos MAS vs. Sistemas Expertos
Interacción con otros agentes
Interacción con el usuario bajo petición
Mayor grado de interacción con usuario
Sistemas de decisión centralizados
Distribución de la toma de decisiones
Sistemas cerradosInteractúan con el
entorno
Sistemas ExpertosAgentes
27.06.08
Comunicación entre agentesComunicación entre agentes
Distintas formas de interaccionar:Comunicación mediante el entorno.Sistemas de pizarra.Sin comunicación (inferencia; teoría de juegos).En el nivel de conocimiento.
KSE (Knowledge Sharing Effort, ARPA 1990)Sintaxis: KIF (Knowledge Interchange Format)Semática: Ontolingua (definición de ontologías)Pragmática: KQML (Knowledge Query Manipulation Language)
FIPA (Foundation for Intelligence Physical Agents, 1996)FIPA ACL
Basado en la teoría de actos del hablaPerformativas
Comunicación en el “nivel de conocimiento”SL (Semantic Language)
Distintas formas de interaccionar:Comunicación mediante el entorno.Sistemas de pizarra.Sin comunicación (inferencia; teoría de juegos).En el nivel de conocimiento.
KSE (Knowledge Sharing Effort, ARPA 1990)Sintaxis: KIF (Knowledge Interchange Format)Semática: Ontolingua (definición de ontologías)Pragmática: KQML (Knowledge Query Manipulation Language)
FIPA (Foundation for Intelligence Physical Agents, 1996)FIPA ACL
Basado en la teoría de actos del hablaPerformativas
Comunicación en el “nivel de conocimiento”SL (Semantic Language)
27.06.08
Requisitos para un lenguaje de comunicación de agentes
Requisitos para un lenguaje de comunicación de agentes
Forma: debería ser declarativa, sintácticamente simple y fácil de leer por humanos y programas.
Contenido: distinguir el lenguaje que expresa los actoscomunicativos del lenguaje que expresa el contenido del mensaje.
Semántica
Implementación: transparente a las capas inferiores y debepermitir a los agentes simples implementar subconjuntos del lenguaje.
Red: debe dar soporte a la tecnología actual y ser independiente de los mecanismos de transporte.
Entorno: permitir heterogeneidad y dinamismo.
Confiabilidad: dar soporte para una comunicación segura y fiableentre los agentes.
Forma: debería ser declarativa, sintácticamente simple y fácil de leer por humanos y programas.
Contenido: distinguir el lenguaje que expresa los actoscomunicativos del lenguaje que expresa el contenido del mensaje.
Semántica
Implementación: transparente a las capas inferiores y debepermitir a los agentes simples implementar subconjuntos del lenguaje.
Red: debe dar soporte a la tecnología actual y ser independiente de los mecanismos de transporte.
Entorno: permitir heterogeneidad y dinamismo.
Confiabilidad: dar soporte para una comunicación segura y fiableentre los agentes.
27.06.08
KQMLKQMLEs un lenguaje de comunicación y protocolo, orientado a mensajes, para el intercambio de información.KQML es independiente de
protocolos de transporte (TCP/IP, HTTP, ...),sintaxis de contexto,ontologías yprotocolos de alto nivel (contract net, subasta, ...).
Es un lenguaje de comunicación y protocolo, orientado a mensajes, para el intercambio de información.KQML es independiente de
protocolos de transporte (TCP/IP, HTTP, ...),sintaxis de contexto,ontologías yprotocolos de alto nivel (contract net, subasta, ...).
Objetivo
Intención
Acto de habla
Mensaje
Prepara para el transporte Recupera de transporte
Servicio de transporte de mensajes
27.06.08
KQML – MensajesKQML – Mensajes
Mensajes KQMLRepresentan un acto de habla o performativas.Consta de una lista de pares atributo-valor.
Mensajes KQMLRepresentan un acto de habla o performativas.Consta de una lista de pares atributo-valor.
([3] Pavón, 2003)
27.06.08
KQML – PerformativasKQML – Performativas
([3] Pavón, 2003)
27.06.08
FIPA ACLFIPA ACL
Arquitectura abstractaArquitectura abstracta
MensajeríaMensajería DirectorioDirectorio ACLACL
Implementación concreta: C++ & SMTP
Implementación concreta: C++ & SMTP
MensajeríaMensajería ACLACL
Servicios de directorio LDAP
Servicios de directorio LDAP
Implementación concreta: Elementos Java
Implementación concreta: Elementos Java
MensajeríaMensajería ACLACL
MensajeMensajeExpresado en un ACL
Emisor: nombre de agenteReceptor: nombre de agente
Contenido del mensajeEn lenguaje de contenidos.Puede referenciar una ontología.
Carga útilCarga útil
Mensaje
EmisorReceptor
EmisorReceptor
ContenidoContenidoCODIFICACIÓN
Mensaje de transporteMensaje de transporteEmisor: descriptor de transporteReceptor: descriptor de transporteOtros atributos: seguridad…
DIRECCIONAMIENTOY OTROS ATRIBUTOS
Carga útilCarga útil
Mensaje
EmisorReceptor
EmisorReceptor
ContenidoContenido
27.06.08
FIPA ACL - MensajesFIPA ACL - Mensajes(inform
:sender agente1:receiver agente2:content
(precio libro 50):in-reply-to round 4:reply-with bi04:language sl:ontology ontolibro
)
(inform:sender agente1:receiver agente2:content
(precio libro 50):in-reply-to round 4:reply-with bi04:language sl:ontology ontolibro
)EjemploEjemplo
Parámetros de los mensajes::sender :language:receiver :ontology:content :reply-by:reply-with :protocol:in-reply-to :conversation-id:envelope
Parámetros de los mensajes::sender :language:receiver :ontology:content :reply-by:reply-with :protocol:in-reply-to :conversation-id:envelope
Tipos de mensajes:accept-proposal inform refuseagree inform-if reject-proposalcancel inform-refrequestcfp not-understood request-whenconfirm propose request-wheneverdisconfirm query-if subscribeFailure query-ref
Tipos de mensajes:accept-proposal inform refuseagree inform-if reject-proposalcancel inform-refrequestcfp not-understood request-whenconfirm propose request-wheneverdisconfirm query-if subscribeFailure query-ref
27.06.08
Funcionamiento de un MASFuncionamiento de un MAS
1. El agente monitoriza la actividad del usuarioLee/escucha la conversación del usuarioReconoce patrones en la conversaciónDeduce información y objetivos en función de experiencia pasada
2. El agente persigue lograr sus objetivosToma decisionesPuede descomponer objetivos en sub-objetivosEjecuta tareas
3. Para cumplir objetivos necesita colaboración con otros agentesNegociaciónDelegaciónCoordinación
4. Los agentes necesitan servicios de localización de agentesPáginas blancas/amarillas
5. Comunicación con el usuarioInterfaces avanzadasInformación implícita a partir de experiencia pasada o preferencias del usuarioGestión de diálogos
1. El agente monitoriza la actividad del usuarioLee/escucha la conversación del usuarioReconoce patrones en la conversaciónDeduce información y objetivos en función de experiencia pasada
2. El agente persigue lograr sus objetivosToma decisionesPuede descomponer objetivos en sub-objetivosEjecuta tareas
3. Para cumplir objetivos necesita colaboración con otros agentesNegociaciónDelegaciónCoordinación
4. Los agentes necesitan servicios de localización de agentesPáginas blancas/amarillas
5. Comunicación con el usuarioInterfaces avanzadasInformación implícita a partir de experiencia pasada o preferencias del usuarioGestión de diálogos
27.06.08
Semántica: OntologíasSemántica: Ontologías
Problemática:Diferentes términos para un mismo concepto.El mismo término para diferentes conceptos.Diferentes sistemas de clases.
Ontología común para representar el conocimiento de distintos universos de discurso.Implementaciones:
OILOntolinguaKIFRDF / Esquemas XML / DTDOWL
Sistemas gestores de ontologías:Protégé 2000(Zeus, JADE)
Problemática:Diferentes términos para un mismo concepto.El mismo término para diferentes conceptos.Diferentes sistemas de clases.
Ontología común para representar el conocimiento de distintos universos de discurso.Implementaciones:
OILOntolinguaKIFRDF / Esquemas XML / DTDOWL
Sistemas gestores de ontologías:Protégé 2000(Zeus, JADE)
27.06.08
Tecnologías para interacción en entornos abiertos
Tecnologías para interacción en entornos abiertos
XMLEstructuración de la información.
Java y RMIDesarrollo de MAS e interoperabilidad entre agentes heterogéneos (pero desarrollados en Java).
CORBAIndependencia 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.
XMLEstructuración de la información.
Java y RMIDesarrollo de MAS e interoperabilidad entre agentes heterogéneos (pero desarrollados en Java).
CORBAIndependencia 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.
27.06.08
Modelos de programaciónModelos de programación
Programación máquinaProgramación máquina
Programación estructuradaProgramación estructurada
Programación modularProgramación modular
Programación orientada a objetosProgramación orientada a objetos
Sistemas basados en componentesSistemas basados en componentes
Sistemas multiagenteSistemas multiagente
27.06.08
Materialización del concepto de agenteMaterialización del concepto de agente
([1] ANA MAS, 2005)
Objeto Componente Agente MAS
EstadoComportamientoInterfazHerencia
ReflexiónEmpaquetadoSerializaciónRepositorioSeguridad
ACLRazonamientoPlanificaciónMovilidadReglas de decisión...Objetivos y tareasAprendizajeOntologíasColaboraciónRoles
Estructuras organizativasRoles en la organizaciónNormasRecursosObjetivos comunes
Chips Componentes Procesadores Redes
27.06.08
Ingeniería del Software OAIngeniería del Software OA
Definición del problema
Representación delconocimiento
Diseño de agentes
Implantación de agentes
Pruebas agentes
27.06.08
POA – Diseño del agentePOA – Diseño del agente
Diseño de la base de conocimientoDiseño de la máquina de inferenciaDiseño del interfazDiseño del lenguaje de comunicación
Diseño de la base de conocimientoDiseño de la máquina de inferenciaDiseño del interfazDiseño del lenguaje de comunicación
Definición del problema
Representación delconocimiento
Diseño de agentes
Implantación de agentes
Pruebas agentes
27.06.08
POA – Implantación del agentePOA – Implantación del agente
Análisis y selección de herramientasImplantación de la base de conocimientoImplantación de la máquina de inferenciaImplantación del interfazImplantación de la comunicación
Análisis y selección de herramientasImplantación de la base de conocimientoImplantación de la máquina de inferenciaImplantación del interfazImplantación de la comunicación
Definición del problema
Representación delconocimiento
Diseño de agentes
Implantación de agentes
Pruebas agentes
27.06.08
Agente vs. ObjetoAgente vs. Objeto
Asociaciones entre objetosOrganización: relaciones sociales entre agentes
Mensajes invocan procedimientoInteracciones: actos de habla (intencionalidad)
Comportamiento: salida a partir de una entrada
Comportamiento: cómo decidir lo que hacer
Estado: valor de variablesEstado mental: objetivos, creencias…
Encapsula estado y comportamientoEncapsula activación del comportamiento
Flujo de control del llamanteFlujo de control propio
Ejecuta métodos invocadosAutonomía de decisión
ObjetoAgente
27.06.08
Agente vs. Objeto (II)Agente vs. Objeto (II)
Wooldridge (1999): “Objects do it for free, agents do it for money.”
Parunak (1999): Un agente es:
Un objeto con iniciativa.Un objeto con actitud u orientación.Un objeto que puede decir “No” (o “Adelante”).Un objeto pro-activo.
Wooldridge (1999): “Objects do it for free, agents do it for money.”
Parunak (1999): Un agente es:
Un objeto con iniciativa.Un objeto con actitud u orientación.Un objeto que puede decir “No” (o “Adelante”).Un objeto pro-activo.
27.06.08
POA vs. POOPOA vs. POO
NingunoHonestidad, consistencia…Restricciones sobre los métodos
Sin restriccionesInformes, requerimientos, ofertas, promesas…Tipos de mensajes
Métodos de paso de mensajes y de respuestasProceso de cómputo
Sin restriccionesCreencias, obligaciones, capacidades, selecciones
Parámetros que definen el estado de la unidad básica
ObjetoAgenteUnidad básica
POOPOAAspecto
27.06.08
Estructura de un agenteEstructura de un agente
ProgramaFunción 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()
ProgramaFunción 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()
27.06.08
Herramientas AOPHerramientas AOP
Lenguajes de programaciónJava
Javalog (programación lógica)Jess (sistemas basados en reglas de producción)
Plataformas de desarrolloJADE (Java Agent DEvelopment Framework)FIPA-OS (FIPA Open Source)ABLE (Agent Building and Learning Environment)JackalOAA (Open Agent Architecture)
Entornos de desarrolloZeus, AgentBuilder
Lenguaje de descripción de agentesAUML
Lenguajes de programaciónJava
Javalog (programación lógica)Jess (sistemas basados en reglas de producción)
Plataformas de desarrolloJADE (Java Agent DEvelopment Framework)FIPA-OS (FIPA Open Source)ABLE (Agent Building and Learning Environment)JackalOAA (Open Agent Architecture)
Entornos de desarrolloZeus, AgentBuilder
Lenguaje de descripción de agentesAUML
27.06.08
¿Qué es y para qué sirve JADE?¿Qué es y para qué sirve JADE?
Combinación de dos productos:Una plataforma de agentes FIPA-Compliant.Una herramienta de desarrollo de agentes Java.
Arquitectura para ejecutar agentes que soporta:
Un modelo de programación de agentes asíncrono.Comunicación entre agentes: en la misma y en diferentes plataformas.Movilidad, seguridad y otras utilidades.
Combinación de dos productos:Una plataforma de agentes FIPA-Compliant.Una herramienta de desarrollo de agentes Java.
Arquitectura para ejecutar agentes que soporta:
Un modelo de programación de agentes asíncrono.Comunicación entre agentes: en la misma y en diferentes plataformas.Movilidad, seguridad y otras utilidades.
27.06.08
Arquitectura de JADEArquitectura de JADE
Agente C
Agente A
Agente B
Agente D
Aplicación MASAplicación MAS
Plataforma JADE Contenedor principal Contenedor Contenedor
JavaJava
Capa homogéneaCapa homogénea
J2SE J2EE J2ME
Internet
Redes inalámbricas y cableadasRedes inalámbricas y cableadas
27.06.08
Algunas metodologías paradesarrollo de MAS
Algunas metodologías paradesarrollo de MAS
AAII (1997), basada en BDIMAS-CommonKADS (1998)
Considera 6+1 modelos: Organización, Tareas, Agente, Comunicaciones, Experiencia, Diseño, Coordinación.CommonKADS (1994) extendido con OO, SDL y MSC.
Gaia (2000)MAS como conjunto de entidades que interactúan.
MaSE (2001)OO con conversaciones entre objetos.
MESSAGE (2001), INGENIAS (2003)Meta-modelos.
AAII (1997), basada en BDIMAS-CommonKADS (1998)
Considera 6+1 modelos: Organización, Tareas, Agente, Comunicaciones, Experiencia, Diseño, Coordinación.CommonKADS (1994) extendido con OO, SDL y MSC.
Gaia (2000)MAS como conjunto de entidades que interactúan.
MaSE (2001)OO con conversaciones entre objetos.
MESSAGE (2001), INGENIAS (2003)Meta-modelos.
27.06.08
MAS en la metodología INGENIASMAS en la metodología INGENIAS
MAS
MODELO DE ORGANIZACIÓN
MODELO DE OBJETIVOS/TAREAS
MODELO DE ENTORNOMODELO DE
INTERACCIONES
MODELO DE AGENTE
([2] Pavón, 2003)
27.06.08
¿Cuándo usar agentes?¿Cuándo usar agentes?
En el diseño de sistemas distribuidos los agentes proporcionan:Aspectos socialesLenguajes y protocolos de comunicaciónDistribución de datos, control, conocimiento y recursos
En el análisis de un sistema los agentes tienen mayor grado de abstracción que objetos o componentes:
Mayor autonomía y capacidad de decisiónVarios componentes heterogéneos que mantienen relaciones entre ellos y con escala de tiempo diferentesModelado de sistemas naturales y sociales
Facilitan la evolución:Adaptación a modificaciones y al entornoEscalabilidad: añadir agentes para soportar más carga de trabajoDesarrollo incrementalSistemas abiertos: capacidad de aceptar nuevos elementos
NO son siempre la solución ideal: Ausencia de control/visión global del sistema
En el diseño de sistemas distribuidos los agentes proporcionan:Aspectos socialesLenguajes y protocolos de comunicaciónDistribución de datos, control, conocimiento y recursos
En el análisis de un sistema los agentes tienen mayor grado de abstracción que objetos o componentes:
Mayor autonomía y capacidad de decisiónVarios componentes heterogéneos que mantienen relaciones entre ellos y con escala de tiempo diferentesModelado de sistemas naturales y sociales
Facilitan la evolución:Adaptación a modificaciones y al entornoEscalabilidad: añadir agentes para soportar más carga de trabajoDesarrollo incrementalSistemas abiertos: capacidad de aceptar nuevos elementos
NO son siempre la solución ideal: Ausencia de control/visión global del sistema
27.06.08
Problemas de los MASProblemas de los MAS
Descomposición del problema.Comunicación entre agentes.Coherencia en las actuaciones.Representación del conocimiento de otros agentes.Coordinación de acciones.Gestionar el uso de recursos.Evitar comportamientos globales no deseados.Diseño de MAS: metodología y desarrollo.
Descomposición del problema.Comunicación entre agentes.Coherencia en las actuaciones.Representación del conocimiento de otros agentes.Coordinación de acciones.Gestionar el uso de recursos.Evitar comportamientos globales no deseados.Diseño de MAS: metodología y desarrollo.
27.06.08
Más sobre agentesMás sobre agentes
27.06.08
Agentes móvilesAgentes móviles
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:
buscando información en beneficio de su propietario,negociando y cerrando tratos en su nombre,utilizando servicios remotos.
Un agente móvil tiene capacidad para decidir a qué servidores moverse:
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.Es una extensión del modelo cliente-servidor:
Los clientes envían parte de ellos al servidor (o a varios servidores) para ejecutarse.
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:
buscando información en beneficio de su propietario,negociando y cerrando tratos en su nombre,utilizando servicios remotos.
Un agente móvil tiene capacidad para decidir a qué servidores moverse:
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.Es una extensión del modelo cliente-servidor:
Los clientes envían parte de ellos al servidor (o a varios servidores) para ejecutarse.
([3] Pavón, 2003)
27.06.08
Agentes para recuperación de información
Agentes para recuperación de información
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.Tipos (no excluyentes)
Agentes de búsquedaAgentes de filtradoAgentes de monitorización
Web semántica
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.Tipos (no excluyentes)
Agentes de búsquedaAgentes de filtradoAgentes de monitorización
Web semántica
([14] Botti, 2003)
27.06.08
Agentes para recuperación de información - Aplicaciones
Agentes para recuperación de información - Aplicaciones
([14] Botti, 2003)
27.06.08
Agentes para el comercio electrónicoAgentes para el comercio electrónico
……
27.06.08
ReferenciasReferencias[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/
[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, 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[13] 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[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. Cuesta, Universidad de Vigo, http://trevinca.ei.uvigo.es/~pcuesta/sm/enlaces.htm[16] J.M. Bradshaw (1997), Software Agents, AAAI Press, ISBN-13: 978-0262522342
27.06.08
Referencias (II)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. Iglesias (1998), Definición de una metodología para el desarrollo de sistemas
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. Nwana (1996), Software Agents: An Overview, Knowledge Engineering 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/~pablo/tutorial_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 (1995), Artificial Intelligence: A Modern Approach, 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/...