亲爱的Netlogo社区:
我想在我的模拟中加入一些计时器约束,以便智能体做出决策。我知道我们可以使用ticks来实现,但在我的模拟中,所有的agent都应该在一个tick中做出决定,为了避免任何死锁,我想为agent做出决定引入一些时间约束。如果智能体没有在规定的时间内做出决策,则资源的控制权应该交给其他智能体。任何帮助都将不胜感激。谢谢
发布于 2015-07-02 23:05:55
如果您没有与任何节拍限制相关的任何约束,您可以创建一个过程,该过程计算从主turtle过程开始以来的节拍数量,类似于...
编辑的代码:
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
发布于 2015-07-02 21:33:39
如果您想根据经过了多少CPU或“挂钟”时间来停止海龟,这在NetLogo中是不可能的。在不停止整个模型的情况下,无法从外部停止任意一段NetLogo代码。此外,NetLogo是单线程的,所以在任何给定时间只有一段NetLogo代码在运行,所以没有办法让其他NetLogo代码中断或干预。
您必须做一些更像JenB建议的事情,或者像David建议的那样--这两种方法看起来都可能是有效的方法,这取决于您的目标。
https://stackoverflow.com/questions/31175159
复制相似问题