车辆边缘计算环境下基于深度强化学习的服务卸载方法
2022-11-07刘国志许小龙强振平王雷光
刘国志,代 飞+,莫 启,许小龙,强振平,王雷光
(1.西南林业大学 大数据与智能工程学院,云南 昆明 650224;2.云南大学 软件学院,云南 昆明 650091;3.南京信息工程大学 计算机与软件学院,江苏 南京 210044)
0 引言
车联网是智能交通系统中的一个新兴概念,旨在通过与物联网(Internet of Things, IoT)集成来提高交通安全性和乘客舒适度,是物联网的一个重要实施方式[1-2]。基于车用无线通信技术——车辆到一切(Vehicle to Everything, V2X),车联网将车辆、路边单元(Road-Side Unit, RSU)和服务提供商连接为一个有机的网络整体,实现了它们之间的全方位通信[3]。在车联网中,智能车辆可以通过V2X通信,具体而言,其可以通过车辆对车辆(Vehicle to Vehicle, V2V)通信与其他车辆共享信息[4],从而通过周围车辆共享的路况信息获得更广阔的视野,大大减少盲点带来的交通事故[4]。同时,部署智能基础设施(如RSU),服务提供商能够获取用户服务需求和道路环境信息,基于这些数据为车载用户提供诸如自动驾驶、路径规划、碰撞预警、车载娱乐等多种服务,从而提高驾驶安全性和旅途舒适性[5-6]。同样,车辆对行人(Vehicle to Pedestria, V2P)通信使车辆和行人能够发出安全警告。有了车联网中的V2X通信,智能车辆就有可能及时调整驾驶状态,避免交通事故[7-8]。
一般地,车辆本地搭载的计算设备计算能力较弱,某些车辆甚至不会搭载计算设备[9]。因此,目前大部分车联网用户会将服务需求卸载到云端进行处理[10],云平台可以提供大量的计算和缓存资源。然而,极大的传输成本和相对较长的延迟可能会降低用户体验,尤其是对延迟敏感的应用。如果某些服务(如碰撞预警)的延迟超过一定限度,则会降低服务质量,甚至发生交通事故[11]。
边缘计算是解决该问题的有效方案之一,其通过在RSU部署边缘服务器,将计算、带宽、存储等资源分布到靠近用户的一侧[12],从而缩短车联网用户和计算资源的距离,降低服务时延[13]。然而,由于边缘服务器所配备的计算、存储、带宽资源往往有限,如果将所有任务卸载到边缘服务器,则容易导致边缘服务器过载,边缘服务器一旦过载,服务时延便会升高,服务质量也会相应降低[14]。因此,某些车联网用户的服务请求仍需卸载到云平台或在本地执行,以保证边缘服务器的效率。如何在满足边缘服务器资源限制的约束下,对车联网用户服务的卸载目的地进行决策,尽可能降低服务时延,是车联网边缘计算中的挑战之一。
“端—边—云”架构下的任务卸载问题可以归约为边缘服务器计算资源和通信资源约束下获得最小平均服务时延的联合优化问题,为此本文引入深度强化学习方法来解决优化问题。本文的主要贡献如下:
(1)提出一种“端—边—云”协同的车联网边缘计算系统模型。该模型由一个中心云服务器、多辆车多个RSU组成,其中每个RSU配备一个边缘服务器。
(2)提出一种基于深度Q网络(Deep Q-Network, DQN)的车联网服务卸载方法(Service Offloading method based on DQN, SODQN),分别定义了DQN的4个要素,即环境、状态、动作和奖励。
(3)采用模拟数据进行对比实验,证明SODQN方法能够有效降低车联网用户的平均服务时延。
1 相关工作
边缘计算中的服务卸载一般按照决策者的数量和决策范围不同分为集中式的任务卸载和分布式的任务卸载两类,本文研究基于集中式的任务卸载问题。HE等[15]同时考虑延迟敏感应用和计算密集型应用,提出一种计算卸载算法,在计算截止日期的约束下使完成的任务数量最大化;LI等[16]考虑服务延时约束下的任务卸载问题,提出一种基于凸优化理论和吉布斯抽样的具有统计服务质量(Quality of Service, QoS)保证的任务卸载算法;GUO等[17]将卸载问题表述为混合整数非线性规划问题,并设计了基于遗传算法和粒子群优化的解决方案,然而进化算法通常是一种通过不断更新当前解来寻找全局最优解的迭代算法,对全局信息的依赖和迭代期间的时间复杂性为该算法显著的缺点;LIU等[18]考虑执行顺序下的任务卸载问题,在计算延迟的约束下采用有向无环图(Directed Acyclic Graph, DAG)找出最优卸载策略来最小化平均服务时延。这些研究仅考虑了车辆和边缘服务器的资源,没有充分利用云服务器丰富的资源,相比之下,本文充分利用了“端—边—云”的计算资源。
近年来,将深度学习(Deep Learning, DL)技术应用于强化学习(Reinforcement Learning, RL)而形成的深度强化学习(Deep Reinforcement Learning, DRL)方法,相比于传统的强化学习方法具有更强的环境感知能力,在诸如电子游戏、参数优化、机器人控制等多个领域得到了广泛研究并取得令人振奋的成果,如何将强化学习应用于车联网环境,提高车联网用户的服务体验,也是当今车联网领域的一大研究方向。一些工作研究了基于强化学习的任务卸载工作。XU等[19]将车联网与数字孪生结合,考虑QoS约束下的服务卸载问题,提出一种基于DRL的服务卸载算法;WANG等[20]提出一种基于强化学习的移动边缘计算中的联合任务卸载和迁移算法,使移动边缘设备收益最大化;ALAM等[21]在移动雾计算环境下提供无缝和可感知延迟的移动服务,并提出基于强化学习的任务卸载机制;XU等[22]提出一种基于强化学习的联合方法,对智能城市的通信和计算资源进行优化配置,然而当优化问题的状态空间和动作空间变成高维时,存储Q值所需的内存空间呈指数型增长,同时更新和搜索最佳卸载决策会产生大量存储和时间开销,基于强化学习求解该问题将变得非常困难。一些其他的研究使用了DRL的任务卸载方法。DAI等[2]提出一种基于深度确定性策略梯度(Deep Deterministic Policy Gradient, DDPG)的联合边缘计算和缓存方案,可以动态地协调边缘服务器的计算资源和缓存资源,最大化系统效用;HU[23]提出一种具有多时间尺度、基于DQN的服务卸载方法,降低了由大行动空间带来的复杂性。这些研究在将边缘计算应用到车联网的过程中,虽然使用了DRL,但仅考虑移动端架构中的任务卸载问题,相比之下,本文考虑了“端—边—云”协同架构中的任务卸载和资源分配问题。
本文从平均服务延迟、“端—边—云”协同、动态环境下的边缘资源分配3个方面研究了虚拟环境下的任务卸载问题。本文工作与上述工作有以下两个不同之处:
(1)本文提出一种“端—边—云”协同的车联网边缘计算系统模型,为动态环境中的任务考虑最合适的边缘云机会。
(2)本文考虑了边缘服务器和云服务器的协同资源分配。
2 系统建模和问题定义
2.1 “端—边—云”协同的车联网边缘计算模型
车联网环境中的“端—边—云”协同边缘计算系统模型如图1所示,该系统分为车联网用户层、边缘层和云服务层3层。
(1)车联网用户层 包括在道路上行驶的所有用户车辆,且每一用户车辆均配备有限的计算资源。用户的服务需求可以运用本地的计算资源,在安装于本地的车载应用内满足。
(2)边缘层 包括分散在道路旁边的边缘计算节点,每个边缘计算节点包括RSU,以及配备在该RSU上的边缘服务器两部分。RSU用于收集用户流量、网络状况等信息,有一定的覆盖范围,该范围将道路分为一个个不重合的道路段,车联网用户层中的用户也因此被分在唯一的道路段中。每一道路段中的用户可以通过无线信道连接到相应的边缘计算节点上。本文假设每个RSU均会配备一个边缘服务器,并在服务器中已经预先安装好了服务提供商提供的各类车载应用,可以满足用户卸载到边缘服务器上的服务需求。同时,用户的服务需求还可卸载到中心云执行,边缘计算节点会将服务需求通过有线信道转发到中心云进行计算。
(3)云服务层 即中心云所在的层,该层包括高性能的计算资源,并同服务提供商直接相连,能够高效、快速地满足用户的服务需求。
将决策模型配置到一台仅用于决策的边缘服务器(称为决策者)ES上,决策者知晓每台边缘服务器的资源使用情况。在该系统中,时间被离散化为不同的时间段,在每个时间段开始时,RSU会收集所属道路段的环境信息(如用户流量、网络状况等)发送给决策者。当决策者做出卸载决策后,用户需求根据决策结果卸载到指定设备,同时决策者会将服务卸载结果发送给中心云,进行汇总和卸载参数优化,中心云再将优化过的参数回传给决策者,从而不断调优服务卸载决策。
2.2 网络通信模型
为了更准确地对车联网边缘计算服务卸载系统中的网络通信建立计算模型,首先定义车联网用户。
定义1车联网用户。车联网用户是一个三元组μi=λi,ρi,δi,其中:i为车联网用户的编号;λi为该车联网用户和对应边缘计算节点之间的最大数据传输速率;ρi为该用户的信号发射功率;δi为该用户和边缘计算节点之间的信道增益。相应地,用U(τ)={μ1,μ2,…,μM(τ)}表示用户集,即车联网边缘计算环境中τ时间段内所有用户的集合。
(1)λi如2.1节所述,本系统中用户和边缘计算节点以无线方式连接。假设用户采用频分复用正交多址接入技术与边缘计算节点相连,进行数据的双向传输,其中每个子信道的带宽为w,且在某一道路段内,各用户与边缘计算节点之间的通信干扰可以忽略不计,则用户μi和对应边缘计算节点之间的最大数据传输速率
(1)
(2)边缘计算节点和云服务器之间传输数据所产生的往返时延 根据图1,本系统中用户和边缘计算节点间采用无线方式连接,边缘服务器和云服务器之间采用有线方式连接。由于云服务器距离边缘计算节点的地理距离较远,边缘计算节点将用户数据转发给云端所产生的时延与云端将服务处理结果返回所产生的时延相近,且该时延与输入数据的数据量无关。因此,边缘计算节点和云服务器之间传输数据所产生的往返时延
(2)
2.3 服务时延计算模型
本系统中,因为用户的服务需求可以在本地执行,可以卸载到边缘服务器执行,亦可卸载到中心云上执行,所以需要考虑3种不同情况下的服务时延。首先定义系统中的服务需求。
定义2服务需求。车联网环境中的服务需求是一个三元组si=di,ri,μi,其中:di为该服务需求所需输入参数的数据量;ri为完成该服务需求所需的计算量;μi为产生该服务需求的用户。相应地,用S(τ)={s1,s2,…,sM(τ)}表示车联网边缘计算环境中τ时间段内所有用户服务需求的集合。
在定义2基础上,详细定义不同情况下满足用户服务需求所需的服务时延,并给出系统平均服务时延的计算公式。
2.3.1 本地执行时用户的服务时延
当用户的服务需求在本地执行时,用户无需将该服务的输入参数通过无线信道上传到边缘服务器,只需通过位于本地的车载应用,利用本地计算资源进行处理即可。此时需要考虑等待本地计算资源空闲时所产生的等待时延和本地车载应用处理服务需求的执行时延。因此,对于用户μi和其产生的服务需求si={di,ri,μi},可以得到该用户在本地使用车载应用处理服务si的执行时延
(3)
式中fi为用户μi所配备的本地计算资源的计算速率。
因此,用户μi的服务需求在本地执行,所产生的服务时延
(4)
2.3.2 卸载到边缘服务器执行时用户的服务时延
当用户的服务需求被卸载到边缘服务器上处理时,需要考虑等待无线信道空闲所产生的等待时延、将服务需求输入参数从用户本地上传至边缘服务器的传输时延、等待边缘服务器剩余计算资源满足算法分配的计算资源时所产生的等待时延、在边缘服务器上处理服务需求的执行时延,以及将处理完成的服务结果返回给用户的回程时延4部分。由于相比输入参数,服务结果的数据量一般较小,回程时延一般忽略不计,本系统也忽略回程时延,则用户μi将服务需求si的输入参数上传至边缘服务器所需的时间
(5)
在边缘服务器上处理服务si的执行时延
(6)
因此,如果用户μi的服务需求被卸载到边缘服务器执行,则产生的服务时延
(7)
2.3.3 卸载到云服务器时用户的服务时延
如图1所示,如果用户的服务需求需要被卸载到云端执行,则该服务的输入参数首先要通过无线信道由用户车辆上传到边缘层,再由相应的边缘计算节点通过有线信道转发给云端进行处理。因为云端配备的云服务器具有较强的计算能力,处理时延相比传输时延可以忽略不计,所以当用户μi将服务si卸载到云端执行时产生的服务时延主要包括等待无线信道空闲的等待时延、将输入参数上传到边缘计算节点的传输时延,以及边缘计算节点和云服务器之间传输数据所产生的往返时延RTT3部分,其中,用户μi将服务需求si的输入参数上传至边缘服务器所需的时间如式(5)所示。
因此,如果用户μi的服务需求被卸载到云服务器执行,则所产生的服务时延
(8)
2.3.4 系统总服务时延
在本系统中,每一个用户的服务需求可被且仅可被卸载到本地、边缘服务器和云端三地中的其中一处执行.使用0-1变量αi和βi表示某个服务si的卸载情况:
(9)
(10)
因此,任意服务si的服务时延
(11)
对于τ时间段内的所有用户,系统总服务时延
(12)
2.4 问题建模
在本系统中,本文将车辆网的服务卸载问题归约为一个优化问题,以在边缘服务器计算和通信资源约束条件下获得最小的平均服务时延,因此对该问题进行如下建模:
(13)
s.t.
(14)
(15)
(16)
∀i≤M(τ),∀τ;
(17)
αi,βi∈{0,1},∀i≤M(τ),∀τ。
(18)
3 基于DQN的车联网服务卸载方法
本文结合DRL算法设计了一种SODQN方法来解决车联网边缘计算环境中的服务卸载问题,SODQN框架如图2所示。
3.1 DQN的4个关键元素
作为人工智能领域的一部分,强化学习通过在智能体和环境交互过程中不断试错和学习得到最大收益的策略。近年来深度学习快速发展,使得计算机学习数据的高维抽象特征表示成为可能[24]。DRL将深度学习和强化学习结合,较好地解决了传统强化学习无法应用于高维度状态空间和动作空间的问题,进一步提高了强化学习求解问题的能力[25-26]。本文结合DQN算法设计了一种SODQN方法,其中DQN的智能体即为决策者ES,DQN有4个关键要素,分别为环境、状态、动作和奖励。
(1)环境
利用DQN算法卸载车联网边缘计算服务时,智能体通过状态、动作、奖励和环境进行交互来学习,其中环境由车辆信息、任务数量、边缘服务器的计算资源和通信资源组成。因此,定义环境
(19)
(2)状态
利用DQN算法卸载车联网边缘计算服务时,状态用于反映车辆环境的状况[2]。以环境中某一时间段内所有车联网用户的服务需求、网络状况,以及边缘服务器的资源情况为系统状态,表示为st(dt,ct,pt,δt),其中:dt为待卸载服务输入的数据量;ct为执行该服务所需的计算量;pt为该用户的信号发射功率;δt为该用户和边缘计算节点之间的信道增益。
(3)动作
动作空间定义为分配给用户的子信道个数和计算资源数,分别用独热(One-Hot)向量(0/1)c和(0/1)b表示。例如,假设最大子信道数和最大计算资源数分别为3和4,(0/1)c(1)=(0,1,0,0),(0/1)b(2)=(0,0,1,0,0)分别表示将1个子信道和2个计算资源分配给当前时间步决策的用户服务需求。因此,动作空间即为两者的笛卡尔积,即
A=(0/1)c×(0/1)b。
(20)
式中×表示笛卡尔积。本文用α(χ)∈A表示动作空间在时间步χ执行的一个动作。
(4)奖励
服务卸载的目的是使所有用户长期的平均服务时延之和最小。本文定义在系统状态st(χ)时执行动作α(χ)所获得的即时奖励r(χ)为:假设st(χ)决定的是用户μi的服务需求卸载,则μi产生的服务需求si将根据动作α(χ)执行的服务卸载,比将si卸载到用户本地执行时能够节约的时间,即
(21)
因为最大化相比于本地执行的节约时间和最小化长期用户平均服务时间在本质上相同,所以用式(21)作为奖励函数。
在本文的系统模型中,假设决策者ES为DQN算法的智能体,智能体通过状态、动作、奖励和环境进行交互。针对DQN的4个关键要素,基于DQN车联网环境下的任务卸载过程如下:当决策者收到车辆的任务请求时,首先基于当前环境状态寻找最优行动,然后将动作返回给车辆,该动作表示该任务是在车辆、边缘服务器或云服务器上执行;行动执行后,决策者将收到该动作得到的奖励;最后,环境进入下一个状态。
3.2 基于DQN的服务卸载方法SODQN
传统的Q学习算法用Q表存储t时刻的状态、动作下获得的Q值Q(st,at),决策者通过遍历Q表,寻找状态St下获得最大奖励的动作。然而,随着状态空间和动作空间的增加,存储Q值所需的内存空间呈指数型增长,同时更新和搜索最佳卸载决策会产生大量的存储和时间开销。为了缓解这一问题,DQN采用神经网络近似估计不同状态动作组合下的Q值,将Q表的更新问题变成一个函数拟合问题。因此,本文设计了一种基于DQN的任务卸载算法,如算法1所示。边缘服务器将道路段中用户的服务需求、网络发射功率、无线信道增益,以及剩余子信道和计算资源等组合为系统状态st输入DQN网络,计算出状态st下所有动作的近似Q值(第6行),并将该状态下的所有Q值和状态st输入算法2(ActionSelection)决策出最优动作at(第7行),根据该动作进行服务卸载(第8行);服务卸载完成后,智能体观测到环境的下一个状态和该动作的奖励rt(第9行),并将经验et=(st,at,rt,st+1)存储到经验池D(第10行);将网络参数θpre和θtar、经验池D,以及当前的状态st输入算法3(DQNNetworkUpdate)更新DQN网络(第11行)。
算法1SODQN算法。
输入:预测网络Qpre、参数θpre、目标网络Qtar、参数θtar、经验池D、当前状态st。
输出:一个动作at。
1: 初始化经验池D的大小为N
2: 使用随机权重初始化Qpre的参数θpre
3: 使用随机权重初始化Qtar的参数θtar,θtar=θpre
4: for episode=1 to M do
5: for t=1 to T do
6: 状态st下所有动作的近似Q值
7: at= ActionSelection(st,Q值)
8: 根据at判断服务为本地执行,或者卸载到边缘服务器,或者卸载到云端
9: 计算奖励rt并观察下一个状态st+1
10: 将经验et=(st,at,rt,st+1)存储到经验池D中
11: θpre,θtar=DQNNetworkUpdate(θpre,θtar,D,st)
12: end for
13:end for
14:output at
下面分别提出SODQN算法中的两个关键步骤——动作选择和DQN网络更新,并给出相应的算法。
3.3 动作选择
在决策过程中,强化学习算法如果在状态st下每次都选择Q值最大的动作,则易导致卸载策略终止于局部最优。因此,在SODQN算法中采用贪婪算法(ε-greedy)进行一定比例的随机探索。具体而言,贪婪算法在每次动作时以概率ε随机选择一个动作,从而避免了每次都选择Q值最大的动作。SODQN算法中的动作选择定义为
(22)
动作选择伪代码如算法2所示,当输入的概率小于ε时,at为在动作空间中随机选择动作(第2~3行),否则选择Q值最大的动作(第4~5行)。
算法2动作选择(ActionSelection)。
输入:当前状态st,Q值。
输出:一个动作at。
1: s=st
2: if概率<ε then
3: at为在动作空间中随机选择动作
4:else
5: at=argmaxatQ(st,at)(选择Q值最大的动作)
6: outputat
3.4 网络更新
为了保证打破数据的相关性和训练的稳定性,DQN引入经验回放机制和双网络机制两种重要的技术。
(1)经验回放机制 为了进行经验回放,DQN将智能体和环境进行交互的经验数据et=(st,at,rt,st+1)存储到经验池D={e1,…,et,…,eN},并在训练时对经验池D中的经验数据进行随机小批量采样,从而解决了数据的相关性及非静态分布问题。
(2)双网络机制 为了保证训练的稳定性并避免Q值估计过高,在训练时引入预测网络和目标网络双网络。其中预测网络Qpre用于估计每个动作的Q值,目标网络Qtar用于评估动作选择的贪婪策略。目标网络与预测网络结构相同,每经过C轮迭代,即将预测网络的参数θpre复制给目标网络的参数θtar。预测网络参数θpre用于估计策略并选择动作,目标网络参数θtar用于估计Q值以衡量动作价值,最终两种网络之间通过交替更新参数实现解耦。因此两个网络参数在一段时间内保持差异性,从而利用当前Q值和目标Q值计算损失,然后用小批量随机梯度下降(Mini-batch Stochastic Gradient Descent, MSGD)反向更新预测网络的参数θpre。DQN的损失函数
Li(θi)=[(yi-Qpre(st,ai;θpre))2]。
(23)
式中yi为由目标网络生成的目标Q值,
(24)
在损失函数的基础上,采用算法3概括DQN网络的更新过程。
算法3中,首先从经验池D中随机小批量抽取minbatch组经验数据组成Dτ(步骤1),然后通过训练Dτ数据更新网络参数,具体步骤如下:
步骤1计算经验数据et=(st,at,rt,st+1)对应的目标Q值(第3行)。
步骤2通过目标Q值和损失函数Li(θi)计算预测网络Qpre的损失值(第4行)。
步骤3采用MSGD最小化预测网络Qpre的损失值,同时反向更新Qpre的参数θpre(第5行)。
步骤4重复上述操作C轮后,复制参数θpre来更新目标网络参数θtar(第6行)。
算法3网络更新(DQNNetworkUpdate)。
输入:预测网络Qpre、参数θpre、目标网络Qtar、参数θtar、经验池D,当前状态st。
输出:θpre,θtar。
1: 从经验池D中随机抽取B条经验数据et=(st,at,rt,st+1),构成小批量训练集为Dτ
2: for et=(st,at,rt,st+1) in Dτdo
3: 计算目标Q值yi
4: 计算损失函数Li(θi)
5: 通过最小化Li(θi)更新预测网络的参数θpre
6: C轮迭代后复制参数θpre来更新目标网络参数θtar
7:end for
8:output θpre, θtar
4 实验与结果分析
4.1 实验平台与实验数据集
本文实验的硬件环境使用英特尔(Intel)十代G6400奔腾2核4线程CPU,所有实验环境均使用Python 3.6和Tensorflow 1.2.0实现。本文采用模拟数据作为实验数据集,通过搭建模拟车联网平台实时生成车载用户数据集,数据集包括超过1亿条的模拟车载用户信息。
4.2 实验参数设置
由于CPU为2核四线程,每个边缘服务器可以并行执行4个任务。每个用户开始时会从5种类型服务中随机产生多种类型服务的服务需求,根据文献[2],设置5种类型服务所需的输入数据为[25,30,40,45,60](单位:MB),服务所需的计算量为[0.5,0.6,0.7,0.8,1.2](单位:Gigacycles),产生各个服务需求的概率分别为[0.2,0.3,0.15,0.15,0.2]。为了评估SODQN方法在不同环境中的性能表现,根据文献[2,29],设置不同车联网环境下每个道路段中网络的总带宽为20,30,40(单位:MHz),而固定每一个子信道所占用的带宽为1 MHz;边缘服务器的计算能力为2.5,5,7.5(单位:Gigacycle/s),而固定每份计算资源的计算能力为0.5 Gigacycle/s。因此,在不同环境中,子信道数可能为20,30,40,计算资源数可能为5,10,15。实验中其余参数的设置如表1所示。
表1 CK度量元
4.3 实验结果
本文选择3种车联网边缘计算环境下的服务卸载方法与SODQN方法进行对比:
(1)全本地卸载(Locally Offloading, LO) 将边缘车联网用户产生的服务需求全部通过配置在本地的车载应用执行。
(2)全云端卸载(Cloud Offloading, CO) 当车载用户产生服务请求时,边缘服务器全部上传到云端进行相应的服务卸载操作。
(3)随机卸载(Random Offloading, RO) 边缘服务器随机给用户分配子信道和计算资源进行相应的服务卸载操作。
模拟环境为3个边缘服务器、7个用户,每个用户开始时会从5种类型服务中随机产生多种类型服务的服务需求,共生成20个任务,计算执行所有用户的服务需求产生的平均用户服务延迟。实验方案如下:
(1)通过改变系统中子信道和计算资源的个数,比较SOD和对比方法在不同车联网边缘计算环境中的表现。
(2)实验中原始数据的平均大小在30 MB~70 MB之间,边缘服务器的计算能力为2.5 Gigacycle/s,子信道数为20,比较SODQN和对比方法在不同车联网边缘计算环境中的表现。其中,使用学习率为0.01的DQN网络进行用户服务卸载决策。
当边缘服务器的计算能力较弱(可分配的计算资源数为5)时,不同服务卸载方法在不同网络环境下的表现如图3所示。实验结果表明,SODQN方法在各种网络环境下的服务卸载表现均优于其他方法。因为边缘服务器CPU为2核四线程,以RO方法和SODQN方法可并行执行4个线程,比LO方法(串行执行)的用户平均服务时延大幅降低。当系统中的子信道数分别为20,30,40时,SODQN的用户平均服务时延分别为1.073,1.015,0.955(单位:s),相比表现最差的LO和CO方法,SODQN方法的性能提升了52.1%~76.3%。而和表现最好的RO方法比较,SODQN的用户平均服务时延也降低了11.6%~14.1%。该实验证明,SODQN方法在边缘服务器计算能力较弱时,具备为用户提供低时延服务的能力。
当系统中所配备的边缘服务器计算资源数为10时,实验结果如图4所示。可见,当子信道个数为20,30,40时,相比其他4种方法,SODQN方法均较大幅度地减小了用户的平均服务时延。例如,当子信道个数为40时,用LO,CO,RO作为服务卸载方法所产生的用户平均服务时延分别为4.023,2.132,0.954(单位:s),而用SODQN方法时用户的平均服务时延仅为0.863 s,其性能提升了9.5%~78.5%。当系统中能够分配的子信道个数为30时,相比LO和CO方法,SODQN方法较大幅度地降低了用户平均服务时延,然而相比RO方法,SODQN方法产生的用户平均服务时延下降不多,约为0.095 s,但是仍降低了9.7%左右。
当边缘服务器中的计算资源比较充足(计算资源数为15)时,车载用户能够将更多的服务需求卸载到边缘服务器上,因此相比全本地卸载能够获得更低的用户服务时延,实验结果也支持该结论。如图5所示,无论子信道数有多少,当计算资源数为15时,SODQN方法的表现或优于或相近于其他4个方法。例如,当子信道数为20时,SODQN方法相比LO,CO,RO方法,用户平均服务时延降低78.0%,60.3%,8.8%;当子信道数为30和40时,采用SODQN方法能降低7.3%~79.1%和7.8%~79.8%的用户平均服务时延。需要注意的的是,与子信道数为30相比,子信道数为40时采用SODQN方法产生的用户平均服务延迟降低了0.03 s,当任务数为20时,增加子信道数对降低用户平均服务延迟的效果已经不明显,子信道数为30~40可以满足用户服务需求。
实验中设置边缘服务器的计算能力为10 Gigacycle/s,子信道数为20,原始数据量平均为30 MB~70 MB,其他参数保持不变。如图6所示,LO,RO,CO,SODQN 4种方法的用户平均服务时延均随原始数据量的增加而增加,这是因为车载设备的计算能力通常不足,难以满足计算密集型服务的低延迟需求。需要注意的是,当原始数据量大于等于70 MB时,RO方法产生的用户平均服务时延将高于CO方法,同时SODQN卸载方法降低的用户平均服务时延并不显著,原因是随着原始数据量的增加,将产生大量传输时延。未来有望通过5G通信减少数据传输时间,并通过SODQN进一步降低用户平均服务时延,来提高服务卸载的服务质量水平。
综上所述,本文SODQN方法在各种车联网边缘计算环境中均能显著降低用户的平均服务时延,相比其他4种对比方法,性能有2.8%~73.3%不等的提升。CO方法将所有用户服务需求卸载到云端执行,虽然云端计算资源丰富无需考虑任务的执行时延,但是远距离传输将产生巨大的传输时延,因此表现较差;LO将所有用户的服务需求卸载到本地执行,虽然节省了服务需求执行时的传输时延和等待时延,但是因为车辆一般不会配备丰富的计算资源,所以会增大服务时延;针对RO方法,即使边缘服务器可同时并发执行4个任务,由于其随机分配资源导致方法无法制定最优卸载策略,表现也较差。综合来看,在4种对比方法中,RO使用边缘服务器同时执行4个任务,相比LO和CO方法虽然可以大幅降低用户的服务平均时延,但是其随机分配资源导致无法制定最优卸载策略,因此产生的用户等待时延和执行时延较大。而SODQN方法在网络训练完成之后,只需一次前向传播操作即可制定最优卸载策略,在降低方法复杂度的同时能够精确分配资源,其综合表现优于RO方法。由此可以证明,SODQN方法能够在各种网络和边缘环境下降低用户服务时延,提高车联网用户的服务体验。
6 结束语
为了满足车联网用户对低时延服务的需求,本文提出基于DQN的车联网边缘计算服务卸载方法SODQN,来降低车联网用户长期的平均服务时延,为车联网用户提供高质量的服务体验。特别地,本研究提出一种“端—边—云”协同的服务卸载架构,将车辆边缘环境下的服务卸载问题归约为边缘服务器计算和通信资源约束下获得最小平均服务时延的优化问题。其次,引入DQN解决优化问题。最后,与其他3种方法进行对比实验,表明SODQN方法能够有效降低用户平均服务时延,验证了本文方法的有效性。下一步将在考虑用户服务时延需求的同时,研究如何进一步降低用户服务的能耗,以及将集中式的服务卸载架构结合联邦学习搭建为分布式服务卸载架构。