信息扩散
Information Diffusion
我遇到了 netlogo 问题:我想在网络中传播信息。一只乌龟拥有该信息,并以恒定概率将其提供给它的 link- 邻居。这是我到目前为止的代码:
to spread
if (count turtles with [informed? = true] > .7 * count turtles) [stop]
ask turtles with [ informed? = true ]
[
ask link-neighbors
[
if (random-float 1 <= 0.02)
[
set informed? true
show-turtle
set color green
]
]
]
set num-informed count turtles with [informed? = true]
tick
end
现在我想知道:我怎样才能确保每只乌龟只获得一次信息而不被通知两次?我试过 "if not informed?",但那只给我错误消息。如果我希望信息以 2% 的恒定概率传播,我的命令 "if (random-float 1 <= 0.02)" 是否正确?
这应该有效(未测试)。假设您在设置海龟时已完成 set informed? FALSE
。
to spread
if (count turtles with [informed?] > .7 * count turtles) [stop]
ask turtles with [ informed? ]
[ ask link-neighbors with [ not informed? ] ; **<= my change**
[ if (random-float 1 <= 0.02)
[ set informed? true
show-turtle
set color green
]
]
]
set num-informed count turtles with [informed?]
tick
end
我遇到了 netlogo 问题:我想在网络中传播信息。一只乌龟拥有该信息,并以恒定概率将其提供给它的 link- 邻居。这是我到目前为止的代码:
to spread
if (count turtles with [informed? = true] > .7 * count turtles) [stop]
ask turtles with [ informed? = true ]
[
ask link-neighbors
[
if (random-float 1 <= 0.02)
[
set informed? true
show-turtle
set color green
]
]
]
set num-informed count turtles with [informed? = true]
tick
end
现在我想知道:我怎样才能确保每只乌龟只获得一次信息而不被通知两次?我试过 "if not informed?",但那只给我错误消息。如果我希望信息以 2% 的恒定概率传播,我的命令 "if (random-float 1 <= 0.02)" 是否正确?
这应该有效(未测试)。假设您在设置海龟时已完成 set informed? FALSE
。
to spread
if (count turtles with [informed?] > .7 * count turtles) [stop]
ask turtles with [ informed? ]
[ ask link-neighbors with [ not informed? ] ; **<= my change**
[ if (random-float 1 <= 0.02)
[ set informed? true
show-turtle
set color green
]
]
]
set num-informed count turtles with [informed?]
tick
end