当紧急情况发生时,我试图让代理人(白人)跟随领导者(黑人)。问题是,当紧急情况发生时,代理人将跟随领导者,但他们互相重叠。跟随领导者时,如何确保他们不会相互重叠。我确实试图在植绒中使用分离规则,它不起作用。真的需要知道如何解决这个问题。谢谢你的帮助
turtles-own
[
leader?
leader
]
to setup
clear-all
reset-ticks
ask n-of population patches with [ pcolor = blue]
[sprout 1
[ set color white
set size 1
set shape "person"
set leader? false]]
choose-leaders
end
to choose-leaders
ask n-of ((percent_of_leader / 100) * population ) turtles
[
set leader? true
set color black
set size 1
set shape "person"
set leader self
]
end
to go
ask turtles [follow-leader]
tick
end
to follow-leader
if not leader? [
let nearby-leaders turtles with [leader? and distance myself < 3]
if any? nearby-leaders
[ set heading (towards min-one-of nearby-leaders [distance myself]) - random minimum-separation + random minimum-separation
]]
end
答案 0 :(得分:0)
正确的形式:
while other turtles here [fd 1]
是:
while any? other turtles-here [fd 1]
这不是最小分离规则。它确保乌龟继续移动,直到它不再与任何其他海龟共享补丁。但是如果两只乌龟接近斑块边界,那么乌龟可能仍然任意靠近另一只乌龟,但是在另一侧。尽管如此,它可能足以满足您的目的。
在NetLogo的模型库中,样本模型的Art部分中的跟踪者(或多或少?不确定多么统一)的示例模型中,海龟跟随领导者的统一距离。您可以查看该模型,看看您是否认为该方法可能适用于您的问题。