«上一篇 下一篇»
  计算机工程  2021, Vol. 47 Issue (10): 26-33  DOI: 10.19678/j.issn.1000-3428.0061371
0

引用本文  

陈清林, 邝祝芳. 基于DDPG的边缘计算任务卸载和服务缓存算法[J]. 计算机工程, 2021, 47(10), 26-33. DOI: 10.19678/j.issn.1000-3428.0061371.
CHEN Qinglin, KUANG Zhufang. Task Offloading and Service Caching Algorithm Based on DDPG in Edge Computing[J]. Computer Engineering, 2021, 47(10), 26-33. DOI: 10.19678/j.issn.1000-3428.0061371.

基金项目

国家自然科学基金(62072477, 61309027);国家重点研发计划(2018YFB1700200);湖南省自然科学基金(2018JJ3888);湖南省教育厅优秀青年项目(18B197);智慧物流技术湖南省重点实验室课题项目(2019TP1015)

通信作者

邝祝芳(通信作者), 教授、博士

作者简介

陈清林(1996-), 女, 硕士研究生, 主研方向为边缘计算

文章历史

收稿日期:2021-04-14
修回日期:2021-05-24
基于DDPG的边缘计算任务卸载和服务缓存算法
陈清林 , 邝祝芳     
中南林业科技大学 计算机与信息工程学院, 长沙 410018
摘要:当计算任务被转移到移动边缘计算(MEC)服务器上时,通过服务缓存能够降低获取和初始化服务应用程序的实时时延和带宽成本。此外,体验质量是驱动卸载决策的关键因素,有效利用有限的计算资源能够提升用户满意度。考虑一个边缘服务器帮助移动用户执行一系列计算任务的场景,建立混合整数非线性规划问题,提出一种基于深度确定性策略梯度(DDPG)的算法来联合优化服务缓存位置、计算卸载决策和资源分配,从而提高用户对服务的体验质量,最大化用户使用计算资源所节约的成本。仿真结果表明,该算法在提高用户体验质量和节约成本方面较使用无缓存策略、随机选择策略和无缓存随机选择策略的算法性能更优。
关键词移动边缘计算    深度强化学习    任务卸载    服务缓存    资源分配    
Task Offloading and Service Caching Algorithm Based on DDPG in Edge Computing
CHEN Qinglin , KUANG Zhufang     
School of Computer and Information Engineering, Central South University of Forestry and Technology, Changsha 410018, China
Abstract: When computing tasks are transferred to the Mobile Edge Computing(MEC) servers, the service cache effectively reduces the real-time delay and bandwidth cost of acquiring and initializing the service application.In addition, Quality of Experience(QoE) is a key factor driving offload decisions, and effective utilization of limited computing resources can keep users satisfied.This paper considers a scenario where a single edge server is used to help mobile users perform a series of computing tasks.On this basis, a Mixed Integer Nonlinear Programming(MINLP) is established, and a Deep Deterministic Policy Gradient(DDPG) algorithm is proposed to jointly optimize the service cache location, the offload decision and the resource allocation, so as to improve the user's QoE of services and maximize the cost saved by users using computing resources.Simulation results show that the proposed method achieves higher QoE and lower cost than the algorithms using non-cache strategy, random-choice strategy and non-cache random-choice strategy.
Key words: Mobile Edge Computing (MEC)    deep reinforcement learning    task offloading    service caching    resource allocation    

开放科学(资源服务)标志码(OSID):

0 概述

移动互联网中各种数据流量的爆发式增长和用户设备使用率的不断增高,极大地推动了无线通信和移动网络技术的发展[1]。此外,随着物联网、人工智能、第五代移动通信(5G)等技术的普及,也使移动用户对数据处理速率和服务质量(Quality of Service,QoS)的要求不断提高[2]。目前,移动边缘计算(Mobile Edge Computing,MEC)是产业界和学术界研究的重点[3],旨在解决价值与应用之间的矛盾,并且应用场景十分丰富[4],如智能交通[5]、车联网等。MEC是无线接入网中的一种新模式,其通过部署高性能的服务器来提高移动网络边缘的计算能力[6]。MEC服务器密集分布在移动用户附近,用户设备可以通过无线链接将计算任务卸载到MEC服务器[7]。计算卸载可以帮助移动用户显著降低应用程序的体验延迟[8]。将移动边缘服务器部署在离数据源较近的范围内,可以避免数据上传到较远的云服务器,从而减少数据往返的等待时延和消耗成本[9]

本文针对单用户MEC系统,设计基于深度确定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法的数据缓存优化机制,对服务缓存放置、计算卸载决策和系统资源分配(即移动用户的CPU处理频率和传输功率)进行联合优化。

1 相关研究

随着各种移动应用程序高度普及[10],设备以非常快的速度产生大量数据,这给移动核心网络和回程链路带来了很大的负担。移动边缘缓存使数据能够在MEC服务器中进行存储,是缓解这一问题的有效方法[11-12]。与此同时,缓存在移动数据流量激增的情况下也表现出极大的优势[13]

针对单用户MEC系统,目前已有很多优化方法。文献[14]研究了任务卸载调度和传输功率分配的联合问题。文献[15]以最小化超低功耗单天线设备的能耗为目标,优化了用于能量收集、信息解码和本地计算的时隙,以及卸载所需的时隙和功率。文献[16]考虑到功率受限和不可预测的任务,以单用户处理能力最大化为目标的功率分配问题对MEC系统进行研究,提出一种二分搜索算法。文献[17]设计一种迭代启发式的MEC资源分配算法实现动态卸载决策。然而上述研究没有考虑数据缓存,单用户MEC系统中的联合任务卸载决策、数据缓存和资源分配仍然是一个有待解决的问题。

