A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

The Java Agent DEvelopment Framework

Apresentações semelhantes


Apresentação em tema: "The Java Agent DEvelopment Framework"— Transcrição da apresentação:

1 The Java Agent DEvelopment Framework
JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA UNIVERSIDADE FEDERAL DE PERNAMBUCO

2 Tópicos Avançados em Inteligência Artificial Simbólica
Roteiro Desvendando JADE O que é JADE? Principais características Ferramentas gráficas de JADE Como implementar os conceitos de SMA? Utilizando JADE Informações gerais Instalação & Execução Exemplos Links Tópicos Avançados em Inteligência Artificial Simbólica

3 Desvendando JADE... - O que é JADE?
- Principais características de JADE - Ferramentas gráficas - Como implementar um SMA?

4 Tópicos Avançados em Inteligência Artificial Simbólica
O que é JADE? JADE é um framework para desenvolvimento de SMA Desenvolvido pelo CSELT e Univ. Parma Completamente implementado em Java Obedece às especificações da FIPA - Foundation for Intelligent Physical Agents (1997 / 2000) Pode ser visto como um middle-ware de agentes que implementa uma plataforma distribuída e um framework de desenvolvimento. Tópicos Avançados em Inteligência Artificial Simbólica

5 Principais características
Lida com os aspectos que não fazem parte do agente em si, tais como: Transporte de mensagens, codificação, parsing, ciclo de vida do agente, páginas brancas, páginas amarelas, ... Provê ferramentas de suporte Remote Monitoring Agent, Dummy Agent, Sniffer Agent, ... Foi projetado para dar suporte a escalabilidade de SMA Tópicos Avançados em Inteligência Artificial Simbólica

6 Principais características
É baseado no conceito de container Um container = processo Diferentes containers na mesma plataforma (1 JVM por container) Diferentes agentes no mesmo container (ambiente multi-threaded pre-emptivo escalonado pela JVM) Cada agente tem sua própria thread de execução Cada agente pode ter diferentes comportamentos Tópicos Avançados em Inteligência Artificial Simbólica

7 Tópicos Avançados em Inteligência Artificial Simbólica
Ferramentas gráficas Remote Monitoring Agent (RMA) Sniffer Agent Introspector Agent Dummy Agent Directory Facilitator (DF) Tópicos Avançados em Inteligência Artificial Simbólica

8 Tópicos Avançados em Inteligência Artificial Simbólica
Ferramentas gráficas Sniffer Agent Dummy Agent Introspector Agent Remote Monitoring Agent (RMA) Funciona como uma console gráfica para gerenciamento e controle da plataforma; É usada para monitorar e administrar o status de todos os componentes da plataforma distribuída, incluindo agentes e containers; Serve para controlar o ciclo de vida dos agentes, conexões com plataformas remotas e a instalação de protocolos de transporte de mensagens Tópicos Avançados em Inteligência Artificial Simbólica

9 Tópicos Avançados em Inteligência Artificial Simbólica
Ferramentas gráficas Sniffer Agent É usado para interceptar as mensagens ACL e exibir a conversação através de uma notação similar ao diagrama de seqüência da UML; Útil para depuração de conversação entre agentes; Permite que as conversações sejam salvas ou carregadas em arquivos. Tópicos Avançados em Inteligência Artificial Simbólica

10 Tópicos Avançados em Inteligência Artificial Simbólica
Ferramentas gráficas Introspector Agent É usado para monitorar o ciclo de vida de um agente, suas mensagens ACL trocadas e seus comportamentos em execução. Permite controlar a execução de um agente. Tópicos Avançados em Inteligência Artificial Simbólica

11 Tópicos Avançados em Inteligência Artificial Simbólica
Ferramentas gráficas Dummy Agent É uma ferramenta utilizada para compor e enviar mensagens ACL para outros agentes, bem como para exibir as mensagens recebidas; Permite que as mensagens sejam salvas ou carregadas em arquivos. Tópicos Avançados em Inteligência Artificial Simbólica

12 Tópicos Avançados em Inteligência Artificial Simbólica
Ferramentas gráficas Directory Facilitator (DF) Representa o FIPA DF, o componente de páginas amarelas do sistema; Permite registrar / de-registrar / modificar / buscar agentes e serviços; Permite criar confederações de DF e realizar propagação de busca através de domínios e sub-domínios. Tópicos Avançados em Inteligência Artificial Simbólica

13 Como implementar um SMA?
Agentes Mensagens ACL Comportamentos Protocolos de interação Tópicos Avançados em Inteligência Artificial Simbólica

14 Tópicos Avançados em Inteligência Artificial Simbólica
Agentes Um agente em JADE é uma instância da classe Agent Heranças da classe Agent: Características para realizar as interações básicas com a plataforma de agentes (registro, configuração, gerenciamento remoto, ...); O conjunto básico de métodos que podem ser chamados para implementar o comportamento personalizado do agente (enviar/receber mensagens, usar protocolos de interação, ...) Tópicos Avançados em Inteligência Artificial Simbólica

