0
我正在努力制定一种方法或算法,以使我的代理商沿着道路旅行,同时避免通过“建筑物”以达到食物区域和返回家园为目标。我已经对建筑物和道路进行了编码,但沿着道路的运动证明是困难的。该计划显示了一个8 x 8网格的城市,道路是线路,建筑物是网格的正方形。我把这些建筑物编码为屏障。我需要代理商朝着目的地的最佳路径前进。这是我的代码:寻找netlogo中的代理商
to get-aid
ask humans
[
ifelse (energy >= 500)
[
ifelse (patch-here = origin)
[
set energy energy - 10
stop
]
[
face origin
avoid-barrier
forward 1
set energy energy - 20
]
]
[
face min-one-of centres with [aid > 0]
[distance myself]
avoid-barrier
forward 1
set energy energy - 20
]
]
end
to avoid-barrier
if (nobody != patch-ahead 1) and ([barrier?] of patch-ahead 1)
[
right 90 + random 180
right random 40
]
end
你的问题是什么? –
安德鲁,在塞思的评论中扩大了:“沿着道路移动被证明是困难的”:以什么方式?代理商是否根本不移动?他们在某些时候被卡住了吗?他们正在离开道路吗?穿过建筑物?在特定行发生错误吗?尽量提供足够的信息,以便其他人可以找出你需要帮助的东西。 (请记住,我们没有剩下的程序。)如果你向我们展示的代码显示了任何显然不相关的东西(能量?),这也会有所帮助 - 这甚至可以帮助你自己解决问题。 – Mars
我已经设置了白色的补丁是道路,代理可以一起移动。棕色斑块是建筑物,他们无法穿过,并且充当障碍。我的问题是,我希望代理商在沿着道路行驶时使用最佳路线到达目的地,但不通过建筑物。有没有更简单的方法来编码避开障碍的路径移动?由于我的代码看到代理商碰到障碍,转向另一个方向寻找目标。 – andrew