1. 引言
随着无线技术的发展,华为将5G技术突破后应用到我们生活的各个方面,由于5G的低时延的优秀特性成为车联网通信的主要网络之一,通过实时的车与车之间位置、速度、方向和路况信息的共享,提高了交通效率。
通常情况下,V2V的资源分配通过基站的协调,即集中式的资源分配,由车向基站申请通信资源,在收到基站的资源分配消息之后才可以进行V2V通信,这种方式的优点在于,由于资源分配由基站决定,一定程度上避免了资源的碰撞,不过集中式资源分配只能在基站覆盖的区域内实行,随着智能设备的发展,用户通信量增加,基站覆盖范围有限,在通讯过程中车辆的高速移动性会频繁加入或者离开基站范围,导致通信会出现不稳定,而分布式V2V通信由单个车辆自主执行,使得在V2V通信中实现多对多广播成为一种可能。
在分布式V2V通信中,协作感知消息(CAM) [1] 时车辆之间周期性交换信息的而一种基本信息,为了支持CAM通信车辆采用半静态调度SPS算法分配无线资源,即允许车辆自主选择无线资源并通过PC5接口进行直连通信,车辆首先通过感知无线资源的质量,然后从可用资源中随机选择一个CAM资源进行预留,但是在车辆的高速移动和高业务负载的网络拥挤的动态环境下容易发生传输碰撞,如相互靠近的车辆很可能会选择相同的资源,并在随后的一系列传输中相互干扰,导致这些车辆发送的CAM重复解码 [2]。特别是在拥塞场景下,对SPS算法提出了更高的挑战,影响可靠通信,因此需要配合使用一定的碰撞检测机制。
所以我们的目标是生成一种分布式资源分配策略来克服SPS感知算法存在的碰撞问题,近年来,在深度学习中,通过训练出有效的函数对图像、文本的上下文特征进行有效的信息融合和特征提取,使得强化学习可以通过深度学习生成逼近策略或价值函数,从而应用于高维状态和动作空间。深度强化学习(DRL)的研究主要集中在单智能体环境下,即单个智能体解决静态任务 [3]。然而,许多问题,例如自动驾驶车辆、交通灯控制、任务和资源分配等,涉及多个代理。在多智能体环境中,考虑到环境中其他智能体的存在,要求智能体仅根据其局部观察执行动作,以最大化其个体报酬或总体目标 [4] [5] [6]。因此,V2X通信中的分布式资源分配也可以在多代理设置中建模。选择频率和时间资源进行传输的车辆应考虑其他车辆的存在,以最大化其数据包接收率或设计奖励函数。多智能体强化学习已被应用于各种问题,以提供分布式解决方案,即基于局部信息的决策。随着车辆数量的增加,V2V之间连接的组合数量也会增加,因此该方法在计算上无法扩展 [7]。我们将V2V连接问题描述为一个多智能体问题,将每辆车的V2V决策分组为单个决策,以克服这一问题。此外,我们只训练车辆共享的一个模型,这样车辆也可以学习其他车辆的经验。
2. 研究现状
通常情况下,V2V的资源分配通过基站的协调,即集中式的资源分配,由车向基站申请通信资源,在收到基站的资源分配消息之后才可以进行V2V通信,这种方式的优点在于,由于资源分配由基站决定,一定程度上避免了资源的碰撞,不过集中式资源分配只能在基站覆盖的区域内实行,随着智能设备的发展,用户通信量增加,用户等待资源池分配的时间较长,影响用户体验并带来较高时延,且在通讯过程中车辆的高速移动性会频繁加入或者离开基站范围,导致通信会出现不稳定,随着车辆用户的提高,车载智能设备的增多,导致服务请求越来越多,导致基于基站分配网络资源的算法复杂度越来越高,所以以车为移动基站,将原始基站的任务分布在一个个车辆上,既减缓了基站压力,也提升了数据服务效率,所以分布式资源分配方法应运而生。
在分布式V2V通信中,基站不需要获取全局信息进行集中控制,协作感知消息(CAM)时车辆之间周期性交换信息的而一种基本信息,为了支持CAM通信车辆采用半静态调度SPS算法分配无线资源,即允许车辆自主选择无线资源并通过网络接口进行直接通信,当多辆车处于同一环境下,感知其他车辆使用的资源,并确定可用的传输资源,由于空间–局部感知结果相似,附近的车辆很可能选择相同的资源进行传输,从而导致传输碰撞,使得数据传输的可靠性降低,所以需要对于分布式数据传输需要配合响应的数据碰撞检测机制。
针对上述数据可靠性问题,不少学者通过改进SPS算法的资源选择方式来减小碰撞和提高包接收率,文献 [8] 提出基于SPS的资源交替选择(Resource Alternative Selection, RAS)算法,采用两个预留资源进行交替分配,能够缓解连续碰撞,文献 [9] 提出使用Lookahead的半持续调度(Lookahead Based Semi Persistent Scheduling, Lookahead-SPS)算法,在广播消息的控制字段增加车辆的SPS参数信息,减少由于缺少邻居预留信息而产生的碰撞,但需要额外的信令开销。文献 [10] 通过强化学习来解决车联网中分布式资源分配和功率控制问题,极大提高了数据传输的可靠性和提升车联网数据服务的传输效率。而在上述方法中,资源的预留和重用是固定的,不能有效反映信道质量动态变化的影响。
而现有的分布式资源管理方法是感知型SPS算法,针对SPS算法中存在的碰撞问题,文献 [11] 通过多种性能网络混合方法,来控制SPS算法的发包周期,即针对不同场景下的不同数据采用不同的网络进行发送,如数据爆发情况下5G网络为数据传输提供快速、可靠的传输通道,极大保证了数据传输质量,减少了数据碰撞。文献 [12] 使用计数的方法对资源池中的数据进行标号,如果两辆车选择广播的车辆具有系统的标号数字,则强制改变一方的标号,用以接解决标号相同数据可能发生的碰撞问题。
还有研究者在调度中考虑网络环境对通信干扰的影响,文献 [13] 通过对同方向和逆方向车辆进行区分,仅仅同向车辆数据进行数据传输,配合使用SPS算法,极大减少了数据碰撞的概率,增加了数据服务的可靠性。文献 [14] 利用深度强化学习算法学习周围环境实时状态,构造深度神经网络拟合信道状态,提出车联网网络资源优化算法来提升数据的接收率。
近年来,多智能体深度强化学习被用于各种资源分配问题,比如频谱资源分配问题等,所以可以考虑将多智能体强化学习应用到车联网的分布式网络资源分配问题上,首先,分布式任务中存在的每辆车的终端设备可以作为一个个智能体,通过与环境交互来获得调整数据分发策略,从而使得车辆做出下一步收发任务,对于SPS算法中的碰撞问题,可以通过多智能体深度强化学习的训练过程不断生成合理的策略函数,从而减小数据的碰撞问题,而且可以对不同的环境生成不同的数据传输策略,适合应用于环境多变的V2V数据传输任务。
所以本文利用强化学习框架,基于竞争网络的深度学习算法,研究多智能体在无基站情况下生成合理的资源分配方案,要求每个智能体仅根据其局部观察执行动作,以最大化其个体报酬或总体目标。因此,V2X通信中的分布式资源分配也可以在多代理设置中建模。选择频率和时间资源进行传输的车辆应考虑其他车辆的存在,以最大化其数据包接收率或设计奖励函数。
3. 系统模型和问题描述
3.1. 系统模型
在本章,对所提问题进行定义,在车联网中,车辆需要和周围环境中多个车辆进行状态信息的周期性交换,,车辆定期生成传输合作感知信息(CAMs),用于对周围车辆进行广播。其中每辆车的CAMs信息中包含自身的邻居表和其他信息,如位置信息、身份信息、速度大小、方向以及加速度等,使得接收到该CAMs信息接收器根据解码信息,做出合理的计算判断出合适的反应,从而提高通信效率。
首先我们定义车辆集合用
,车辆的处于一直运动的状态,且每辆车都有一个半双工的收发器,半双工是指设备在请求信息的同时无法发送信息,反之亦然。本章为验证分布式算法在解决信息碰撞方面的优越性,故而本次建模不设置基站,即所有车辆都不与基站通信。本章核心任务为分布式资源的调度,定义所有车辆可从可用资源池
选择任一资源进行广播或者请求。
对于资源的调配和通信,此次模型设计一个基于时间分配资源的系统,即所有车辆在t时刻同时对可用资源K进行调度,同时需要每辆车都试图最大化解码其包的邻居数量,所以设计了一种可靠性评价标准,通过包接受比例(PRR) [15] 来表示,包接受比例可定义为t时刻车辆i发送的CAMs包被成功接收的次数占总邻居数N的比例。
在模型中无服务的车辆周期性发送CAM数据包,周围有服务请求的车辆对广播数据进行接收解码,所以可以对资源的选择对PRR进行建模,每辆车i在t时刻对资源k的选择表示为动作
,所有车在t时刻选择的动作可表示为
。
对于问题的表述和奖励的设计,我们假设了一个只反映路径损失的简化信道模型,但忽略了快慢衰落,干扰建模仅限于来自其他车辆的传输 [16]。而且如果多辆车辆选择发送同一种资源,则接收器只选择信噪比最高的车辆进行解码。
在以上基础上,通过计算
表示每辆车i在t时刻所发送的数据包被解码数占其邻居的比例,公式如下:
(1)
其中N表示在t时刻车辆i的相邻车辆数目,
是车辆i的数据包在车辆
处的信干噪比(SINR),公式如下:
(2)
P函数是基于固定的调制编码方案(MCS)计算给定SINR下的误块率。如果P等于或小于一个介于0和1之间的随机数,则数据包将被成功解码。P是所有车辆固定的发射功率,
是加性高斯白噪声的功率,N是由t时刻的动作决定的干扰数据包集合,
和
分别是发送者i和接收者j之间以及发送者k和接收者j之间的信道增益。
3.2. 问题定义
车辆的目标是通过PRR来最大化收到CAM信息的邻居数量。根据PRR的定义,我们制定了一个优化问题来选择策略
,该策略将车辆的动作设定为
使得PRR最大化。
(3)
对于非拥堵情况,如果所有车辆都选择单独的资源,则式(3)很容易满足。然而,在拥堵的情况下,也就是说,必须使用一个策略来动态调整行动,因为车辆的通道收益和邻居的数量因车辆的流动性而不同。最大化所有车辆的平均PRR的策略称为最优策略
。
对于分布式场景,获取最优策略
具有挑战性,因为没有中央调度器可以考虑到每个车辆的通道增益和彼此相对的位置。在集中式解决方案中,基站协调车辆传输,采用资源空间复用,保持通信可靠,即高PRR,具体来说,当车辆之间的距离大于最小重用距离时,基站将相同的资源分配给车辆 [17]。但是,我们考虑车辆位于基站覆盖之外的情况。因此,每辆车都只根据本地观测自主选择行动。
由于问题的动态多维性质,我们将其描述为一个多智能体深度强化学习问题,这样远的车辆会被激励选择相同的资源,而近的车辆使用不同的资源。简单地说,我们研究了以分布式方式分布式调度的概念去最大化总体包接收比。
4. 算法框架
强化学习(Reinforcement Learning, RL) [18],是人工智能领域中一类特定的机器学习问题。RL从统计学、控制理论和心理学等多学科交叉发展而来。深度学习(Deep Learning, DL)作为机器学习研究中的重要领域,近年来随着硬件平台计算能力的长足发展,在图像、自然语言、语音等诸多应用领域取得了瞩目的成绩 [18]。自然而然,人们同样会期望RL能够借助DL来解决以往难以处理的问题,例如直接读取像素来玩视频游戏等。谷歌Deepmind于2015年发表于Nature的文章使用深度强化学习首次实现了在Atari游戏中达到与人类同等甚至更高的水平,向世人展现了DRL的巨大潜力。
本小节主要侧重于强化学习中的多智能体领域,介绍多智能体强化学习的基本建模框架及算法。
4.1. D2DQN
在本小节中,我们提出对偶式分布式多智能体深度强化学习资源分配算法(Dueling Double DQN, D2DQN)。本文的创新之处在于用独特的状态表示来处理多智能体学习系统中的非平稳性(Non-Stationarity),从而实现分布式资源分配。即让每辆车从自己的视角来观察道路上其他车辆的位置,并创建基于视图的位置分布向量。视场常识通过基于视图的位置分布的观测而产生,车辆可以从自己的观测推断其他车辆的观测。更具体地说,车辆A和C是距离较近的两辆车,车辆A可以从自己的观测中推断出C的观测,从而预测到车辆C将会选择哪些资源选择,从而,车辆A可以为传输CAM合理分配资源。目标的合作性指的是车辆需要合作进行资源分配,使第i辆车目标函数值最大化,集中训练使车辆能够根据常识制定完全分散的策略 [19]。在MADRL系统 [20] 多采用集中训练,分散执行的框架。在集中训练部分,通过访问车辆的行动来确定每个代理的奖励。训练部分完成后,每个车辆作为代理利用训练过的策略只需根据本地观察做出决策。集中式训练使DQN的参数与所有智能体共享,有利于实现参数共享。因为每个代理具有同质性 [21],我们设置代理间允许共享参数,包括共享相同的奖励效用、状态和动作空间。
为了更好地实现资源配置,我们对于参数共享的算法做了进一步的改进,来实现稳定学习和改进策略。我们采用Dueling Double DRQN,即将动作值函数分为状态值函数和优势函数并采用长短期记忆方法的Double DQN的增强版本,旨在解决解决文献中所提Double DQN针对本模型收敛慢、适配性(效果)差等问题。主要思想大致可以描述为,当前车辆移动过程中,智能体左右移动对车辆并没有影响,说明动作对Q值没有影响,但是状态对Q值很有影响,Dueling Double DQN中的对偶网络思想符合本次建模的场景的设定,状态和动作分别用来训练,增强网络参数的有效性和加速模型的收敛 [22]。在double DQN中利用目标网络计算下一个动作的Q值,即
计算损失,并与评估网络的参数定期更新。此外,我们存储每个代理的经验,即
存储在经验重放记忆用于训练。通过在训练过程中对经验回放
进行随机采样,这样也使得数据分布变化平滑,缩短了经验回放的大小,并保持一个FIFO缓冲区,其大小与代理的数量成比例,以避免非平稳性,而Dueling Double DRQN与Double DQN输入一样,均为状态信息,但是输出却有所不同。Dueling DQN算法的输出包括两个分支,分别是该状态的状态价值V (标量)和每个动作的优势值A (与动作空间同维度的向量)。利用卷积网络提取特征获取特征向量,输出时会经过两个全连接层分支,分别对应状态价值和优势值,最后将状态价值和优势值相加即可得到每个动作的动作价值 [23]。
4.2. 状态和奖励设计
作为Dueling-double DRQN深度神经网络结构的一部分,我们使用长期短记忆(LSTM)网络作为第一层,根据位置分布预测车辆的移动模式。LSTM层维持一个内部状态,并随着时间的推移将观测结果结合起来。我们近似
值与递归神经网络,其中
是前一步骤中代理的隐藏状态。隐藏状态
,其中L为观察次数。LSTM网络之后是全连接的前馈网络层,用于计算每个动作的值。虽然我们只训练一个DQN,但代理表现仍然不同,因为每个代理都根据不同的观察而演化出自己的隐藏状态,这使得代理尽管共享相同的DQN也能表现不同。之后对状态和动作空间进行设计 [24]。
1) 状态和动作空间
车辆i的状态向量
由代理i在时隙t采取的先前动作组成,并且该向量表示从车辆
的角度来看其他车辆的位置分布,即函数
的输出。
基于视图的位置分布(View-Based Positional Distribution, VPD)函数
利用时隙t时代理i的邻居表
、基于视图的观察向量的粒度的整数
和指示代理i的观察半径的整数
来获取到其他车辆的位置。当前邻居表被附带到CAM消息中,因为每辆车都共享它们的位置信息。
在这项工作中,代理车辆使用所有可用的传输频率快,因此1个时隙和1个子信道代表一个资源块。动作空间变成了
。
2) 奖励设计
为进一步分析所提出的方法在拥塞和非拥塞情况下的性能。每辆车被鼓励选择不同的资源,但是当拥挤的情况,远处的车辆被鼓励使用相同的资源。每个代理的奖励计算如下:
(4)
其中向量c是相同资源上的干扰的代理,即
,
、
是相撞车辆的总数。在时隙t的总回报的平均值被加到单个车辆的回报上,以加强合作行为
。
我们不需要额外的反馈信道来通知发送的分组是否被成功解码以计算回报。我们仅基于车辆的位置分布和资源分配来对模型进行设计:

