【问题标题】:How can I simulate the same scenario 3 times on NetLogo?如何在 NetLogo 上模拟相同的场景 3 次?
【发布时间】:2020-03-23 12:36:57
【问题描述】:

我有一个火灾疏散模拟,火灾从不同的来源开始。 我想模拟受伤人数最少的出口,而有 3 个出口是 3 个场景。 但我的问题是,用不同的火源模拟每个出口。如何为三个模拟修复相同的场景? 这是代码:

 to run-all
  clear-all
  let temp (list ("left") ("right") ("top"))
  foreach temp [
    [a] ->
    setup
    set finished 1
    if a = "left" [
      while [finished = 1] [
      go-to-left
      ]
    ]
if a = "right" [
      while [finished = 1] [
      go-to-right
      ]
    ]
if a = "top" [
      while [finished = 1] [
      go-to-top
      ]
    ]


  ]
end

【问题讨论】:

  • 使用不同设置多次运行模型的常用方法是使用 BehaviorSpace,ccl.northwestern.edu/netlogo/docs/behaviorspace.html
  • 我将他的问题解释为想要运行完全相同的“随机”代理设置,这些代理具有不同的火灾起始位置或可供人们前往的不同出口。我不确定 - 等待他回复!如果是这样,那么行为空间就没有用了——嗯,或者如果将设置放在选择器小部件中,行为空间会有所帮助——但他可能仍然想要一个随机种子集用于头对头结果比较,

标签: simulation netlogo patch


【解决方案1】:

我认为您不需要更改您在此处发布的代码。要看的地方在您没有发布的“设置”代码中。

可能在您的设置代码中,您使用“随机”来创建人们站立的位置,因此您需要让“随机”为许多不同的通行证中的每一个生成完全相同的位置,以便您可以比较不同的出口起始条件相同。

做到这一点的方法是将“随机”将使用(秘密)的“种子”设置为在您希望相同的每个通道开始时完全相同的种子。

然后,如果您想要一系列具有不同随机位置的新运行,请将种子更改为不同的数字并在每次运行开始时使用它

执行此操作的命令在“随机种子”下的用户字典中进行了描述,其中还告诉您有关更多详细信息,请参阅编程指南的随机数部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多