【问题标题】:Repeating the "go" cycle from scratch every 1000 ticks每 1000 个滴答声从头开始重复“开始”循环
【发布时间】:2016-04-23 21:03:43
【问题描述】:

我正在研究股票市场的简化模型,并且还在学习如何在 NetLogo 中管理时间。在我的模型中,一天由 1000 个刻度组成。一天之内会发生几件事:海龟买卖股票,在一天中的某个时间点制定策略,写入各种日志,然后在一天结束时将其删除。

我希望模型在 1000 个刻度后重新启动,即在一天结束时模型不会停止而是重新启动,从而模拟不止一天。

你有什么建议?

【问题讨论】:

    标签: time netlogo


    【解决方案1】:

    为什么不直接使用if ticks mod 1000 = 0 [setup-locations]

    【讨论】:

    • 因为设置过程只是简单地定义了不同的品种和世界(并重置滴答声!)。代码的决策部分在 go 过程中,我不需要重置滴答或清除世界,我只需要相同的海龟每 1000 个滴答从头开始它们的操作。跨度>
    • 那么,为什么不从定义位置所在位置的 setup 函数中抽象出代码并调用它而不是 setup 呢?我修改了答案。
    • 对不起,mattsap,我花了一些时间试图弄清楚你的意思,但我不能(对不起,我对 netlogo 完全陌生)。你能澄清一下吗?
    • 您说您不希望模型完全重新启动,而是代理应该回到原来的起始位置。在您的设置中,您必须指定代理的原始起始位置。获取与代理起始位置相关的代码并将其放入函数中。像上面那样调用那个函数。
    • 马特是对的。在这种情况下,您不应将滴答计数器重置为 0。让它不断增加。模拟时间在这里只是向前移动,而不是向后移动,所以滴答计数器也不应该向后移动。
    猜你喜欢
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    相关资源
    最近更新 更多