如果我有一种情况,其中大约1000只黑乌龟以任意角度分散并在整个netlogo世界中以给定的蜱虫持续时间步进。在分散过程中,每个时间步都会为每只乌龟分配一个随机概率,如果这个数量超过任何给定海龟的给定阈值,它会将颜色变为红色并停止移动。此外,黑龟(仍在移动)恰好在一片红海龟(停止/安定)内移动,将其颜色改为灰色并定居(停止移动)。最后,其他黑龟(仍在移动)恰好在一片灰色或红色海龟(停止/沉降)中移动,也将它们的颜色变为灰色并定居(停止移动)
我的问题是关于何时达到模拟持续时间的后处理问题。如何确定黑海龟中红灰龟群的数量?另外,如何确定每个群集的大小(径向范围)?最后,我如何确定每个群集中的海龟数量?
答案 0 :(得分:2)
Jen是对的:在能够真正回答这个问题之前,你需要清楚地了解群集的构成。
话虽如此,一种可能的选择是使用聚类算法。我建议你去看看Christopher Frantz的dbscan
extension。
这是一个快速抛出的例子:
extensions [ dbscan ]
to setup
clear-all
ask patches [ set pcolor white ]
create-turtles 1000 [
set color black
set label-color blue
setxy random-xcor random-ycor
]
ask n-of 5 turtles [
ask turtles in-radius 3 [
set color one-of [red grey]
]
]
end
to find-clusters
let red-grey-turtles turtles with [ member? color [red grey] ]
let clusters dbscan:cluster-by-location red-grey-turtles 3 3
(foreach clusters range length clusters [ [c i] ->
foreach c [ t ->
ask t [ set label i ]
]
])
end
很抱歉没有进一步的解释:我有一架飞机要赶上......