SMA com SPADE – parte da solução do agente “Gerador”

Esse post é uma continuação do Implementação de SMA no Python e utilizando SPADE. Aqui eu apresento uma parte da solução do agente “Gerador” (ela cria apenas uma equação do primeiro grau).

Um primeiro detalhe é que os agentes SPADE precisam ser registrados em um servidor XMPP. Você pode rodar um servidor na sua própria máquina, mas eu recomendo usar um servidor público online. Nem todo servidor público irá aceitar o registro dos agentes (não sei o motivo). Um que eu uso é o jix.IM. O jix.IM é um servidor gratuito e você precisa criar uma conta para cada agente executando (se for criar um agente Gerador e um Resolvedor, você precisará criar duas contas).

Na linha 7 eu criei meu agente estendendo a classe Agent do SPADE. Essa classe abstrai toda a conexão com o servidor XMPP (login, troca de mensagens, etc.). Em seguida eu determino valores para a e y para a equação a*x + y, que é a equação de primeiro grau da qual o agente “Resolvedor” deve acertar o valor de x, de forma que o resultado da equação seja zero.

Esse agente tem dois comportamentos cíclicos, representados pelas funções funcao_1grau() e tipo_funcao(). Isso quer dizer que as funções ficam sempre executando. Ambas funcionam de forma parecida, onde elas ficam esperando uma mensagem e, quando recebem a mensagem, respondem. A funcao_1grau() espera como conteúdo um número e responde com o valor calculado pela equação e a tipo_funcao() responde com o tipo de função do agente Gerador (no caso, apenas a mensagem “1grau” para dizer que o agente gerou uma equação do primeiro grau).

No setup() são colocados os dois comportamentos para rodar os dois comportamentos logo que o agente é criado. O comportamento da função funcao_1grau() é configurado para responder somente com mensagens que são com a performativa subscribe e a função tipo_funcao() responde apenas performativas request. Sendo assim, o agente não responde a qualquer outro tipo de performativa de mensagem e filtra qual comportamento irá executar pela performativa.

A instanciação do agente é feita no servidor jix.IM e também instancia um servidor local. É uma alternativa para acompanhar a execução do agente. O local host é o endereço do IP do computador que está executando o agente. Considerando a configuração apresentada, se acessar o endereço http://150.162.217.81:10000/spade você terá acesso aos estados do agente.

A última linha é a linha que efetivamente faz o agente começar a executar.

Veja que o agente Gerador ainda não está completo, mas ele é um início para o testar o agente Resolvedor. Eu recomendo fazer o agente Resolvedor inicialmente chutando valores. Veja que eu rodar o script do agente Gerador é mostrada qual a equação gerada, mas essa informação não é compartilhada com o agente Resolvedor, mas você pode usar para testar seu agente.

Share

Uma opinião sobre “SMA com SPADE – parte da solução do agente “Gerador”

  1. Pingback: Implementação de SMA no Python e utilizando SPADE – Professor Benjamin

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.