Netlogo 移动时将代理保持在可视范围内
我有一个模型,特工们四处寻找资源。个人根据以下条件移动:Netlogo 移动时将代理保持在可视范围内,netlogo,Netlogo,我有一个模型,特工们四处寻找资源。个人根据以下条件移动: to move set energy energy -1 fd v if random 300 = 1 [ ifelse random 2 = 0 [rt 45][lt 45]] end 除此之外,我希望他们保持彼此的视野范围,或者至少保持一定的群体规模 在我看来,这将采取ifelse在radius vision
to move
set energy energy -1
fd v
if random 300 = 1 [
ifelse random 2 = 0
[rt 45][lt 45]]
end
除此之外,我希望他们保持彼此的视野范围,或者至少保持一定的群体规模
在我看来,这将采取ifelse在radius vision<5[向团队移动][移动]
我试过一些方法,但当代理执行其他一些导致错误的例行程序时,他们最终会走向对方或失去联系
我也看过植绒模型,但对于我想要实现的目标来说,这有点过于参数化了
希望你能帮忙
编辑:根据@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
设置
清除所有
重置滴答声
阴极射线管20
结束
外带
叫海龟[移动]
组]
打上钩
结束
移动
fd 0.01
如果随机333=1[
ifelse random 2=0
[rt 45][lt 45]]
结束
分组
让midx表示半径为10的其他海龟的[xcor]
让midy表示半径为10的其他海龟的[ycor]
ifelse计算半径为5<5的其他海龟[facexy midx midy set颜色为红色][移动set颜色为蓝色]
结束
你在“你的头脑”中设置的方式让他们都朝着团队移动,或者都独立移动。你可以计算一下小组的中心,让每只乌龟做一些类似“如果我离中心太远,就向中心移动,否则就移动”。嗨,我根据你的建议想出了一些办法。代理现在倾向于蜂拥而来,但这与我想要的非常接近。你在“你的头脑”中设置它的方式让他们都朝着团队或独立的方向移动。你可以计算一下小组的中心,让每只乌龟做一些类似“如果我离中心太远,就向中心移动,否则就移动”。嗨,我根据你的建议想出了一些办法。特工们现在倾向于蜂拥而至,但这已经非常接近我想要的了。