Netlogo 有没有更好的方法访问patch和turtle';每个滴答声都有哪些变量?

Netlogo 有没有更好的方法访问patch和turtle';每个滴答声都有哪些变量?,netlogo,multi-agent,Netlogo,Multi Agent,我需要在每次勾选时更新每个海龟的财富变量,根据调用次数,它位于我的探查器列表的顶部 我相信大部分计算时间都花在计算有多少其他代理在他们的家中使用相同的补丁以及计算每只海龟的份额上。携带食物和我的家是海龟的财产,而储藏是一块地的财产 to update-wealth let h my-home set wealth ([Storage] of my-home / (Count agents with [my-home = h])) + food_carrying end 你能想出更好的

我需要在每次勾选时更新每个海龟的财富变量,根据调用次数,它位于我的探查器列表的顶部

我相信大部分计算时间都花在计算有多少其他代理在他们的家中使用相同的补丁以及计算每只海龟的份额上。携带食物和我的家是海龟的财产,而储藏是一块地的财产

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

我认为用补丁比用乌龟更快,因为补丁上的每只乌龟似乎都在计算相同的财富价值。也许是这样的:

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]
    ]
  ]
]

如果你有一套海龟家园的补丁,你只需询问该子集,就不必担心补丁上没有任何补丁,会被零除掉。

每只海龟计算一个相等的份额加上一笔个人财富,但是我同意你的观点,我不确定是否值得改变整个模型来显示我的家是为补丁而不是为海龟,但是我将把这个变量分配给补丁:)让我的海龟在这里不为我的模型工作,因为家庭关系决定了谁住在每个补丁中,不是他们的位置:)但没关系,我知道怎么做:)