netlogo故意延迟时间?

时间:2015-07-02 03:35:03

标签: netlogo

亲爱的Netlogo社区,

我想在我的模拟中加入一些计时器约束来让代理商做出决定。我知道我们可以使用ticks来实现,但在我的模拟中,所有代理都应该在勾选中做出决定并避免任何死锁我想为代理引入一些时间限制来做出决定。如果代理人未在指定时间内做出决定,则资源控制权应转至其他代理商。任何帮助将非常感激。感谢

2 个答案:

答案 0 :(得分:1)

如果您没有任何与任何勾号限制相关的约束,您可以制作一个程序,该程序计算自主龟程序开始以来的一些滴答,类似......

已编辑代码:

procedure turtle-decision-making
set time_passed 0
while time_passed < time_limit
  decision-taking-part << 
     if decision taken
      break while loop
     else
     set time_passed (ticks_passed + 1)
  ;; tick Might be that this procedure is the outermost loop, might be that is not.
end while
end turtle-decision-making

答案 1 :(得分:0)

如果你想根据经过多少CPU或“挂钟”时间来暂停乌龟,那么在NetLogo中根本不可能。在没有停止整个模型的情况下,无法从外部停止任意一段NetLogo代码。此外,NetLogo是单线程的,因此在任何给定时间都只运行一段NetLogo代码,因此无法让其他NetLogo代码中断或干预。

你必须做更像JenB建议的事情,或者像大卫建议的那样 - 看起来似乎都是有效的方法,取决于你的目标。