39
Arquitetura BDI Viviane Torres da Silva [email protected] http://www.ic.uff.br/~viviane.silva/isma

Arquitetura BDI Viviane Torres da Silva [email protected] viviane.silva/isma

Embed Size (px)

Citation preview

Page 1: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

Arquitetura BDI

Viviane Torres da [email protected]

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

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

Arquitetura BDI

Page 4: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

Plataformas e Frameworks

Que utilizam BDI:– ASF– Jack– Retsina– Jadex

Que não utilizam BDI:– Jade

Page 5: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

Jack Inteligente Agents

http://www.agent-software.com/shared/products/index.html

Page 6: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 7: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 8: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 9: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 10: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

Comportamento del agente

1. Recebe um evento2. Verifica em suas crenças, se o evento já foi tratado3. Se não foi tratado ainda, consulta o conjunto de planos e

escolhe um plano para tratar o evento4. Se o plano foi executado com sucesso, o evento foi tratado5. Se o plano não foi executado com sucesso, outro plano será

executado6. Se nenhum plano tratou o evento, então o evento não pode ser

tratado

Page 11: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

}

Page 12: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 13: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 14: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

}

Page 15: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 16: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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}

}

Page 17: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 18: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

}

Page 19: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 20: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 21: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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;:

}

Page 22: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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 methodestablish(){

// code to establish the task team for the task}body(){

// body of the plan to perform the task}

}

Page 23: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 24: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

RETSINA

Reusable Environment for Task Structured Intelligent Network Agents

Page 25: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 26: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 27: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 28: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 29: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 30: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

Encontrando um serviço

Page 31: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

Arquitetura Funcional: os quatro tipos de agentes

Page 32: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 33: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

Arquitetura individual do agente

Page 34: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

Arquitetura de Infra-estrutura I/V

Page 35: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 36: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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.

Page 37: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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)

Page 38: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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

Page 39: Arquitetura BDI Viviane Torres da Silva viviane.silva@ic.uff.br viviane.silva/isma

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