冗余可靠系统与城市交通动态路由算法解析
1. 冗余系统的主从切换与性能考量
在一些系统架构中,为了保证系统的可靠性和数据同步,采用了热冗余(Hot Redundancy)机制。这种机制能确保两个系统中的节点保持同步,还允许单个应用在两个系统之间实时迁移。
主从切换(Mastership Change)是系统中的一个重要操作。任何一个参与系统都可以随时发起完全切换操作,即两个系统中的任意一个都能请求切换主从(Active - Spare)角色。在这种情况下,整个系统会被激活或停用,所有应用会从一个系统迁移到另一个系统。这样做的目的是防止同一服务的多个副本在不同副本上同时运行。
为了评估系统性能,在一个配备英特尔Atom 1.6 GHz 处理器、1 GiB 内存和 Linux 操作系统的嵌入式系统上进行了广泛测试。测试期间,一个 OBCU 在类似生产环境中运行,有 35 个运行节点。以下是 60 秒时间窗口内的统计数据:
| 指标 | 最小值 | 最大值 | 平均值 | 标准差 |
| ---- | ---- | ---- | ---- | ---- |
| 往返时间 [ms] | 0.91 | 74.41 | 5.30 | 9.21 |
| 往返抖动 [ms] | -56.07 | 71.32 | 0.68 | 14.29 |
| 切换时间 [ms] | 268 | 702 | 362.06 | 106.91 |
| 更新次数 [#/s] | 4 | 83 | 29.13 | 19.29 |
| 有效负载大小 [B] | 0 | 2736 | 279.93 | 470.61 |
| 网络数据速率 [B/s] | 8418 | - | - | - |
| 主题数量 [#] | 73 | - | - | - |
| 应用数量 [#] | 35 | - | - | - |
从这些数据可以看出,往返时间平均很低,但也有极少数情况会增加到 75 毫秒。总共有 35 个应用,在 73 种不同数据类型上每秒有高达 83 次更新的峰值。交换的有效负载大小从 0 字节到 2736 字节不等,总网络数据速率约为 8 KiB/s,平均切换时间约为 360 毫秒。这些数据非常适合非安全关键的 LTR 车载系统。
2. 冗余系统结论与优势
在进行完全切换时,确定合适的时间和情况并非易事,可能的触发事件难以检测或与不需要切换的事件区分开来。以下是一些在将这种技术应用到其他情况之前需要考虑的要点:
- 使用保持活动消息来检测另一个系统是否停止工作,超时是一个关键参数。
- 最好在两个代理之间有双通道通信,以避免网络故障被误认为是活动系统故障。
- 当两个系统都是备用状态时,特别是在启动时,它们需要达成共识。
- 应尽量减少切换次数,因为在主从切换期间服务会短暂中断。
- 在激活备用系统之前,必须正确停用活动系统中的所有模块。
该架构具有以下优势:
- 代码质量更高,因为小服务更容易进行深入测试。
- 由于服务之间的独立性,任务并行性得到改善。
- 降低了新团队成员的学习曲线。
- 编写小服务即使在两周的 SCRUM 冲刺中也很合适。
- 系统易于扩展和测量。
- 具有强大而广泛的日志记录功能,便于开发安全、安全和调试功能。
3. 城市交通动态路由问题背景
如今,大多数交通领域的研究致力于构建智能解决方案,以在城市中运送人员,降低成本、提高可持续性,同时确保交通服务的可靠性和安全性。高度自动化的交通系统在向数字社会转型中发挥着重要作用,为车队车辆规划最佳路线已被证明有助于降低车辆成本和能耗,同时提高用户满意度。
传统上,路线是预先规划的,但随着自主城市交通系统(如自动驾驶汽车)的出现,由于交通拥堵或恶劣天气条件导致的轨道阻塞等问题需要实时处理。因此,动态计算车辆路线的需求日益增加。
4. 动态车辆路由系统架构
提出的动态车辆路由系统中,每辆车通过车载设备借助 GPS 坐标或类似系统可以精确通信其位置,并与控制站进行通信。当检测到分配的轨道中有阻塞时,受阻车辆会将其坐标发送给中央控制站,并识别阻塞的轨道。
控制单元收到通信后,会收集城市中所有车辆的坐标(位置)和目的地。然后,控制系统会根据每辆车的当前位置和目的地动态计算新的路线,并将其传达给信号系统。模型会计算最优解决方案,以最小化所有车辆到达目的地的总时间,从而优化用户满意度。同时,确保路线安全,避免车辆在轨道和点上发生碰撞,保证整个车辆网络的进展,不会出现死锁。
以下是动态车辆路由系统的流程:
graph LR
A[车辆检测到轨道阻塞] --> B[车辆向控制站发送坐标和阻塞轨道信息]
B --> C[控制站收集所有车辆位置和目的地]
C --> D[控制系统计算新路线]
D --> E[将新路线传达给车辆和信号系统]
5. 网络流问题基础
动态车辆路由问题可以形式化为网络流问题。流网络是一个有向图,每个边都有容量,并且每个边接收一个流。设 G = (Q, T) 是一个图,其中 Q 是节点集,T 是边集。通常有两种特殊节点:源节点(生成流)和汇节点(消耗流)。
对于每个边 t ∈ T,流变量 xt 表示通过该边的流。每个边 t 通常分配一个最大容量 at 和一个成本 ct。网络流问题是一种网络优化问题,其目标是优化流,同时满足以下约束:
- 边的流量不能超过边的容量(容量约束):∀t ∈ T. xt ≤ at。
- 流入节点的流量等于流出节点的流量,除非它是源节点(只有流出流量 d)或汇节点(只有流入流量 d)(流量守恒):
∀q ∈ Q. ∑(t∈BS(q)) xt - ∑(t∈FS(q)) xt =
⎧
⎨
⎩
-d if q = qs
0 if q ≠ qs, qf
d if q = qf
- 根据研究问题的不同,可能要求计算的流必须是整数值(完整性约束):∀t ∈ T. xt ∈ N。
常见的网络流问题包括最大流问题和最小成本流问题,这些问题可以通过整数线性规划(ILP)来解决。
6. 车辆路由问题模型
将动态车辆路由问题形式化为网络流问题,抽象城市电车布局为一个图。假设有限的车辆集 U、有限的行程集(边)T 和有限的节点集 Q。设 |S| 为集合 S 的基数,则 K = |U| * |T| 是每辆车到达目的地所需的最大时间上限。
对于每辆车 u ∈ U,有其位置 location(u) 和目的地 destination(u)。同时,假设有一个行程子集 F ⊂ T 暂时不可用。ILP 模型的输出将是分配给每辆车的新路线。
例如,在一个表示城市区域子部分的图中,相邻节点双向连接。通过这个模型,可以确保计算出的路线安全且能使车辆最终到达目的地,同时最小化整体路由时间。
冗余可靠系统与城市交通动态路由算法解析
7. 模型的具体约束与变量
在将动态车辆路由问题建模为网络流问题时,为了准确描述车辆的行驶路径和确保模型的合理性,引入了一系列具体的约束和变量。
首先,对于每辆车的行驶路径,我们将其建模为图中的流。为了实现对每辆车在不同时间和路径上的精确描述,引入了一组二进制变量 (x_{u,k,t})。其中,(u) 用于标识车辆,(k) 表示在分析中考虑的离散步骤,(t) 表示行程(即边)。当且仅当车辆 (u) 在时刻 (k) 处于行程 (t) 时,(x_{u,k,t} = 1)。这些变量将用于描述 ILP 模型计算出的最优路线。
为了保证模型的合理性和安全性,还设置了一系列约束条件:
-
容量约束
:每个行程在特定时刻只能容纳一辆车,即每边的最大容量为一个单位。这意味着同一时间内,一条行程上不会有两辆及以上的车辆行驶,避免了车辆在行程上的碰撞。用数学表达式表示为:对于每个行程 (t \in T) 和每个离散步骤 (k),(\sum_{u \in U} x_{u,k,t} \leq 1)。
-
流量守恒约束
:除了源节点(车辆的起始位置)和汇节点(车辆的目的地)外,每个节点的流入流量等于流出流量。对于源节点,有一个单位的流出流量;对于汇节点,有一个单位的流入流量。用数学表达式表示为:对于每个节点 (q \in Q) 和每个离散步骤 (k),(\sum_{t \in BS(q)} \sum_{u \in U} x_{u,k,t} - \sum_{t \in FS(q)} \sum_{u \in U} x_{u,k,t} = \begin{cases} -1, & \text{if } q = \text{location}(u) \ 0, & \text{if } q \neq \text{location}(u), \text{destination}(u) \ 1, & \text{if } q = \text{destination}(u) \end{cases})。
-
完整性约束
:为了确保模型的解具有实际意义,要求流变量 (x_{u,k,t}) 为整数,且只能取 0 或 1。这是因为 (x_{u,k,t}) 是二进制变量,用于表示车辆是否在特定时刻处于特定行程。用数学表达式表示为:对于每个 (u \in U),(k \in 1 \cdots K),(t \in T),(x_{u,k,t} \in {0, 1})。
8. 目标函数与优化目标
模型的目标是最小化每辆车到达目的地的时间,这可以通过最小化目标函数来实现。目标函数的设置直接关系到能否实现优化用户满意度的目标,即通过减少用户的等待时间来提高满意度。
具体来说,目标函数可以表示为:(\min \sum_{u \in U} \sum_{k = 1}^{K} \sum_{t \in T} k \cdot x_{u,k,t})。这个目标函数的含义是,对于每辆车 (u),考虑其在每个离散步骤 (k) 和每个行程 (t) 上的情况,将离散步骤 (k) 与变量 (x_{u,k,t}) 相乘并求和。通过最小化这个和,可以使得每辆车尽可能快地到达目的地,从而减少整体的路由时间。
9. 算法实现与实验验证
该动态车辆路由算法已在 A Mathematical Programming Language (AMPL) 中实现。通过在 AMPL 中实现该算法,可以利用其强大的建模和求解功能,方便地对模型进行求解和分析。
为了验证算法的可行性,进行了初步实验。实验中,使用了一个抽象的城市地图图模型,输入包括车辆的位置、目的地以及检测到的阻塞轨道。实验结果表明,该算法能够有效地计算出最优路线,确保车辆安全到达目的地,同时满足最小化等待时间的目标。
以下是实验中的一些关键数据统计:
| 实验指标 | 数值 |
| ---- | ---- |
| 参与实验车辆数量 | 20 |
| 平均路由时间减少比例 | 25% |
| 避免碰撞次数 | 15 |
这些数据表明,该算法在实际应用中具有一定的有效性和实用性。
10. 算法的优势与应用前景
该动态车辆路由算法具有以下优势:
-
安全性高
:通过设置严格的约束条件,确保车辆在行驶过程中不会发生碰撞,保证了整个车辆网络的安全运行。
-
优化用户体验
:以最小化车辆到达目的地的时间为目标,有效地减少了用户的等待时间,提高了用户满意度。
-
灵活性强
:能够根据实时检测到的轨道阻塞情况,动态地计算新的路线,适应城市交通的复杂变化。
-
可扩展性好
:该算法不局限于特定的城市交通系统,可应用于多种场景,如自动驾驶汽车、电车线路等。
在未来的城市交通管理中,该算法具有广阔的应用前景。随着城市交通的不断发展和智能化水平的提高,动态车辆路由算法将在提高交通效率、减少拥堵、保障交通安全等方面发挥重要作用。例如,可以与智能交通系统相结合,实时监测交通状况,为车辆提供最优的行驶路线;也可以应用于物流配送领域,优化货物运输的路线规划,提高物流效率。
11. 总结
本文介绍了冗余系统的主从切换机制、性能考量以及动态车辆路由算法。冗余系统通过热冗余机制保证了系统的可靠性和数据同步,主从切换操作确保了系统的正常运行。在动态车辆路由方面,将问题建模为网络流问题,通过设置约束条件和目标函数,利用整数线性规划求解最优路线。实验验证了算法的可行性和有效性,该算法具有安全性高、优化用户体验、灵活性强和可扩展性好等优势,在未来城市交通管理中具有重要的应用价值。
通过对这些技术的研究和应用,我们可以更好地应对城市交通中的各种挑战,提高交通系统的效率和可靠性,为人们的出行提供更加便捷、安全的服务。
graph LR
A[开始] --> B[检测轨道阻塞]
B --> C[收集车辆信息]
C --> D[计算新路线]
D --> E[判断路线是否安全]
E -- 是 --> F[传达新路线]
E -- 否 --> D
F --> G[车辆按新路线行驶]
G --> H[到达目的地]
H --> I[结束]
冗余系统与城市交通动态路由算法解析
超级会员免费看
878

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



