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

5788                                                      软件学报  2025  年第  36  卷第  12  期



                                                   F A = κ  n A  +(1−κ)  m A                         (19)
                                                        N mean    N mean
                 其中,  n A  为  v A  的邻居数量;   m A  为单位时间后  v A  的邻居车辆中比  v A  更接近目的地的车辆数量;  N mean  为  VANET  中
                 车辆的平均邻居数量;       n A /N mean  表示车辆  v A  周围的车辆密度,   m A /N mean  表示  v A  陷入路由空洞的可能性, 其值越大,
                 则可能性越小.     κ 为权重因子且    0 < κ < 1.
                  3.2.2    中继车辆选择策略
                    基于以上因素考虑, 本文在现有贪婪转发策略的基础上进行优化, 引入车辆的位置代价、车辆之间链路生存
                 性和路由空洞等参考因素, 设计了如公式             (20) 所示的转发代价    Cost A .

                                                                  1        1
                                             Cost A = ω 1 × Place +ω 2 ×  +ω 3 ×                     (20)
                                                          A
                                                                 Link A   F A
                 其中,   Place A  表示邻居车辆  v A  基于位置的代价;   Link A  表示  v A  与  v B  之间通信链路的生存性;  F A  表示  v A  后继可转发
                 的概率;  ω 1 、 ω 2 、 ω 3  是权重因子且  ω 1 +ω 2 +ω 3 = 1.
                    基于  Markov  预测的在线   V2V  传输机制的具体过程如算法         2  所示. 首先, 如果目的地在当前车辆        v B  的传输半
                 径内, 则直接将数据包传递给目的地; 否则, 在步骤             4–20  中, 通过基于  Markov  预测的在线  V2V  传输机制生成下一
                 中继车辆进行数据包传递. 步骤          5–7  中, 如果当前车辆   v B  的邻居车辆在下一路径上, 对于这些邻居根据公式              (20)
                 选择下一车辆; 步骤      9–16  处理邻居车辆不在下一路径上的情况, 其中, 步骤             11, 12  考虑存在邻居下一时刻可能出
                 现在下一路径上的情况, 对于这些邻居根据公式               (20) 选择下一中继车辆; 而步骤       14, 15  处理邻居车辆都不可能出
                 现在下一路径上的情况, 同样对于这些邻居根据公式                 (20) 选择下一中继车辆. 如果      v B  没有邻居车辆, 则在步骤    19
                 中采取携带转发策略.

                 算法  2. V2V  转发策略.

                 输入: 当前车辆    v B 、下一路径  G  ;
                                         best
                 输出: 下一中继车辆.
                 1. if  dist BD < R then
                 2.  将数据包直接转发给目的地         D;
                 3. else
                 4.  if  ∃v A ∈ VR  then
                             t
                             B
                 5.   if  v A ∈ VG t
                              best
                 6.    根据公式     (20) 选择具有最小   Cost  的中继车辆  ;
                                                            v A
                                                  A
                 7.    转发数据包给车辆        v A ;
                 8.   else
                 9.    查找下一时刻邻居        v A  出现在下一路径  G    上的概率   p A ;
                                                       best
                 10.    if  ∃p A > 0
                 11.     根据公式     (20) 选择具有最小    Cost  的中继车辆  ;
                                                               v A
                                                    A
                 12.     转发数据包给车辆        v A ;
                 13.    else
                 14.     根据公式     (20) 选择具有最小    Cost  的中继车辆  ;
                                                               v A
                                                    A
                 15.     转发数据包给车辆        v A ;
                 16.    end if
                 17.   end if
                 18.  else
                               v B  采用携带转发方式进行传输;
                 19.   当前车辆
   402   403   404   405   406   407   408   409   410   411   412