Page 408 - 《软件学报》2025年第12期
P. 408

李洁 等: 历史交通数据驱动的        VANET  智能路由算法                                            5789



                 20.  end if
                 21. end if
                  3.2.3    算法在线性能分析
                    考虑到第    3.2.2  节提出的策略需要当前车辆在线计算下一跳转发中继, 其算法的实时响应至关重要. 因此, 为
                 了验证该在线中继选择策略的实际可行性, 我们对其计算时间复杂度和空间复杂度进行了如下具体分析.
                    (1) 计算时间复杂度
                                                                                         v A  的转发代价. 由公
                    对于当前车辆      v B , 当其收到待转发数据包时, 其需在候选邻居集合            C B  中计算各邻居节点
                 式  (20) 可知, 该代价函数包含    3  个核心维度: 位置代价     Place A 、链路生存性   Link A  以及后继可转发概率   F A .

                    这里, 对于   Place A , 由公式  (13) 可知, 其最高仅涉及二维空间单点对的欧氏距离计算和余弦相似度计算, 用到
                                                                                                  Link A  和
                 的坐标位置和位置转移概率可直接通过邻居信息表查询得到, 其计算时间复杂度约为                              O(1). 同理, 对于
                 F A , 如公式  (18) 和公式  (19) 所示, 其仅涉及简单的四则运算, 所以其计算复杂度亦为            O(1). 因此, 对于当前车辆     v B
                 来说, 每个邻居    v A  的转发代价计算复杂度约为       O(1).
                    然而, 由公式    (13) 可知, 当前车辆  v B  的候选邻居集合   C B  并不一定等于其传输范围内的邻居集合            VR . 其需按
                                                                                                 t
                                                                                                 B
                                  t                                                                t  , 则
                 照相应约束条件从       VR  中按优筛选候选邻居. 若存在任一邻居当前位于最优的下一路径上, 即                        ∃v A ∈ VG
                                  B                                                                best
                 C B = VG t  , 我们仅需计算在  VG t   中各邻居节点的转发代价即可. 否则, 我们需要根据各邻居到下一路径的位置
                       best               best
                 转移概率值    p A  进行筛选. 若存在   p A > 0, 此时  C B = {v A |p A > 0}; 否则, 我们才需计算所有邻居的转发代价. 因此, 在
                 本文提出的基于      Markov  预测的在线   V2V  传输机制中, 车辆在选择下一中继节点时, 对比的邻居节点数量要小于
                                         |C B | ⩽ |VR |. 因此, 本文提出的在线  V2V
                                                 t
                 等于传输半径内邻居的数量, 即                 B                      转发策略的计算复杂度为         O(|C B |).
                    (2) 计算空间复杂度
                    对于当前车辆      v B , 在计算邻居的转发代价前需要查询邻居表以获取必要信息. 传统的基于位置的路由协议中,
                 车辆通过周期性地广播        HELLO  消息来共享自身信息, 并建立邻居表以维护单跳邻居的信息. 该表通常包括车辆
                 ID、位置   position  以及最近一次接收到信号的时间戳         time. 本文对邻居表的格式进行了修改, 除以上基本信息外,
                                                                t                    P neigh  (下阶段前往当前所
                 新增了车辆的当前速度        u、行驶方向角     θ、邻居节点数量      |VR |, 以及位置转移概率向量
                                                                ID
                 在网格或与当前网格直接/对角线相邻的八邻域网格的概率) 等扩展信息, 以满足下一中继选择的要求.
                    修改后的邻居表结构如图          7  所示, 每个邻居条目占用      32  个字节, 邻居条目中各字段的大小参考           BSM  报文的
                 一些格式设置和      SAE J2735  标准  [38,39] . 其中, 新增的当前速度  u、行驶方向角   字段分别占用     2  字节. 考虑到面向
                                                                             θ
                 的应用场景以及邻居数量对通信质量的影响, 设邻居节点数量字段占用                       1  个字节. 由于  P neigh  需要存放到当前网格
                 和八领域网格的转移概率, 其需维护           9  个概率值, 每个概率值占用       1  个字节用  0–100  的整型数据表示, 共占用     9  个
                 字节. 由于扩展信息仅占用        14  字节, 符合  HELLO  包的扩展限制   [26] , 可以直接通过  HELLO  包完成信息的获取.

                                            基本信息                            扩展信息
                              0      3                   13     17  19  21 22               31 (bytes)
                         t       ID          position       time  u   θ  VR ID t  P neigh
                       |VR |
                        个
                        邻
                        居                                    …
                        条
                        目
                                                       图 7 邻居表

                    由算法   2  和上述计算时间复杂度分析可知, 当前车辆在计算下一转发中继时仅需通过对邻居表中邻居信息的
                 查找计算来选择最优转发中继, 并没有使用额外的数据结构. 因此, 在内存空间的占用上额外空间的占用约为                                O(1),
                 总空间的占用主要受输入的邻居表大小的影响. 考虑到算法最多需要查询其传输半径内所有邻居的相关信息完成
                                          |VR | 个邻居条目信息. 因此, 对于每个车辆节点来说, 执行在线              V2V  算法时其计
                                            t
                 中继的计算, 邻居表最多需维护            B
                                                        t
                 算空间复杂度主要受邻居表的大小影响为              O(32|VR |).
                                                        B
   403   404   405   406   407   408   409   410   411   412   413