针对多用户MEC场景也出现了很多优化方法。文献[18]考虑具有多个用户和单个MEC服务器的场景,提出NOMA-MEC系统,通过使用强化学习中的深度Q网络(Deep Q-Network,DQN)算法,在事先未知其他用户动作的情况下选择同时卸载的用户,得到最优组合状态,使系统卸载延迟最小。文献[19]研究了多用户MEC系统中的资源分配问题,利用回归算法求解通信资源(子载波)的分配问题并合理分配通信和计算资源,在延迟约束下达到了系统能量消耗最小的目标。文献[20]利用频谱效率较优的非正交多路访问(Non-Othogonal Multiple Access,NOMA)技术共同优化计算卸载决策、通信和计算资源分配,提高了MEC的访问能力,并使所有用户的计算成本最小化。文献[21]针对NOMA用户研究不同上传时延与共信道干扰之间的相互作用,提出一种计算卸载方案,通过对卸载决策和资源分配的联合优化降低了用户的平均卸载延迟。文献[22]针对如何在满足时延约束下缩短MEC计算任务的完成时间并降低终端能耗的问题,提出一个卸载决策与资源分配联合优化的方法。文献[23]提出一种基于强化学习的状态-动作-奖赏-状态-动作(RL-SARSA)算法解决边缘服务器的资源管理问题,并通过优化卸载决策来最小化系统成本(包括能量消耗和计算时延)。文献[24]研究了MEC中任务卸载决策、卸载调度和功率分配的联合问题,设计一种节能、低延迟的MEC卸载调度机制,实现了最小化系统能耗同时降低系统时延的目标。文献[25]研究MEC中的卸载策略与功率分配问题,采用二分搜索法求解传输功率,利用非合作博弈论解决多用户卸载决策问题。

以上研究主要考虑MEC系统卸载和资源分配场景,以最小化能源消耗或延迟为目标,但没有考虑任务数据缓存在系统中的情况。在边缘计算系统场景下联合卸载、缓存决策和传输能力以及CPU频率分配是一个具有挑战性的问题。

近年来,边缘缓存受到较多关注。文献[26]将缓存问题视为一个优化问题进行建模,探讨不同算法的优化性能和复杂度。文献[27]设计了一个以信息为中心的异构网络框架,旨在支持内容缓存和计算。此外,由于整个系统的虚拟化,通信、计算和高速缓存资源都可以在与不同虚拟服务提供者关联的所有用户之间共享。文献[28]引入一种新的基于体验质量(Quality of Experience,QoE)的效用优化方法来解决MEC系统中联合服务缓存和任务卸载的问题,反映了用户对服务延迟的感知和用户为分配的计算资源所支付的成本之间的权衡,但未深入研究单用户MEC系统中任务卸载、数据缓存和资源分配的联合问题。本文设计一种基于DDPG的数据缓存优化机制,以期优化用户对服务延迟的体验质量和用户使用计算资源所节约的成本。

2 MEC任务卸载模型 2.1 系统模型

本文考虑单用户多任务MEC系统,如图 1所示,其中包含1个无线无线接入点(Access Point,AP)和1个移动用户(Mobile User,MU),AP配备1个MEC服务器,MU有M个计算任务。在此系统中,每个任务由N个程序中的1个处理,如果1个任务需要由第j个程序处理,则将其称为类型j任务,$j \in \mathit{\Gamma } = \left\{ {1, 2, \cdots , N} \right\}$。以${u_{i, j}} = 1$表示第i个任务由第j个程序执行,否则${u_{i, j}} = 0$。以${\varphi _i} \in \mathit{\Gamma }$表示第i个任务的类型。MEC服务器具有计算资源F和缓存容量R,缓存在MEC中的计算结果可以让其他需要的任务共享。从用户卸载的计算任务通常与特定的服务相关联,这些服务需要缓存在MEC中以实现任务的执行。在每个资源有限的MEC节点上缓存哪些服务和执行哪些任务的决策,对于最大限度地提高卸载效率至关重要。此外,体验质量和计算资源的成本效益也是驱动卸载决策的关键因素。为有效利用有限的计算资源,提升用户对服务的体验质量,本文研究基于QoE的服务缓存和任务卸载联合优化问题,实现用户对服务延迟的体验质量与用户使用计算资源所节约的成本之间的最优权衡。

Download:
图 1 MEC系统模型 Fig. 1 MEC system model

图 1所示系统中,第i个任务输入和输出数据的大小分别表示为${I_i}$${O_i}$。由于这M个任务是相互依赖的,因此第i个任务的输入需要第i-1个任务的输出,则${I_i} = {O_{i - 1}}, i = 1, 2, \cdots , M + 1$Li为计算任务i所需的CPU计算周期数。任务模型如图 2所示。

Download:
图 2 任务模型 Fig. 2 Task model

假设MU通过上传自己的程序数据(如通过C/C++代码生成程序),在MEC平台上运行自己的定制程序,第j个程序的数据大小表示为${s_j}$。边缘服务器接收到程序数据后,生成相应的程序(如二进制可执行文件.exe),用于处理以后卸载的任务数据,用${r_j}$表示生成的第j个程序的大小,${r_j}$通常比${s_j}$大得多。${D_j}$为第j个程序在边缘服务器中的生成时间。

边缘服务器与MU之间的数据传输包括上传程序和(或)任务数据以及下载计算结果。第i个任务输入数据的上行传输速率和所需程序数据的上行传输速率分别如式(1)和式(2)所示:

$ {R}_{i}^{{\rm{u}}}=B\;{\rm{1}}{\rm{b}}\left(1+\frac{{p}_{i}^{{\rm{u}}}{G}_{i}}{{\sigma }^{2}}\right) $ (1)
$ {R}_{i}^{{\rm{s}}}=B\;{\rm{1}}{\rm{b}}\left(1+\frac{{p}_{i}^{{\rm{s}}}{G}_{i}}{{\sigma }^{2}}\right) $ (2)

其中:${g_i}$表示信道功率增益;${d_{i, c}}$表示AP与用户之间的距离;${G_i}{\rm{ = }}{g_i}d_{i, c}^{ - \delta }$表示通道增益;$\delta $表示通道损失系数;B表示可用的频谱带宽;$p_i^{\rm{u}}$表示第i个任务卸载任务数据的传输功率;$p_i^{\rm{s}}$表示第i个任务卸载程序数据的传输功率;${\sigma ^2}$表示噪声功率。

