城市交通系统的可靠动态路由规划
1. 引言
在城市交通系统中,动态路由规划旨在为车辆找到最短行驶时间的最优路线。然而,传统的车辆路由问题解决方案在交通布局条件动态变化时(如交通拥堵、事故或恶劣天气)往往不再适用。随着自动驾驶系统的出现,动态路由问题再次受到关注。现代技术(如全球定位系统和地理信息系统)可用于动态收集交通状况,从而实现车辆路线的动态分配。
2. 模型基础与示例
2.1 实验网格与车辆信息
使用一个 5×5 的网格作为图来测试整数线性规划(ILP)模型,该网格可代表城市区域的一部分。假设存在两条受阻路线集合 (F = {(1, 2), (1, 6), (2, 1), (2, 7), (6, 1), (7, 2), (10, 2)}),以及两辆车辆 (u_1) 和 (u_2),其中 (location(u_1) = 15),(location(u_2) = 9),(destination(u_1) = 12),(destination(u_2) = 11)。
2.2 车辆最优路线
- 车辆 (u_1) 的最优路线由变量 (x_{u_1,1,(15,14)} = 1),(x_{u_1,2,(14,13)} = 1),(x_{u_1,i,(13,12)} = 1)((i = 3, \ldots, K))表示,其他变量 (x_{u_1,k,t}) 值为 0。
- 车辆 (u_2) 的最优路线由变量 (x_{u_2,1,(9,8)} = 1),(x_{u_2,2,(8,7)} = 1),(x_{u_2,3,(7,6)} = 1),(x_{u_2,j,(6,11)} = 1)((j = 4, \ldots, K))表示,其他变量 (x_{u_2,k,t}) 值为 0。
这些 (x_{u,k,t}) 变量由下面描述的 ILP 模型自动计算,确保每辆车以最少的步数到达目的地。
3. 整数线性规划(ILP)模型
3.1 目标函数
目标是最大化阈值 (\gamma),且 (\gamma) 为正整数:
[
\begin{align }
\max \gamma & \quad (1)\
\gamma \geq 0 & \quad (2)
\end{align }
]
参数 (\gamma) 表示车辆在目的地花费的总离散步数,车辆越早到达目的地,(\gamma) 值越高。
3.2 流量约束
- 变量定义 :将分析的时间窗口划分为离散步骤 (1 \ldots K),(K) 是每辆车到达目的地所需步数的上限。对于每个离散步骤 (k \in 1 \ldots K),每个行程 (t \in T) 和车辆 (u \in U),二进制变量 (x_{u,k,t}) 表示车辆 (u) 在步骤 (k) 是否在行程 (t) 中,且 (x_{u,k,t} \in {0, 1})。
- 到达目的地时间约束 :
[
\sum_{u \in U, k \in K, t \in BS(destination(u))} x_{u,k,t} \geq \gamma \quad (4)
]
该约束确保每辆车以最少的时间到达目的地,同时保证问题有界,即 (\gamma \leq |K| * |U|)。 - 单行程约束 :
[
\sum_{t \in T} x_{u,k,t} = 1, \quad \forall u \in U, \forall k \in 1 \ldots K \quad (5)
]
保证每辆车在每个步骤只处于一个行程中。 - 起始和到达约束 :
[
\begin{align }
\sum_{t \in FS(location(u))} x_{u,1,t} = 1, \quad \forall u \in U \quad (6)\
\sum_{t \in BS(destination(u))} x_{u,K,t} = 1, \quad \forall u \in U \quad (7)
\end{align }
]
确保每辆车从当前位置出发并在步骤 (K) 到达目的地。 - 移动约束 :
[
\sum_{t \in BS(q)} x_{u,k - 1,t} - (\sum_{t’ \in FS(q)} x_{u,k,t’} + \sum_{t \in BS(q)} x_{u,k,t}) = 0, \quad \forall q \in Q, \forall u \in U, \forall k \in 2 \ldots K, \sum_{t \in BS(q)} x_{u,k - 1,t} > 0 \quad (8)
]
保证每辆车在每个步骤只能移动到相连的路径或保持静止。 - 避免异常移动约束 :
[
x_{u,k - 1,t_1} + x_{u,k,t_2} \leq 1, \quad \forall q \in Q, \forall u \in U, \forall k \in 2 \ldots K, \forall t_1, t_2 \in BS(q), t_1 \neq t_2 \quad (9)
]
避免车辆在同一节点的不同进入行程之间移动。
3.3 安全约束
- 单车辆行程约束 :
[
\sum_{u \in U} x_{u,k,t} \leq 1, \quad \forall k \in 1 \ldots K, \forall t \in T \quad (10)
]
确保每个行程在每个步骤最多只有一辆车。 - 节点服务约束 :
[
\sum_{u \in U} \sum_{t \in BS(q)} x_{u,k - 1,t} - 1 \leq \sum_{u \in U} \sum_{t \in BS(q)} x_{u,k - 1,t}x_{u,k,t} \leq \sum_{u \in U} \sum_{t \in BS(q)} x_{u,k - 1,t}, \quad \forall q \in Q, \forall k \in 2 \ldots K \quad (11)
]
保证在每个步骤,最多只有一辆车在节点 (q) 得到服务。 - 避免受阻行程约束 :
[
\sum_{u \in U} \sum_{k \in 1 \ldots K} x_{u,k,t} = 0, \quad \forall t \in F \quad (12)
]
确保 ILP 模型计算的任何路线都不会经过受阻行程。
3.4 图结构约束
[
\sum_{t \in FS(q)} x_{u,k,t} + \sum_{t \in BS(q)} x_{u,k,t} \leq 1, \quad \forall q \in Q, \forall u \in U, \forall k \in 1 \ldots K, \forall t \in T \quad (13)
]
用于验证图中不包含内部循环,可对用户输入进行预处理。
3.5 输出
ILP 模型的输出是一组路线 (U),这些路线将被传达给信号系统。每辆车 (u) 的路线由步骤 (k) 和位置 (t) 描述,即 (Route(u) = {x_{u,k,t}|x_{u,k,t} = 1, k \in 1 \ldots K, t \in T})。
4. 模型实现
4.1 实现语言与方式
ILP 模型使用 A Mathematical Programming Language (AMPL) 实现,可从 https://github.com/davidebasile/routingproblem 下载。通过命令行在 AMPL 中加载和执行该模型。
4.2 脚本说明
- 选择求解器 :脚本
routeplanning.run首先选择求解器cplex(也可选择其他可用求解器)。 - 加载数据 :从文件
routeplanning.dat加载自动机数据,该文件提供车辆数量 (u)、节点数量 (n) 以及两个二进制矩阵 (t) 和 (F)。矩阵 (t) 用于识别图结构,矩阵 (F) 识别不可用行程。此外,还提供了数组location和destination来表示车辆的位置和目的地。
4.3 实现文件差异
实现文件 routeplanning.mod 遵循上述模型,但有一些额外约束:
- 图边约束 :(\forall i \in U, j \in K, s \in Q, d \in Q : x[i, j, s, d] <= t[s, d]),确保流量变量 (x) 仅使用图的边。
- 线性化约束 :用于线性化方程 (8) 和 (11) 中的乘积项。例如,对于方程 (8),由于在 AMPL 中不能直接指定 (\sum_{t \in BS(q)} x_{u,k - 1,t} > 0),因此使用以下约束:
[
\sum_{t \in BS(q)} x_{u,k - 1,t} - (\sum_{t’ \in FS(q), t \in BS(q)} x_{u,k,t’}x_{u,k - 1,t} + \sum_{t \in BS(q)} x_{u,k,t}x_{u,k - 1,t}) = 0, \quad \forall q \in Q, \forall u \in U, \forall k \in 2 \ldots K
]
5. 实验结果
5.1 实验设置
进行了三次实验,每次实验中运行一轮 ILP 模型。脚本 routeplanning.run 自动生成受阻轨道、车辆位置和目的地,这些数据根据均匀分布随机生成。
5.2 实验结果
| 实验 | 受阻轨道 | 车辆 1(位置 - 目的地 - 路线) | 车辆 2(位置 - 目的地 - 路线) | 车辆 3(位置 - 目的地 - 路线) | 车辆 4(位置 - 目的地 - 路线) |
|---|---|---|---|---|---|
| 1 | (2,7) (6,7) (9,8) (11,6) (13,14) (17,12) (19,18) (22,23) (23,24) | 1 - 24 - (1,2) (2,3) (3,8) (8,9) (9,14) (14,15) (15,20) (20,25) | 25 - 1 - (25,20) (20,15) (15,10) (10,5) (5,4) (4,3) (3,2) (2,1) | 5 - 21 - (5,10) (10,9) (9,14) (14,13) (13,12) (12,17) (17,16) (16,21) | 21 - 5 - (21,16) (16,11) (11,12) (12,7) (7,8) (8,9) (9,4) (4,5) |
| 2 | (1,6) (2,1) (2,7) (6,1) (6,7) (7,2) (9,8) (10,2) (10,15) (23,22) | 14 - 11 - (14,13)(13,12)(12,11) | 8 - 10 - (8,9)(9,10) | 13 - 18 - (13,18) | 21 - 12 - (21,16)(16,11)(11,12) |
| 3 | (1,2) (1,6) (2,1) (2,7) (6,1) (7,2) (10,2) | 15 - 12 - (15,14)(14,13)(13,12) | 9 - 11 - (9,8)(8,7)(7,6)(6,11) | 14 - 19 - (14,19) | 22 - 13 - (22,17)(17,12)(12,13) |
5.3 性能指标
| 实验 | 时间(秒) | 累计分配内存(字节) | MIP 单纯形迭代次数 |
|---|---|---|---|
| 1 | 49.5 | 13315294784 | 5532 |
| 2 | 48.9531 | 13315330472 | 5438 |
| 3 | 44.9531 | 13315215272 | 6127 |
实验性能主要取决于输入图的大小(节点数量)和车辆数量。实验使用了一台配备 Intel Core i5 - 4570 CPU(3.20 GHZ)、8 GB RAM 的机器,运行 64 位 Windows 10 和 CPLEX 求解器版本 12.7.1.0。
6. 相关工作对比
6.1 动态车辆路由问题
传统的动态车辆路由问题解决方案(如使用神经网络、动态规划、混合整数非线性规划和随机搜索策略)在交通布局条件动态变化时不适用。而本文方法利用现代技术动态收集交通状况,实现车辆路线的动态分配。
6.2 城市交通网络车辆路由
与相关研究相比,本文方法通过将流量变量划分为离散步骤,能够确定每辆车在城市网络中的当前位置,无需使用特殊节点来增加问题的状态空间,也不需要生成初始解决方案。此外,本文方法考虑了轨道中可能出现的故障事件,全局生成路由解决方案。
6.3 列车调度与路由组合问题
与某些研究不同,本文仅关注车辆路由问题,抽象掉时间调度细节。当检测到轨道受阻时,执行 ILP 模型以恢复系统到正常工作状态。
6.4 货运列车路由问题
与相关研究相比,本文方法不仅全局计算车辆到达目的地的最短时间,还考虑了轨道故障,动态调整路线,并强制执行安全属性以避免车辆之间的碰撞。
6.5 自动列车监督问题
与某些研究相比,本文方法考虑了轨道可能出现的故障,动态规划车辆路线,并规定车辆的移动步骤。此外,本文模型可以通过添加额外约束来解决死锁问题。
7. 总结与展望
7.1 总结
本文提出了一个可靠的动态车辆路由系统,重点介绍了基于车辆实际位置计算新路线的 ILP 模型。通过实验验证了该模型的有效性,能够在考虑轨道受阻的情况下为车辆计算最优路线,并确保车辆安全行驶。
7.2 展望
未来可以扩展模型以模拟一整天的情况,考虑更多的障碍物和计算。此外,可以进一步优化模型,提高计算效率和性能,以适应更复杂的城市交通场景。同时,可以研究如何将该模型与其他交通管理系统集成,实现更智能的城市交通控制。
8. 技术点深入分析
8.1 整数线性规划(ILP)模型优势
ILP 模型在城市交通系统动态路由规划中具有显著优势。其目标函数最大化阈值 (\gamma),促使车辆尽早到达目的地,这对于提高交通效率至关重要。通过流量约束,模型能够精确规划车辆的行驶路线,确保每辆车以最少的步数到达目的地。安全约束则保障了车辆行驶的安全性,避免了碰撞和死锁等问题。图结构约束有助于验证图的合理性,避免出现内部循环等异常情况。
8.2 安全约束的重要性
安全约束是该动态路由系统的核心组成部分。单车辆行程约束确保每个行程在每个步骤最多只有一辆车,避免了车辆之间的碰撞。节点服务约束保证在每个步骤,最多只有一辆车在节点得到服务,防止了多辆车同时竞争节点资源导致的混乱。避免受阻行程约束则确保车辆不会进入受阻的轨道,提高了系统的可靠性。
8.3 模型实现的关键细节
使用 AMPL 语言实现 ILP 模型具有很高的灵活性和可扩展性。通过脚本 routeplanning.run 可以方便地选择求解器和加载数据。实现文件 routeplanning.mod 中的额外约束,如图边约束和线性化约束,确保了模型的正确性和高效性。线性化约束解决了 AMPL 中无法直接处理某些条件的问题,使得模型能够准确地计算车辆的行驶路线。
9. 操作步骤总结
9.1 模型使用流程
- 下载模型 :从 https://github.com/davidebasile/routingproblem 下载 ILP 模型的实现代码。
- 准备数据 :编辑文件
routeplanning.dat,提供车辆数量 (u)、节点数量 (n) 以及两个二进制矩阵 (t) 和 (F)。矩阵 (t) 用于识别图结构,矩阵 (F) 识别不可用行程。同时,提供数组location和destination来表示车辆的位置和目的地。 - 选择求解器 :在脚本
routeplanning.run中选择合适的求解器,如cplex。 - 运行模型 :在 AMPL 中通过命令行加载并执行脚本
routeplanning.run,即可得到车辆的最优行驶路线。
9.2 注意事项
- 在准备数据时,确保矩阵 (t) 和 (F) 的正确性,以及数组
location和destination的合理性。 - 选择求解器时,可以根据实际情况进行调整,但需要确保所选求解器与模型兼容。
- 在运行模型过程中,如果出现错误,可以检查数据文件和脚本的语法是否正确。
10. 流程图展示
graph TD;
A[开始] --> B[下载模型代码];
B --> C[准备数据文件 routeplanning.dat];
C --> D[选择求解器];
D --> E[在 AMPL 中运行脚本 routeplanning.run];
E --> F[得到车辆最优路线];
F --> G[结束];
11. 总结与再次展望
11.1 整体总结
本文所提出的可靠动态车辆路由系统,通过 ILP 模型有效地解决了城市交通系统中车辆路由规划的问题。该模型考虑了轨道受阻、车辆安全等多种因素,能够为车辆计算出最优的行驶路线。实验结果表明,模型在不同的场景下都具有较好的性能,能够满足城市交通系统的实际需求。
11.2 未来拓展方向
- 多场景模拟 :未来可以进一步扩展模型,模拟更复杂的城市交通场景,如不同时间段的交通流量变化、不同类型车辆的行驶特点等。
- 与其他系统集成 :研究如何将该模型与其他交通管理系统(如智能交通信号灯系统、车辆自动驾驶系统等)集成,实现更智能的城市交通控制。
- 算法优化 :不断优化 ILP 模型的算法,提高计算效率和性能,以适应大规模城市交通网络的需求。
通过以上的研究和拓展,有望为城市交通系统带来更高效、更安全、更智能的解决方案,提升城市居民的出行体验。
超级会员免费看
1677

被折叠的 条评论
为什么被折叠?