之后我们对double DQN算法结构进行设计,具体步骤和算法如下:
Step 1:
输入层:DRQN的输入S是一个大小为|A| + B的向量,其中|A|是动作空间的大小,表示可用资源(子帧)的数量。每辆车都添加在前一个时间戳A中采取的动作作为状态的一部分。B是每一个代理划分其观测视图的间隔数,它描述了观测的粒度,并对所有车辆的这个参数固定。
Step 2:
隐藏层:第一层为LSTM层。多智能体学习环境打破了MDP假设,因为智能体的下一个观测状态不仅由智能体本身决定,还由其他车辆采取的行动决定。在我们的工作中,我们不观察其他车辆的通道选择,因为我们使用车辆的位置分布。然而,部分观测是基于其他车辆未知的移动模式,由其他车辆的位置分布引起的。文献 [25] [26] [27] 的几项研究表明,LSTM网络可以成功地用于移动预测。LSTM层保持内部状态,并随着时间的推移组合观测值。LSTM层与全连接前馈网络层相连。
Step 3:
输出层:DRQN的输出是一个向量,其大小|A|表示对于给定的状态输入,每个动作的值。如果策略是贪婪的,车辆选择价值最高的动作。
Step 4:
Double DQN如果车辆选择和评估与同一网络的行动,由于过分估计使得算法的性能下降。因此,采用双Q学习实现动作选择与评价的解耦。