每个任务都可以在本地或边缘服务器上执行计算。令${a_i} \in \left\{ {0, 1} \right\}$表示卸载决策,ai=0表示第i个任务在本地执行,ai=1表示第i个任务在边缘服务器上执行。

假设MU只能上传用于处理当前在边缘执行的任务的程序数据,即:如果${u_{i, j}} = 1$ai=1,则MU在边缘执行第i个任务时只能上传第j个程序数据。${x_{i, j}}$表示缓存决策,${x_{i, j}} = 1$表示执行第i个任务的第j个程序数据缓存到边缘服务器上,但只有在以下2个条件中至少有1个成立时才能实现,否则${x_{i, j}} = 0$

1)第j个程序在上个任务执行之前已经在缓存中,即${x_{i - 1, j}}{\rm{ = }}1$

2)第j个程序数据在上个任务执行时间内上传到边缘服务器,这需要${u_{i - 1, j}}{\rm{ = }}1$${a_{i - 1}} = 1$,或者等价于${a_{i - 1}}{u_{i - 1, j}} = 1$,因此,缓存决策的约束条件如式(3)所示:

$ \begin{array}{l}{x}_{i, j}\le {a}_{i-1}{u}_{i-1, j}+{x}_{i-1, j}\\ i\in \varLambda =\{{\rm{1, 2}}, \cdots , M\}, {\rm{ }}j\in \varGamma =\{{\rm{1, 2}}, \cdots , N\}\end{array} $ (3)

此外,在整个系统任务的处理过程中,需要满足式(4)所示的缓存容量约束:

$ \sum\limits _{j=1}^{N}{r}_{j}{x}_{i, j}\le R, i\in \varLambda =\{{\rm{1, 2}}, \cdots , M\} $ (4)
2.2 计算模型 2.2.1 本地计算

假设MU拥有处理其任务所需的所有程序,如预安装在本地磁盘上,这样本地处理任务i所花费的时间只包括计算时间。第i个任务在本地计算所消耗的时间$T_i^1$和能量$E_i^1$如式(5)所示:

$ {T}_{i}^{\rm{1}}=\frac{{L}_{i}}{{f}_{i}^{\rm{1}}} ,{E}_{i}^{\rm{1}}=k({f}_{i}^{\rm{1}}{)}^{\alpha }{T}_{i}^{\rm{1}}=k\frac{({L}_{i}{)}^{\alpha }}{({f}_{i}^{\rm{1}}{)}^{\alpha -1}} $ (5)

其中:$f_i^1$为本地CPU频率,$f_i^1 \le F_{\max }^{{\rm{local}}}$$F_{\max }^{{\rm{local}}}$为本地服务器分配为任务的最大计算频率;k为计算能效参数,k > 0;$\alpha $为指数参数,$\alpha \ge 2$

若第i-1个任务卸载到MEC计算,则第i个任务的输入数据从MEC下载到MU进行本地计算的传输时间$T_i^{\rm{d}}$如式(6)所示:

$ {T}_{i}^{{\rm{d}}}=\frac{{O}_{i-1}}{{R}_{i}^{{\rm{d}}}} $ (6)

其中:$R_i^{\rm{d}} = \overline B 1{\rm{b}}\left( {1 + \frac{{{p_0}{h_i}}}{{\sigma _ - ^2}}} \right)$表示在下行传输噪声功率${\sigma _ - ^2}$下,MEC服务器使用固定功率p0和下行带宽$\overline B $进行传输时给定的第i个任务下行数据速率。

因此,第i个任务在本地执行的总时延$T_i^{{\rm{local}}}$如式(7)所示:

$ {T}_{i}^{{\rm{l}}{\rm{o}}{\rm{c}}{\rm{a}}{\rm{l}}}=(1-{a}_{i}){T}_{i}^{{\rm{1}}}+{a}_{i-1}(1-{a}_{i}){T}_{i}^{{\rm{d}}} $ (7)
2.2.2 卸载计算

每个任务可以在MU本地计算,也可以卸载到边缘服务器上进行远程执行。当任务i在边缘上执行时,计算时间包括任务计算时间和程序生成时间两部分。

任务计算时间$T_i^{\rm{c}}$如式(8)所示:

$ {T}_{i}^{\rm{c}}=\frac{{L}_{i}}{{f}_{i}^{\rm{m}\rm{e}\rm{c}}} ,{f}_{i}^{\rm{m}\rm{e}\rm{c}}=\frac{{L}_{i}}{\sum\limits _{i\in \varLambda }{a}_{i}{L}_{i}}\cdot F $ (8)

其中:$f_i^{{\rm{mec}}}$是边缘服务器根据加权比例分配机制分配给任务i的CPU频率。假设$f_i^{{\rm{mec}}} > F_{\max }^{{\rm{local}}}$,即服务器具有比MU更强的计算能力。

如果计算任务所需程序没有在缓存中,则服务器可能需要生成一个新的程序(如程序编译和加载函数库)。

程序生成时间wi如式(9)所示:

$ {w}_{i}=\sum\limits _{j=1}^{N}{u}_{i, j}{D}_{j} $ (9)

其中:Dj为第j个程序生成时间。

i个任务卸载程序数据上传所消耗的时间和能量分别如式(10)和式(11)所示:

$ {T}_{i}^{{\rm{s}}}=\frac{\sum\limits _{j=1}^{N}{u}_{i, j}{s}_{j}}{{R}_{i}^{{\rm{u}}}} $ (10)
$ {E}_{i}^{{\rm{s}}}={p}_{i}^{{\rm{s}}}{T}_{i}^{{\rm{s}}}={p}_{i}^{{\rm{s}}}\frac{\sum\limits _{j=1}^{N}{u}_{i, j}{s}_{j}}{{R}_{i}^{{\rm{u}}}} $ (11)

能量函数对于时间是凸的。因此,第i个任务卸载任务数据所花费的时间和能量分别如式(12)和式(13)所示:

