gpt4 book ai didi

performance - Netlogo:优化补丁中乌龟邻居的计算

转载 作者:行者123 更新时间:2023-12-03 17:31:02 27 4
gpt4 key购买 nike

我需要为受某些属性约束的所有海龟在同一补丁中计算最近的海龟。我编写的代码花费大量时间,并且想知道是否还有其他方法可以对其进行优化。我在turtle中定义了一个属性邻居来存储最近的邻居。

to set_neighbor  
ask patches [
ask turtles-here with [ life_stage = "STAGE1" ] [
set neighbor min-one-of other turtles-here with [ life_stage != "STAGE2" ] [ (distance myself) ]
]
]
end


我尝试通过进行以下更改来优化代码,但最终花费了更多时间。我假设如果将查询结果存储在变量中,并且以后多次使用该变量,它将比多次执行查询本身更快。

to set_neighbor  
ask patches [
let turt_temp turtles-here with [ life_stage != "STAGE2" ]
ask turtles-here with [ life_stage = "STAGE1" ] [
set neighbor min-one-of other turt_temp [ (distance myself) ]
]
]
end


我真的很感谢对此的任何指示。提前致谢。

最佳答案

为什么补丁完全问乌龟?这应该做完全相同的事情,但是要快得多,尤其是如果您在STAGE1上有很多没有乌龟的补丁程序时:

to set_neighbor  
ask turtles with [ life_stage = "STAGE1" ] [
set neighbor min-one-of other turtles-here with [ life_stage != "STAGE2" ] [ (distance myself) ]
]
end


我不确定只是为什么第二个实现比较慢。如果您在 STAGE1上有很多没有乌龟的补丁(特别是如果它们上还有很多其他乌龟),我会发现它的速度变慢了。

关于performance - Netlogo:优化补丁中乌龟邻居的计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33967123/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com