1 / 39

Arquitetura BDI

Arquitetura BDI. Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~ viviane.silva/isma. Arquitetura BDI. Modelo proposto por Bratman em 1987 Modelo consiste de: B eliefs: crenças D esire: desejos ou objetivos I ntetions: intenções ou planos

mala
Télécharger la présentation

Arquitetura BDI

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

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

  3. Arquitetura BDI

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

  5. Jack Inteligente Agents http://www.agent-software.com/shared/products/index.html

  6. Propriedades de Jack • Fe criado pela Agent-Oriented Software (AOS) • É um ambiente para criar e executar SMA utilizando uma abordagem orientada a componentes • Seus agentes estão baseados na arquitetura BDI • Implementado em Java • Define novas classes para implementação dos agentes • Sua versão atual é a 5.0 • É necessário uma licencia para utiliza-lo

  7. Os três principais componentes de Jack • Jack Agent Language: • A linguagem utilizada para o desenvolvimento dos agentes • Estende Java para pode manipular as propriedades dos agentes • Jack Agent Compiler: • Pré-processa o programa na linguagem Jack e o converte em código Java puro. • O código Java é compilado pela máquina virtual Java • Jack Agent Kernel: • É o ambiente para execução dos programas em Jack • Tem um conjunto de classes que podem ser utilizadas para implementar as aplicações orientadas aos agentes

  8. A linguagem Jack • Extensão no nível de implementação: • Inclusão de conceptos como Agente, Evento, Plano, conj. de Crenças e Capacidades • Extensão no nível sintático • Define um conjunto de palavras-chave orientadas a agentes • Class é uma palavra-chave para Java e Agent é uma palavra-chave para Jack • Extensão no nível semântico • A execução de um programa em Jack é diferente da execução de um programa orientado a objetos • Ex.: Seleção de plano para alcançar um objetivo

  9. Características do agente • Os agentes tem objetivos para alcançar (agentes pró-ativos) ou eventos para tratar (agentes reativos) • Define um comportamento default para os agentes • Oferece uma infra-estrutura de comunicação para os agentes • Cada agente tem: • Um conjunto de crenças • Um conjunto de eventos que pode receber • Um conjunto de capacidades • Um conjunto de planos • Quando um agente é criado ele fica inativo até que receba um objetivo para ser alcançado ou um evento para tratar

  10. Comportamento del agente • Recebe um evento • Verifica em suas crenças, se o evento já foi tratado • Se não foi tratado ainda, consulta o conjunto de planos e escolhe um plano para tratar o evento • Se o plano foi executado com sucesso, o evento foi tratado • Se o plano não foi executado com sucesso, outro plano será executado • Se nenhum plano tratou o evento, então o evento não pode ser tratado

  11. Definição de um agente agent AgentType extends Agent [implements InterfaceName] { // Creencia de los agentes #{private | agent | global} data BeliefType belief_name (arg_list) // Eventos #handles event EventType; #posts event EventType reference; #sends event EventType reference; // Planes #uses plan PlanType; // Capacidades #has capability CapabilityType reference; //Datos #{private| agent | global} data DataType data_name(arg_list) //Métodos }

  12. Gerente de Tarefas • Por default, cada agente tem um gerente simples de tarefa • Toda tarefa segue sua execução até que seja completada (com sucesso ou com falha), ou que exista um @wait_for ou um @sleep • É possível utilizar outros gerentes más complexos • Gerente “round robin”: varias tarefas são executadas por vez e são executados X passos de cada tarefa, i.e., X ações do plano que executa a tarefa • #uses taskManager SimpleRRTaskManager(<steps>)

  13. Evento • Eventos podem ser utilizados para modelar objetivos, intenções, percepções no ambiente, comunicação • Sempre que um evento ocorre, um agente tem que tratá-lo • Tratar um evento significar executar um plano • Tipos de eventos: • Estímulo interno: (evento automático) evento que o agente envia a si mesmo, modela as crenças do agente (modificação no ambiente) • Estímulo externo: (evento normal) utilizado para modelar a comunicação entre os agentes • Motivações: (evento BDI) modela objetivos

  14. Evento • Como os agentes tratam os evento? • Os eventos automáticos não necessitam ser tratados • Os eventos normais (ou internos) são tratado selecionando um plano ou executando o plano • Os eventos BDI são tratados de maneira más complexa. Pode ser necessário executar más de um plano para um mesmo evento event EventType extends BDIGoalEvent { // JACK Agent Language statements specifying // the goal's structure and how the goal is // posted within the agent }

  15. Plano • Uma seqüência de ações para tratar um evento • Cada plano trata um evento • A definição de um plano inclui: • O tipo do evento que pode tratar • Os eventos que pode enviar • Os dados que lê ou modifica e os métodos que tem • O método de raciocínio que utiliza • O método de raciocínio de um plano é implementado como una máquina de estados finita

  16. Definição de um Plano plan PlanName extends Plan { #handles event EventType event_ref #sends event MessageEventType reference; #uses data DataType reference; #modifies data DataType reference // otros métodos del plan body() { //El cuerpo del plan } }

  17. Capacidade • Utilizada para estruturar o comportamento do agente em um conjunto de funcionalidades • Ex.: um agente tem a capacidade de limpar mesas e outro de pegar o lixo. • Objetivo: reutilizar o código e encapsular as funcionalidades (não se vê os planos) • Se dois agentes têm as mesmas capacidades, o mesmo código pode ser utilizado nos dois agentes

  18. Definição de uma capacidade capability CapabilityType extends Capability [implements InterfaceName] { // Creencias utilizadas por las capacidades #private data BeliefType belief_name (arg_list); #exports data BeliefType belief_name (arg_list); #imports data BeliefType belief_name (); // Planes, orden es importante #uses plan PlanType; // Eventos #handles event EventType; #posts event EventType reference; #sends event EventType reference; // Subcapacidades #has capability CapabilityType reference; // otros datos y metodos }

  19. Grupo I/IV • É possível fazer a modelagem de grupos e subgrupos em Jack • Os agentes do grupo executam para alcançar o mesmo objetivo • Grupos podem delegar tarefas a subgrupos e subgrupos podem desempenhar diferentes papéis em diferentes grupos • Grupo: • Define os papéis que podem ser desempenhados dentro do grupo • Define os papéis que podem desempenhar • O comportamento do grupo é definido pelos papéis e não pelos subgrupos ou agentes no grupo • Especifica qual objetivo deverá ser alcançado por qual subgrupo ou agente

  20. Grupo II/IV • Papel: • Especifica o comportamento que tem que ser executado pela entidade que desempenha o papel • Plano do grupo: • São executados sempre que um evento ocorre • Define como uma tarefa será executada em termos dos papéis do grupo • Dados do grupo: • Descreve as crenças que são conhecidas por todos do grupo

  21. Grupo III/IV team Company extends Team { #performs role CompanyRole; // minimum of 3 PlatoonRole fillers required. No upper limit #requires role PlatoonRole platoons(3,0); // exactly 1 Commander role filler required #requires role CommandRole command(1,1); // 0 or more ScoutRole fillers required #requires role ScoutRole scout(0,0); : } role PlatoonRole extends Role { #handles event Movement m; #posts event Withdraw w; : }

  22. Grupo IV/IV teamplan CompanyFormationMove extends TeamPlan { #requires role PlatoonRole platoons as left; #requires role PlatoonRole platoons as right; #requires role PlatoonRole platoons as depth; #requires role CommandRole command as hq; #reasoning method establish() { // code to establish the task team for the task } body() { // body of the plan to perform the task } }

  23. Avançado • Raciocínio: • Tem uma máquina de inferência genérica • O básico é a seleção de planos de acordo com os objetivos • É possível estender implementando plug-ins • Comunicação: • Uma mensagem é um objeto Java • Um mensagem é enviado de 1 agente para 1 agente (não existe broadcast) • O protocolo que utiliza é UDP/IP

  24. RETSINA Reusable Environment for Task Structured Intelligent Network Agents

  25. RETSINA • Foi criada em um laboratório de agentes de software da universidade Carnegie Mellon • Infra-estrutura que oferece um conjunto de tipos de agentes que podem ser adaptados para implementar soluções para domínios específicos • Define 3 tipos de arquiteturas • Arquitetura individual do agente • Arquitetura funcional • Arquitetura de infra-estructura

  26. RETSINA • Está integrado ao ambiente de desenvolvimento Microsft Virtual Studio • Ferramenta gráfica que possibilita ao desenvolvedor receber mensagens dos agentes e enviar mensagens KGML para testar seus agentes • Ferramenta gráfica para verificar quais são os agentes em execução e quais são os serviços que oferecem

  27. Requisitos para utilizar RETSINA • Ambiente aberto • Agentes podem entrar e sair • Ambiente dinâmico • A configuração topológica pode mudar • As capacidades do agente podem mudar • A localização do agente pode mudar • Ambiente incerto • O mesmo agente que respondeu a uma mensagem pode não responder se exatamente a mesma mensagem for enviada novamente • Existe redundância de serviços

  28. Quatro tipos básicos de agentes I/II • Agente de Interface • Interage com os usuários, recebe informação dos usuários e mostra resultados • Podem ser implementados como parte do agente de tarefas • Podem representar um dispositivo (ex. PDA) • Agente de Tarefa • Ajuda o usuário a realizar tarefas • Sabem o que deve ser feito e como deve ser feito • Podem requisitar a ajuda de outros agentes

  29. Quatro tipos básicos de agentes II/II • Agente de Informação • Proporciona acesso inteligente as coleções de informações heterogêneas • Fazem a interface entre o sistema e as fontes de dados • Podem implementar algoritmos de “mineração de dados” • Agente “Middle” • Agentes da infra-estrutura • Sabem encontrar onde está um determinado agente • Podem ajudar a juntar agentes que querem um serviço e agentes que sabem executar o serviço

  30. Encontrando um serviço

  31. Arquitetura Funcional: os quatro tipos de agentes

  32. Módulos de um agente • 4 threads em paralelo • Módulo de comunicação e coordenação: • Recebe e envia mensagens • Módulo de planejamento: • Recebe como entrada um conjunto de objetivos e produz um plano que satisfaça os objetivos • Módulo de agenda: • Agenda a execução dos planos • Módulo de execução: • Executa os planos de acordo com suas prioridades e restrições

  33. Arquitetura individual do agente

  34. Arquitetura de Infra-estrutura I/V

  35. Arquitetura de Infra-estrutura II/V • Ambiente • Representa os computadores, o sistema operacional, a infra-estrutura de rede, etc. • Devem ser totalmente transparentes para os agentes • Força o uso de linguagem de programação e de protocolos de comunicação • Infra-estrutura de comunicação • Representam os canais de comunicação entre os agentes (camada de transporte) • Pode utilizar diferentes protocolos de comunicação

  36. Arquitetura de Infra-estrutura III/V • Infra-estrutura ACL • Especifica a linguagem utilizada pelos agentes para enviar mensagens. Ex: FIPA ACL y KQML • Especifica as políticas de interação • A linguagem básica oferecida por Retsina é um subconjunto de KQML ma outras linguagens podem ser oferecidas • Gerência de serviços • Faz a gerência das atividades dos agentes com o objetivo de otimização e verificação de falhas • Gerência dos serviços de instalação de agentes, balanceamento de carga, log, etc.

  37. Arquitetura de Infra-estrutura IV/V • Medidas de rendimento • Identificar os agentes que não estão executando bem • Mede a reputação dos agentes • Pode ser utilizado para redistribuir as tarefas dos agente se verifica que algum está sobrecarregado • Segurança • Objetivo: garantir que os agentes não executem de maneira que não devem • Estabelece segurança na comunicação entre os agentes • Garantir a privacidade das mensagens • Estabelece segurança da infra-estrutura • Não podem acessar a dados da infra-estrutura (ex. não podem modificar os nomes, o conteúdo das mensagens que recebem)

  38. Arquitetura de Infra-estrutura V/V • Mapeamento de nomes a locais de agentes • Serve para permitir a busca de um agente por seu nome • Faz o mapeamento do nome dos agentes ao local onde o agente está executando • Mapeamento das capacidades dos agentes • Serve para permitir a busca de um agente pela sua capacidade • Páginas amarelas • Interação entre agentes • Possibilita que diferentes agentes implementados com diferentes arquiteturas se comuniquem • Funciona como um intermediário entre o agente e a arquitetura

  39. Aplicações desenvolvidas com RETSINA • Gerência de carteira de clientes • Leilão para compra de vários livros de uma só vez • Planejamento logístico em operações militares • Gestão personalizada de informação n web

More Related