确定龟群的半径和龟的数量 - 后处理

时间:2017-09-28 18:21:07

标签: netlogo

如果我有一种情况,其中大约1000只黑乌龟以任意角度分散并在整个netlogo世界中以给定的蜱虫持续时间步进。在分散过程中,每个时间步都会为每只乌龟分配一个随机概率,如果这个数量超过任何给定海龟的给定阈值,它会将颜色变为红色并停止移动。此外,黑龟(仍在移动)恰好在一片红海龟(停止/安定)内移动,将其颜色改为灰色并定居(停止移动)。最后,其他黑龟(仍在移动)恰好在一片灰色或红色海龟(停止/沉降)中移动,也将它们的颜色变为灰色并定居(停止移动)

我的问题是关于何时达到模拟持续时间的后处理问题。如何确定黑海龟中红灰龟群的数量?另外,如何确定每个群集的大小(径向范围)?最后,我如何确定每个群集中的海龟数量?

1 个答案:

答案 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

很抱歉没有进一步的解释:我有一架飞机要赶上......