首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >离散事件模拟的结果能转化为连续时间的可视化吗?

离散事件模拟的结果能转化为连续时间的可视化吗?
EN

Software Engineering用户
提问于 2021-12-01 23:05:36
回答 1查看 90关注 0票数 1

我正在构建一个用于车辆交通离散事件模拟的库.车辆被建模为代理,而网络被建模为一组相互关联的边缘和节点(位置的双向图)。在某一时刻,车辆将不得不在一些节点/边缘排队,例如交通灯。在一个事件驱动的场景中,我会把交通灯建模成一个队列.

  1. 车辆根据其位置和某些路径(到交通灯)计算它们与交通灯的距离。
  2. 一个事件是在计算时间内创建的,它是通过估计以恒定速度穿越该距离所需的时间来创建的。在此事件中,将检查交通灯是否与“暂停”(相关)或“关口”(无关)相对应。
  3. 如果车辆必须停车,则该事件只会将与交通灯相关的队列增加1。
  4. 随着时间的推移,交通灯变成“绿色”(通过),队列在相应的事件中被“卸载”。

当然,实际情况更复杂,但即使从这几个步骤中,我也可以预见到一个非常具体的问题。我的意图是有可能以“回放”的形式“重放”模拟的结果。上述步骤的输出可以在重播中“忠实地”显示为放置在交通灯位置的水桶的动画,其大小随着车辆排队和“卸载”而减小(恢复运动)。

这显然不太现实。最后,我想要的是真实交通的“忠实”回放。所以我的问题是,我如何“过渡”从一个离散事件模拟的结果到一个现实的重播?是否有某种标准化的方式来真正从基于FIFO桶的队列过渡到实际的车辆精灵以一种相对精确(空间)的方式排队?或者,我必须以不同于上述步骤的方式“建立”我的模型,才能真正“捕捉”其表现形式的行为?或者我只是碰到了一个死胡同,我应该把它转换成一个基于时间的模拟模式(而不是离散事件),这样我就可以用离散的时间步骤来评估完整的运动动力学了?

请记住,我不想仅仅得到一个“代表性”的可视化。我正在寻找的是结束在事件之间的车辆的实际位置。

EN

回答 1

Software Engineering用户

发布于 2021-12-05 17:51:01

是否有某种标准化的方式来真正从基于FIFO桶的队列过渡到实际的车辆精灵,以一种相对精确的(空间)方式排队?

我不认为有一个标准化的方法,这是一个具体的问题,它有许多具体的解决方案,如何解决这个问题。

然而,这并不意味着您一定需要从根本上改变您的模型。事实上,我认为可以以直截了当的方式处理上述情况:

  • 图中的节点/边表示某些几何(或空间)情况的拓扑结构。所以你需要做的第一件事就是确保你有一个后一个模型,比如一个空间地图,一个从每个节点到地图中某个位置的映射,以及从每个边缘到地图中的一个路径的映射(包括方向)。路径可以描述为二维点的序列(一条折线),它自然地映射到一个2D线段序列,该序列可以解释为线性样条样条,允许通过参数公式计算路径上的任何中间点。如果您想使这更“光滑”,您可以用二次样条或三次样条代替线性样条,例如用样条插值
  • 事件对应于车辆在与其相关位置的一个节点开始和/或停止的时间点。为了播放,您只需将事件和下一个事件之间的时间划分为给定大小的小的子间隔,然后插入每个车辆从其最后一站到下一站的路径上的位置。路径的样条形式应该使这非常简单。

当你假设车辆有一个恒定的速度时,这并不太难。当你想让这变得更加现实时,它变得更加复杂,车辆从最后一站开始加速,在到达下一站时减速,或者当车辆通过一个不停车的节点时保持它们的速度。

当然,如果你想要一个更真实的交通模型,车辆之间的距离,考虑到它们的大小,车道的数目,车辆之间的动态最小距离,取决于它们的速度,以及更多的这些细节,那么一个更复杂的模型就会变得更有意义。为此,我不会使用事件FIFO作为起源,而是使用空间映射和小的、离散的时间间隔。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/433984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档