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

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


                                                                 t                        A 包括相邻网格之
                                                                           t
                    在这里, 将每个网格映射为环境状态, 对于网格, 我们用                G  来表示时刻   的状态; 动作空间
                                                                 i
                 间移动的   8  个方向, 即  A = {北,南,东,西,东北,东南,西北,西南}. Agent 通过不断地学习来获取知识, 得到环境给予
                 的反馈并改进决策, 以适应不断变化的动态环境. 如图                3  所示, 在  t −1 时刻  Agent 采取动作以后, 环境向   Agent 反
                       G  和奖励  , 因此   时刻                  G , 接着                                   t+1  和奖
                                t
                                     t
                              R
                        t
                                                            t
                 馈状态                      Agent 所处的状态为           Agent 根据策略选择动作      A t , 环境将状态  G
                        i                                   i                                      j
                                                   t
                                                                                              t
                 励  R t+1  返回给  Agent, Agent 所处的状态由  G  变成  G t+1 .  R t+1  是  Agent 在执行动作  A t  后从当前网格  G  过渡到下一
                                                                                              i
                                                         j
                                                   i
                 网格  G t+1  所获得的奖励, 如公式   (3) 所示, 如果数据包被成功转发到目的网格           D, 则奖励为   φ, 否则, 奖励为  0.
                      j

                                                         {
                                                           φ,  if reach D y
                                                   t+1
                                                  R t →G t+1 =                                        (3)
                                                   G i     0,  others
                                                      j


                                                            Agent
                                              t    t
                                             G i  R                        A t
                                                      R t +1
                                                          Environment
                                                       t+1
                                                      Gj
                                                    图 3 强化学习原理图

                    在数据采集的过程中每个数据信息的源头不同, 其相应的目的地也不尽相同. 我们设源车辆所处网格作为当
                 前网格, 目的地    RSU  所处网格作为目标网格, 将问题转化为在当前网格和目标网格之间寻求一条最优的网格路
                                                                                    .
                 径. 因此, 我们将原来基于特定目标的二维             Q-table  改为基于任意目标的三维       Q-table Q-table  内存储的  Q  值为
                  (  t   t  )                                       t          t
                 Q G ,D y ,a , 其表示目标网格为   D y  的情况下, t 时刻在当前网格     G  处采取动作   a  所期望得到的奖励; Agent 每执
                    x    z                                          x          z
                                     (  t  t  )          (  t  t  )
                 行一步策略就更新一次        Q G ,D y ,a z   值, 改进后的  Q G ,D y ,a z   值更新方法如下所示:
                                       x
                                                          x

                                  t   t             t   t        t    t        t+1   t+1
                              Q(G ,D y ,a ) ← (1−α)× Q(G ,D y ,a )+α×{R(G ,D y ,a )+maxQ(G ,D y ,a )×γ t }  (4)
                                                                               l
                                                    x
                                                                      z
                                                                 x
                                                        z
                                      z
                                  x
                                                        t
                                             t
                                                                        t+1
                        t
                 其中,  R(G ,D y ,a ) 表示在当前网格  G  处采取动作  a  所获得的奖励;    Q(G ,D y ,a ) 表示  t +1 时刻在状态  G t+1  处采
                                                                              t+1
                             t
                        x    z               x          z               l                          l
                 取动作   a t+1  所期望得到的奖励;   α 是学习率, 它决定了新信息覆盖旧信息的程度; 折扣因子               γ t  用于确定未来奖励的
                 规模.
                    考虑到路径长度及其车辆密度对            VANET  数据包转发效率的影响, 我们将折扣因子             γ t  设计成与车辆密度和网
                 格之间距离相关的动态参数:

                                                   (       )         (       )
                                                                       t
                                                     t
                                            γ t = δ×ρ t G → G  t+1  +(1−δ)×d t G → G  t+1             (5)
                                                     i   j             i   j

                                                                     t+1
                                                  (       )    s max − VG
                                                                      j
                                                    t
                                                ρ t G → G t+1  = 1−                                   (6)
                                                        j
                                                    i
                                                                s max − s min

                                                                    t+1  
                                                (       )       dist G t+1 →D y  
                                                  t
                                                             
                                              d t G → G t+1  = max0,1−  t  j                    (7)
                                                             
                                                  i
                                                      j
                                                             
                                                                   dist
                                                             
                                                                      G t →D y
                                                                      i
                                                     √
                                               t                2           2
                                             dist t →D y  =  (x(i)− x(D y )) +(y(i)−y(D y ))          (8)
                                               G i
                                                                                        t
                 其中,  ρ t (G → G ) 用来衡量网格的密度;    d t (G → G ) 则用来表示距离变化;     s max = max(|VG |), i ∈ {1,...,N} 为   时
                         t
                                                                                                      t
                                                        t+1
                             t+1
                                                    t
                         i   j                      i    j                              i
                                                                              t
                 刻所有网格中最大车辆数,        N  为划分的网格总数;     s min = min(|VG |),i ∈ {1,...,N} 为   时刻网格中最小车辆数;   t
                                                                 t
                                                                 i
                                                                                                  dist t →D y
                                                                                                     G i
                               t                     t+1            t+1
                                                                                                i
                 为当前所在网格      G  与目标网格   D y  的距离;  dist   是下一网格   G   与  D y  之间的距离;  x(i) 表示网格   的横坐标,
                               i                                     j
                                                     G t+1 →D y
                                                      j
                                                                                                      t+1
                                                                                                  t
                 y(i) 表示网格  i 的纵坐标;  δ 为权重因子,   0 < δ < 1. 如果下一网格比当前网格到目标网格的距离更近, 则            d t (G → G )
                                                                                                  i
                                                                                                      j
                 更接近   1. 从公式  (6) 可看出, 当下一网格    G  t+1   的车辆密度更接近最大车辆密度, 且更接近目标网格时, 折现因子
                                                  j                                                    γ t
                 越大.
                    基于  Q-learning  的离线学习路径选择策略的具体过程如算法             1  所示. 其中, 步骤  3  对于可到达目标网格的网
                 格将相应的奖励设置为        φ; 步骤  4–14  对  Q-table 进行迭代更新, 其中步骤   7–11  以  ε 的概率选择一个随机动作, 以
   398   399   400   401   402   403   404   405   406   407   408