15 Tópicos Avançados em Inteligência Artificial Simbólica
Agentes Cada serviço/funcionalidade de um agente deve ser implementado como um ou mais comportamentos Os comportamentos de JADE modelam arquiteturas reativas A abstração de comportamento do modelo do agente de JADE permite a integração de softwares externos para enriquecer a arquitetura do agente Ex: agentes reativos-deliberativos com JADE e JESS Tópicos Avançados em Inteligência Artificial Simbólica

16 Tópicos Avançados em Inteligência Artificial Simbólica
Agentes A classe Agent representa os estados do agente através de constantes: AP_INITIATED AP_ACTIVE AP_SUSPENDED AP_WAITING AP_DELETED AP_TRANSIT AP_COPY AP_GONE ESTADOS MÉTODOS Tópicos Avançados em Inteligência Artificial Simbólica

17 Tópicos Avançados em Inteligência Artificial Simbólica
Agentes Como JADE controla a criação de um novo agente? O construtor do agente é executado; Um AID (Agent Identifier) é atribuído ao agente; O agente é registrado no AMS (Agent Management System - páginas brancas); O agente é colocado no estado AP_ACTIVE; O método setup() é executado; Tópicos Avançados em Inteligência Artificial Simbólica

18 Tópicos Avançados em Inteligência Artificial Simbólica
Agentes Um AID (Agent Identifier) é constituído por: Um nome globalmente único: Ex: Um conjunto de endereços de agentes, uma vez que cada agente herda os endereços de transporte de sua plataforma de origem; Um conjunto de solucionadores (páginas brancas nas quais o agente é registrado) Tópicos Avançados em Inteligência Artificial Simbólica

19 Tópicos Avançados em Inteligência Artificial Simbólica
Agentes O método setup() Deve ser implementado para inicialização de um agente; Deve adicionar pelo menos um comportamento para o agente através do método addBehaviour(); Ao final da execução do método setup(), JADE executa automaticamente os comportamentos, a partir do que foi primeiramente declarado, usando um escalonamento circular não-preemptivo. Tópicos Avançados em Inteligência Artificial Simbólica

20 Tópicos Avançados em Inteligência Artificial Simbólica
Mensagens ACL Em JADE os agentes se comunicam através de passagem assíncrona de mensagens ACL; A classe ACLMessage representa as mensagens de acordo com as especificações da FIPA (fipa000061); Todos os parâmetros são pares palavra-chave: valor Os valores dos parâmetros podem ser inseridos através dos métodos set() e podem ser lidos através de métodos get() As performativas da FIPA são identificadas por constantes. Tópicos Avançados em Inteligência Artificial Simbólica

21 Tópicos Avançados em Inteligência Artificial Simbólica
Mensagens ACL Sub-sistema de comunicação de JADE Todo agente tem uma fila privada de mensagens ACL criada e preenchida pelo subsistema de comunicação de JADE; Foi projetado como um camaleão para alcançar um menor custo de passagem de mensagens; Se uma mensagem é enviada e o sub-sistema não consegue encontrar o destinatário, ele a envia para ser gerenciada pelo AMS. Tópicos Avançados em Inteligência Artificial Simbólica

22 Tópicos Avançados em Inteligência Artificial Simbólica
Mensagens ACL PERFORMATIVA QUERY-IF :sender :receiver :protocol fipa-query :conversation_id C _ :reply_with :reply_by :language fipa-sl0 :ontology employment-ontology :content ((WORKS-FOR (PERSON :name "Ismenia Galvao" :age 24 :address (ADDRESS :street "Rua dos Bobos" :number 0 :city Recife)) (COMPANY :name CSELT :street "Via Reiss Romoli" :number 274 :city Turin)))) ENDEREÇAMENTO COMUNICAÇÃO MENSAGEM Tópicos Avançados em Inteligência Artificial Simbólica

23 Tópicos Avançados em Inteligência Artificial Simbólica
Comportamentos Behaviour Simple Behaviour CompositeBehaviour OneShotBehaviour CyclicBehaviour SequentialBehaviour ParallelBehaviour FSMtBehaviour Tópicos Avançados em Inteligência Artificial Simbólica

24 Tópicos Avançados em Inteligência Artificial Simbólica
Comportamentos Behaviour  Modela uma tarefa genérica SimpleBehaviour  Modela uma tarefa simples (que não tem sub-tarefas) OnShotBehaviour Modela uma tarefa atômica (seu método done() retorna true) CyclicBehaviour Modela uma tarefa cíclica (seu método done() retorna false) Tópicos Avançados em Inteligência Artificial Simbólica

