【发布时间】:2020-01-05 21:02:56
【问题描述】:
我正在 NetLogo 中开发一个简单的汽车驾驶模拟模型。但是,我面临一个主要和次要问题。该模型的过程如下:
必须在世界中心生成一辆“3 号”的汽车。汽车只能在“上”、“下”、“to_right”和“to_left”四个方向上移动。当按下“开始”按钮时,汽车开始从中心向右移动。这样做时,在海龟级别起作用的按钮“上”、“下”、“to_right”和“to_left”指示汽车的方向。每次按下这些按钮,汽车的“速度”都会增加“加速”的量,而“油箱”(汽油)会减少“减速油箱”的量。汽车在矩形世界(“盒子”)中移动。当汽车与世界的边界或“墙”相撞时,它必须:首先,向相反的方向移动(向相反的“墙”的方向,可以说是“反弹”),其次,“速度”必须下降到其初始水平(0.1)。我的主要问题是,当汽车与世界的“墙壁”相撞时,模型不断给我错误“OF 预期的输入是乌龟代理集或补丁代理集或乌龟或补丁,但得到了 NOBODY”。小问题是速度下降也不起作用。我想知道,是否有任何人有类似的问题并可以帮助我解决这些问题?先感谢您!
我检查了我可以在 stackoverflow 中找到的与 NetLogo 模型中的“弹跳”问题相关的所有问题和答案,以及通过谷歌搜索在 stackoverflow 之外找到的所有问题和答案。我尝试了每个答案作为解决方案,但无济于事。作为我的解决方案实验的一部分,我编写了代码,当汽车到达“墙壁”时将其颜色设置为“黄色”。令我惊讶的是,它似乎有效,但不是汽车倒车的代码!此外,我尝试用“max-pxcor”和“max-pycor”替换“nobody”(在应该定义汽车倒车的代码块中),但它也不起作用。我还尝试增加“patch-ahead”的距离并减小汽车的“尺寸”,但结果是否定的。我承认我的代码中可能存在一些我没有注意到的缺陷,或者可能是某些代码没有被“清理”得足够好,无法在运行时通过程序。我的主要怀疑是定义汽车倒车的代码行可能存在问题,或者部分代码似乎与倒车完全无关,例如“标题”或“前进”或“大小”车。以下是我的代码。
globals [speed-limit tank]
turtles-own [speed dec-tank]
to setup
clear-all
set speed-limit 0.5
set tank 50
set-default-shape turtles "car"
draw-walls
create-turtles 1 [set color red
set size 3
set speed 0.1
set dec-tank 0.05
]
reset-ticks
end
to draw-walls
ask patches with [abs (pxcor) = max-pxcor][set pcolor blue]
ask patches with [abs (pycor) = max-pycor][set pcolor blue]
end
to go
ask turtles [
set heading 90
fd speed
if abs [pxcor] of patch-ahead speed = max-pxcor [set heading (- heading)]
if abs [pycor] of patch-ahead speed = max-pycor [set heading (180 - heading)]]
tick
end
to up ;at turtle level
set heading 0
fd speed
if abs [pxcor] of patch-ahead speed = max-pxcor [set heading (- heading)]
if abs [pycor] of patch-ahead speed = max-pycor [set heading (180 - heading)]
set speed speed + acceleration
if speed > speed-limit [set speed speed-limit - random-float speed ]
set tank tank - dec-tank
if tank <= 0 [ set speed 0]
end
to down ;at turtle level
...
执行我的模型的总体结果是,汽车每次与“墙壁”碰撞时都必须向相反方向移动,并且“速度”必须下降到其初始水平。但是,我一直有错误“预期的输入是乌龟代理集或补丁代理集或乌龟或补丁,但得到了 NOBODY。”我在stackoverflow中阅读其他答案时发现,当海龟移动到世界的“墙壁”之外时,会出现“NOBODY”错误。我想知道为什么它一直发生在我的案例中。
【问题讨论】:
标签: simulation netlogo agent-based-modeling driving-directions