我正在构建一个用于车辆交通离散事件模拟的库.车辆被建模为代理,而网络被建模为一组相互关联的边缘和节点(位置的双向图)。在某一时刻,车辆将不得不在一些节点/边缘排队,例如交通灯。在一个事件驱动的场景中,我会把交通灯建模成一个队列.
当然,实际情况更复杂,但即使从这几个步骤中,我也可以预见到一个非常具体的问题。我的意图是有可能以“回放”的形式“重放”模拟的结果。上述步骤的输出可以在重播中“忠实地”显示为放置在交通灯位置的水桶的动画,其大小随着车辆排队和“卸载”而减小(恢复运动)。
这显然不太现实。最后,我想要的是真实交通的“忠实”回放。所以我的问题是,我如何“过渡”从一个离散事件模拟的结果到一个现实的重播?是否有某种标准化的方式来真正从基于FIFO桶的队列过渡到实际的车辆精灵以一种相对精确(空间)的方式排队?或者,我必须以不同于上述步骤的方式“建立”我的模型,才能真正“捕捉”其表现形式的行为?或者我只是碰到了一个死胡同,我应该把它转换成一个基于时间的模拟模式(而不是离散事件),这样我就可以用离散的时间步骤来评估完整的运动动力学了?
请记住,我不想仅仅得到一个“代表性”的可视化。我正在寻找的是结束在事件之间的车辆的实际位置。
发布于 2021-12-05 17:51:01
是否有某种标准化的方式来真正从基于FIFO桶的队列过渡到实际的车辆精灵,以一种相对精确的(空间)方式排队?
我不认为有一个标准化的方法,这是一个具体的问题,它有许多具体的解决方案,如何解决这个问题。
然而,这并不意味着您一定需要从根本上改变您的模型。事实上,我认为可以以直截了当的方式处理上述情况:
当你假设车辆有一个恒定的速度时,这并不太难。当你想让这变得更加现实时,它变得更加复杂,车辆从最后一站开始加速,在到达下一站时减速,或者当车辆通过一个不停车的节点时保持它们的速度。
当然,如果你想要一个更真实的交通模型,车辆之间的距离,考虑到它们的大小,车道的数目,车辆之间的动态最小距离,取决于它们的速度,以及更多的这些细节,那么一个更复杂的模型就会变得更有意义。为此,我不会使用事件FIFO作为起源,而是使用空间映射和小的、离散的时间间隔。
https://softwareengineering.stackexchange.com/questions/433984
复制相似问题