我需要在每个滴答时更新每个海龟的财富变量,按调用次数排在我的探查者列表之上。
我确信计算时间最多的是计算有多少其他代理人为他们的家庭使用相同的补丁并计算每只乌龟的份额。 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
谢谢:)
答案 0 :(得分: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]
]
]
]
如果你在龟屋中保留了一套正在运行的补丁,你可以问一下这个子集,而不必担心补丁上没有任何补丁并且除以零。
查尔斯