如何结合代理行为-SPADE(超时行为和定期行为)?

时间:2019-10-25 21:45:28

标签: python agent

-我是代理编程和python的新手,所以我有一个简单的问题。

-我正在编写具有两种行为的简单代理。 -首先是spade.behaviour。超时行为 -第二个是spade.behaviour。 PeriodicBehaviour

  1. 我要在 TimeoutBehaviour 运行 on_end 上开始 PeriodicBehaviour ,但我不知道如何。

我尝试了一些组合,例如:

for (int i = 0; i < length - 1; i++) { 
    int indexLowest = i; 

    for (int j = i + 1; j < length; j++) { 

        if (array[indexLowest].getPrice() > array[j].getPrice()) {
            indexLowest = j;
        }
    }
    Pencilbox temp = array[i];
    array[i] = array[indexLowest];
    array[indexLowest] = temp;
}

出现此错误消息(为什么)会导致结果?

behaviour2 = PostponedBehaviour(period=1)
self.add_behaviour(behaviour2)
  • 我也有一个想法,如果我使用2可以组合行为 代理商。

    -什么是正确的方法,将两种行为结合起来(超时和 定期)该怎么做?

PS。 Link on SPADE documentation(不允许放置标签锹-> Smart Python Agent开发环境)

1 个答案:

答案 0 :(得分:0)

简单问题,简单答案。有人可能有类似的错误,因此解释我的错误原因可能会对他有所帮助。

我在组合行为时犯了2个小错误:

    从其他行为调用行为时,
  1. 缺少 agent 关键字是:

    self.agent.add_behaviour(self.agent.PostponedBehaviour(period = 1))

  2. 在第一次行为结束时
  3. 停止代理(您没有以下行)

    等待self.agent.stop()