$ {T}_{i}^{{\rm{u}}}=\frac{{O}_{i-1}}{{R}_{i}^{{\rm{u}}}} $ (12)
$ {E}_{i}^{{\rm{u}}}={p}_{i}^{{\rm{u}}}{T}_{i}^{{\rm{u}}}={p}_{i}^{{\rm{u}}}\frac{{O}_{i-1}}{{R}_{i}^{{\rm{u}}}} $ (13)

综上所述,第i个任务卸载执行的总延迟和MU所消耗的能量分别如式(14)和式(15)所示:

$ {T}_{i}^{{\rm{o}}{\rm{f}}{\rm{f}}}={a}_{i}{T}_{i}^{{\rm{c}}}+(1-{a}_{i-1}){a}_{i}{T}_{i}^{{\rm{u}}}+{a}_{i}{T}_{i}^{{\rm{o}}} $ (14)
$ {E}_{i}^{{\rm{o}}{\rm{f}}{\rm{f}}}=(1-{a}_{i-1}){a}_{i}{E}_{i}^{{\rm{u}}}+{a}_{i}{E}_{i}^{{\rm{o}}} $ (15)

其中:$T_i^{\rm{o}}$为第i个任务上传程序数据和MEC生成程序所消耗的时间,$T_i^{\rm{o}} = \left( {{w_i} + T_i^{\rm{s}}} \right)\sum\limits_{j = 1}^N {\left( {1 - {x_{i, j}}} \right){u_{i, j}}} $$E_i^{\rm{o}}$为第i个任务上传程序数据MU所消耗的能量,$E_i^{\rm{o}} = E_i^{\rm{s}}\sum\limits_{j = 1}^N {\left( {1 - {x_{i, j}}} \right){u_{i, j}}} $

本文研究的目标是优化用户的QoE和用户使用计算资源所节约的成本,其中计算时间和能耗由本地执行和卸载执行两部分组成,第i个任务的执行时间和总能耗如式(16)和式(17)所示:

$ {T}_{i}={T}_{i}^{{\rm{l}}{\rm{o}}{\rm{c}}{\rm{a}}{\rm{l}}}+{T}_{i}^{{\rm{o}}{\rm{f}}{\rm{f}}}=(1-{a}_{i-1}){a}_{i}{T}_{i}^{{\rm{u}}}+{a}_{i-1}(1-{a}_{i}){T}_{i}^{{\rm{d}}} $ (16)
$ {E}_{i}=(1-{a}_{i}){E}_{i}^{{\rm{1}}}+(1-{a}_{i-1}){a}_{i}{E}_{i}^{{\rm{u}}}+{a}_{i}{E}_{i}^{{\rm{o}}} $ (17)

通过使用具有2个预定义阈值TminTmax的QoE映射函数,将服务延迟映射到一个平均意见评分量表中,以优秀、良好、合格、差、不满意或阻塞评价,如式(18)所示:

