如何通过浏览属性列表来比较Netlogo中的两只乌龟?

时间:2017-10-27 11:53:08

标签: netlogo

我的海龟拥有超过30个布尔值的属性,我想使用foreach循环来比较海龟并根据它们的相似性对它们进行排名,而无需单独比较每个属性。我可能在这里错过了一个明显的观点,我已经尝试了一个属性列表,但它没有用,并且所有的乌龟都获得了最大的相似度得分。

1 个答案:

答案 0 :(得分:3)

这是一些计算两个列表之间汉明距离的代码。请注意,非常聪明的reduce代码直接来自NetLogo字典。

to testme
  let ll1 (list TRUE TRUE FALSE FALSE)
  let ll2 (list TRUE FALSE TRUE FALSE)
  let ll3 ( map = ll2 ll1 )
  show ll3
  show reduce [ [occurrence-count next-item] ->
    ifelse-value (next-item) [occurrence-count + 1] [occurrence-count] ] (fput 0 ll3)
end

如果你想要计算一对海龟的相似度得分,你可以把它变成一个以两只乌龟为参数的记者。但目前尚不清楚比较两只乌龟是你想做什么的,所以我没有为此编写代码。