25 Tópicos Avançados em Inteligência Artificial Simbólica
Comportamentos CompositeBehaviour  Modela uma tarefa complexa (realizada através da composição de outras tarefas) SequentialBehaviour Modela uma tarefa na qual suas sub-tarefas são seqüenciais ParallelBehaviour Modela uma tarefa na qual suas sub-tarefas são concorrentes FSMBehaviour Modela uma tarefa na qual suas sub-tarefas correspondem as atividades realizadas em estados de uma Máquina de Estados Finitos Tópicos Avançados em Inteligência Artificial Simbólica

26 Protocolos de interação
A FIPA especifica um conjunto de protocolos de interação padronizados JADE distingue os papéis de Initiator e Responder para cada conversação entre agentes AchieveRE (Achieve Rational Effect) AchieveREInitiator SimpleAchieveREInitiator AchieveREResponder SimpleAchieveREResponder Tópicos Avançados em Inteligência Artificial Simbólica

27 Protocolos de interação
FIPA-Contract-Net ContractNetInintiator ContractNetResponder Estados genéricos para protocolos de interação HandlerSelector MsgReceiver Tópicos Avançados em Inteligência Artificial Simbólica

28 - Informações gerais - Instalação & Execução
Utilizando JADE - Informações gerais - Instalação & Execução

29 Tópicos Avançados em Inteligência Artificial Simbólica
Informações gerais Versões Versão atual de JADE: 3.0b1 ( ) Todos os arquivos .jar foram gerados com o JDK 1.2 Requisitos de software JDK 1.2 Run Time ou posterior Distribuição do software De acordo com a licença LGPL Tópicos Avançados em Inteligência Artificial Simbólica

30 Tópicos Avançados em Inteligência Artificial Simbólica
Instalação de JADE Download de arquivos: Mapear unidade de rede \\cin04\apps\fipa Copiar o diretório JADE OU Salvar aula_jade.zip Descompactar em c:\temp Tópicos Avançados em Inteligência Artificial Simbólica

31 Tópicos Avançados em Inteligência Artificial Simbólica
Instalação de JADE Configuração do ambiente de execução: configurarJADE.bat @set path=%path%;p:\jdk1.4.0\bin @set path=%path%;C:\temp\jade @set classpath=%classpath%.;p:\jdk1.4.0\lib\tools.jar @set classpath=%classpath%.;p:\jdk1.4.0\jre\lib\rt.jar @set classpath=%classpath%.;c:\temp\jade\lib\jadeTools.jar @set classpath=%classpath%.;c:\temp\jade\lib\jade.jar @set classpath=%classpath%.;c:\temp\jade\lib\Base64.jar @set classpath=%classpath%.;c:\temp\jade\lib\iiop.jar Tópicos Avançados em Inteligência Artificial Simbólica

32 Tópicos Avançados em Inteligência Artificial Simbólica
Execução de JADE Compilação: compilarJADE.bat Execução: executarJADE.bat javac %1 %2 %3 %4 %5 %6 %7 %8 %9 java jade.Boot -gui %1 %2 %3 %4 %5 %6 %7 %8 %9 Tópicos Avançados em Inteligência Artificial Simbólica

33 Exemplos - Party - Ontology

34 Tópicos Avançados em Inteligência Artificial Simbólica
Party Descrição do problema Demonstra um SMA simples no qual um anfitrião inicia uma festa e chama um número de convidados; O fluxo de mensagens é bem elevado Agentes O HostAgent representa o anfitrião da festa O GuestAgent representa o convidado da festa Tópicos Avançados em Inteligência Artificial Simbólica

35 Tópicos Avançados em Inteligência Artificial Simbólica
Party Funcionamento O usuário seleciona o número de convidados (0 a 1000); Quando a festa começa, o anfitrião cria os agentes convidados; Cada convidado se registra no DF e envia uma mensagem para o anfitrião avisando que chegou; Quando todos os convidados tiverem chegado, o anfitrião seleciona um deles aleatoriamente e conta uma fofoca; Em seguida, o anfitrião seleciona dois convidados aleatoriamente e os apresenta; Tópicos Avançados em Inteligência Artificial Simbólica

36 Tópicos Avançados em Inteligência Artificial Simbólica
Party Funcionamento A partir daí, cada convidado que foi apresentado a alguém pede ao anfitrião para apresentá-lo a outro (aleatoriamente); Se o convidado souber da fofoca, ele conta para o outro; Quando um convidado escuta a fofoca pela primeira vez, ele avisa ao anfitrião que já está sabendo; Quando todos os convidados souberem da fofoca, a festa acaba e os convidados vão embora. Tópicos Avançados em Inteligência Artificial Simbólica

