Page 401 - 《软件学报》2025年第12期
P. 401
5782 软件学报 2025 年第 36 卷第 12 期
型, 实现了车辆节点间的稳定通信. 陈侃松等人在文献 [26] 中选择路由时利用跨层思想并结合网络节点移动速度
提出链路权值计算方法, 然后依据链路权值选择路由路径. 尽管以上文献考虑了车辆之间通信的可靠性, 但并未考
虑到由于车辆节点分布不均匀可能引起的路由空洞问题.
近年来, 在 VANET 路由领域引入了强化学习方法 (reinforcement learning, RL), 旨在更好地适应动态环境的
变化 [27] . Casas-Velasco 等人 [28] 提出了基于软件定义网络中的 RL 路由解决方案, 该方案考虑了路径状态度量, 以
产生适应动态流量变化的主动、高效和智能路由. 刘静茹等人 [29] 提出一种基于 RL 的地理位置路由协议, 在选
定的下一跳网格中, 选择距离目的地最近的车辆, 当最优下一跳网格中没有邻居车辆时, 选择次优下一跳网格中
的车辆, 从而提高分组投递率, 降低传输时延并减少通信跳数. 文献 [30] 提出了一种基于 RL 的分层协议 (QGrid),
该协议以尽可能少的延迟和跳数来提高消息传递率. 文献 [31] 提出了一种基于协作学习的多接入车辆边缘计
算环境路由方案, 该方案采用基于端到边缘云协作的强化学习算法, 以低通信开销的方式主动寻找路由. 文献 [32]
在 VANET 中提出了一种基于交叉口的路由协议, 通过强化学习和实时监控网络状态的一种改进的贪心策略来
选择路径上的最优中继, 从而提高报文的传输率并降低端到端时延. 尽管这些研究从动态变化的环境中学习路由
策略, 但不仅没有考虑到车辆间通信链路的动态性, 还没有考虑到可能存在路由空洞的问题. 文献 [33] 在 VANET
中提出了一种多跳通信的激励方案. 该方案基于模糊逻辑方法对复杂的动态环境进行估计, 然后基于全分布式
的强化学习方法, 从长远的角度进一步刺激中间节点, 使期望效用最大化. 文献 [34] 提出了一种环境感知自适应
增强路由协议, 将 RL 应用于 VANET 的路径选择, 该协议通过感知车速、可用带宽、信号接收强度等因素, 自
适应调整 Q 表, 从而完成中继车辆的选择, 这一方法有助于解决链路突然中断的问题, 提高通信的可靠性. 虽然
二者考虑了车辆间通信链路的动态性, 但仍没有考虑路由空洞的问题. 然而, 文献 [35] 提出了一种基于强化学习
的机会路由协议, 以降低能耗并提高传输可靠性, 同时也解决了水声传感器网络中路由空洞的问题. 文献 [36] 提
出了一种基于强化学习的机会路由协议, 将 RL 与机会路由相结合以确保数据传输的实时性和能源效率, 为了
在遇到空洞时实现可靠传输设计了空洞恢复机制, 使得报文能够绕过空洞节点继续转发. 尽管这些研究考虑到
路由空洞, 两节点之间通信的可靠性, 并且能够从环境中学习找到最优路由路径, 但并不适用于车载自组织网络.
综上所述, 尽管当前有许多研究专注于解决 VANET 路由问题, 但适用于这一应用场景的路由算法仍然需要
进一步的探索. 在复杂、动态和不确定的交通环境下, 如何实现源到目的地的数据传输, 以达到较低的时延和较高
的包投递率, 依然是一个亟需解决的问题. 因此, 本文提出了 HTD-IR 算法, 该算法从道路和车辆两个方面进行综
合考虑. 在道路层面, 涉及路由路径的选择; 而在车辆层面, 通过选择合适的中继车辆在选定的路径上进行数据包
传输. 这种综合性的方法提高了 VANET 路由的包投递率, 同时减少了时延.
2 系统模型
面向基础设施稀疏、采集到的数据无法通过 V2X 单跳到达可用 RSU 的场景 [37] , VANET 中采集到数据的车
辆可以通过 V2V 多跳路由机制将数据传递至可用 RSU, 再由 RSU 将数据传至服务器. 如后文图 1 所示, 生成数据
的车辆 S ( , 即源节点) 首先搜索离它最近的可用 RSU ( D, 即目的节点), 若 D 位于 S 的通信范围内, S 可直接将数
D D 一旦接收到该数据, 便可通过有线传
D; 否则, 需借助邻居车辆通过多跳路由的方式将数据传输至 .
据传输给
D 之间找寻一条延迟小且数据包投递率高的 V2V 多跳传输路径成为提高
输将数据传至服务器. 因此, 如何在 S 和
数据采集效率的关键.
2.1 网络模型
这里, 本文把 VANET 环境建模为图 E(V,G), 其中, V = {v i |i = 1,2,...,n} 表示 VANET 中车辆节点集合, v i 为第
i 个车辆, G 表示环境地图. 考虑到将车辆刻画为强化学习的状态时, 状态空间会过于庞大, 本文将地图划分为大小
相等的网格, 并将其作为强化学习的状态 [29] . 这样可以减小状态空间, 降低 Q-table 的规模, 从而节省大量的系统资
源和时间. 如图 2 所示, 将整个地图用 G = {G g |g = 1,2,...,N} 表示, 其中 G g =< id, x,y,VG > id 为网格 G g 的标识符,
,
,
t
t
t
y
x 和 分别为网格 G g 的横坐标和纵坐标, VG = {VG |t = 1,2,...,T} VG 为 时刻网格 G g 内车辆的集合.
g g

