【发布时间】:2017-04-24 00:07:41
【问题描述】:
我正在模拟一条单车道道路与一条两车道道路合并,都朝着同一个方向行驶。未合并的汽车 (cars1) 检查半径 2 内的合并汽车,看是否需要换到左侧车道,如果需要,则汽车检查左侧车道是否安全。
ask cars1[
if (not any? turtles-at -2 4) and (not any? turtles-at -1 4)
and (not any? turtles-at 0 4) and (not any? turtles-at 1 4)
and (not any? turtles-at 2 4) and (not any? turtles-at 3 4)
and (any? merging-cars in-radius 3)
[ set ycor 2]]
如果最近车道上的汽车 1 变到左侧车道不安全,我正在尝试让合并的汽车停下来。
ask merging-cars[
loop[
if[any? cars1 in-radius 2]
[stop]
]]
那是不工作的代码。我还没有想出办法让合并的汽车在不安全时停下来,在安全时离开。
谢谢
【问题讨论】:
-
您看过模型库中的“Traffic 2 Lanes”模型吗?它可以作为合并行为的一个例子——模型中的汽车不会撞车,但只有在它们试图进入的车道上有空间时才会改变车道。
-
是的,我看过它,它在我的模拟的某些部分有很大帮助,但在这种情况下没有帮助。我需要合并车检查它是否安全,如果不安全,他们需要停下来等到安全合并。
-
对。您能否编辑您的问题以包含一个可重现的示例(如MCVE guidelines)?有几种方法可以满足您的需求,但如果没有看到更多细节和背景,就很难提出最佳选择。
标签: netlogo