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

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

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

1 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 JADE Tópicos Avançados em Inteligência Artificial Simbólica2 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

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

4 JADE Tópicos Avançados em Inteligência Artificial Simbólica4 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.

5 JADE Tópicos Avançados em Inteligência Artificial Simbólica5 Principais características Lida com os aspectos que não fazem parte do agente em si, tais como:  Transporte de mensagens, codificação, parsing, c iclo 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

6 JADE Tópicos Avançados em Inteligência Artificial Simbólica6 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

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

8 JADE Tópicos Avançados em Inteligência Artificial Simbólica8 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 Ferramentas gráficas Sniffer AgentDummy Agent Introspector Agent

9 JADE Tópicos Avançados em Inteligência Artificial Simbólica9 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. Ferramentas gráficas

10 JADE Tópicos Avançados em Inteligência Artificial Simbólica10 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. Ferramentas gráficas

11 JADE Tópicos Avançados em Inteligência Artificial Simbólica11 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. Ferramentas gráficas

12 JADE Tópicos Avançados em Inteligência Artificial Simbólica12 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. Ferramentas gráficas

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

14 JADE Tópicos Avançados em Inteligência Artificial Simbólica14 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,...)

15 JADE Tópicos Avançados em Inteligência Artificial Simbólica15 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

16 JADE Tópicos Avançados em Inteligência Artificial Simbólica16 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 MÉTODOS ESTADOS

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

18 JADE Tópicos Avançados em Inteligência Artificial Simbólica18 Agentes Um AID ( Agent Identifier ) é constituído por:  Um nome globalmente : /JADE 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)

19 JADE Tópicos Avançados em Inteligência Artificial Simbólica19 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.

20 JADE Tópicos Avançados em Inteligência Artificial Simbólica20 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.

21 JADE Tópicos Avançados em Inteligência Artificial Simbólica21 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.

22 JADE Tópicos Avançados em Inteligência Artificial Simbólica22 Mensagens ACL 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 :address(ADDRESS :street "Via Reiss Romoli" :number 274 :city Turin)))) PERFORMATIVA ENDEREÇAMENTO COMUNICAÇÃO MENSAGEM

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

24 JADE Tópicos Avançados em Inteligência Artificial Simbólica24 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)

25 JADE Tópicos Avançados em Inteligência Artificial Simbólica25 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

26 JADE Tópicos Avançados em Inteligência Artificial Simbólica26 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

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

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

29 JADE Tópicos Avançados em Inteligência Artificial Simbólica29 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

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

31 JADE Tópicos Avançados em Inteligência Artificial Simbólica31 Instalação de JADE Configuração do ambiente de execução:  classpath=%classpath%.;c:\temp\jade\lib\iiop.jar

32 JADE Tópicos Avançados em Inteligência Artificial Simbólica32 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

33 Exemplos - Party - Ontology

34 JADE Tópicos Avançados em Inteligência Artificial Simbólica34 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

35 JADE Tópicos Avançados em Inteligência Artificial Simbólica35 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;

36 JADE Tópicos Avançados em Inteligência Artificial Simbólica36 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.

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

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

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

40 JADE Tópicos Avançados em Inteligência Artificial Simbólica40 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

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

42 JADE Tópicos Avançados em Inteligência Artificial Simbólica42 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.

43 JADE Tópicos Avançados em Inteligência Artificial Simbólica43 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).

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

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

46 JADE Tópicos Avançados em Inteligência Artificial Simbólica46 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

47 JADE Tópicos Avançados em Inteligência Artificial Simbólica47 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 !

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


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google