Closed rafaelcaue closed 9 years ago
De fato, deve estar entulhando os agentes de percepções. Em todos os steps o environment tá mandando todas as percepções, como posição das facilities e tal. Então teria que haver um filtro no artefato ainda, para não encher o líder de coisa.
Acredito ser a ideal essa estrutura de líder fazendo o reasoning pesado. Mais simples e objetiva.
Exato, precisamos de um filtro. Uma quick fix seria limpar as percepções do artefato depois de dar o signal.
Para ver o problema testem aí, adicionando o código em qualquer agente:
+simStart <- .print(simStart).
Vai ver que eles vão printar isso em todos os steps, apesar do cartago receber isso apenas no primeiro step.
@rwesz tu não tiveste este problema na implementação dos artefatos do ROS? Podes dar uma olhada rápida neste problema para ver se a tua maneira de resolver não se aplica aqui?
Na verdade descobrimos nessa quarta que não é um bug do Cartago, mas sim uma opção do servidor que vinha marcado como default.
A opção em questão está no config file eismassimconfig.xml na raiz, queued=no. Se trocar para yes aí as percepções relevantes ao primeiro step são enviadas apenas no primeiro step, como descrito no protocol.pdf na documentação.
O @rwesz pode ajudar se tiver um tempo na mudança de signals para observable properties, se tiver interesse me chama no gtalk que explico melhor.
Pessoal,
Quando a simulação começa é enviada uma percepção simStart, e um conjunto de outras percepções que pelo que eu entendi só deviam ser enviadas no início da simulação (com esse simStart). Vide documento protocol.pdf página 6.
Percepcões como produtos e o número total de passos (steps(N)) deveriam ser enviadas para os agentes apenas no início da simulação, entretanto os nosso artefatos cartago continuam enviando signals com elas durante todos os passos, isso está gerando eventos desnecessários e podem estar atrapalhando a seleção do evento +step que é o que ativaria a escolha da ação para um determinado step.
Primeiro temos que garantir que todas percepções relacionadas ao simStart sejam enviadas apenas 1 vez (por enviadas eu quero dizer gerem apenas 1 evento), é de responsabilidade dos agentes salvar ou não a informação.
Penso eu que o ideal é que só chegue aos agentes (de novo por chegar eu quero dizer gere eventos) informações especificas sobre eles. O número total de passos, produtos, e facilities, podem todas serem enviadas do cartago diretamente para o lider, algo semelhante a o que a arquitetura dos agentes no código do Jomi faz.
O que acham?