在Double DQN网络中,输入为该时刻智能体的状态(用向量表示),使用LSTM网作为基本单元时,利用环境状态转移模型进行采样,使用连续四个时刻的状态序列作为网络的输入
。
每个车辆作为一个智能体,不断重复交互、做出动作、调整策略,将会设置一个在记忆库用于存储每一组数据的执行情况,可以表示为元组
,其中s、
分别表示智能体车辆当前所处环境状态和执行动作之后所处状态,
、
表示车辆周围任意车辆采取的动作,
为当前的奖励函数值,训练过程中网络参数作为不断变化的策略函数,根据当前策略对智能体的做出动作,再根据损失函数loss计算出的损失值进行反馈,即梯度下降法对网络参数进行更新,不断重复以上步骤,从而达到不断完善策略函数(网络参数)的目的,从而使得达到最终奖赏值最大化。
由于多智能体的状态特征量是具有连续、多个维度等特性,所以利用深度学习网络中的非线性激活函数比如ReLU来不断生成目标函数
,可以解决连续空间中的维度灾难问题。
与Double DQN和DQN网络不同,Dueling Double DQN网络将网络分成了两部分,价值函数
和优势函数
,网络的最终结果包含两部分:
(5)
其中
为是深度学习网络中的权重参数,属于隐藏层参数,
、
分别是价值函数和优势函数的独立参数。
在模型中,每个车辆作为一个智能体,智能体的状态由n个向量组成,因此神经网络的输入是以那个向量作为输入,再输出每个向量所对应的奖励即价值,中间层称为隐含层,将长短期网络单元作为隐含层的基本神经元,并对网络的输入层进行改进,如此使得最终获得策略更优且使得能加快网络收敛。
5. 仿真结果
我们首先在一个轻量级测试模拟器中评估所提出的方法的性能,以更快地分析各种实验。测试模拟器中设计一个简单的通道模型,这样可以确保如果在接收器的范围内有多个车辆使用同一资源块,接收器解码较近的车辆的数据包。但是,在现实的实时测试环境中的需要综合考虑快速和缓慢衰落、预编码和接收滤波方法等问题。表1总结了在轻量级测试模拟器下算法对于每一个代理车辆的训练和网络参数设置。在表2从车辆数量和可用资源的角度评估Dueling Double DQN算法在不同配置、不同场景中在的性能。
5.1. 训练参数设置
将每一个车辆作为一个代理放入网络中训练时候,训练环境中的参数如模拟总时长、激活函数、步长、衰退
等设置如表1所示:
5.2. 训练效果
我们从图1所示的一个简单的例子开始评估,并与DIRAL算法进行对比,DIRAL采用传统Double DQN算法,算法步骤如算法1所示,在本次场景中,每个时间步有N = 4辆车和K = 3个资源。每辆车都以随机的速度向同一方向行驶。我们使用了式4中的奖励函数,并对场景1和2进行了轻微修改。我们给出了中立的奖励,最远的车辆使用相同的资源,以更好的观察所需的行为。所以,在每个时间步中,对于场景1,系统的最大奖励是2。每一episode的长度是25个单位时间,我们在每一episode对模型进行重复迭代训练,为了便于观察Dueling Double DQN在本次建模情况下的效果,本文仅仅每100个episode的奖励值进行展示,防止两种算法波动值彼此覆盖影响对比效果。图1说明了这种方法的收敛性,相较于DIRAL算法,本文所提算法可以更早收敛。说明所提出的方法在本次仿真场景下达到了最优策略。

