implementando os sma viviane torres da silva [email protected] viviane.silva/2012.1/isma

49
Implementando os SMA Viviane Torres da Silva [email protected] http://www.ic.uff.br/~viviane.silva/ 2012.1/isma

Upload: cristiana-neves-martini

Post on 07-Apr-2016

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Implementando os SMA

Viviane Torres da [email protected]

http://www.ic.uff.br/~viviane.silva/2012.1/isma

Page 2: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Motivação

Motivação: Como implementar as entidades de um SMA (agentes, organizações, objetos, ....)?

– Não existe uma linguagem de programação para SMA que possibilite implementar todas as características dos agentes

Objetivo: propor frameworks e plataformas que se baseiem em linguagens de implementação já conhecidas

– Linguagens OO

Solução: frameworks e plataformas baseados em Java– ASF, Jade, Jadex, Jack, ASF, Jason, ....

Page 3: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Arquitetura BDI

Arquitetura abstrata para implementação de SMA

Page 4: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Arquitetura BDI

Modelo proposto por Bratman em 1987

Modelo consiste de:– Beliefs: crenças– Desire: desejos ou objetivos– Intetions: intenções ou planos

Arquitetura BDI proposta por Rao e Georgeff em 1995– É uma arquitetura abstrata

Page 5: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Arquitetura BDI

Page 6: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

FIPA (Foundation for Inteligent Physical Agents)

ISMA Viviane Torres da Silva

Page 7: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

FIPA

FIPA: propõe padrões para organizar os agentes e os sistemas multi-agente

Page 8: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

FIPA: Agent Management

Agent Platform (AP): plataforma onde o agente executa– Estrutura física onde o agente se encontra

Service

Page 9: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

FIPA: Agent Management

Directory Facilitator (DF): provê um serviço de páginas amarelas para os agentes.

– cada agente registra o serviço que oferece.

Agent Management System (AMS): controla o acesso e o uso da plataforma

– só existe um por plataforma– todo agente de uma AP precisa se registrar no AMS– contém uma lista de endereços dos agentes registrados na plataforma– oferece serviço de páginas brancas para conhecer os agentes registrados

Message Transport Service (MTS): serviço de comunicação entre agentes de diferentes plataformas

Page 10: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

FIPA: Agent Message Transport

Define as três possíveis formas de comunicação– ACC : Agent Communication Channel (liga com a buferização da

mensagem, o endereçamento, a transferência, os erros, ...)

Page 11: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

FIPA: Agent Message Transport

Envelope: detalhes do transportePayload: mensagem ACL comprimida

Page 12: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

JADE Java Agent Development Framework

http://jade.tilab.com/

Page 13: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

JADE

Jade é um framework para o desenvolvimento de SMA

Atualmente na versão 4.0– Slides associados a versão 3.6.1

Inclui:– Um ambiente de execução onde os agentes JADE "vivem" e que deve

estar ativo em um host antes que um agente possa ser executado– Uma biblioteca de classes que programadores podem usar para

desenvolver agentes– Um conjunto de ferramentas gráficas que permite a administração e o

monitoramento das atividades dos agentes em execução

Page 14: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Conceitos Importantes

JADE deve ser utilizado para …– implementar sistemas distribuídos– agentes móveis

Contêiner– Instância de um ambiente Jade– É onde os agentes executam– Ao iniciar o Jade, um MainContainer é criado

Plataforma– Conjunto de contêineres ativos

Page 15: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Contêineres e Plataformas

Page 16: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Modelo FIPA

JADE segue o modelo de desenvolvimento da FIPA Todo MainContainer tem um AMS e um DF

Agent Management System (AMS)– Agente que exerce o controle sobre o acesso e o uso da plataforma– Existe um único AMS por plataforma– Mantém a lista de identificadores dos agentes (AID) que estão na

plataforma– Todo agente deve se registrar no AMS

Directory Facilitator (DF)– Oferece o serviço de páginas amarelas na plataforma

Page 17: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Classe Agent

Representa a classe base para a definição de agentes

Para o desenvolvedor, um agente Jade é uma instância de uma classe Java que estende a classe Agent

Já oferece todas as interações básicas da plataforma (registro, configuração, etc...)

Oferece um conjunto de métodos para a implementação do comportamento do agente

Page 18: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Modelo Computacional do Agente

Um agente é multi-tarefa, onde os serviços são executados concorrentemente

Cada serviço de um agente deve ser implementado como um ou mais comportamentos

A classe Agent oferece um scheduler (não acessível ao programador) que gerencia automaticamente o agendamento dos comportamentos

Page 19: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

O Ciclo de Vida de um Agente I/III

Page 20: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

O Ciclo de Vida de um Agente II/III

Iniciado– O objeto agente é criado, mas ainda não se registrou no AMS, i.e. não