37 Tópicos Avançados em Inteligência Artificial Simbólica
Party Como executar: compilarJADE examples/party/*.java executarJADE HOST:examples.party.HostAgent() Executar o agente Sniffer e marcar DF e HOST Executar o agente Introspector e marcar HOST Configurar na interface do Party Host Agent, o número de agentes visitantes (no máximo ) Tópicos Avançados em Inteligência Artificial Simbólica

38 Tópicos Avançados em Inteligência Artificial Simbólica
Party Como executar: Iniciar Party Host Agent clicando o botão Start Observar as mensagens no Sniffer Observar as mensagens e comportamentos no Introspector Observar a ferramenta RMA Tópicos Avançados em Inteligência Artificial Simbólica

39 Tópicos Avançados em Inteligência Artificial Simbólica
Party Interface Tópicos Avançados em Inteligência Artificial Simbólica

40 Tópicos Avançados em Inteligência Artificial Simbólica
Ontology Descrição Demonstra como usar o suporte a ontologias de JADE; Define uma ontologia simples que inclui conceitos relacionados ao emprego de pessoas em uma companhia; Para cada papel ontológico há uma classe definida; A classe EmploymentOntology cria um objeto ontologia e adiciona a ele os papéis Pacotes: examples.ontology examples.ontology.employment Tópicos Avançados em Inteligência Artificial Simbólica

41 Tópicos Avançados em Inteligência Artificial Simbólica
Ontology Ontologia: Conceitos PERSON COMPANY ADDRESS Predicados WORKS-FOR Ações ENGAGE Proposições ENGAGEMENT-ERROR PERSON-TOO-OLD Tópicos Avançados em Inteligência Artificial Simbólica

42 Tópicos Avançados em Inteligência Artificial Simbólica
Ontology Agentes RequesterAgent Solicita ao EngagerAgent a contratação de pessoas; Tem um comportamento cíclico para receber do usuário os dados das pessoas; Usa o protocolo fipa-query para perguntar ao EngagerAgent se determinada pessoa já trabalha na companhia; Usa o protocolo fipa-request para solicitar o emprego para alguém; Cada um dos protocolos é implementado utilizando-se um SimpleArchieveREInitiator como sub-comportamento. Tópicos Avançados em Inteligência Artificial Simbólica

43 Tópicos Avançados em Inteligência Artificial Simbólica
Ontology Agentes EngagerAgent Realiza a contratação de pessoas numa companhia; Possui dois comportamentos cíclicos SimpleAchieveREResponder; Um é usado para manipular questionamentos sobre se uma pessoa trabalha numa companhia, de acordo com o fipa-query; O outro é usado para manipular requisições de contratação, seguindo o protocolo fipa-request; A companhia que contrata as pessoas é fixa (CSELT, Via Reiss Romoli 274, Turin). Tópicos Avançados em Inteligência Artificial Simbólica

44 Tópicos Avançados em Inteligência Artificial Simbólica
Ontology Como executar: compilarJADE examples/ontology/employment/*.java compilarJADE examples/ontology/*.java executarJADE CSELT:examples.ontology.EngagerAgent() SOLICITANTE:examples.ontology.RequesterAgent() Executar o agente Sniffer e marcar CSELT e SOLICITANTE Executar o agente Introspector e marcar CSELT e SOLICITANTE Tópicos Avançados em Inteligência Artificial Simbólica

45 Tópicos Avançados em Inteligência Artificial Simbólica
Ontology Como executar: Preencher os dados na linha de comando CSELT Via Reiss Romoli 274 Turin Observar as mensagens no Sniffer Observar as mensagens e comportamentos no Introspector Tópicos Avançados em Inteligência Artificial Simbólica

46 Tópicos Avançados em Inteligência Artificial Simbólica
Ontology Interface This is the EngagerAgent representing the company CSELT ENTER the local name of the Engager agent --> CSELT ENTER details of the company where people will be engaged Company name --> CSELT Company address Street > Via Reiss Romoli Number > 274 City > Turin ENTER details of person to engage Person name --> Ismenia Galvao Person age ---> 24 Person address Street -----> Rua dos Bobos Number -----> 0 City > Recife Tópicos Avançados em Inteligência Artificial Simbólica

47 Tópicos Avançados em Inteligência Artificial Simbólica
Por que JADE? Não há necessidade de implementar a plataforma de agentes ... Não há necessidade de implementar as funcionalidades e a ontologia de gerenciamento de agentes ... Não há necessidade de implementar o transporte e parsing de mensagens ... Os protocolos de interação podem ser estendidos ... Segue as especificações da FIPA ! Tópicos Avançados em Inteligência Artificial Simbólica

48 Tópicos Avançados em Inteligência Artificial Simbólica
Links Java Agent DEvelopment Framework API de JADE Documentação on-line de JADE Outros tutoriais de JADE Tópicos Avançados em Inteligência Artificial Simbólica


Carregar ppt "The Java Agent DEvelopment Framework"

Apresentações semelhantes


Anúncios Google