Figure 1. 4 vehicles and 3 resource scenarios
图1. 4车辆、3资源场景

Figure 2. 6 vehicles and 8 resource scenarios
图2. 6车辆、8资源场景

Figure 3. 8 vehicles and 10 resource scenarios
图3. 8车辆、10资源场景
对于其他场景,我们也做了相同的实验测试,将N和K分别设置为6、8,如图2所示,与DIRAL对比来说,本文采用dueling对偶式网络结构对于网络收敛的效果更好,结合LSTM体系结构的Dueling Double DQN能够找到较好的q值估计值。为了证明了本文所提算法适用于大规模场景下,进行了如图3场景下的实验,设置车辆数和资源数分别设置为10、10,从图中可以看出,在更大规模场景下,本文所提算法也可更快收敛至最优策略。我们又将所有训练策略应用于网络模拟器,并将所提算法与DIRAL、SPS进行比较,SPS算法由感知、选择和重选组成。对于选择,期望RSSI低于阈值的资源形成资源池,并且从共享池中随机选择资源。如果资源池的大小小于所有共享资源的20%,则阈值增加3 dB,并重复选择过程。在选择过程之后,车辆利用由重选计数器设置的相同资源进行后续的~[5,15]传输。在每次传输之后,重选计数器减1,并且当它达到零时,车辆以0.8的概率继续使用相同的资源或者选择新的资源。对于场景一如图4所示,描绘了作为发射机和接收机之间距离的函数的PRR,与SPS和DIRAL算法相比,该系统为附近车辆实现了非常高的PRR值。从而证明本文所提在收敛性和包接收率上都有较好表现。
6. 结论
在这项工作中,我们提出了一种新的算法,基于Dueling Double DQN的分布式资源分配。该算法针对由于车辆的移动性而自然上升的拥堵问题提出了一种新颖的解决方案。我们展示了我们的建议将拥挤场景中的PRR提高了多达20%。该算法使得V2V能够更可靠地用于基站非覆盖场景。通过在一个简单的基于Python的仿真器中进行训练,证明了我们所提算法的优越性。