这是我在这里的第一篇帖子,希望你们能帮到我。我想设计一个十字路口交通灯模拟,我已经有了每个交通灯阶段的车辆数量数据,并且已经计算了灯光周期的长度,但是我不知道应该使用哪种算法来建模交通行为。我正在寻找适用于这种情况的算法:
A. 车辆数量数据:(示例)
- 北路:40 – 55 辆车
- 南路:70 – 85 辆车
- 东路:50 – 65 辆车
- 西路:50 – 70 辆车
我想根据随机区间值来模拟每条路径上出现的车辆数量
B. 移动方向:(示例)
- 北向南:16 – 20 辆车
- 北向西:10 – 15 辆车
- 北向东:14 – 20 辆车
- 以此类推
每种车辆移动方向的行为使用基于随机区间值的AI算法
C. 行为:
- 如果前方有车辆或红灯亮起,车辆会开始减速直至停止
- 车辆会移动到比前方队列更小的队列
- 车辆之间保持距离
- 使用加速度进行初始移动,之后速度保持恒定
回答:
如果你不知道从哪里开始,你可能需要从一些稍微简单的问题入手,然后将它们结合起来以获得最终的解决方案。
或许最好的起点是尝试预测在一个周期内有多少辆车到达一个灯前?在这种情况下,你需要了解一些关于概率分布的知识,对于需要大于或等于0的低数值,具体来说是泊松分布。
如果你试图根据测量数据预测坐在任何一组灯前的司机会做出哪种选择,最简单的办法可能是生成一个离散概率分布(如果司机的选择不相关)或马尔可夫链(如果它们相关)。
如果你试图弄清楚单个灯如何改变颜色(绿色->黄色,黄色->红色,红色->绿色),你可以将其建模为一个状态机。
如果你试图管理多个灯组,特别是当这些转换可以由异步事件驱动时,你最好的选择是类似于离散事件模拟的东西。如果你需要对整个系统进行更正式的描述,你可能需要转向Petri网
如果你关心单个车辆的位置,你可以将它们的位置(以及位置之间的转换)建模在一个图上,其中顶点与位置相关联。如果你需要纳入关于几何、动力学、运动学的详细信息,你将需要对车辆及其与路面的相互作用(以及可能的相互作用)的详细模型。这在你想模拟十字路口内的碰撞时会很重要。