如何识别具有某些条件的邻居
How to identify neighbors with some conditions
我正在尝试建立一个连接海龟的玩具模型。每只乌龟都有一个随机信念[0,1],我想实现一些条件:
- 如果它是一只信念 > .5 的乌龟,那么乌龟什么都不做。
- 如果它是一只信念 < .5 的海龟,而它们的近邻之一的信念 > .5,则它们的新信念(信念 < .5 的海龟)将为信念 + .1。
- 如果置信度 < .5 的海龟没有置信度 > .5 的直接邻居,则海龟什么都不做。
基本设置:
turtles-own [belief]
to setup
ca
reset-ticks
crt 5 [
set shape "person"
layout-circle turtles 5
set belief random-float 1
]
ask turtles [ create-links-with min-n-of 2 other turtles [distance myself] ]
end
这将创建一个 5 海龟循环网络。现在他们必须检查他们(两个)最近邻居的信念。我试过这个:
to go
ask turtles with [one-of link-neighbors with [belief > .5]] [
set belief belief + .1
]
end
所以基本的想法是,每只乌龟都有一个信念 > .5 的相连邻居,必须将 .1 添加到自己的信念中。我已经尝试了 ask turtles with
行的几种变体,但它总是向我显示此类运行时错误:WITH expected a true/false value from (turtle 0),但却得到了 (turtle 2)。有任何想法吗?提前谢谢你。
one-of
returns一个代理。在这种情况下不适合使用 with
评估条件 - 条件不完整,因为行 ask turtles with [one-of link-neighbors with [belief > .5]]
翻译(粗略地)为“要求具有条件 turtle x 的海龟做某事”。
我想你想要的是使用 count
来计算相信的数量 turtles
或 any?
来评估代理集是否存在:
to go-1
ask turtles with [ (count link-neighbors with [belief > 0.5]) > 0 ] [
set belief belief + 0.1
]
end
to go-2
ask turtles with [ any? link-neighbors with [ belief > 0.5 ] ] [
set belief belief + 0.1
]
end
我正在尝试建立一个连接海龟的玩具模型。每只乌龟都有一个随机信念[0,1],我想实现一些条件:
- 如果它是一只信念 > .5 的乌龟,那么乌龟什么都不做。
- 如果它是一只信念 < .5 的海龟,而它们的近邻之一的信念 > .5,则它们的新信念(信念 < .5 的海龟)将为信念 + .1。
- 如果置信度 < .5 的海龟没有置信度 > .5 的直接邻居,则海龟什么都不做。
基本设置:
turtles-own [belief]
to setup
ca
reset-ticks
crt 5 [
set shape "person"
layout-circle turtles 5
set belief random-float 1
]
ask turtles [ create-links-with min-n-of 2 other turtles [distance myself] ]
end
这将创建一个 5 海龟循环网络。现在他们必须检查他们(两个)最近邻居的信念。我试过这个:
to go
ask turtles with [one-of link-neighbors with [belief > .5]] [
set belief belief + .1
]
end
所以基本的想法是,每只乌龟都有一个信念 > .5 的相连邻居,必须将 .1 添加到自己的信念中。我已经尝试了 ask turtles with
行的几种变体,但它总是向我显示此类运行时错误:WITH expected a true/false value from (turtle 0),但却得到了 (turtle 2)。有任何想法吗?提前谢谢你。
one-of
returns一个代理。在这种情况下不适合使用 with
评估条件 - 条件不完整,因为行 ask turtles with [one-of link-neighbors with [belief > .5]]
翻译(粗略地)为“要求具有条件 turtle x 的海龟做某事”。
我想你想要的是使用 count
来计算相信的数量 turtles
或 any?
来评估代理集是否存在:
to go-1
ask turtles with [ (count link-neighbors with [belief > 0.5]) > 0 ] [
set belief belief + 0.1
]
end
to go-2
ask turtles with [ any? link-neighbors with [ belief > 0.5 ] ] [
set belief belief + 0.1
]
end