1 / 35

Implementando SMA

Implementando SMA. Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br /~viviane.silva/sma. 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

zytka
Download Presentation

Implementando SMA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Implementando SMA Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~viviane.silva/sma

  2. 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, ….

  3. Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~viviane.silva/sma

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

  5. Arquitetura BDI

  6. Plataformas e Frameworks • Que utilizam BDI: • ASF • Jack • Retsina • Jadex • Que não utilizam BDI: • Jade

  7. ASF Framework Agent Society Framework

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

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

  10. 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 • ...

  11. Estrutura do ASF Viviane Torres da Silva

  12. Exemplo

  13. JADEJava Agent Development Framework http://jade.tilab.com/

  14. JADE • Jade é um framework para o desenvolvimento de SMA • 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

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

  16. Contêineres e Plataformas

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

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

  19. 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)

  20. 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()

  21. Jadex http://vsis-www.informatik.uni-hamburg.de/projects/jadex/

  22. Jadex • Jadex = Jade + BDI • No Jadex os agentes são orientados a objetivos (e não a comportamentos como é o caso de agentes JADE) • Desenvolvido na Universidad de Hamburg • Versão 0.96 • É possível utilizar todas as ferramentas JADE mais: • Ferramenta BDI Viewer possibilita ver o estado interno dos agentes, i.e., seus objetivos, planos e crenças • Ferramenta Jadex Introspector possibilita vigiar o comportamento do agente e também modificar a execução dos agentes

  23. Jadex

  24. Implementando o agente • Criar os tipos de arquivos • ADF (Agent Definition File): arquivo XMI que descreve tipos (ou classes) de agentes • Classes Java: arquivos que implementam os planos dos agentes

  25. Linguagens de Programação para SMA Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~viviane.silva/sma

  26. Algumas linguagens de programação • Agent0 • Placa • AgentSpeak • Metatem

  27. A idéia de uma linguagem de programação para SMA • 1993: Yoav Shoham propôs a criação de um novo paradigma de programação baseado nos aspectos sociais da computação • Programação orientada a agentes: os agentes são as entidades da linguagem de programação • Programar os agentes em termos de seus estados mentais • Crenças, desejos (ou objetivos) e intenções (ou planos) • Primeira linguagem de programação: Agent0

  28. Agent0 • Um agente tem: • Um conjunto de capacidades • Um conjunto de crenças • Um conjunto de compromissos • Um conjunto de regras de compromissos • São as regras que determinam se o agente executará uma ação • Cada regra de compromisso contém: • Uma condição de mensagem que deve ser comparada com as mensagens recebidas pelo agente • Uma condição do estado mental que deve ser comparada com as crenças do agente • Uma ação que o agente terá o compromisso de executar se as condições forem satisfeitas

  29. Agent0 • As ações podem ser: • Privadas: ações internas do agente • De comunicação: enviar mensagens • Uma mensagem pode ser de 3 tipos: • Requests: um pedido para fazer uma ação • Unresquests: uma negociação para fazer uma ação • Inform: um envio de uma informação • Agent0 é uma extensão Lisp

  30. Se o agente recebe uma mensagem de outro agente pedindo para executar uma ação em um determinado momento Se o agente crê que o outro agente é um amigo e o agente sabe executar a ação e no momento não está executando nenhuma ação então o agente cria o compromisso de executar a ação Exemplo: Regra de compromisso COMMIT( ( agent, REQUEST, DO(time, action)),;;; msg condition ( B, [now, Friend agent] AND CAN(self, action) AND NOT [time, CMT(self, anyaction)] ), ;;; mental condition self, DO(time, action) )

  31. AgentSpeak(L) • Linguagem baseada em eventos e ações • O comportamento do agente é implementado com a linguagem • As crenças, os objetivos (ou desejos) e os planos (ou intenções) podem ser descritos em AgentSpeak • Crenças: estado do agente, do ambiente e de outros agentes • Objetivos: estado que o agente quer alcança ou verificar • Planos: programa para alcançar os objetivos • Um programa em AgentSpeak consiste de um conjunto de crenças e um conjunto de planos

  32. AgentSpeak(L) • Exemplo: • Existem faixas por onde podem estar os carros • As faixas podem ter lixo • Robôs têm a obrigação de pegar o lixo e colocar em lixeiras • Robôs podem mover-se de uma faixa para a outra Crenças: • Crenças atômicas: “classes” para criar instancias • Localização (robô, faixa), localização (carro, faixa), adjacente (faixa, faixa) • Crenças básicas: instâncias das classes • adjacente (a, b), localização (robôA, a)

  33. AgentSpeak(L) Objetivo: • Objetivo para ser alcançado: !g(t) • Agente quer alcançar um estado onde g(t) é verdade • !limpo (b) : agente quer que a faixa b esteja limpa • Objetivo para ser testado: ?g(t) • Agente quer verificar se g(t) é uma crença verdadeira • ?localização (carro, b) : agente pergunta se existe algum carro na faixa b • Novos objetivos e novas crenças podem ser criados e objetivos e crenças podem ser apagados. • +localização (lixo, a) : criação da crenças que diz que existe lixo na faixa a • +!limpo (a) : criação do objetivo para limpar a faixa a Viviane Torres da Silva

  34. AgentSpeak(L) Plano • Tem uma cabeça e um corpo • Cabeça consiste de: • Eventos de ativação do plano: criação ou destruição de crenças e objetivos. • Contexto: as crenças que devem ser verdadeiras para executar o plano. • Corpo consiste de: • Seqüência de ações e objetivos. • +localização (lixo, X): localização (robô, X) & localização (lixeira, Y) <-recolher (lixo); !localização (robô, Y); jogar (lixo,lixeira). Crença foi criada (existe lixo em X) eventos de ativação contexto Objetivo a ser alcançado corpo

  35. AgentSpeak(L) Objetivo criado • +!localização (robô, Y): localização (robô, Y) <- verdade • +!localização (robô, Y): localização (robô, X) & (não (X = Y)) & adjacente (X, Z) & (não (localização (carro, Z))) <- mover (X, Z); +!localização (robô, Y).

More Related