netlogo如何设置乌龟的最小分离跟随领导者

时间:2014-10-09 09:37:02

标签: netlogo

当紧急情况发生时,我试图让代理人(白人)跟随领导者(黑人)。问题是,当紧急情况发生时,代理人将跟随领导者,但他们互相重叠。跟随领导者时,如何确保他们不会相互重叠。我确实试图在植绒中使用分离规则,它不起作用。真的需要知道如何解决这个问题。谢谢你的帮助

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   

1 个答案:

答案 0 :(得分:0)

正确的形式:

while other turtles here [fd 1]

是:

while any? other turtles-here [fd 1]

这不是最小分离规则。它确保乌龟继续移动,直到它不再与任何其他海龟共享补丁。但是如果两只乌龟接近斑块边界,那么乌龟可能仍然任意靠近另一只乌龟,但是在另一侧。尽管如此,它可能足以满足您的目的。

在NetLogo的模型库中,样本模型的Art部分中的跟踪者(或多或少?不确定多么统一)的示例模型中,海龟跟随领导者的统一距离。您可以查看该模型,看看您是否认为该方法可能适用于您的问题。