$ {W}_{i}=\left\{\begin{array}{l}1, {T}_{i}\le {T}^{{\rm{m}}{\rm{i}}{\rm{n}}}\\ \frac{{T}^{{\rm{m}}{\rm{a}}{\rm{x}}}-{T}_{i}}{{T}^{{\rm{m}}{\rm{a}}{\rm{x}}}-{T}^{{\rm{m}}{\rm{i}}{\rm{n}}}}, {T}^{{\rm{m}}{\rm{i}}{\rm{n}}}<{T}_{i}<{T}^{{\rm{m}}{\rm{a}}{\rm{x}}}\\ {W}^{{\rm{b}}},{\rm{其}}{\rm{他}}\end{array}\right. $ (18)

当任务i的执行时间$T_i^1$小于阈值Tmin,属于极佳的完成时间,则此时的服务可以评为满分为1分;当任务i的执行时间$T_i^1$处于阈值TminTmax之间,此时的完成时间在可接受的范围内,服务可以评分为$\frac{{{T^{{{\max }_i}}}}}{{{T^{{{\max }^{\min }}}}}}$$T_i^1$越接近Tmax,表明所需的完成时间越久,此时的评分越低;当任务i的执行时间$T_i^1$大于阈值Tmax,属于不可接受的完成时间,此时的服务评得分为Wb

定义一个可选点${T^{{\rm{fair}}}} \in \left( {{T^{\min }}, {T^{\max }}} \right)$,从这个点开始,当服务质量下降到较差程度时,用户就会对服务感到失望。这些阈值可以由服务提供者根据每个服务的需求在其清单中确定,用户体验质量映射函数如图 3所示。

Download:
图 3 用户体验质量映射函数 Fig. 3 User experience quality mapping function

除了用户的QoE,本文模型还考虑了使用计算资源节约的成本。基本上,更小的服务延迟是以更高的计算资源使用成本为代价的。用ε表示边缘服务器计算任务i的单位成本,设Hi为任务i使用计算资源的预算,移动边缘服务器分配给任务i的计算资源,必须满足式(19)所示的预算约束:

$ {f}_{i}^{{\rm{m}}{\rm{e}}{\rm{c}}}={\rm{m}}{\rm{i}}{\rm{n}}\left\{\frac{{H}_{i}}{\varepsilon }, \frac{{L}_{i}}{\sum\limits _{i\in \varLambda }{a}_{i}{L}_{i}}F\right\} $ (19)

边缘服务器分配给任务i的计算资源成本如式(20)所示,任务i节约的预算成本如式(21)所示,则任务i的效用函数如式(22)所示:

$ {c}_{i}=\sum\limits _{i\in \varLambda }{a}_{i}{f}_{i}^{{\rm{m}}{\rm{e}}{\rm{c}}}\varepsilon $ (20)
$ {S}_{i}=\frac{{H}_{i}-{c}_{i}}{{H}_{i}} ,i\in \varLambda $ (21)
$ {Q}_{i}=\lambda {W}_{i}+(1-\lambda ){S}_{i} ,\lambda \in \left\{\rm{0, 1}\right\} $ (22)

上述模型的目标是最大化用户的总效用以及联合优化服务缓存、任务卸载和资源分配问题,是一个混合整数非线性规划问题,如式(23)所示:

$ \underset{{a}_{i}, {x}_{i, j}, {f}_{i}^{{\rm{1}}}, {p}_{i}^{{\rm{u}}}, {p}_{i}^{{\rm{s}}}}{{\rm{m}}{\rm{a}}{\rm{x}}}\sum\limits _{i\in \varLambda }{Q}_{i} $ (23a)
$ {a}_{i}, {x}_{i, j}\in \left\{{\rm{0, 1}}\right\}, i={\rm{1, 2}}, \cdots , M, j={\rm{1, 2}}, \cdots , N $ (23b)
$ \sum\limits _{j=1}^{N}{r}_{j}{x}_{i, j}\le R, i={\rm{1, 2}}, \cdots , M $ (23c)
$ 0\le {p}_{i}^{{\rm{u}}}, {p}_{i}^{{\rm{s}}}\le {P}_{{\rm{m}}{\rm{a}}{\rm{x}}} $ (23d)
$ 0\le {f}_{i}^{\rm{1}}\le {F}_{\rm{m}\rm{a}\rm{x}}^{\rm{l}\rm{o}\rm{c}\rm{a}\rm{l}} $ (23e)
$ (1-{a}_{i}){E}_{i}^{\rm{1}}+(1-{a}_{i-1}){a}_{i}{E}_{i}^{\rm{u}}+{a}_{i}{E}_{i}^{\rm{o}}\le {E}_{\rm{m}\rm{a}\rm{x}} $ (23f)

其中:式(23b)表示卸载和缓存决策分别为0~1整数优化变量;式(23c)表示缓存的计算结果不能超过MEC服务器的缓存容量;式(23d)表示用户i分配给任务j的数据传输功率不能超过最大传输功率;式(23e)表示用户分配给任务j的CPU频率不能超过最大本地CPU频率;式(23f)表示任务i执行的能量消耗不能超过最大能源消耗限制。

3 基于DDPG的策略优化和资源分配算法

本文对单用户多任务MEC系统中联合任务卸载、缓存决策和本地服务器资源分配的问题进行建模,目标是最大化用户对服务的体验质量和用户使用计算资源所节约的成本。为求解这个混合整数非线性规划问题,提出基于DDPG的优化算法DADDPG,最大程度地优化用户的体验质量和节约的成本。算法框架如图 4所示。

Download:
图 4 DADDPG算法框架 Fig. 4 Framework of DADDPG algorithm

深度强化学习方法求解问题的关键要素为状态、动作和奖励,具体到本节的模型定义如下:

1)系统State。用S表示系统状态,$S = \left( {Q, \phi , \zeta } \right)$,其中:Q表示整个系统的总效用值,即目标值;ϕ表示所有边缘服务器的剩余可用计算资源,$\phi = ({\phi _1}, {\phi _2}, \cdots , {\phi _i}, \cdots , {\phi _M})$${\phi _i} = F - \sum\limits_{i = 1}^M {{a_i}f_i^{{\rm{mec}}}} $$\zeta $表示边缘服务器的剩余可用缓存容量,$\zeta = \left( {{\zeta _1}, {\zeta _2}, \cdots , {\zeta _i}, \cdots , {\zeta _M}} \right)$${\zeta _i} = R - \sum\limits_{j = 1}^N {{r_j}{x_{i, j}}, i = 1, 2, \cdots , M} $

2)系统Action。用A表示系统动作,$ [{a}_{1}, {a}_{2}, \cdots , {a}_{M}, $ $ {x}_{1}, {x}_{2}, \cdots , {x}_{M}, {f}_{1}^{\rm{1}}, {f}_{2}^{\rm{1}}, \cdots , {f}_{M}^{\rm{1}}, {p}_{1}, {p}_{2}, \cdots , {p}_{M}] $。系统动作包括卸载决策$ {a}_{i} $和缓存决策$ {x}_{i, j} $$ x=[{x}_{i, 1}, $ $ {x}_{i, 2}, \cdots , {x}_{i, N}] $$ {p}_{i}=[{p}_{i}^{\rm{u}}, {p}_{i}^{\rm{s}}] $为上行传输功率。

3)系统Reward。在本文研究的MEC系统中,优化的目标是最大化用户的总效用,在每一步,智能体在执行一个动作A之后,都会在这个动作对应的状态S下获得奖励值R。一般来说,奖励函数应与目标函数相关。因此,本文的优化目标是获得最大的用户总效用,而深度学习的目标是获得最大的奖励回报,奖励值应与系统总效用的大小呈正相关。因此,将奖励定义为目标值,即$ R={Q}_{i} $

图 4所示,DADDPG算法由Actor部分和Critic部分组成,Actor部分的角色是根据所观察到的环境状态定义参数化的策略并生成行动,而Critic部分则负责通过处理从环境中获得的奖励来评估和批评当前的策略。简单来说,Actor负责策略网络,进行动作选择,Critic负责值网络。

Critic使用经验回放技术。回放内存使用$ ({S}_{t}, {A}_{t}, {R}_{t}, {S}_{t+1}) $元组将任何轨迹保存为一条记录,并使用记录中的一个小批元组更新参数。评判过程中的损失函数定义如式(24)所示:

$ L\left(w\right)={E}_{D}[{R}_{t}+\beta \rm{m}\rm{a}\rm{x}{Q}_{{w}^{-}}({S}_{t+1}, {A}_{t+1})-{Q}_{w}({S}_{t}, {A}_{t}\left)\right] $ (24)

其中:$ {w}^{-} $为目标Q网络参数,与当前onlineQ网络相比相对固定;D为回放内存,即$ ({S}_{t}, {A}_{t}, {R}_{t}, {S}_{t+1}) \sim D $。每次迭代时,使用固定参数的目标神经网络计算损失函数。为了使损失函数最小化,使用梯度下降法更新参数,如式(25)所示:

$ \rm{\Delta }w={\alpha }_{\rm{c}}[{Q}_{t}-{Q}_{w}({S}_{t}, {A}_{t}\left)\right]{\nabla }_{w}{Q}_{w}({S}_{t}, {A}_{t}) $ (25)

