本发明涉及移动边缘计算领域,尤其涉及一种基于深度强化学习的边云协同串行任务卸载方法。
背景技术:
近年来,移动应用程序在各行各业都有着广泛的应用,尽管当下云服务很受欢迎,但在实现诸如媒体处理、在线游戏、增强现实、虚拟现实和在无处不在的移动设备中执行各种创新移动应用程序的时间、能量、成本和安全性等相关要求方面仍存在一些困难和挑战。由于这些无处不在的移动设备的自然资源限制,为了运行这种需要低延迟和高数据速率的资源需求应用程序,产生了一种崭新的计算模式——移动边缘计算。
mec场景中,通过在用户设备周围的无线基站部署mec(mobileedgecomputing)服务器,将处于远距离云端的计算资源延伸至网络边缘,为用户设备提供物理距离更近的服务,从而降低由网络延迟造成的任务时延,同时也可以缓解应用数据传输对核心网造成的压力。当进行任务卸载操作时,用户设备将计算任务数据通过无线基站传输至mec服务器上进行计算,mec服务器完成计算后将计算结果返回至用户设备,从而完成一次任务卸载操作,如此可以使得用户应用获得更低的延迟体验,变相地增加用户设备应用程序可以拥有的计算能力。
但与此同时,大量的研究[3-10]都是基于用户设备与mec服务器之间的任务卸载,并未考虑云端依旧拥有大量的计算资源,并且能够针对特定场景优化计算环境,在大量移动设备和物联网设备的高度计算资源需求的情况下,仅依靠mec服务器进行计算也是难以完成的,仍然会出现资源瓶颈。所以在考虑用户设备与mec服务器之间的网络边缘任务卸载的同时,还需要云端的强大计算能力来辅助mec服务器,通过边云协同来共同为移动设备提供相对低时延高计算能力的服务。由于云端需要考虑网络传输时延和特定任务需求,在进行任务细粒度卸载时,对任务不同的环节需要有优先级考量,这也使得整个任务卸载工作的复杂程度增加。文献1:基于dqn的车载边缘网络任务分发卸载算法[j].通信学报,2020,41(10):172-178,提出了一种ahp和dqn相结合的任务卸载算法,解决在车辆网环境下车载设备与mec服务器间的任务卸载问题。文献2:基于深度强化学习的移动边缘计算任务卸载研究[j].计算机研究与发展,2020,57(07):1539-1554,基于lstm和her改进深度学习算法,解决单用户多服务器的任务卸载问题,对能耗时延费用等多种指标进行比较。文献3:distributeddeeplearning-basedoffloadingformobileedgecomputingnetworks[j].mobilenetworksandapplications,2018:1-8,提出了一种基于dqn的mec环境下的多任务卸载和资源分配算法,通过此方法,将混合整数非线性规划转变为一个rl问题,以找到了最佳的解决方案。然而上述方案只针对的是用户设备和mec服务器之间的任务卸载调度,同时在任务调度方面,大部分方案仅考虑粗粒度卸载,其灵活性低,运行效率不高,在资源利用、系统效能上存在一定的局限性。
技术实现要素:
本发明的目的在于克服现有技术的不足,针对带有优先级场景中移动边缘服务器和云端服务器协同下的多用户设备串行任务卸载问题,考虑了延迟、能耗成本和服务质量保证等因素,通过对串行任务的权重分配,实现了网络边缘和云端协同的串行任务动态分配处理,实现对复杂场景下能耗和时延的优化,提供一种基于深度强化学习的边云协同串行任务卸载方法。
本发明的目的是通过以下技术方案来实现的:
一种基于深度强化学习的边云协同串行任务卸载方法,包括以下步骤:
s1:用户设备产生串行任务,并发送任务卸载请求至mec服务器;
s2:mec服务器接收到用户设备发送的任务卸载请求后,获取当前系统状态;通过计算获得权重向量,并根据当前状态,得到最优卸载策略;
s3:根据得到的最优卸载策略,执行卸载任务。
进一步的,所述s2中最优卸载策略的获得包括以下子步骤:
s201:输入当前系统状态sn,初始化权重矩阵和经验池;
s202:初始化状态s1以及预处理序列;
s203:以ε的概率选择随机动作xw,否则选用最优奖励动作
s204:向系统执行动作xw;记录该动作下系统和用户状态,根据用户状态更新权值矩阵ai;
s205:根据权值矩阵和系统状态计算奖励值,返回奖励值rt和状态st+1;
s206:令st+1=st,计算
s207:从经验池中按优先经验回放策略抽取向量,更新网络参数θ,返回s203;
s208:若st+1若为结束状态,则结束迭代;否则,返回s202。
进一步的,所述权重受能耗、时延、服务质量、不同的用户设备本身的优先级、任务组中某些微任务在不同计算场景下的效率以及系统的费用成本的影响;在对单个微任务计算时延、能耗的同时,也需要对串行任务进行约束,即在确定各项串行任务权重时,需考虑当前任务计算成本标准、参考容忍时延标准以及用户设备服务质量保证优先级。
进一步的,所述计算成本和所述参考容忍时延使用z-score标准化所有用户的实际使用情况作为参考标准,质量保证为用户预设优先级。
进一步的,所述奖励值通过综合能耗、时延和服务质量三项评价因素,采用min-max标准化方法对该三项评价指标进行归一化,最后得到奖励函数,从而计算得到奖励值。
进一步的,所述步骤3具体为:根据最优卸载策略决定是在本地执行卸载任务,还是上传至mec服务器或云端执行卸载任务。
进一步的,所述云端相比mec服务器拥有更强大的计算能力,但是网络延迟比mec服务器高。
本发明的有益效果:通过对串行任务的权重分配,实现了网络边缘和云端协同的串行任务动态分配处理,为不同的用户设备应用提供低时延高能效的任务卸载服务。
附图说明
图1是本发明的方法流程图。
图2是边云协同系统模型图。
图3是loss值随学习步数的变化图。
图4是目标函数值串行任务生成间隔变化图。
图5是目标函数随任务计算复杂度的变化图。
图6是串行任务完成时延随任务计算复杂度的变化图
图7是不同优先级用户组随计算复杂度的目标函数值变化图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。
本实施例中,如图1所示,一种基于深度强化学习的边云协同串行任务卸载方法,包括以下步骤:
s1:用户设备产生串行任务,并发送任务卸载请求至mec服务器;
s2:mec服务器接收到用户设备发送的任务卸载请求后,获取当前系统状态;通过计算获得权重向量,并根据当前状态,得到最优卸载策略;
s3:根据得到的最优卸载策略,执行卸载任务。
进一步的,所述s2中最优卸载策略的获得包括以下子步骤:
s201:输入当前系统状态sn,初始化权重矩阵和经验池;
s202:初始化状态s1以及预处理序列;
s203:以ε的概率选择随机动作xw,否则选用最优奖励动作
s204:向系统执行动作xw;记录该动作下系统和用户状态,根据用户状态更新权值矩阵ai;
s205:根据权值矩阵和系统状态计算奖励值,返回奖励值rt和状态st+1;
s206:令st+1=st,计算
s207:从经验池中按优先经验回放策略抽取向量,更新网络参数θ,返回s203;
s208:若st+1若为结束状态,则结束迭代;否则,返回s202。
其中,所述权重受能耗、时延、服务质量、不同的用户设备本身的优先级、任务组中某些微任务在不同计算场景下的效率以及系统的费用成本的影响;在对单个微任务计算时延、能耗的同时,也需要对串行任务进行约束,即在确定各项串行任务权重时,需考虑当前任务计算成本标准、参考容忍时延标准以及用户设备服务质量保证优先级,其权重矩阵表示为:
其中,a为权重矩阵;d为任务计算成本标准;t为参考容忍时延标准;q为用户设备服务质量保证优先级;下标1表示第一个微任务,u表示当前微任务。
其中,所述计算成本和所述参考容忍时延使用z-score标准化所有用户的实际使用情况作为参考标准,质量保证为用户预设优先级;计算成本和容忍时延计算标准化如下:
利用上式求得当前用户正规化值,即得到该用户与该环境中其余用户在时延要求和成本要求的相对值,再根据此相对值进行归一化和区间调整,即可获取各个用户的权重向量,从而优化系统中串行任务的卸载执行效率,使得偏离标准的用户可以在下一次请求中拥有更高的优先级,从而提升系统的稳定性。
其中,所述奖励值通过综合能耗、时延和服务质量三项评价因素,结合目标函数采用min-max标准化方法对该三项评价指标进行归一化,最后得到奖励函数,从而计算得到奖励值。
其中,所述步骤3中卸载任务的执行是根据最优卸载策略决定是在本地执行卸载任务,还是上传至mec服务器或云端执行卸载任务。
其中,所述云端相比mec服务器拥有更强大的计算能力,但是网络延迟比mec服务器高。
在本实施例中,通过设计各模型对该方法进行实验验证并分析结果。
在移动边缘计算任务卸载问题中,传统卸载算法仅考虑移动设备和边缘服务器计算资源,在资源利用、系统效能上存在一定的局限性。本发明基于rainbowdqn算法,考虑了延迟、能耗成本和服务质量保证等因素,提出了一种边缘云协同串行任务卸载算法(简称ecws-rdqn),该算法通过对串行任务的权重分配,实现了网络边缘和云端协同的串行任务动态分配处理,为不同的用户设备应用提供近似最优的任务分配卸载策略。
一、系统模型及问题定义
本发明中的任务卸载模型由多个移动用户设备(ue)、拥有mec服务器的无线基站(bs)和云端服务器(cs)组成,构成一个云-边-用户的三层结构,由图2所示。用户设备产生串行任务,mec服务器在中间层为用户和云端提供任务的资源分配、任务卸载调度工作,同时可以为用户分担一定程度的计算任务,云端则拥有强大的计算能力,可以更加快速的解决复杂计算问题,但相对边缘服务器会拥有更高的网络延迟。
其中u个用户设备用集合u={1,2,...,u}表示,用户设备拥有有限的计算资源,并且有且仅带有一个串行任务wi,每个用户u可以用一个5元组表示u={i,wi,ti,ri,qi},i∈{1,2,...,u}为用户编号,wi是该用户设备当前拥有的串行任务,tu是该用户设备当前任务的预计完成时间,ru表示为用户设备与无线基站的通信带宽,qu表示为该用户设备的服务质量保证,该值越高代表该用户的服务优先级越高;系统中mec服务器用m表示,m={cm,tm,rc},其中cm为该mec服务器的计算能力,tm为该服务器当前任务的预计完成时间;云端服务器用c表示,c={cc,tc},其中cc该云服务器的计算能力,tc为该服务器当前任务的预计完成时间。
用户设备在产生任务后,会将任务卸载决策请求发送至mec服务器,mec服务器会根据当前系统状态决定任务是在本地执行还是上传至mec服务器或是云端执行。卸载策略由xw表示,其中xw∈{0,1,2,3},0表示本次策略为空操作,1表示任务将会在本地执行,2表示任务将会卸载至mec服务器执行,3表示任务将会卸载至云端服务器执行。
1.1、串行任务模型。
本发明中的任务假设为多个微任务串行组成的任务,一个任务应用由n个串行微任务组成,其中微任务中的1、n分别代表该任务中的输入和输出部分,并且输入必须由本地完成。本发明中使用链表wi={t,l},i∈{1,...,u}表示任务,t为当前微任务,l为下一个任务指针,其中用三元组<ct,dt,maxt>来表示t,ct为该任务计算所需的cpu周期数(cycle),dt为该任务卸载时需要传输的数据量(kb),maxt为该任务的时延上限要求(ms)
串行任务的特点在于其任务之间的依赖关系,微任务i执行需要微任务i-1项完成才可以执行,直至执行至最后一个微任务,该项串行任务才全部执行完成,在实际应用场景中,串行任务也是最为常见的任务类型之一,如图像识别等应用。
1.2、时延模型
时延在各种任务场景中都是一项至关重要的指标,时延表示一项任务从任务请求开始至任务全部完成的时间,并且时延大小决定了一项任务的完成时间是否可以满足应用需求。本在文中用表示用户设备完成其当前微任务的时延,分别从本地、边缘和云端3个部分讨论其任务时延的组成。
1.2.1、本地执行
在本地执行策略中,代表该微任务会在本地进行计算,不会将数据传输至mec服务器,所以当前的任务时延dtu表示为
其中,ct为该任务所需的cpu周期数(cycle),fu为用户设备的cpu频率(hz)
1.2.2、边缘服务器执行。
在边缘服务器执行策略中,代表该微任务将会通过无线传输进行任务卸载,把计算该微任务的必要数据传输至mec服务器中,在此策略中,时延由计算时延、传输时延、排队时延组成,所以当前的任务时延dtu表示为:
其中,fs为边缘服务器的cpu周期数,d't为回传数据的数据量,ru为用户设备和mec服务器的传输速率。
1.2.3、云端执行
在云端执行策略中,代表该任务将会通过无线传输和主干网将任务所需的数据提交至云端服务器,在此策略中,时延由计算时延、传输时延、传播时延、排队时延组成,所以当前的任务时延dtu表示为:
其中,fc为云服务器的cpu周期数,rc为mec服务器与云端服务器的传输速率,dt为mec服务器与云端的传播时延。
1.3、能耗模型
能耗在实际场景中也是十分重要的指标之一,采用电池供电的用户设备会对能耗大小更加敏感。在此场景中,能耗由cpu的计算和闲置消耗、无线传输时的能量消耗构成,以下将会从本地、边缘和云端3部分分别讨论系统能耗的组成。
1.3.1、本地执行
在本地执行策略中,计算任务将会使用本地用户设备的cpu进行执行,所以该策略的执行能耗
其中,κ为cpu的能量效率系数,fu为用户设备的cpu周期数。
1.3.2、边缘服务器执行
在边缘服务器执行策略中,计算任务将会提交至mec服务器进行计算,在提交和计算的过程中,能耗由用户设备的传输能耗和空闲能耗,所以该策略的执行能耗
其中,pup为用户设备在无线传输时消耗的能量,pidle为用户设备空闲时消耗的能量。
1.3.3、云端执行
在云端执行策略中,计算任务数据将会通过无线和主干网传输至云端服务器,能耗由用户设备的传输能耗和空闲能耗组成,所以该策略的执行能耗
1.4、服务质量保证
服务质量保证在任务调度场景中是决定不同优先级的用户服务质量的关键,使得具有更低时延或能耗要求的用户在资源竞争时会在请求中更有优势。在此场景中,服务质量保证的组成如下:
qosu=α+βqu
其中,α+β=1,α,β≥0,α为基础值,β为该目标函数中服务质量占比,qu为各用户的优先级。
1.5、问题定义
本发明的目标是使用rainbowdqn生成决策x实现时延和能耗的降低,其中第二节已经给出了时延和能耗模型,采用线性加权的方式来规划目标函数,因此,原问题可以定义为:
其中,λe,λt,λq∈[0,1],并且λe+λt+λq=1,分别表示能耗、时延和服务质量保证在目标函数中的占比。
二、算法模型
本发明研究的任务卸载问题根本上是一个多目标优化问题,通常可以使用启发式算法或是机器学习的方式,在启发式算法中一般使用遗传算法、粒子群算法、化学反应算法等;在机器学习领域更多采用的是强化学习方法,如q学习、dqn等。在系统环境相对复杂的条件下,往往采用dqn来进行更高效的任务卸载分配工作处理。在本发明中基于的是改进后的dqn——rainbowdqn,rainbowdqn是在原始dqn的基础上结合了doubledqn、优先经验回放(prioritizedexperiencereplay)、决斗网络(duellingnetwork)、多步学习(multi-steplearning)、分布式网络(distributionalnetwork)、噪声网络(noisynetwork)[14-18]后改进的dqn算法,在训练速度、样本效率和性能方面与初始dqn算法相比有着最显著的增强。
dqn作为强化学习的一种,其核心思想是通过获取环境状态和输出动作互动后的奖励,使用神经网络来近似值函数,使用经验回放来储存之前经历的数据,在之后更新参数时在其中选取一部分来使用。在rainbowdqn中,会采用multi-steplearning的方式更新损失函数:
其中s和a分别为系统状态和动作,γ为折扣因子,r为奖励函数,
在更新后存入经验池时,采用的是优先经验值回放,根据损失函数来决定该项采样的权值pt:
其中pt将会从损失函数中获取,w为优先经验回放的优先级因子。
基于上述改进以及其余扩展,在本发明提出的ecws-rdqn中,还需根据系统需求重新定义状态空间、动作空间以及奖励函数,在奖励函数中引入权重来更加贴合实际的运行场景,优化串行任务调度策略。
其中状态向量st={tc,tm,t1...tu,ai,wu},ai为该用户的权重向量;wu为该用户当前提交任务卸载请求的微任务信息,包含计算量需求、数据传输大小、该任务组的时延上限、该任务组已经消耗的时间。
其中动作决策值xw∈{0,1,2,3},表示对任务w做出的决策,0表示该次请求暂时跳过;1表示该任务将在本地执行;2表示该任务将卸载至mec服务器执行;3表示该任务将卸载至云端执行。
在奖励函数设计中,考虑到能耗、时延和服务质量等优先级问题,不同的用户设备本身的优先级、任务组中某些微任务在不同计算场景下的效率或是系统的费用成本,都会影响每个微任务的权重。并且由于串行任务的特殊性,会导致多个任务交叉进行,仅对单个微任务的优化可能会导致某些串行任务总时延或总成本升高,所以在对单个微任务计算时延、能耗的同时,也需要对串行任务进行约束。
在本发明中确定各项串行任务权重时,考虑当前任务计算成本标准du、参考容忍时延标准tu、用户设备服务质量保证优先级qu,3项评价因素。权重矩阵a表示为
其中计算成本和参考容忍时延使用z-score标准化所有用户的实际使用情况作为参考标准,质量保证为用户预设优先级。计算成本和容忍时延计算标准化如下:
利用上式求得当前用户正规化值,即得到该用户与该环境中其余用户在时延要求和成本要求的相对值,再根据此相对值进行归一化和区间调整,即可获取各个用户的权重向量,从而优化系统中串行任务的卸载执行效率,使得偏离标准的用户可以在下一次请求中拥有更高的优先级,从而提升系统的稳定性。
综合能耗、时延和服务质量3个评价因素,结合目标函数采用min-max标准化方法对3项评价指标进行归一化,最后得到奖励函数为:
在ecws-rdqn算法中,当mec服务器接收到用户设备发送的任务卸载请求后,获取当前系统状态,通过计算获得权重向量,可以根据当前状态,得到最优的卸载策略输出。综合以上模型,ecws-rdqn算法如下:
算法1.ecws-rdqn算法.
输入:状态向量st;
输出:动作决策值xw.
初始化权重矩阵a,经验池
foreachiteration
初始化状态s1以及预处理序列
foreachstep:
以ε的概率选择随机动作xw,否则选用最优奖励动
向系统执行动作xw
记录该动作下系统和用户状态,根据用户状态更新权值矩阵ai
根据权值矩阵和系统状态计算奖励值,返回奖励值rt和状态st+1
令st+1=st,计算φt+1=φ(st+1)
将向量(φt,xw,t,rt,φt+1)存放至经验池
从经验池中按优先经验回放策略抽取向量
更新网络参数θ
若st+1为结束状态,则结束本轮迭代
endfor
endfor
三、实验设计与结果分析
通过python语言对本方案提出算法进行仿真以评估其性能,仿真场景为云-边-用户3层结构,由1个云端服务器,一个带有mec服务器的无线基站和多个用户设备组成,主要通过与本地计算(local)、全卸载至边缘(mec)、全卸载至云端(cloud)、随机(平均)分配(random)方案和仅使用基于rainbowdqn算法对比本方案给出的ecws-rdqn算法在时延、能量、服务质量等约束条件下的策略对比,来验证算法的有效性。其中环境参数设置根据现有数据,如表1所示。
本方案在云-边-用户场景中的针对能耗、时延以及服务质量的ecws-rdqn算法,首先针对rainbowdqn进行优化,在本方案中串行任务拆解成多个微任务后需对奖励值获取频率以及数值标准化进行处理。其中考虑环境复杂度和学习速度,学习速率设置为r=0.001,multi-step值为10;考虑其经验-探索策略,折扣因子γ=0.99,优先经验回放参数采用α=0.5,、β=0.4[16],噪声网络标准差为σ=0.01。最终本方案中算法的loss值收敛如图3所示,在150k时基本收敛,因评估中仍会使用贪婪策略跳出,因此在步数较高等情况下还会出现波动。
在实验中使用表1给出的环境配置,使用10个用户设备来生成串行任务,总计需完成100个串行任务,每个串行任务由5个微任务组成,通过调整串行任务的生成速率和计算复杂度进行对比。
表1环境参数设置
在图4中,y轴目标函数值由目标函数归一加权后得到,x轴为串行任务卸载请求的间隔时间。对比发现在任务生成间隔较大,总的任务计算压力较低时,卸载至边缘服务器的效果较好。随着间隔变短,计算传输量都增加的情况下,仅靠边缘服务器已经无法承载。而使用本发明提供的ecws-rdqn算法后,在各种情况下表现都远优于其他策略。
同样,在固定任务间隔的情况下,改变串行任务中高计算复杂度的占比,如图5和图6给出的目标函数值曲线。在计算复杂度快速升高的情况下,计算量较低的本地设备难以完成任务;边缘服务器由于计算量超过承载能力出现任务堆积,导致时延急剧上升;拥有高计算能力高网络延迟的云端几乎不受影响;同时本发明中针对串行任务的权值分配策略也在任务复杂度较高的情况下,有效降低了平均时延和成本。可以看出,相较于其他策略,本发明给出的ecws-rdqn算法总体稳定,能够提供更低时延的服务,有效提升了服务质量。
而在图7中,改变不同的计算复杂度观察ecws-rdqn算法在不同情况下对不同优先级的用户组的调度优化,其中奖励值为时延、能耗的奖励值归一化得到,可以看出随着优先级的提高,更高优先级的用户可以在时延和能耗上获得更好的服务。
本发明为面对边云协同串行任务卸载调度场景,提出了ecws-rdqn算法,并且针对串行任务特点进行优化,在时延、能量和服务质量的约束条件下能够实现智能任务卸载,并且通过实验验证其有效性,在各项参数下均有较明显优势。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护的范围由所附的权利要求书及其等效物界定。