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

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

Allan Lima SMA tem muitas coisas em comum Modelos de agentes Transporte de mensagens Tipos de comportamento Precisamos fazer tudo do.

Apresentações semelhantes


Apresentação em tema: "Allan Lima SMA tem muitas coisas em comum Modelos de agentes Transporte de mensagens Tipos de comportamento Precisamos fazer tudo do."— Transcrição da apresentação:

1 Allan Lima

2 SMA tem muitas coisas em comum Modelos de agentes Transporte de mensagens Tipos de comportamento Precisamos fazer tudo do zero sempre? É ai que entram os frameworks multiagentes

3 O que é o JADE? Visão geral do JADE Arquitetura e funcionalidades Implementação agentes Modelo de Agente do JADE Criando comportamentos para os Agentes Fazendo os Agentes se comunicarem Serviços de Páginas Amarelas

4 JADE Java Agent DEvelopment framework Criado pela Teltecom Italia Atua como um middleware para o desenvolvimento de SMA em Java Possui um conjunto de ferramentas e um biblioteca de programação Permite a distribuição dos agentes É baseado nos modelos da FIPA

5 Runtime Evironment Infra-estrutura para dar vida aos agentes Library Classes para auxiliar na implementação da simulação Graphical Tools Permitem a administração e o monitoramento da simulação

6 Utilitários de desenvolvimento Remote Monitoring Agent Dummy Agent Sniffer Agent Directory Facilitator GUI

7 Library Agent Platfrom Agent Agent Management System Directory Facilitator Message Transport System

8 Todos os agentes devem herdar da classe jade.core.Agent public class BookBuyerAgent extends Agent {... }

9 setup() e takeDown() e getAID() public class BookBuyerAgent extends Agent { protected void setup() { System.out.println(getAID().getName() + " is ready"); } protected void takeDown() { System.out.println(getAID().getName() + " deleted"); }

10 A classe jade.Boot tem um método main() que recebe o nome e o tipo dos agentes como parâmetro Exemplo de parâmetro buyer1:BookBuyerAgent buyer2:BookBuyerAgent Exemplo...

11 Também podemos passar parâmetros para os agentes quando queremos Exemplo: buyer1:BookBuyerAgent(The-lord-of-the-rings) buyer2:BookBuyerAgent(Harry-Potter) O método getArguments() retorna um Object[] com os parâmetros dos agentes Exemplo...

12 Comportamento dos agentes é definido pela classe abstrata Behaviour Devemos herdar desta classe e adicionar comportamentos aos agentes com o método addBehaviour() Principais métodos a serem implementados: void action() boolean done()

13 Setup() O agente foi morto? Pegue o próximo comportamento c.action() Remova c do pool de comportamentos c.done()? takeDown() Sim Não Sim

14 Behaviour Genérico, temos de implementar os métodos action() e done() OneShotBehaviour done() sempre retorna true CyclicBehaviour done() sempre retorna false WakerBehaviour Executa o comportamento apenas uma vez após um determinado tempo TickerBehaviour Excuta o comportamento em tempos fixos de intervalo

15 Comportamentos do agente comprador e do agente vendedor...

16 A comunicação é feita de forma assíncrona Cada agente tem sua lista de mensagens Modelo FIPA-ACL ACLMessage msg = new ACLMessage(ACLMessage.INFORM); msg.addReceiver(new AID("Peter", AID.ISLOCALNAME)); msg.setLanguage("English"); msg.setOntology("Weather-forecast-ontology"); msg.setContent("Today its raining"); send(msg);

17 Métodos Importantes Agent.send() Envia uma mensagem Agent.receive() Retira a primeira mensagem da lista de mensagens do agente Retorna null se não tiver mensagem na lista Behaviour.block() O active() só volta a ser executado quando houver uma mensagem seja inseria da lista do agente

18 Trocando mensagens entre o agente comprador e o agente vendedor...

19 Permitem aos agentes publicarem quem é responsável por prover determinados serviços Um agente chamado Directory Facilitator guarda estes dados Directory Facilitator AgentA: ServiceX, ServiceY AgentB: ServiceX, ServiceZ AgentC: ServiceY

20 DFService.register() Publica um serviço DFAgentDescription e ServiceDescription Descrevem o serviço Exemplo...

21 DFService.search() Realiza a busca por serviços Recebe o agente e o serviço pelo qual ele busca Importante: O serviço pode não estar presente no momento do search!!! Devemos usar uma forma de sincronizar a chamada ou usar o método searchUntil Exemplo...

22

23 Fazer o Agente comprador ter uma lista de livros e comprar todos eles Implementar um mecanismo de pesquisa no comprador Ou seja, ele vai para todos os agente que vendem livros ele vai procurar perguntar pelo preço e no fim vai comprar do agente que vender mais barato

24 O site do JADE tem tudo que você precisa É necessário um cadastro para o download do projeto Tutorial para iniciantes (base para esta aula) Tutorial-for-beginners.pdf Tutorial-for-beginners.pdf


Carregar ppt "Allan Lima SMA tem muitas coisas em comum Modelos de agentes Transporte de mensagens Tipos de comportamento Precisamos fazer tudo do."

Apresentações semelhantes


Anúncios Google