策略$ \pi (S, A) $表示Agent的Action,其输出不是单个的Action动作,而是选择动作的概率分布,所以,一个状态下的所有动作概率加和应当为1。Actor采用梯度上升法对策略进行维护和改进。设置策略$ \pi (S, A) $如式(26)所示:

$ \pi (S, A)=\frac{{\rm{e}}^{{\theta }^{\rm{T}}}\cdot \phi (S, A)}{\sum \limits_{a\in A}{\rm{e}}^{{\theta }^{\rm{T}}}\cdot \phi (S, A)} $ (26)

其中:$ \theta $为online策略网络参数;$ \phi (S, A) $为状态和动作的特征向量。该策略以优化性能指标为目标,通常以目标函数的形式给出:

$ J\left( {{\pi _\theta }} \right) = E\left\{ {{Q^{\left( \pi \right)}}\left( {S, A} \right)} \right\} = \sum\limits_{s \in S} d \left( S \right)\sum\limits_{a \in A} {{\pi _\theta }} (A|S){Q^{\left( \pi \right)}}(S, A) $ (27)

$ \theta $的梯度可以通过偏微分法得出:

$ \pi (S, A)=\frac{{\rm{e}}^{{\theta }^{\rm{T}}}\cdot \phi (S, A)}{\sum\limits _{a\in A}{\rm{e}}^{{\theta }^{\rm{T}}}\cdot \phi (S, A)} $ (28)
$ \begin{array}{l}{\nabla }_{\theta }J\left({\pi }_{\theta }\right)=\sum\limits _{s\in S}d\left(S\right)\sum\limits _{a\in A}{\pi }_{\theta }\left(A\right|S\left){\nabla }_{\theta }\rm{l}\rm{n}\rm{ }{\pi }_{\theta }\right(A\left|S\right){Q}_{w}(S, A)=\\ E\left\{{\nabla }_{\theta }\rm{l}\rm{n}\rm{ }{\pi }_{\theta }\right(A\left|S\right){Q}_{w}(S, A)\}\end{array} $ (29)

使用随机梯度上升方法优化目标,更新采样梯度:

$ \rm{\Delta }\theta ={\alpha }_{\alpha }\nabla \rm{l}\rm{n}{\pi }_{\theta }(S, A){Q}_{w}(S, A) $ (30)

DADDPG算法具体描述如下:

算法  DADDPG

输入  用户设备的所有任务集合,边缘服务器CPU总频率F和缓存容量R

输出  达到最大用户总效用的最优动作向量

初始化  经验池容量D,Actor网络中online策略网络参数和目标策略网络参数$ {\theta }^{-}=\theta $,Critic网络中online Q网络参数和目标Q网络参数$ {w}^{-}=w $,设置随机噪声$ \kappa $,衰减因子$ \beta $,软更新系数$ \tau $,目标Q网络参数更新频率C

For t=1,T:

1.初始化当前状态$ {\rm{S}}_{\rm{t}} $

2.Actor根据$ {\rm{S}}_{\rm{t}} $选择当前动作$ {\rm{A}}_{\rm{t}} $=$ {\rm{ \mathsf{ π} }}_{\rm{ \mathsf{ θ} }}\left({\rm{S}}_{\rm{t}}\right) $+$ {\rm{ \mathsf{ κ} }} $,得到Rt和下一步状态St+1

3.将元组(St,At,Rt,St+1)存储到经验池D中;

4.从经验池中随机采样一批数据(Sj,Aj,Rj,Sj+1)作为训练数据。

5.If $ {\rm{S}}_{\rm{j}+1} $ is final state

  $ {\rm{y}}_{\rm{j}} $=$ {\rm{R}}_{\rm{j}} $

  Else

  $ {\rm{y}}_{\rm{j}} $=$ {\rm{R}}_{\rm{j}} $+$ \rm{ \mathsf{ β} }\rm{ }\rm{m}\rm{a}\rm{x}{\rm{Q}}_{{\rm{w}}^{-}}({\rm{S}}_{\rm{j}+1}, {\rm{A}}_{\rm{j}+1})-{\rm{Q}}_{\rm{w}}({\rm{S}}_{\rm{j}}, {\rm{A}}_{\rm{j}}) $

6.利用式(30)更新Critic当前网络的所有参数。

7.利用式(27)更新Actor当前网络的所有参数。

8.if T%%C=1

  $ {\rm{w}}^{-}\leftarrow \rm{ \mathsf{ τ} }\rm{w} $+$ (1-\rm{ \mathsf{ τ} }){\rm{w}}^{-} $$ {\rm{ \mathsf{ θ} }}^{-}\leftarrow \rm{ \mathsf{ τ} }\rm{ \mathsf{ θ} }+(1-\rm{ \mathsf{ τ} }){\rm{ \mathsf{ θ} }}^{-} $

9.If $ {\rm{S}}_{\rm{j}+1} $ is final state

  End for

Else转到步骤2

4 仿真实验 4.1 参数设置

利用python3.7进行仿真实验。设置1个MEC服务器和1个用户的场景,该用户有一个任务序列需要执行。设置$ \overline{B}=B $$ {\sigma }_{-}=\sigma $。仿真实验中使用的初始参数如表 1所示。

下载CSV 表 1 仿真实验初始参数 Table 1 Initial parameters of simulation experiment
4.2 实验结果分析

选取以下3种算法,通过仿真结果对比验证DADDPG算法的有效性和优越性。

1)无缓存策略的DADDPG算法DADDPGno:每个任务可以选择卸载执行和本地执行,但MEC不提供缓存功能。

2)随机选择策略算法DARAND:每个任务随机选择卸载执行和本地执行,也随机选择缓存与不缓存相应数据到MEC。

3)无缓存随机选择策略算法DARANDno:每个任务随机选择卸载执行和本地执行,但MEC不提供缓存功能。