possui um identificador e não pode se comunicar com outros agentes

Ativo– O objeto agente está registrado no AMS, possui um identificador e pode

executar seus serviços

Suspenso– O objeto agente está parado, i.e. sua thread interna está suspensa e o

agente não está executando serviço algum

Page 21: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

O Ciclo de Vida de um Agente III/III

Esperando– O agente está bloqueado, esperando por algum evento, i.e. sua thread

interna está dormindo e será acordada quando uma condição se tornar verdadeira

Removido– O agente terminou sua execução, i.e. sua thread interna acabou sua

execução e o agente não está mais registrado no AMS

Em Trânsito– Um agente móvel entra neste estado quando está migrando para um novo

local (contêiner). O sistema continua a armazenar as mensagens enviadas a este agente, que lhe serão passadas quando ele estiver no novo local

Page 22: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Criando um agente Jade

Jade gerencia a criação de um novo agente com os seguintes passos

O construtor do agente é executado– O agente recebe um identificador do AMS– Ex: agente@localhost:1099/JADE

• nomeAgente @ nomePlataforma : numeroPorta / JADE– Entra no estado Ativo

É executado o método setup()– Método responsável por inicializar os comportamentos do agente

Page 23: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Destruindo um agente Jade

Mesmo que não esteja fazendo coisa alguma, o agente continua ativo

Para terminar um agente, deve-se executar o método doDelete() que chama o método takeDown() (pode ser reimplementado)

– Serve para remover todas as referências ao agente da plataforma

Page 24: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Classe Behaviour

Todas as tarefas dos agentes são executadas por meio de "comportamentos"

Um comportamento é um objeto da classe Behaviour

O agente adiciona um comportamento com o método addBehaviour(X)

Comportamentos podem ser adicionados a qualquer momento com o método removeBehavior(X)

Page 25: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Classe Behaviour

Método action()– Método que define as operações que são executadas quando o

comportamento está em execução

Método done()– Método que especifica se um comportamento foi completado e deve ser

removido do pool de comportamentos que um agente está executando

Page 26: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Hierarquia de comportamentos I/II

Comportamentos Simples– Modelam os comportamentos atômicos– OneShotBehaviour: modela comportamentos que só devem executar uma

vez e que não podem ser bloqueados (parar o comportamento até que algum evento ocorra)

– CyclicBehaviour: Modela comportamentos atômicos que devem ser executados eternamente

Comportamentos Compostos– Modelam comportamentos que são compostos de outros comportamentos. – As operações que devem ser executadas não estão definidas neste

comportamento em si, mas nos comportamentos filhos que o compõem– SequentialBehaviour, ParallelBehaviour e FSMBehaviour

Page 27: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Hierarquia de comportamentos II/II

Comportamentos compostos– SequentialBehaviour: Executa seus sub-comportamentos

seqüencialmente e termina quando todos estes estiverem terminados

– ParallelBehaviour: Executa seus sub-comportamentos concorrentemente e termina quando uma condição particular sobre o conjunto de sub-comportamentos é alcançada

– FSMBehaviour: Executa seus sub-comportamentos como uma Máquina de Estados Finita (FSM). Quando uma tarefa acaba, sua saída é usada para se calcular a transição para a próxima tarefa. O comportamento termina quando uma tarefa final é executada

Page 28: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma
Page 29: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Comportamentos Especiais

WakerBehaviour– Comportamento que espera um determinado período de tempo (em ms)

para efetivamente executar a tarefa

TickerBehaviour– Comportamento que executa uma tarefa periodicamente em intervalos

de tempo constantes (em ms). Este comportamento nunca acaba

Page 30: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Comunicação entre os agentes I/III

A comunicação é assíncrona e utiliza FIPA ACL

Os objetos enviados são instâncias de ACLMessage

Para enviar uma mensagem se chama o método send()

Page 31: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

ASF Framework

Agent Society Framework

Page 32: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

ASF: Agent Society Framework

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

Page 33: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

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 partes que são fixas, i.e., não podem ser estendidas– Define partes que são flexíveis, i.e, podem ser estendidas

Page 34: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

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

Page 35: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

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– ...

Page 36: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

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

Page 37: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

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

Page 38: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Módulo Agent

Page 39: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

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

Page 40: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Módulo Organization

Page 41: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

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

Page 42: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Módulo Agent Role

Page 43: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Módulo Object Role

Atributos Métodos

Page 44: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Módulo Environment

Tem que existir ao menos uma instância de ambiente donde estará a organización principal e os agentes

Page 45: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Relação entre as entidades

Page 46: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

ISMA Viviane Torres da Silva

Estrutura do ASF

Page 47: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

Exemplo

Page 48: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

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

Page 49: Implementando os SMA Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/2012.1/isma

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