Implementando os SMA Viviane Torres da Silva [email protected] http://www.ic.uff.br/~viviane.silva/isma Motivação Como implementar sistemas multi-agentes (SMA)? – Não existe um linguagem de implementação que possa ser utilizada para implementar todas as características dos agentes – Solução: utilizar orientação a objetos Como implementar os agentes, o ambiente, os papéis … utilizando orientação a objetos? Como fazer o mapeamento de agentes para classes, organizações para clases, ...? Utilizar plataformas, arquiteturas, frameworks orientados a objetos específicos para implementar SMA Exemplos: – ASF, Jade, Jadex, Jack, Retsina, …. Framework OO É orientado a um domínio de aplicações – Captura os conceitos gerais de um domínio Define um conjunto de classes relacionadas capazes de gerar diferentes aplicações em um mesmo domínio Classes são reutilizadas ou estendidas para implementar uma determinada aplicação Define não somente as classes mas também as relações entres elas e a forma como estas interagem Framework OO Define partes que são fixas, i.e., não podem ser estendidas Define partes que são flexíveis, i.e, podem ser estendidas As diferentes aplicações são geradas através da extensão das partes flexíveis Todas as aplicações têm em comum o que é a parte fixa do framework Framework OO Partes fixas: frozen-spots Partes flexíveis: hot-spots Parte fixa Partes flexíveis Instanciação do framework: implementação dos pontos/partes flexíveis para criar uma aplicaçao ASF Framework Agent Society Framework ASF Objetivo: dar suporte a implementação de agentes, organizações, papéis e ambiente Como implementar ... – as entidades, – suas propriedades, – seus relacionamentos, – a interação entre as entidades e – a execução interna das entidades Entidades Objetos – Atributos e métodos Agentes – Objetivos, crenças, planos e ações Organizações – Objetivos, crenças, planos, ações e axiomas Papel de agente – Objetivo, crença, deveres, direitos e protocolos Papel de objetos – Atributos e métodos Ambiente – Atributos e métodos Aspectos Estruturais do ASF Fornece um conjunto de módulos que devem ser estendidos para implementar a aplicação Cada módulo representa uma entidade do SMA Instanciação da aplicação: – para implementar uma classe de agente da aplicação estende-se o módulo Agent – para implementar uma classe de organização da aplicação estende-se o módulo Organization – ... Agente Classe Agente – Thread (entidade autônoma) Classe Mensagem – Enviadas e recebidas Classe Objetivo – Nome, tipo, valor – Está associado a planos que podem ser alcançar o objetivo Classe Crença – Nome, tipo, valor Agente Classe Plano – Define uma ordem de execução de um conjunto de ações – Está relacionado a goals que pode atingir Classe Ação – Define a execução interna do agentes (entidade adaptativa) – Possui pré e pós-condições Tem que existir ao menos uma instância de agente Módulo Agent Organização Organização – Thread (entidade autônoma) Classe Main-organization – Não desempenha papéis – Pode definir sub-organizações Classe (Sub-)Organization – Desempenha papéis em organizações – Pode definir sub-organizações Goals, beliefs, plans, actions and messages Axiom: – Nome, tipo, valor Tem que existir ao menos uma instância da organização principal Módulo Organization Role de Agente Classes Goals, Beliefs Classe Duty – Define ações que são obrigações Classe Right – Define ações que são direitos Classe Protocol – Define ordem de envio e recebimento de mensagens Tem que existir ao menos uma instância desempenhada por um agente Módulo Agent Role Módulo Object Role Atributos Métodos Módulo Environment Tem que existir ao menos uma instância de ambiente donde estará a organización principal e os agentes Relação entre as entidades Estrutura do ASF ISMA Viviane Torres da Silva A Plataforma FIPA O ASF segue o modelo da FIPA Define o uso de ACL na comunicação dos agentes Define como deve ser a gerência dos agentes – Sistema gerente (Agent Management System (AMS)) – Sistema de transporte de mensagens (Message Transport Service (MTS)) Define as possíveis comunicações entre os agentes – Transporte de mensagens (Agent Message Transport (AMT)) Gerência dos Agentes AMS: único por plataforma – Tem um serviço de páginas brancas (é possível saber os serviços oferecidos por um agente) – Fornece uma identificação única aos agentes Existe uma plataforma por máquina Service Transporte de mensagens (AMT) Define as três possíveis formas de comunicação ACC: Agent Communication Channel Transporte de mensagens (AMT) Composto por: – Message Transport Protocol: que envia as mensagens – MTS: que oferece o serviço de envio de mensagem ao agente – ACL: que define o formato da mensagem ASF + FIPA Classe Agent e Main-Organization têm um atributo que é o identificador único. – Nombre_agente@nombre_plataforma Estão relacionadas a uma classe chamada Description que descreve os estados do agente de acordo com os estados definidos pela FIPA – Começando, executando, congelado e morto. Implementam a interface MTP ASF + FIPA Interface MTP (Message Transport Protocol) – Define um método send que os agentes podem utilizar para enviar as mensagens Classe AMS: – Gerencia a criação e a destruição das entidades – Informa quais são os agentes que executam um serviço Modelo de ciclo de vida X Modelo computacional Modelo de ciclo de vida – Define o conjunto de estados possíveis e suas transições Modelo computacional – Define a execução da entidade nos estados definidos no modelo de ciclo de vida Modelo de ciclo de vida do Objeto Start: – Criação do objeto • Registrar o objeto no ambiente Running: – Execução do objeto Death: – Destruição do objeto • Cancelar o registro do objeto no ambiente creation start destruction running death Modelo de ciclo de vida do Papel de Objeto Start: – Criação do papel de objeto • Associar o objeto ao papel (o objeto não conhece o papel) • Registrar o papel na organização Running: – Execução de papel Death: – Destruição de papel de objeto • Cancelar o registro do papel na organização creation start destruction running death Modelo de ciclo de la vida del Role de Agente Start – Criação do papel de agente • Registrar o papel de uma organização Active – Papel em execução Inactive – Execução interrompida Death – Destruição do papel • Cancelar o registro do papel de uma organização start commitment created deactivate commitment canceled active death activate inactive commitment canceled Modelo de ciclo de vida do Agente Agente executa no contexto dos papéis Para cada papel que o agente desempenha existe uma thread de execução Start – Criação do agente • Registrar o agente no ambiente – Criação de um papel de agente • Associar o papel ao agente e o agente ao papel Running – Execução do agente Modelo de ciclo de vida do Agente Frozen – Todos os papéis do agente estão desativados • Agente existe mas não está executando Migrating – Migração do agente de um ambiente a outro • Cancelar/desativar todos os papéis de um ambiente • Criar/activar ao menos um papel de um ambiente destino Death – Destruição do agente • Cancelar o registro do agente em um ambiente – Destruição do papel do agente • Cancelar as associações entre agente e seu papel Modelo de ciclo de vida do Agente frozen activate deactivate creation start destruction running deactivate or cancel activate or commit migrating death Modelo de ciclo de vida da Suborganização Start – Igual ao do agente Frozen – Igual ao do agente Migrating – Entidades devem parar de desempenhar papéis dentro da suborganização (cancelar/desativar os papéis) – Cancelar/desativar todos os papéis no ambiente de origem – Criar/ativar ao menos um papel em um ambiente destino – Entidades podem mover-se também para continuar a desempenhar os papéis Modelo de ciclo de vida da Suborganização Death – Destruição da suborganização • Cancelar o registro da suborganização no ambiente – Destruição do papel de agente • Cancelar a associação entre suborganização e papel – Destruição dos papéis desempenhados dentro da suborganização Modelo de ciclo de vida da Suborganização frozen activate deactivate creation start destruction running deactivate or cancel activate or commit migrating death Modelo de ciclo de vida da Organização Principal Start – Criação da organização principal • Registrar a organização no ambiente Running – Execução da organização principal Death – Destruição da organização principal • Cancelar o registro da organização principal no ambiente creation start destruction running death Modelo de ciclo de vida do Ambiente Start – Criação do ambiente Running – Execução do ambiente Death – Destruição do ambiente • Destruição de todos os agentes, organizações e objetos creation start destruction running death Modelo computacional das Entidades Identifica o comportamento comum de todas as entidades de um determinado tipo em um determinado estado Define o comportamento independente do domínio das entidades em um determinado estado Modelo computacional do Agente Running – Execução do agente (6) All goals were achieved or the agent tried to achieve all goals Selecting goal All plans associated with the goal were (4) executed or there is not any plan associated with the goal goal selected (1) Selecting plan plan selected (2) Executing plan goal not (3) achieved goal (5) achieved Exemplo