图 5展示了不同算法下总效用随任务数的变化情况,设置目标函数的权重系数w=0.5。可以看出:随着任务数的累加,各个算法的总效用均随之增加,这是因为随着任务数增多,执行任务的时间和用户利用计算资源的成本也相应增加;本文提出的DADDPG算法在不同的权重影响下总效用均为最大,这是因为该算法采用了双层网络,可以更稳定地优化变量,即卸载策略、缓存策略和本地计算频率、本地上传功率,可以获得更优的目标值;DARAND算法是随机选择卸载策略和缓存策略,DARANDno算法是随机选择卸载策略,这样获得的目标值不是稳定的,优化性能不如本文提出的DADDPG算法。

Download:
图 5 不同任务数对总效用的影响 Fig. 5 The total utility versus different numbers of tasks

图 6展示了DADDPG算法下总体验质量(QoE)和为用户节省成本的情况。通过改变权重参数,在总用户体验质量和为用户节省成本之间的最佳性能权衡。正如预期,当w增加时,总用户体验质量的值增加,此时用户节省的成本同步下降。可以看出:总体验质量在0.1 < w < 0.3的区间内增加比较缓慢,而节省成本的下降速度稍快,因为在这一区间内,总体验质量占总效用的比重不高,主要侧重优化节省成本;当0.3 < w < 0.7时,总体验质量增加速度较快,因为解决方案将把重点放在提高体验质量,从而使用了更多的计算资源;当w > 0.7时,总体验质量增加比较缓慢,而总节约成本降低较快。由此可见,对于用户来说,即使利用了更多的计算资源来减少延迟,其体验质量也不会在超过某个阈值后得到改善。

Download:
图 6 不同权重对QoE和节约成本的影响 Fig. 6 QoE and cost savings versus different weights

图 7展示了改变平均预算时本文DADDPG算法和3个基线之间的总效用(w=0.5)。此实验中比较了3种情况下用户总效用的变化情况:1)比较平均预算的一半$ \overline{{H}_{i}}/2 $对各个算法的总效用的影响;2)比较平均预算$ \overline{{H}_{i}} $对各个算法的总效用的影响;3)比较平均预算的2倍$ \overline{{H}_{i}}\times 2 $对各个算法的总效用的影响。可以看出,随着平均预算的增加,所有算法的总效用都有所增加。其中,DARANDno算法对所有预算值的总效用是最差的,因为用户的体验质量非常低,特别是那些需要低延迟VR服务的用户。通过共享资源和平衡在计算MEC节点间的负载时,拥有缓存功能的DARAND算法比没有缓存功能的算法获得了更高的总效用。而本文算法在没有缓存功能的情况下通过优化服务缓存和任务卸载决策以及资源分配,获得的总效用高于DARAND算法。

Download:
图 7 不同预算成本对总效用的影响 Fig. 7 The total utility versus different weighted budgets

图 8展示了不同权重下DADDPG算法的训练性能。可以看出,在3种不同权重参数下,DADDPG算法最终都可以收敛。当调整系数w= 0.1和w=0.9时,累计奖励值大于w=0.5的情况,这是因为w=0.1时解决方案侧重总节约成本,w= 0.9时解决方案侧重总体验质量使得目标值会偏向总节约成本或者总节约成本的值,而w=0.5时总体验质量和总节约成本会达到平衡状态。同时由图 8可以看出,3种不同权重参数下的累计奖励值均在第510 episode左右达到收敛状态。

Download:
图 8 DADDPG算法的训练性能 Fig. 8 Training performance of DADDPG algorithm
5 结束语

本文基于深度确定性策略梯度算法对MEC中服务缓存、任务卸载和资源分配进行联合优化,提出DADDPG算法,并通过仿真分析各变量在实验过程中对服务质量和节约成本的影响。实验结果表明,DADDPG算法能够有效地优化目标值。然而在任务卸载过程中,需要选择任务数据卸载与存储的MEC,而在快速移动时可能会使移动用户在MEC之间进行快速切换,这会导致任务中断,进而影响用户的QoE。因此,下一步将考虑用户的移动性,完善MEC系统中任务卸载和服务缓存结构。

