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
Download

Implementação de SMA I