1

我需要在每个刻度上更新每个海龟的财富变量,调用次数在我的分析器列表的顶部。

我确信最多的计算时间用于计算有多少其他代理在他们的家中使用相同的补丁并计算每只海龟的份额。food_carrying 和 my-home 是 turtle 的属性, Storage 是 patch 属性。

to update-wealth
  let h my-home
  set wealth ([Storage] of my-home / (Count agents with [my-home = h]))  + food_carrying
end

你能想出更好的方法吗?

Name                               Calls Incl T(ms) Excl T(ms) Excl/calls
UPDATE-WEALTH                    9744912 831703.608 461086.654      0.047
4

1 回答 1

2

我认为通过补丁而不是乌龟来做这件事会快得多,因为补丁上的每只乌龟似乎都在计算相同的财富价值。也许是这样的:

ask patches [
  let my-turtles turtles-here
  if any? my-turtles [
    let w Storage / count my-turtles
    ask my-turtles [set wealth w + food_carrying]
    ]
  ]
]

如果您保留一组运行中的海龟家园补丁集,您可以只询问该子集,而不必担心补丁上没有任何补丁并被零除。

于 2013-12-28T02:16:32.033 回答