参考文献
[1]
HASABELNABY M A, SELMY H, DESSOUKY M I. Joint optimal transceiver placement and resource allocation schemes for redirected cooperative hybrid FSO/mmW 5G fronthaul networks[J]. Journal of Optical Communications and Networking, 2018, 10(12): 975. DOI:10.1364/JOCN.10.000975
[2]
SABELLA D, VAILLANT A, KUURE P, et al. Mobile-edge computing architecture: the role of MEC in the Internet of things[J]. IEEE Consumer Electronics Magazine, 2016, 5(4): 84-91. DOI:10.1109/MCE.2016.2590118
[3]
SHI W S, ZHANG X Z, WANG Y F, et al. Edge computing: state-of-the-art and future directions[J]. Journal of Computer Research and Development, 2019, 56(1): 69-89. (in Chinese)
施巍松, 张星洲, 王一帆, 等. 边缘计算: 现状与展望[J]. 计算机研究与发展, 2019, 56(1): 69-89.
[4]
XIE R C, LIAN X F, JIA Q M, et al. Survey on computation offloading in mobile edge computing[J]. Journal on Communications, 2018, 39(11): 142-159. (in Chinese)
谢人超, 廉晓飞, 贾庆民, 等. 移动边缘计算卸载技术综述[J]. 通信学报, 2018, 39(11): 142-159.
[5]
ZHANG P, WANG B S. Design of a POF-based communication system for edge computing in intelligent transportation system[J]. Semiconductor Optoelectronics, 2019, 40(6): 886-890. (in Chinese)
张鹏, 王博思. 基于塑料光纤的智能交通移动边缘计算通信系统设计[J]. 半导体光电, 2019, 40(6): 886-890.
[6]
MAO Y, YOU C, ZHANG J, et al. A survey on mobile edge computing: the communication perspective[J]. IEEE Communications Surveys & Tutorials, 2017, 19(4): 2322-2358.
[7]
WANG C, YU F R, LIANG C, et al. Joint computation offloading and interference management in wireless cellular networks with mobile edge computing[J]. IEEE Transactions on Vehicular Technology, 2017, 66(8): 7432-7445. DOI:10.1109/TVT.2017.2672701
[8]
ZHANG G, YAN C, SHEN Z, et al. Distributed energy management for multiuser mobile-edge computing systems with energy harvesting devices and QoS constraints[J]. IEEE Internet of Things Journal, 2019, 6(3): 4035-4048. DOI:10.1109/JIOT.2018.2875909
[9]
LIU Y, PENG M, SHOU G, et al. Towards edge intelligence: multi-access edge computing for 5G and Internet of things[J]. IEEE Internet of Things Journal, 2020, 7(8): 6722-6747. DOI:10.1109/JIOT.2020.3004500
[10]
ZHU D, WANG X D. Research on edge computing and caching technology of mobile network[J]. Application of Railway Computer, 2017, 26(8): 56-59. (in Chinese)
朱丹, 王晓冬. 移动网络边缘计算与缓存技术研究[J]. 铁路计算机应用, 2017, 26(8): 56-59.
[11]
ZHOU Z, YU S, CHEN X. Edge intelligence: a new paradigm of edge computing and artificial intelligence[J]. Big Data, 2019, 5(2): 53-63. (in Chinese)
周知, 于帅, 陈旭. 边缘智能: 边缘计算与人工智能融合的新范式[J]. 大数据, 2019, 5(2): 53-63.
[12]
YAO J, HAN T, ANSARI N. On mobile edge caching[J]. IEEE Communications Surveys & Tutorials, 2019, 21(3): 2525-2553. DOI:10.1109/COMST.2019.2908280
[13]
LYU X, REN C, NI W, et al. Distributed online learning of cooperative caching in edge cloud[J]. IEEE Transactions on Mobile Computing, 2021, 20(8): 2550-2562. DOI:10.1109/TMC.2020.2983924
[14]
MAO Y, ZHANG J, LETAIEF K B. Joint task offloading scheduling and transmit power allocation for mobile-edge computing systems[C]//Proceedings of 2017 IEEE Wireless Communications and Networking Conference. Washington D.C., USA: IEEE Press, 2017: 1-6.
[15]
JANATIAN N, STUPIA I, VANDENDORPE L. Optimal resource allocation in ultra-low power fog-computing SWIPT-based networks[C]//Proceedings of 2018 IEEE Wireless Communications and Networking Conference. Washington D.C., USA: IEEE Press, 2018: 1-6.
[16]
NING Z, DONG P, KONG X, et al. A cooperative partial computation offloading scheme for mobile edge computing enabled Internet of things[J]. IEEE Internet of Things Journal, 2019, 6(3): 4804-4814. DOI:10.1109/JIOT.2018.2868616
[17]
QIN M, CHEN L, ZHAO N, et al. Power-constrained edge computing with maximum processing capacity for IoT networks[J]. IEEE Internet of Things Journal, 2019, 6(3): 4330-4343. DOI:10.1109/JIOT.2018.2875218
[18]
YANG P, LI L, LIANG W, et al. Latency optimization for multi-user NOMA-MEC offloading using reinforcement learning[C]//Proceedings of the 28th Wireless and Optical Communications Conference. Beijing, China: [s. n. ], 2019: 1-5.
[19]
ZHANG Y, ZHOU X, TENG Y, et al. Resource allocation for multi-user MEC system: machine learning approaches[C]//Proceedings of 2018 International Conference on Computational Science and Computational Intelligence. Washington D.C., USA: IEEE Press, 2018: 794-799.
[20]
ZHOU W, LIN L, LIU J, et al. Joint offloading decision and resource allocation for multiuser NOMA-MEC systems[J]. IEEE Access, 2019, 7: 181100-181116. DOI:10.1109/ACCESS.2019.2959434
[21]
SHENG M, DAI Y, LIU J, et al. Delay-aware computation offloading in NOMA MEC under differentiated uploading delay[J]. IEEE Transactions on Wireless Communications, 2020, 19(4): 2813-2826. DOI:10.1109/TWC.2020.2968426
[22]
YANG T, YANG J. Deep reinforcement learning method of offloading decision and resource allocation in MEC[J]. Computer Engineering, 2021, 47(8): 37-44. (in Chinese)
杨天, 杨军. MEC中卸载决策与资源分配的深度强化学习方法[J]. 计算机工程, 2021, 47(8): 37-44.
[23]
ALFAKIH T, HASSAN M M, GUMAEI A, et al. Task offloading and resource allocation for mobile edge computing by deep reinforcement learning based on SARSA[J]. IEEE Access, 2020, 8: 54074-54084.
[24]
KUANG Z F, LI L F, GAO J, et al. Partial offloading scheduling and power allocation for mobile edge computing systems[J]. IEEE Internet of Things Journal, 2019, 6(4): 6774-6785. DOI:10.1109/JIOT.2019.2911455
[25]
YU X, SHI X Q, LIU Y X. Joint optimization of offloading strategy and power in mobile-edge computing[J]. Computer Engineering, 2020, 46(6): 20-25. (in Chinese)
余翔, 石雪琴, 刘一勋. 移动边缘计算中卸载策略与功率的联合优化[J]. 计算机工程, 2020, 46(6): 20-25.
[26]
SHUAI Y, LANGAR R, FU X, et al. Computation offloading with data caching enhancement for mobile edge computing[J]. IEEE Transactions on Vehicular Technology, 2018, 67(11): 11098-11112. DOI:10.1109/TVT.2018.2869144
[27]
ZHOU Y, YU F R, CHEN J, et al. Resource allocation for information-centric virtualized heterogeneous networks with in-network caching and mobile edge computing[J]. IEEE Transactions on Vehicular Technology, 2017, 66(12): 11339-11351. DOI:10.1109/TVT.2017.2737028
[28]
PHAM X Q, NGUYEN T D, NGUYEN V D, et al. Joint service caching and task offloading in multi-access edge computing: a QoE-based utility optimization approach[J]. IEEE Communications Letters, 2021, 25(3): 965-969. DOI:10.1109/LCOMM.2020.3034668