首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在netlogo中故意的计时延迟?

在netlogo中故意的计时延迟?
EN

Stack Overflow用户
提问于 2015-07-02 11:35:03
回答 2查看 506关注 0票数 2

亲爱的Netlogo社区:

我想在我的模拟中加入一些计时器约束,以便智能体做出决策。我知道我们可以使用ticks来实现,但在我的模拟中,所有的agent都应该在一个tick中做出决定,为了避免任何死锁,我想为agent做出决定引入一些时间约束。如果智能体没有在规定的时间内做出决策,则资源的控制权应该交给其他智能体。任何帮助都将不胜感激。谢谢

EN

回答 2

Stack Overflow用户

发布于 2015-07-02 23:05:55

如果您没有与任何节拍限制相关的任何约束,您可以创建一个过程,该过程计算从主turtle过程开始以来的节拍数量,类似于...

编辑的代码:

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

发布于 2015-07-02 21:33:39

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

您必须做一些更像JenB建议的事情,或者像David建议的那样--这两种方法看起来都可能是有效的方法,这取决于您的目标。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31175159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档