移动时将代理保持在视觉范围

时间:2016-02-25 18:03:05

标签: netlogo

我有一个模型,代理商正在四处寻找资源。个人按照:

移动
to move
set energy energy -1
fd v
if random 300 = 1 [
ifelse random 2 = 0
[rt 45][lt 45]]
end

除此之外,我希望他们做的是保持彼此的视觉范围或至少保持某个群体大小在范围内。

在我看来,这将采用ifelse count turtles in-radius vision < 5 [move-towards-group][move]

的形式

我尝试了一些事情,但代理人最终会互相移动或失去联系,而他们会制定一些其他例程导致错误。

我也看过了植绒模型,但对于我想要达到的目标而言,这有点过于参数化了。

希望你能提供帮助。

编辑:根据@ JenB的建议,我提出了以下工作模式。但是这里的代理商往往会蜂拥而至,有时会在他们被困在一个团体的地方中断。 5

to setup
  clear-all
  reset-ticks 
  crt 20 
end

to go 
 ask turtles [move
   group]
 tick
end 

to move
fd 0.01
if random 333 = 1 [
ifelse random 2 = 0
[rt 45][lt 45]]
end

to group
  let midx mean [xcor] of other turtles in-radius 10
    let midy mean [ycor] of other turtles in-radius 10
    ifelse count other turtles in-radius 5 < 5 [facexy midx midy set color red][move set color blue]
end

0 个答案:

没有答案