Space/Aerial-Assisted Computing Offloading for IoT Applications: A Learning-Based论文复现

IEEE经典论文复现

暑期生产实习技术报告

姚晔

**论文标题:**Space/Aerial-Assisted Computing Offloading for IoT
Applications: A Learning-Based
Approach(面向IoT应用的空间/空中辅助计算卸载:一种基于学习的方法。)

**论文作者:**Xiongwen Cheng; Feng Lyu; Wei Quan; Conghao Zhou; Hongli
He; Weisen Shi; Xuemin Shen

**论文摘要:**物联网(IoT)计算卸载是一个具有挑战性的问题,尤其是在公共边缘/云基础设施不可用的偏远地区。在论文中提出了一种空间-空中-地面集成网络(SAGIN)边缘/云计算架构,用于在考虑远程能源和计算限制的情况下卸载计算密集型应用,其中飞行的无人机(UAV)提供近用户边缘计算,卫星提供云计算访问。首先,对于无人机边缘服务器,论文提出了一种联合资源分配和任务调度方法,以有效地将计算资源分配给虚拟机(VM)并调度卸载的任务。其次,论文研究了SAGIN中的计算卸载问题,并提出了一种基于学习的方法来从动态SAGIN环境中学习最优卸载策略。具体而言,论文将卸载决策制定为马尔可夫决策过程,其中系统状态考虑网络动态。为了应对系统的动态性和复杂性,论文提出了一种基于深度强化学习的计算卸载方法来动态学习最优卸载策略,其中论文采用策略梯度方法来处理大的动作空间,并采用actor批评方法来加速学习过程。仿真结果表明,所提出的边缘虚拟机分配和任务调度方法可以以非常低的复杂度实现接近最优的性能,并且所提出的基于学习的计算卸载算法与其他卸载方法相比不仅收敛速度快,而且实现了较低的总成本。

**论文关键词:**计算卸载、边缘计算、空-天-地(SAG)、物联网(IoT)、强化学习(RL)。

论文研究背景:随着5G网络和物联网(IoT)的快速发展,出现了大量有前景的应用和服务,如虚拟现实、高清直播、自动驾驶、工业自动化、智能家居等,这些应用和服务获得了5G网络提供的好处,如超高数据速率、低延迟、高可靠性和大规模连接,。然而,除了高效可靠的通信之外,广泛的应用还需要大量的计算能力。例如,虚拟现实和高清视频流需要大量的计算资源用于渲染和视频编码/解码,而自动驾驶车辆依赖于计算进行基于人工智能(AI)的转向控制。这些计算密集型应用对资源受限终端设备(尤其是物联网设备)的电池和计算能力提出了巨大挑战,这推动了云计算,其中计算密集型的应用被卸载到具有集中和丰富计算资源的云服务器。尽管云计算可以显著减少计算延迟和用户的能量消耗,但它可能无法满足延迟敏感应用(如移动游戏和增强现实)的需求,因为终端用户和云服务器之间的长传输距离导致长传输延迟。为了解决这个问题,移动边缘计算(MEC)已经被广泛研究,其中网络边缘中的计算资源被用于提供高效和灵活的计算服务。在5G无线系统中,将部署超密集的网络边缘设备,如宏/小小区基站和WiFi接入点,它们可以提供指数增长的边缘计算资源。MEC中的许多重要问题已被广泛研究,包括卸载任务模型、、能源效率-、延迟减少-以及通信和计算的联合优化、。

然而,5G网络可能无法为郊区和农村地区提供无处不在的覆盖,在这些地区,物联网设备可以广泛部署,以执行某些计算要求相对较高的应用程序。例如,传感信息的融合,特别是高清晰度声音或视频信息的处理,将迅速耗尽汇点节点的电池,并导致大的处理延迟。由于缺乏地面接入网络覆盖,典型的边缘和云计算范例无法应用于此类场景。为此,作者建议采用空间-空中-地面集成网络(SAGIN)架构,用于远程物联网应用程序的计算卸载。SAGIN将卫星网络和空中网络与地面网络相结合,为大区域提供无缝和灵活的网络覆盖和服务,因此可应用于智能交通系统、远程区域监控、灾害救援和大规模高速移动互联网接入等许多有前景的领域。SAGIN是一个多维异构网络,由三个网络段组成,即卫星网络、空中网络和地面网络。每个网段拥有不同的资源,并受到不同限制的影响。低地球轨道(LEO)和地球同步(GEO)卫星构成了一个分层网络,其中,低地球轨道卫星提供高速访问,地球同步轨道卫星在低地球轨道之间中继数据进行长距离传输。空中网络,包括飞行无人机(UAV)、高纬度平台(HAP)和通信气球,可按需部署在具有突发数据流量的位置,以提供高速和动态网络服务,如动态覆盖、边缘计算、众感知等、。在提出的SAG物联网计算卸载架构中,空中网络节点可以充当飞行边缘服务器,这为物联网设备提供了低延迟边缘计算。另一方面,卫星通信虽然可能具有较低的通信速率和较高的传输延迟,但可以通过无缝覆盖和卫星骨干网络提供始终在线的云计算。然而,在物联网计算卸载中使用SAGIN带来了一些挑战性问题。首先,空中网络的高移动性导致动态信道条件和覆盖范围,导致不同的服务器可用性和通信延迟,应谨慎处理,以确保SAG物联网系统的性能。其次,SAGIN中的不同网段具有不同的网络条件和资源约束,考虑到复杂和动态的网络条件与资源,设计一种有效的计算卸载方法是非常重要的。

在论文中,作者提出了一个灵活的联合通信和计算SAGIN框架,为远程物联网用户提供强大的边缘/云计算服务。在此框架下,作者提出了一种有效的计算卸载方法,该方法在考虑多维网络动态和资源约束的情况下,动态学习最优卸载策略,以最小化延迟、能耗和服务器使用成本的加权和。首先,无人机边缘服务器的计算资源被虚拟化为虚拟机(VM),用于并行执行卸载任务。作者将虚拟机资源分配和任务调度问题描述为一个混合整数规划问题,并提出了一种有效的启发式算法来解决该问题。其次,作者研究了SAGIN中的计算卸载问题,该问题被表示为马尔可夫决策过程(MDP)。为了学习网络动力学,提出了一种基于无模型强化学习(RL)的方法,并设计了一种actor-critic学习算法来处理大的状态和动作空间。据作者所知,他们的工作是研究SAGIN中计算卸载问题的第一项工作,这验证了SAGIN支持远程物联网用户计算密集型应用的可行性,并可以为SAGIN网络设计和远程计算卸载提供有用的指导。

论文的主要贡献总结如下:

作者将SAG物联网计算卸载问题表述为MDP,并提出了一种基于RL的方法来有效解决该问题。系统状态被定义为集成历史网络信息以学习系统动态。此外,提出了一种基于策略梯度的actor-critic学习算法,以解决维度诅咒问题,加快学习速度。

作者采用网络虚拟化来灵活分配边缘服务器的资源。作者将联合边缘服务器虚拟机计算资源分配和任务调度问题描述为一个混合整数规划问题,并提出了一种有效的启发式算法来解决该问题。

通过大量仿真评估了所提出方法的性能。联合虚拟机分配和任务调度可以以低复杂度实现接近最优的性能。此外,针对设计参数评估了所提出的基于RL的计算卸载方法的性能。

论文的其余部分组织如下。在第二节中,作者介绍了相关工作。第三节描述了系统模型。在第四节中,提出并解决了联合边缘VM分配和任务调度问题。第五节阐述了SAG
IoT计算卸载问题,第六节介绍了基于RL的解决方案。第七节评估了提出的方法,第八节总结了论文。论文中使用的有用符号列于下表。

在这里插入图片描述

与该论文相关的一些工作:

A、 移动边缘计算(MEC)

MEC的概念最初由ETSI提出,其中讨论了动机、定义、架构和挑战性问题。在边缘计算中,计算任务卸载机制决定了MEC系统的整体性能。节能计算卸载对于能量约束物联网设备至关重要,并已进行了研究。Mahmoodi等人研究了联合调度和计算卸载问题,并提出了一种基于实际数据测量的优化方法,以节省移动用户的能耗。Mao等人提出了一种基于Lyapunov方法的能量采集设备动态计算卸载。将联合考虑执行延迟和任务失败的执行成本作为性能度量。在MEC系统中,能量消耗和任务延迟不仅取决于任务处理,还取决于任务相关数据的通信。因此,通信无线电资源和计算卸载的联合优化引起了许多研究关注。You等人研究了考虑TDMA和OFDMA场景的多用户MEC卸载问题的资源分配。Wu等人研究了多址辅助计算卸载,并提出了计算任务调度和无线电资源分配的联合优化。然而,这些工作仅专注于固定MEC场景,即边缘计算服务由蜂窝基站或WiFi
AP提供,这与作者的工作不同,飞行无人机充当移动边缘服务器。通过安装在无人机上的cloudlet提出了一种移动边缘计算机制。通过求解一个非凸优化问题,联合设计位分配和无人机轨迹以最小化移动能耗。作者考虑了能量消耗和任务处理延迟。此外,无人机轨迹是学习的,而不是针对网络运营商未部署无人机且轨迹事先未知的情况而设计的。

B、 空间-空中-地面综合网络

SAGIN被认为是一种有前途的技术,可以解决未来移动通信网络中的许多问题,如远程和大规模覆盖、移动数据增长、数据流量不均匀和主干网络僵化,最近引起了学术界和工业界的广泛关注。Hoang等人研究了SAGIN中的最优能量分配问题,并提出了一种基于学习的算法,以优化网络性能并最大化服务提供商的收入。Zhang等人提出了软件定义的SAGIN架构,并讨论了其中的挑战性问题。SAGIN中采用边缘缓存以减少内容检索延迟并卸载主干网络。Chen等人提出了一种最佳内容缓存方案,通过考虑用户信息和内容请求分布,将内容放置在无人机上。然而,文献中仍然缺少考虑空间、空中和地面网段合作的边缘计算卸载和计算资源分配的研究,这对于支持SAGIN中的大量计算密集型应用非常重要。

论文系统模型:

A、 网络模型

作者考虑部署物联网设备以执行某些具有计算要求的任务(如监控和视频监控)的偏远地区。在考虑的偏远地区,没有蜂窝覆盖,因此作者考虑使用空-地综合网络(SAGIN)为物联网设备提供网络功能,如网络接入、边缘计算和缓存。SAG物联网网络概述如图1所示。在SAG物联网络中,有三个网络段,即地面段、空中段和空间段。物联网设备构成地面部分,能量和计算能力非常有限。在IoT设备上运行的应用可以生成要上传的数据和要执行的计算任务。在空中部分,飞行无人机可以充当边缘服务器,为地面用户提供边缘缓存和计算能力。飞行无人机,如Facebook
Aquila,可以使用太阳能电池板在不充电的情况下飞行数月[23]。无人机配置有固定的飞行轨迹,以服务于所考虑的区域。此外,在空间段,一个或多个低地球轨道卫星提供感兴趣区域的全覆盖,并通过卫星主干网将物联网设备与云服务器连接。

对于IoT设备(用户)i,其具有 C l C^{l} Cl的本地计算能力,假设所有用户的计算能力相同。本地任务计算/处理的能耗用El表示,与Cl相关。传输到无人机和卫星的能耗分别用Eei和Eci表示。在边缘服务器(即无人机)中,计算资源被虚拟化为虚拟机,每个虚拟机用于一个特定应用[24]。在边缘服务器k中,总计算资源为Ce,分配给计算虚拟机v的资源由Cev表示,用户i任务j的计算虚拟机的服务器使用成本由Bei,j表示。对于无人机地面通信,由于作者考虑任务卸载决策,其时间尺度比传统资源调度时间(1ms)长得多,仅考虑大规模信道衰落。此外,由于不需要瞬时信道信息,卫星控制的全局决策是可行的。根据[25],无人机与地面用户之间的路径损耗如下

IoT device(user)i具有 C l C^{l} Cl的本地计算能力(local computing
capability)(论文假设所有IoT Device都相同)。

本地计算能耗: E l E^{l} El,与 C l C^{l} Cl有关。本地传输到UAV和卫星的功耗分别定义为 E i e E_{i}^{e} Eie E i c E_{i}^{c} Eic

边缘服务器UAV的计算资源被虚拟为VMs(each for one specific
application)。在边缘服务器k,总计算资源(total computation
resource)是 C e C^{e} Ce。分配给VM
v的计算资源是 C v e C_{v}^{e} Cve。用户i的任务j的server usage cost of
VM: B i , j e B_{i,j}^{e} Bi,je

其中h和r分别表示无人机飞行高度和无人机与地面用户之间的水平距离。 η L o S \eta_{LoS} ηLoS η N L o S \eta_{NLoS} ηNLoS分别表示在LoS和NLoS链路的自由空间路径损耗之上产生的附加损耗。 f c f_{c} fc表示载波频率,c表示光速。

PLoS是无人机-地面链路的视距概率(line-of-sight
probability),可以通过下式计算:

P L o S ( r , h ) = 1 1 + a exp ⁡   ( − b ( arctan ⁡ ( h r ) − a ) ) P_{LoS}(r,h) = \frac{1}{1 + a\exp\ \left( - b\left( \arctan\left( \frac{h}{r} \right) - a \right) \right)} PLoS(r,h)=1+aexp (b(arctan(rh)a))1

(a,b, η L o S \eta_{LoS} ηLoS, η N L o S \eta_{NLoS} ηNLoS)环境相关变量。例如,在偏远地区,它们的值为(4.88,0.43,0.1,21)。

无人机与地面通信使用总带宽为B的WiFi协议。如果n个IoT设备同时与一架无人机通信,则每个IoT设备获得的带宽由下式计算:

B i = ρ B ξ ( n ) B_{i} = \rho B\xi(n) Bi=ρBξ(n)

ρ是WiFi吞吐量效率(throughput
efficiency)因子,ξ(n)是WiFi信道利用率函数(WiFi channel utilization
function),是关于服务用户数n的递减函数。

r G U = ρ B ξ ( n ) log ⁡ 2 ( 1 + E i e 1 0 − L i / 10 σ 2 ) r_{GU} = \rho B\xi(n)\log_{2}\left( 1 + \frac{E_{i}^{e}10^{- L_{i}\text{/}10}}{\sigma^{2}} \right) rGU=ρBξ(n)log2(1+σ2Eie10Li/10)

r U G = ρ B ξ ( n ) log ⁡ 2 ( 1 + E i e − 1 0 − L i / 10 σ 2 ) r_{UG} = \rho B\xi(n)\log_{2}\left( 1 + \frac{E_{i}^{e -}10^{- L_{i}\text{/}10}}{\sigma^{2}} \right) rUG=ρBξ(n)log2(1+σ2Eie10Li/10)

E i e − E_{i}^{e -} Eie:UAV对地面IoT的发射功率

L i L_{i} Li:对应物联网用户-无人机链路的路径损耗

σ 2 \sigma^{2} σ2:高斯噪声的功率

星地通讯:恒定通信速率$r_{SG}\ ,通常小于无人机 − 地面通讯速率。卫星通过卫星骨干网连接到互联网 / 云。卫星和云之间的传输速率: ,通常小于无人机-地面通讯速率。卫星通过卫星骨干网连接到互联网/云。卫星和云之间的传输速率: ,通常小于无人机地面通讯速率。卫星通过卫星骨干网连接到互联网/云。卫星和云之间的传输速率:r_{SC} 。云具有比物联网设备和边缘服务器高得多的计算能力,每个任务的处理速度用 。云具有比物联网设备和边缘服务器高得多的计算能力,每个任务的处理速度用 。云具有比物联网设备和边缘服务器高得多的计算能力,每个任务的处理速度用C^{c}$表示。用户i的任务j的服务器使用成本:
$B_{i,j}^{c}\ $

B、 多用户多任务SAG物联网计算卸载

作者认为有M个物联网用户和N个不同的计算应用程序,每个用户运行所有N个应用程序,导致系统中有M×N个计算任务。作者还考虑到N个应用程序具有一定的优先级,即如果同时调度多个任务,则应用程序编号较小的任务将比应用程序编号较大的任务更早发送或处理。对于第j个应用程序,输入数据、输出数据和工作负载的大小分别用 H j i n H_{j}^{in} Hjin H j o u t H_{j}^{out} Hjout Z j Z_{j} Zj表示。这些任务可以在物联网设备上本地执行。然而,由于物联网设备的能量和计算能力有限,计算任务也可以卸载到无人机边缘服务器或通过卫星进一步卸载到云。在每个时隙中进行卸载决策,直到完成所有M×N任务。在时隙t开始时,剩余任务由M×N矩阵M(t)表示,其中元素 m i , j ( t ) = 1 m_{i,j}(t) = 1 mi,j(t)=1表示任务 W i j W_{ij} Wij尚未完成,否则 m i , j ( t ) = 0 m_{i,j}(t) = 0 mi,j(t)=0。分别用M×N矩阵Xl(t)、Xe(t)和Xc(t)表示本地处理任务、将任务卸载到边缘以及在时隙t将任务卸载至云的决策,并且每个二进制元素 x i j l ( t ) x_{ij}^{l}(t) xijl(t) x i j e ( t ) x_{ij}^{e}(t) xije(t) x i j c ( t ) x_{ij}^{c}(t) xijc(t)分别指示任务 W i j W_{ij} Wij是本地处理、卸载到边缘还是卸载到云。注意,任务 W i j W_{ij} Wij可以在时间t被调度到最多一个装置,即,卸载决策受制于:

x i j l ( t ) , x i j e ( t ) , x i j c ( t ) ∈ { 0 , 1 } x_{ij}^{l}(t),x_{ij}^{e}(t),x_{ij}^{c}(t) \in \text{\{}0,1\text{\}} xijl(t),xije(t),xijc(t){0,1}

x i j l ( t ) + x i j e ( t ) + x i j c ( t ) ≤ m i j ( t ) x_{ij}^{l}(t) + x_{ij}^{e}(t) + x_{ij}^{c}(t) \leq m_{ij}(t) xijl(t)+xije(t)+xijc(t)mij(t)

上述不等式适用于未完成的任务未在时隙t调度。如果任务 W i j W_{ij} Wij在本地处理或在时间t卸载到云,作者认为任务可以在一定延迟下完成, m i , j ( t + 1 ) = 0 m_{i,j}(t + 1) = 0 mi,j(t+1)=0。但是,如果 W i j W_{ij} Wij卸载到无人机边缘服务器,则可能无法完成,并在t结束时成功返回用户i,原因有两个。首先,如果将多个任务卸载到一个无人机边缘服务器,其中一些任务可能无法在时隙内完成;其次,由于无人机正在移动,当任务 W i j W_{ij} Wij在边缘服务器中完成时,如果用户i不在无人机的覆盖区域内,则结果不能传输给用户i。

C、 成本模型

计算任务卸载是为了最小化执行M×N任务的系统成本。在所考虑的SAG物联网系统中,系统成本由两部分组成,即延迟成本和能源和服务器使用成本。

1) 延迟成本:

如果在时隙t调度任务 W i j W_{ij} Wij,则可以根据卸载决策来计算延迟。如果任务计划在本地处理,则延迟为

T i j l = ε ( t − 1 ) + t r , i l + Z j C l T_{ij}^{l} = \varepsilon(t - 1) + t_{r,i}^{l} + \frac{Z_{j}}{\mathcal{C}^{\mathcal{l}}} Tijl=ε(t1)+tr,il+ClZj

其中ε是时隙的长度,ε(t−1)是自生成任务以来经过的时间。由于物联网设备的计算能力较低,很可能在时隙t开始时,有一些任务被安排在本地处理,但尚未完成。 t r , i l t_{r,i}^{l} tr,il是用户i完成剩余本地处理任务的时间,可通过剩余本地工作量除以本地处理能力 C l C^{l} Cl计算。如果任务被卸载到无人机边缘服务器,并且结果在时隙t内返回给用户i,则任务的总延迟可通过以下公式计算:

T i j e = ε ( t − 1 ) + d i j e + ∑ a = 1 j x i , a e ( t ) H a i n r G U + H j o u t r U G T_{ij}^{e} = \varepsilon(t - 1) + d_{ij}^{e} + \frac{\sum_{a = 1}^{j}{x_{i,a}^{e}(t)H_{a}^{in}}}{r_{GU}} + \frac{H_{j}^{out}}{r_{UG}} Tije=ε(t1)+dije+rGUa=1jxi,ae(t)Hain+rUGHjout

其中 d i j e d_{ij}^{e} dije表示无人机边缘服务器中 W i j W_{ij} Wij的处理延迟,其取决于第四节所述的服务器中的卸载决策和VM资源分配。如果用户i的多个任务被调度到边缘服务器, ∑ a = 1 j x i , a e ( t ) H a i n \sum_{a = 1}^{j}{x_{i,a}^{e}(t)H_{a}^{in}} a=1jxi,ae(t)Hain计算将 W i j W_{ij} Wij任务数据传输到服务器的时间,考虑具有较高优先级的任务的传输。类似地,如果通过卫星将任务卸载到云中,则延迟计算如下

T i j c = ε t + Z j C c + H j i n + H j o u t r S G + H j i n + H j o u t r S C T_{ij}^{c} = \varepsilon t + \frac{Z_{j}}{\mathcal{C}^{\mathcal{c}}} + \frac{H_{j}^{in} + H_{j}^{out}}{r_{SG}} + \frac{H_{j}^{in} + H_{j}^{out}}{r_{SC}} Tijc=εt+CcZj+rSGHjin+Hjout+rSCHjin+Hjout

2) 能源和服务器使用成本:

本地处理 W i j W_{ij} Wij的能源成本可通过以下公式计算:

L i j l = E l Z j C l L_{ij}^{l} = E^{l}\frac{Z_{j}}{\mathcal{C}^{l}} Lijl=ElClZj

如果在时隙t,任务 W i j W_{ij} Wij被卸载到无人机边缘服务器,并且结果被成功传输到用户i,则能量和服务器使用成本可以通过以下公式计算:

L i j e = E i e ∑ t = 1 v x i j e ( t ) H j i n r G U ( t ) + α B i j e L_{ij}^{e} = E_{i}^{e}\sum_{t = 1}^{v}{x_{ij}^{e}(t)\frac{H_{j}^{in}}{r_{GU}(t)}} + \alpha\mathcal{B}_{ij}^{e} Lije=Eiet=1vxije(t)rGU(t)Hjin+αBije

其中α表示无人机服务器使用成本相对于物联网用户能耗的权重。 ∑ t = 1 v x i j e ( t ) H j i n r G U ( t ) \sum_{t = 1}^{v}{x_{ij}^{e}(t)\frac{H_{j}^{in}}{r_{GU}(t)}} t=1vxije(t)rGU(t)Hjin计算总能耗,考虑到将任务卸载到无人机边缘服务器的前几次未能在调度时段内返回的情况。类似地,如果任务 W i j W_{ij} Wij被卸载到云,则能源和服务器使用成本可以通过以下公式计算:

L i j c = E i c H j i n r S G + β B i j e L_{ij}^{c} = \frac{E_{i}^{c}H_{j}^{in}}{r_{SG}} + \beta\mathcal{B}_{ij}^{e} Lijc=rSGEicHjin+βBije

其中β表示云服务器使用成本相对于物联网用户能耗的权重。

论文算法一:VM分配的计算

在时隙t中,可以将多个任务卸载到一个UAV边缘服务器。在这种情况下,这些任务在不同的虚拟机中并行执行,以减少处理延迟。一个VM执行属于特定应用程序的任务。因此,作者研究了一个虚拟机分配问题,将边缘服务器计算资源分配给不同的虚拟机,同时考虑到卸载到边缘服务器的任务。此外,由于无人机的移动性,一些用户可能会很快失去与无人机的连接,因此执行此类任务可能会导致分配给相应虚拟机的资源过多。例如,在下图中,两个虚拟机被认为执行卸载到无人机边缘服务器的任务, t i , j t_{i,j} ti,j是虚拟机i中任务j的延迟要求。作者可以看到,延迟要求 t 2 , 1 t_{2,1} t2,1非常严格,应向虚拟机2分配更多的计算资源,以在截止日期前完成相应的任务。然而,由于边缘服务器的总计算资源是固定的,分配给VM1的资源可能很少,并且VM1中的三个任务都不能及时完成。因此,论文联合优化无人机边缘服务器中的虚拟机分配和任务调度,以减少系统和延迟。

在这里插入图片描述
在所考虑的问题中,有多种应用程序(应用程序),表示为 A = { 1 , … , N } \mathcal{A} = \{ 1,\ldots,N\} A={1,,N},以及一台无人机边缘服务器,计算能力为C周期/秒。1对于第m个应用程序,可能有多个卸载任务,表示为 T m = { 1 , … , N m } \mathcal{T}_{\mathcal{m}} = \left\{ 1,\ldots,N_{m} \right\} Tm={1,,Nm},它们具有相同的计算工作量,但最大延迟要求不同。注意, Z m Z_{m} Zm表示第m个应用程序任务的计算工作量。 C = { c m ∣ m ∈ A } C = \left\{ c_{m}\mid m \in \mathcal{A} \right\} C={cmmA}
表示计算资源变量,其中 c m c_{m} cm是分配给执行应用程序m的VM的计算资源。 Y = { y m , n ∣ m ∈ A ,   n ∈ T m } Y=\left\{ y_{m,n}\mid m\mathcal{\in A,}\ n \in \mathcal{T}_{m} \right\} Y{ym,nmA, nTm}表示任务执行的决策变量,其中,如果调度并执行了应用程序m的任务n,则 y m , n = 1 y_{m,n} = 1 ym,n=1,否则 y m , n = 0 y_{m,n} = 0 ym,n=0。因此,该和延迟最小化问题可以公式化如下:

min ⁡ C , Y   ∑ m = 1 N ∑ n = 1 N m [ y m , n ∑ k = 1 n y m , k Z m c m + ε ( 1 − y m , n ) ] s . t .   C 1 : ∑ k = 1 n y m , k Z m c m ≤ t m , n , ∀ m ∈ A ,   ∀ n ∈ T m C 2 : ∑ m = 1 M c m ≤ C C 3 : c m ≥ 0 C 4 : y m , n ∈ { 0 , 1 } , ∀ m ∈ A ,   ∀ n ∈ T m \begin{matrix} & \min_{\mathbf{C},\mathbf{Y}}\ \sum_{m = 1}^{N}{\sum_{n = 1}^{N_{m}}\left\lbrack y_{m,n}\sum_{k = 1}^{n}y_{m,k}\frac{Z_{m}}{c_{m}} + \varepsilon\left( 1 - y_{m,n} \right) \right\rbrack} \\ & s.t.\ C1:\quad\sum_{k = 1}^{n}y_{m,k}\frac{Z_{m}}{c_{m}} \leq t_{m,n},\quad\forall m\mathcal{\in A,}\ \forall n \in \mathcal{T}_{m} \\ & \quad\quad C2:\quad\sum_{m = 1}^{M}c_{m}\mathcal{\leq C} \\ & \quad\quad C3:\quad c_{m} \geq 0 \\ & \quad\quad C4:\quad y_{m,n} \in \left\{ 0,1 \right\},\quad\forall m\mathcal{\in A,}\ \forall n \in \mathcal{T}_{m} \\ \end{matrix} minC,Y m=1Nn=1Nm[ym,nk=1nym,kcmZm+ε(1ym,n)]s.t. C1:k=1nym,kcmZmtm,n,mA, nTmC2:m=1McmCC3:cm0C4:ym,n{0,1},mA, nTm

其中, t m , n t_{m,n} tm,n是App
m任务n的延迟要求,ε是时隙长度。 t m , n t_{m,n} tm,n可通过以下公式计算:

t m , n = min ⁡ ( t l c , ε ) t_{m,n} = \min\left( t_{lc},\varepsilon \right) tm,n=min(tlc,ε)

其中 t l c t_{lc} tlc是卸载该任务的用户与UAV失去连接的时间。C1限制每个任务在当前时隙执行时的最大延迟。C2限制VM的总计算资源不能超过C。

可以看出,问题是难以求解的混合整数规划。它涉及连续变量C和0–1整数变量Y。即使假设C已知,剩余子问题仍然是一个具有0–1个整数约束的二次问题,这对于上述非定矩阵是NP难问题。该问题通常通过特定松弛方法重新表述,然后通过强大的凸优化技术解决。然而,该方法执行了大量迭代,并揭示了很少关于调度策略的洞察。因此,有动机设计一种有效的低复杂度算法来获得次优解。在提出的虚拟机分配和任务调度算法中,论文假设对于每个虚拟机m, N m N_{m} Nm任务的延迟要求已排序,即 t m , n t_{m,n} tm,n t m , n + 1 t_{m,n + 1} tm,n+1。开始时试图分配 c m c_{m} cm,假设所有任务都已调度,即 y m , n = 1 , ∀ m ∈ A ,   ∀ n ∈ T m y_{m,n} = 1,\forall m\mathcal{\in A,}\ \forall n \in \mathcal{T}_{m} ym,n=1,mA, nTm分配结果将是

c m = min ⁡ { n Z m t m , n } , ∀ m ∈ A , ∀ n ∈ T m c_{m} = \min\left\{ \frac{nZ_{m}}{t_{m,n}} \right\},\quad\forall m \in \mathcal{A,}\forall n \in \mathcal{T}_{\mathcal{m}} cm=min{tm,nnZm},mA,nTm

给定分配结果,如果 ∑ m = 1 M c m > C \sum_{m = 1}^{M}c_{m}\mathcal{> C} m=1Mcm>C,表示并非所有任务都可以调度。因此,选择不调度具有最苛刻延迟要求的任务,即

y m , n = 0 y_{m,n} = 0 ym,n=0

其中

m , n = a r g   m a x m , n   n Z m t m , n , ∀ m ∈ A ,   ∀ n ∈ T m m,n = {arg\, max}_{m,n}\ \frac{nZ_{m}}{t_{m,n}},\quad\forall m \in \mathcal{A,\ \forall}n \in \mathcal{T}_{m} m,n=argmaxm,n tm,nnZm,mA, nTm

然后,再次计算VM分配 c m c_{m} cm。重复此过程,直到出现以下情况: ∑ m = 1 M c m ≤ C \sum_{m = 1}^{M}c_{m}\mathcal{\leq C} m=1McmC并且获得VM分配 c m c_{m} cm和任务调度Y。请注意,对于一般Y,VM分配由以下公式计算

c m = min ⁡ { ∑ n y m , n Z m t m , n } , ∀ m ∈ A , ∀ n ∈ T m c_{m} = \min\left\{ \frac{\sum_{n}^{}y_{m,n}Z_{m}}{t_{m,n}} \right\},\quad\forall m \in \mathcal{A,}\forall n \in \mathcal{T}_{\mathcal{m}} cm=min{tm,nnym,nZm},mA,nTm

并且未调度任务选择由下式计算:

m , n = a r g   m a x m , n   ∑ n y m , n Z m t m , n , ∀ m ∈ A ,   ∀ n ∈ T m m,n = {arg\, max}_{m,n}\ \frac{\sum_{n}^{}y_{m,n}Z_{m}}{t_{m,n}},\quad\forall m \in \mathcal{A,\ \forall}n \in \mathcal{T}_{m} m,n=argmaxm,n tm,nnym,nZm,mA, nTm

边缘服务器虚拟机分配和任务调度的完整算法如算法1所示。从算法中,可以看出,最坏情况(云无法及时完成任何卸载任务)需要N′(N′+1)/2次比较,其中N′是无人机边缘服务器的总卸载任务数。即使最坏情况下的复杂度 O ( N ′ 2 ) O\left( N^{'2} \right) O(N2)也很低,因此所提出的算法可以在动态SAGIN环境中有效地工作。

算法1

边缘服务器中的虚拟机分配和任务调度

Input: C , T m T_{m} Tm, t m , n t_{m,n} tm,n , ε .

Output: VM allocation c m c_{m} cm , task scheduling Y .

c m = min ⁡ { ∑ n y m , n Z m t m , n } , ∀ m ∈ A , ∀ n ∈ T m c_{m} = \min\left\{ \frac{\sum_{n}^{}y_{m,n}Z_{m}}{t_{m,n}} \right\},\quad\forall m \in \mathcal{A,}\forall n \in \mathcal{T}_{\mathcal{m}} cm=min{tm,nnym,nZm},mA,nTm

while ∑ m = 1 M c m > C \sum_{m = 1}^{M}c_{m}\mathcal{> C} m=1Mcm>C do

m , n = a r g   m a x m , n   ∑ n y m , n Z m t m , n , ∀ m ∈ A ,   ∀ n ∈ T m m,n = {arg\, max}_{m,n}\ \frac{\sum_{n}^{}y_{m,n}Z_{m}}{t_{m,n}},\quad\forall m \in \mathcal{A,\ \forall}n \in \mathcal{T}_{m} m,n=argmaxm,n tm,nnym,nZm,mA, nTm

c m = min ⁡ { ∑ n y m , n Z m t m , n } , ∀ m ∈ A , ∀ n ∈ T m c_{m} = \min\left\{ \frac{\sum_{n}^{}y_{m,n}Z_{m}}{t_{m,n}} \right\},\quad\forall m \in \mathcal{A,}\forall n \in \mathcal{T}_{\mathcal{m}} cm=min{tm,nnym,nZm},mA,nTm

end while

return

论文算法2.1:卸载问题公式的计算

论文为SAG物联网系统设计了一种在线计算卸载方法,其中,在每个时隙,物联网设备的计算任务被安排在本地处理,卸载到无人机边缘服务器,或通过卫星卸载到云服务器,以最小化任务延迟、物联网用户的能耗、物联网系统的成本、物联网设备和物联网设备之间的成本,以及边缘和云服务器使用成本。这可以通过将计算卸载决策建模为MDP来实现。

MDP由元组(S,A,T,R)定义,其中S是可能的系统状态集,A是动作集, T = { p ( S ′ ∣ S , a ) } T = \{ p(S'|S,a)\} T={p(SS,a)}是转移概率集, R : S × A ↦ R R:S \times A \mapsto R R:S×AR是系统处于状态 s ∈ S s \in S sS和动作取 a ∈ A a \in A aA时的实际价值奖励(或成本)函数。策略π是从S到A的映射。SAG物联网计算卸载问题的MDP定义如下:

状态:在时隙t开始时,网络状态定义为 M ( t ) ⊗ T r ( t ) ⊗ P L ( t ) ⊗ P L ( t − 1 ) ⊗ P L ( t − 2 ) ⊗ … ⊗ P L ( t − t q ) M(t) \otimes T^{r}(t) \otimes PL(t) \otimes PL(t - 1) \otimes PL(t - 2) \otimes \ldots \otimes PL\left( t - t_{q} \right) M(t)Tr(t)PL(t)PL(t1)PL(t2)PL(ttq),其中 T r l ( t ) = { t 1 l ( t ) , t 2 l ( t ) , … t M l ( t ) } T_{r}^{l}(t) = \left\{ t_{1}^{l}(t),t_{2}^{l}(t),\ldots t_{M}^{l}(t) \right\} Trl(t)={t1l(t),t2l(t),tMl(t)}表示每个用户完成本地处理任务的剩余时间,而 P L ( t ) = { P L 1 ( t ) 、 P L 2 ( t ) … , P L M ( t ) } PL(t) = \left\{ PL_{1}(t)、PL_{2}(t)\ldots ,PL_{M}(t) \right\} PL(t)={PL1(t)PL2(t)PLM(t)}是所有用户到其关联无人机的路径损耗值的向量。系统状态包括当前和先前 t q t_{q} tq时隙的路径损耗信息,以便学习和预测路径损耗信息。

动作:在时隙t开始时,系统采取调度用户任务的动作,即,确定矩阵 X l ( t ) X_{l}(t) Xl(t) X e ( t ) X_{e}(t) Xe(t) X c ( t ) X_{c}(t) Xc(t),或者同样地,确定 x i j l x_{ij}^{l} xijl x i j e x_{ij}^{e} xije x i j c x_{ij}^{c} xijc,∀i、
因此,表示 a ( t ) = {   X l ( t ) , X e ( t ) , X c ( t ) } a(t) = \left\{ \ X_{l}(t),X_{e}(t),X_{c}(t) \right\} a(t)={ Xl(t),Xe(t),Xc(t)}。显然,在时隙0,有4MN个可能的动作,当M和N较大时,这是一个非常大的数字。

转移概率:由于无人机用户路径损耗不受行动影响,系统转移概率可通过以下公式计算:

p ( s t + 1 ∣ s t , a t ) = p ( P L ( t + 1 ) ∣ P L ( t ) ) ⋅ ( T r l ( t + 1 ) ∣ T r l ( t ) , a t )   ⋅ p ( M ( t + 1 ) ∣ M ( t ) , a t ) p\left( s_{t + 1}|s_{t},a_{t} \right) = p\left( \mathbf{PL}(t + 1)|\mathbf{PL}(t) \right) \cdot \left( \mathbf{T}_{r}^{l}(t + 1)|\mathbf{T}_{r}^{l}(t),a_{t} \right)\, \cdot p\left( \mathbf{M}(t + 1)|\mathbf{M}(t),a_{t} \right) p(st+1st,at)=p(PL(t+1)PL(t))(Trl(t+1)Trl(t),at)p(M(t+1)M(t),at)

具体地说,如果计划固定无人机轨迹和飞行速度,则p(PL(t+1)|PL(t))在特定PL(t+1)时为1,否则为0。然而,由于无人机机动性的不确定性,p(PL(t+1)|PL(t))将难以建模。 T r l ( t + 1 ) T_{r}^{l}(t + 1) Trl(t+1)可通过以下公式计算:

T r , i l ( t + 1 ) = max ⁡ { T r , i l ( t ) + ∑ j = 1 N x i j l ( t ) Z j C l − ε , 0 } T_{r,i}^{l}(t + 1) = \max\left\{ T_{r,i}^{l}(t) + \sum_{j = 1}^{N}x_{ij}^{l}(t)\frac{Z_{j}}{C^{l}} - \varepsilon,0 \right\} Tr,il(t+1)=max{Tr,il(t)+j=1Nxijl(t)ClZjε,0}

对于p(M(t+1)|M(t),at),很难精确建模。例如,如果任务被卸载到无人机边缘服务器,任务是否能在时隙内完成取决于无人机数据传输速率、无人机计算资源分配、其他用户的决策和无人机移动性,这些都是动态和相关的。

奖励:为了最小化延迟、能量和服务器使用成本的加权和,论文使用成本函数 C ( s t , a t ) = ∑ i j C i , j ( s t , a t ) C(s_{t},a_{t}) = \sum_{ij}^{}{C_{i,j}(s_{t},a_{t})} C(st,at)=ijCi,j(stat)在时隙t,其中 C i , j ( s t , a t ) C_{i,j}(s_{t},a_{t}) Ci,j(stat)是任务 W i j W_{ij} Wij的成本函数,其计算如下:

1.如果 m i j ( t ) = 0 m_{ij}(t) = 0 mij(t)=0,则任务已经完成,因此 C i , j ( s t , a t ) = 0 C_{i,j}\left( s_{t},a_{t} \right) = 0 Ci,j(stat)=0

2.如果 m i j ( t ) = 1 m_{ij}(t) = 1 mij(t)=1 x i j l + x i j e + x i j c = 0 x_{ij}^{l} + x_{ij}^{e} + x_{ij}^{c} = 0 xijl+xije+xijc=0,则任务不在该时隙中调度,因此引入了ε的延迟。论文定义了成本函数 C i , j ( s t , a t ) = ϖ i ε C_{i,j}\left( s_{t},a_{t} \right) = \varpi_{i}\varepsilon Ci,j(stat)=ϖiε

3.如果 m i j ( t ) = 1 m_{ij}(t) = 1 mij(t)=1 x i j l + x i j e + x i j c = 1 x_{ij}^{l} + x_{ij}^{e} + x_{ij}^{c} = 1 xijl+xije+xijc=1,则 C i , j ( s t , a t ) = ϖ i ( x i j l ( T i j l − ε t ) + x i j e ( T i j e − ε t ) + x i j c ( T i j l − ε t ) ) + x i j l L i j l + x i j e L i j e + x i j c L i j l C_{i,j}\left( s_{t},a_{t} \right) = \varpi_{i}\left( x_{ij}^{l}\left( T_{ij}^{l} - \varepsilon t \right) + x_{ij}^{e}\left( T_{ij}^{e} - \varepsilon t \right) + x_{ij}^{c}\left( T_{ij}^{l} - \varepsilon t \right) \right) + x_{ij}^{l}L_{ij}^{l} + x_{ij}^{e}L_{ij}^{e} + x_{ij}^{c}L_{ij}^{l} Ci,j(stat)=ϖi(xijl(Tijlεt)+xije(Tijeεt)+xijc(Tijlεt))+xijlLijl+xijeLije+xijcLijl

将状态s的价值函数V定义为从策略π的s开始的预期长期贴现成本。

V ( s | π ) = E [ ∑ t = 0 ∞ γ t C ( s t , a t ) | s 0 = s , π ] V\left( s \middle| \pi \right) = E\left\lbrack \sum_{t = 0}^{\infty}\gamma^{t}C\left( s_{t},a_{t} \right) \middle| s_{0} = s,\pi \right\rbrack V(sπ)=E[t=0γtC(st,at) s0=s,π]

γ∈[0,1]是一个折扣因子,从s开始,所有可能的状态轨迹均采用期望值。在线计算卸载方法是选择最优策略 π ∗ \pi^{*} π
, 其最小化每个状态的值函数。

π ∗ ( s ) = a r g   m i n a ∑ s ′ p ( s ′ ∣ s , a ) [ C ( s , a ) + γ V ( s ′ ∣ π ∗ ) ) ] \pi^{*}(s) = {arg\, min}_{a}\sum_{s^{'}}^{}p\left( s^{'}|s,a \right)\left\lbrack C(s,a) + \gamma V\left( s^{'}|\pi^{*} \right)) \right\rbrack π(s)=argminasp(ss,a)[C(s,a)+γV(sπ))]

论文算法2.2:基于RL的卸载决策

在选择最优策略 π ∗ \pi^{*} π的过程中,由于无人机机动性和无人机边缘服务器的动态VM分配,奖励函数和转移概率难以精确建模。此外,随着系统规模(即M和N)的增加,指数增长的系统状态空间使系统变得难以处理。因此,提出的在线计算卸载问题可以通过基于无模型RL的方法解决,如Q-learning和策略梯度方法。尽管Q-learning方法在解决具有大状态空间的RL问题中显示出巨大潜力,但它通常不能有效地处理具有大或甚至连续动作空间的问题,如上述选择最优策略 π ∗ \pi^{*} π的情况。因此,在论文中提出了一种适用于SAG物联网系统的在线计算卸载方法,该方法采用了策略梯度方法。

在所提出的在线计算卸载方法中,策略由向量 θ ∈ R d \theta \in R^{d} θRd参数化,即 π ( a | s , θ ) = P ( a t = a | s t = s , θ t = θ ) \pi\left( a \middle| s,\theta \right) = P\left( a_{t} = a \middle| s_{t} = s,\theta_{t} = \theta \right) π(as,θ)=P(at=ast=s,θt=θ),当系统在时间t处于状态s时,在具有参数θ的策略下采取动作a的概率。如果为状态的每个特征定义θ,即M(t)、 T r ( t ) T^{r}(t) Tr(t)和PL(t)中的每个元素,向量θ的长度为 M ( N + t q + 2 ) M\left( N + t_{q} + 2 \right) M(N+tq+2)。为了学习策略参数,论文首先定义θ的性能度量,由于在线计算卸载问题是阶段性的(当所有MN个任务完成时,一个阶段结束),论文将性能度量定义为计算所有任务的阶段的总贴现成本。用τ表示π之后的事件中状态动作序列 s 0 s_{0} s0 a 0 a_{0} a0 s 1 s_{1} s1 a 1 a_{1} a1 s t max ⁡ s_{t_{\max}} stmax a t max ⁡ a_{t_{\max}} atmax的轨迹 π ( ⋅ ∣ ⋅ , θ ) \pi( \cdot | \cdot ,\theta) π(,θ)
,其中 t max ⁡ t_{\max} tmax预设值,该值指示用于处理所有任务的可能最大时隙数。然后,可以将J(θ)作为开始状态 s 0 s_{0} s0的值函数:

J ( θ ) ≐ V π θ ( s 0 ) = E π θ [ ∑ k = 0 t max ⁡ γ k C ( s k , a k ) | π ( ⋅ | ⋅ , θ ) ] J(\theta) \doteq V_{\pi_{\theta}}\left( s_{0} \right) = E_{\pi_{\theta}}\left\lbrack \sum_{k = 0}^{t_{\max}}{\gamma^{k}C\left( s_{k},a_{k} \right)} \middle| \pi\left( \cdot \middle| \cdot ,\theta \right) \right\rbrack J(θ)Vπθ(s0)=Eπθ[k=0tmaxγkC(sk,ak) π(,θ)]

为了直观地学习使J(θ)最小化的策略参数θ,可以通过下式使用梯度下降法:

θ t + 1 = θ t − φ ∇ J ( θ t ) \theta_{t + 1} = \theta_{t} - \varphi\nabla J\left( \theta_{t} \right) θt+1=θtφJ(θt)

其中φ表示学习速率。根据策略梯度定理,有:

∇ J ( θ t ) = E π [ ∑ a q π ( s t , a ) ∇ θ π ( a ∣ s t , θ ) ] = E π [ ∑ a π ( a ∣ s t , θ ) q π ( s t , a ) ∇ θ π ( a ∣ s t , θ ) π ( a ∣ s t , θ ) ] = E π [ q π ( s t , a t ) ∇ θ π ( a t ∣ s t , θ ) π ( a t ∣ s t , θ ) ] = E π [ G t ∇ θ π ( a t ∣ s t , θ ) π ( a t ∣ s t , θ ) ] . \begin{matrix} \nabla J\left( \mathbf{\theta}_{t} \right) = & \mathbb{E}_{\pi}\left\lbrack \sum_{a}^{}q_{\pi}\left( s_{t},a \right)\nabla_{\mathbf{\theta}}\pi\left( a|s_{t},\mathbf{\theta} \right) \right\rbrack \\ = & \mathbb{E}_{\pi}\left\lbrack \sum_{a}^{}\pi\left( a|s_{t},\mathbf{\theta} \right)q_{\pi}\left( s_{t},a \right)\frac{\nabla_{\mathbf{\theta}}\pi\left( a|s_{t},\mathbf{\theta} \right)}{\pi\left( a|s_{t},\mathbf{\theta} \right)} \right\rbrack \\ = & \mathbb{E}_{\pi}\left\lbrack q_{\pi}\left( s_{t},a_{t} \right)\frac{\nabla_{\mathbf{\theta}}\pi\left( a_{t}|s_{t},\mathbf{\theta} \right)}{\pi\left( a_{t}|s_{t},\mathbf{\theta} \right)} \right\rbrack \\ = & \mathbb{E}_{\pi}\left\lbrack G_{t}\frac{\nabla_{\mathbf{\theta}}\pi\left( a_{t}|s_{t},\mathbf{\theta} \right)}{\pi\left( a_{t}|s_{t},\mathbf{\theta} \right)} \right\rbrack. \\ \end{matrix} J(θt)====Eπ[aqπ(st,a)θπ(ast,θ)]Eπ[aπ(ast,θ)qπ(st,a)π(ast,θ)θπ(ast,θ)]Eπ[qπ(st,at)π(atst,θ)θπ(atst,θ)]Eπ[Gtπ(atst,θ)θπ(atst,θ)].

注意, q π ( s , a ) q_{\pi}(s,a) qπ(s,a)是策略π的状态作用值函数,而 G t = C t + γ C t + 1 + γ 2 C t + 2 … G_{t} = C_{t} + \gamma C_{t + 1} + \gamma^{2}C_{t + 2}\ldots Gt=Ct+γCt+1+γ2Ct+2是成本的贴现回报。使用上述方法,可以通过以下方式更新θ:

θ t + 1 = θ t − φ G t ∇ θ π ( a t | s t , θ ) π ( a t | s t , θ ) \theta_{t + 1} = \theta_{t} - \varphi G_{t}\frac{\nabla_{\theta}\pi\left( a_{t} \middle| s_{t},\theta \right)}{\pi\left( a_{t} \middle| s_{t},\theta \right)} θt+1=θtφGtπ(atst,θ)θπ(atst,θ)

然而,尽管这种更新方法(称为强化方法,REINFORCE
method)可以渐近地收敛到局部最小值,但通常会导致高方差和学习缓慢。在在线SAG物联网计算卸载中,状态空间和动作空间都很大,因此加固方法可能不适用。为了进一步提高学习性能,论文采用了actor-critic方法,其中学习了策略和价值函数的近似。在actor-critic方法中,策略在每个时隙中更新,而不是在计算卸载的每个事件中更新。因此,学习最优策略所需的样本数量可以显著减少,这加快了学习过程。为了实现这一点,需要学习价值函数,并将其作为一个critic来指导每个时隙的政策更新。具体而言,用 V ^ ( s t , ω ) \widehat{V}\left( s_{t},\mathbf{\omega} \right) V (st,ω)表示状态 s t s_{t} st的值函数的估计,其中 ω ∈ R m \omega \in R^{m} ωRm是拟合值函数的参数向量。然后,在每个时隙t中,θ的更新可以通过

θ t + 1 = θ t − φ ( C t + γ V ^ ( s t + 1 , ω ) − V ^ ( s t , ω ) ) ∇ θ π ( a t ∣ s t , θ ) π ( a t ∣ s t , θ ) \begin{matrix} \mathbf{\theta}_{t + 1} = \mathbf{\theta}_{t} - \varphi\left( C_{t} + \gamma\widehat{V}\left( s_{t + 1},\mathbf{\omega} \right) - \widehat{V}\left( s_{t},\mathbf{\omega} \right) \right)\frac{\nabla_{\mathbf{\theta}}\pi\left( a_{t}|s_{t},\mathbf{\theta} \right)}{\pi\left( a_{t}|s_{t},\mathbf{\theta} \right)} \\ \\ \end{matrix} θt+1=θtφ(Ct+γV (st+1,ω)V (st,ω))π(atst,θ)θπ(atst,θ)

注意,在每个时隙中,估计值函数 V ^ \widehat{V} V 的参数向量ω也根据下式更新:

ω t + 1 = ω t − φ ′ ∇ ω L ( ω ) \omega_{t + 1} = \omega_{t} - \varphi'\nabla_{\omega}L(\omega) ωt+1=ωtφωL(ω)

其中 φ ′ \varphi' φ是学习速率,损失函数 L ( ω ) L\left( \mathbf{\omega} \right) L(ω)定义为:

L ( ω ) = ∣ V ^ ( s t , ω ) − ( C t + γ V ^ ( s t + 1 , ω ) ) ∣ 2 L(\omega) = \left| \widehat{V}\left( s_{t},\omega \right) - \left( C_{t} + \gamma\widehat{V}\left( s_{t + 1},\omega \right) \right) \right|^{2} L(ω)= V (st,ω)(Ct+γV (st+1,ω)) 2

最后,基于深度神经网络逼近复杂函数的能力,论文采用深度学习架构,根据θ和估计状态值函数学习策略。算法2显示了SAT
IoT的完整在线计算卸载方法,其中φ和φ′分别是actor和critic的学习率。

算法2

在这里插入图片描述

论文所提出的基于RL的卸载方法的实现如下图所示,其由SAGIN环境、计算卸载奖励评估器、actor网络、critic网络和时间差组件组成。可以从当前SAGIN环境中观察系统状态,然后将其发送到actor网络和critic网络的输入端。actor网络根据a=πθ(s)生成动作a,并更新策略θ。很容易看出,对于任意任务Wij,在时隙t,决策xij(t)有四种可能性,即未调度、本地处理、卸载到边缘和卸载到云。因此,论文将这四个可能的决策分别映射到xij整数0、1、2、3,并设计了actor网络的两个输出层,即σ和μ,它们可以组成M×N个正态分布随机变量来表示每个任务的动作。critic网络估计值函数V^(st,ω)并更新参数ω。状态-动作对的奖励由奖励评估器评估,并用于计算时间差(TD)η=Ct+γV^(st+1,ω)−V^(st,ω),用于更新策略参数θ和批评网络参数ω。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SB5LlBPH-1663148053614)(media/image4.gif)]{width=“5.088373797025372in”
height=“3.826388888888889in”}

基于RL的计算卸载方法。所提出的方法实现了两个组件,即一个actor网络用于更新策略,一个critic网络用于评估价值函数并指导卸载策略的更新。

我的复现及仿真:

仿真平台:我使用了指导老师推荐的matlab进行代码的编写,matlab是通信领域常用的工具,提供了一些方便的工具箱。复现时使用到的工具箱有:Symbolic
Math Toolbox,Deep Learning Toolbox和Reinforcement Learning Toolbox。

算法一

复现步骤(对照论文算法说明):

  1. Input: C , T m \mathcal{T}_{\mathcal{m}} Tm, t m , n t_{m,n} tm,n , ε .

其他变量:应用程序数目N=5,应用程序所需计算量 Z = 1300 H i n Z = 1300H^{in} Z=1300Hin H i n H^{in} Hin是5MB到15MB的随机1*5数组。

C表示无人机边缘服务器的计算能力 C e = C   c y c l e s / s C_{e} = C\ cycles/s Ce=C cycles/s,论文给出的参考值是 3 ∗ 1 0 9 3*10^{9} 3109

T m = { 1 , … , N m } \mathcal{T}_{\mathcal{m}} = \left\{ 1,\ldots,N_{m} \right\} Tm={1,,Nm}表示每个应用程序的卸载任务的数目,例如, N 3 = 5 N_{3} = 5 N3=5,就表示第3个应用程序有5个卸载任务。具体数据论文未给出。我在matlab中使用1*5的矩阵表示,具体数值在2到5之间随机生成,rng(0)生成值为[2,3,4,5,5]。

t m , n t_{m,n} tm,n是应用程序 m 的任务 n
的时延约束,正常情况 t m , n t_{m,n} tm,n这种有两个下标符号的变量组可以用一个二维数组表示,下标m,n分别对应数组的行和列。但由于每个应用程序的任务数并不相同,而matlab中的二维数组(矩阵)要求每一行/列的元素个数都相同,所以我使用了matlab中的元胞数组来表示 t m , n t_{m,n} tm,n。但当我事后再看,使用一个普通的二维数组(矩阵)更加方便,只要在没有用到的地方补零(或其他任何数)就可以。 t m , n = min ⁡ ( t l c , ε ) t_{m,n} = \min\left( t_{lc},\varepsilon \right) tm,n=min(tlc,ε) t l c t_{lc} tlc具体值论文未给出,应该可以由无人机具体飞行路径得出,但无人机具体飞行路径论文也并未给出参考,我采用随机生成的方式给出,然后将其按从小到大的顺序排列(后面有些公式默认从小到大的顺序排列)。

ε是时隙长度,数值论文未给出,我取了 ε = 30 s \varepsilon = 30s ε=30s

c m = min ⁡ { ∑ n y m , n Z m t m , n } , ∀ m ∈ A , ∀ n ∈ T m c_{m} = \min\left\{ \frac{\sum_{n}^{}y_{m,n}Z_{m}}{t_{m,n}} \right\},\quad\forall m \in \mathcal{A,}\forall n \in \mathcal{T}_{\mathcal{m}} cm=min{tm,nnym,nZm},mA,nTm

这里我认为论文给出的式子可能有错误。

c m = m a x { ∑ n y m , n Z m t m , n } , ∀ m ∈ A , ∀ n ∈ T m c_{m} = max\left\{ \frac{\sum_{n}^{}y_{m,n}Z_{m}}{t_{m,n}} \right\},\quad\forall m \in \mathcal{A,}\forall n \in \mathcal{T}_{\mathcal{m}} cm=max{tm,nnym,nZm},mA,nTm

又因为 y m , n = 1 ,    ∀ m , n y_{m,n} = 1,\ \ \forall m,n ym,n=1,  m,n,所以 ∑ n y m , n = n \sum_{n}^{}y_{m,n} = n nym,n=n,最终我采用的更新式为:

c m = m a x { n Z m t m , n } , ∀ m ∈ A , ∀ n ∈ T m c_{m} = max\left\{ \frac{nZ_{m}}{t_{m,n}} \right\},\quad\forall m \in \mathcal{A,}\forall n \in \mathcal{T}_{\mathcal{m}} cm=max{tm,nnZm},mA,nTm

3、while ∑ m = 1 M c m > C \sum_{m = 1}^{M}c_{m}\mathcal{> C} m=1Mcm>C do

循环终止条件是为所有虚拟机VM分配的计算资源综合不超过无人机边缘服务器的计算资源 C \mathcal{C} C。Matlab中有对应的while循环结构,之间照搬即可。

4、Update y m , n y_{m,n} ym,n according to y m , n = 0 y_{m,n} = 0 ym,n=0 and

m , n = a r g   m a x m , n   ∑ n y m , n Z m t m , n , ∀ m ∈ A ,   ∀ n ∈ T m m,n = {arg\, max}_{m,n}\ \frac{\sum_{n}^{}y_{m,n}Z_{m}}{t_{m,n}},\quad\forall m \in \mathcal{A,\ \forall}n \in \mathcal{T}_{m} m,n=argmaxm,n tm,nnym,nZm,mA, nTm

我的理解是,当计算资源无法满足所有任务的需要时,对于那些要求计算资源最多的任务选择不执行,保证时隙内尽可能多的完成任务。

同时这也是对我上述认为论文有错误的一个佐证,这里每次放弃的是要求计算资源最多的任务,而如果按照式子 c m = min ⁡ { ∑ n y m , n Z m t m , n } c_{m} = \min\left\{ \frac{\sum_{n}^{}y_{m,n}Z_{m}}{t_{m,n}} \right\} cm=min{tm,nnym,nZm}计算,每次得到的都是每个应用程序要求计算资源最少的那个任务,很大概率即使 y m , n y_{m,n} ym,n更新, c m c_{m} cm依旧不变。

c m = min ⁡ { ∑ n y m , n Z m t m , n } , ∀ m ∈ A , ∀ n ∈ T m c_{m} = \min\left\{ \frac{\sum_{n}^{}y_{m,n}Z_{m}}{t_{m,n}} \right\},\quad\forall m \in \mathcal{A,}\forall n \in \mathcal{T}_{\mathcal{m}} cm=min{tm,nnym,nZm},mA,nTm

这里是和前面一样的式子,我采用的依旧是最大值:

c m = m a x { ∑ n y m , n Z m t m , n } , ∀ m ∈ A , ∀ n ∈ T m c_{m} = max\left\{ \frac{\sum_{n}^{}y_{m,n}Z_{m}}{t_{m,n}} \right\},\quad\forall m \in \mathcal{A,}\forall n \in \mathcal{T}_{\mathcal{m}} cm=max{tm,nnym,nZm},mA,nTm

6、Output: VM allocation c m c_{m} cm , task scheduling Y

这里原论文未做其他说明,我认为他们是之间将循环结束后的 c m c_{m} cm和Y(即 y m , n y_{m,n} ym,n)返回输出了,但我认为这样并未实现性能的最优化。

min ⁡ C , Y   ∑ m = 1 N ∑ n = 1 N m [ y m , n ∑ k = 1 n y m , k Z m c m + ε ( 1 − y m , n ) ] s . t .   C 1 : ∑ k = 1 n y m , k Z m c m ≤ t m , n , ∀ m ∈ A ,   ∀ n ∈ T m C 2 : ∑ m = 1 M c m ≤ C ( 原式如此,但 M 应为 N ) C 3 : c m ≥ 0 C 4 : y m , n ∈ { 0 , 1 } , ∀ m ∈ A ,   ∀ n ∈ T m \begin{matrix} & \min_{\mathbf{C},\mathbf{Y}}\ \sum_{m = 1}^{N}{\sum_{n = 1}^{N_{m}}\left\lbrack y_{m,n}\sum_{k = 1}^{n}y_{m,k}\frac{Z_{m}}{c_{m}} + \varepsilon\left( 1 - y_{m,n} \right) \right\rbrack} \\ & s.t.\ C1:\quad\sum_{k = 1}^{n}y_{m,k}\frac{Z_{m}}{c_{m}} \leq t_{m,n},\quad\forall m\mathcal{\in A,}\ \forall n \in \mathcal{T}_{m} \\ & \quad\quad C2:\quad\sum_{m = 1}^{M}c_{m}\mathcal{\leq C(}原式如此,但M应为N) \\ & \quad\quad C3:\quad c_{m} \geq 0 \\ & \quad\quad C4:\quad y_{m,n} \in \left\{ 0,1 \right\},\quad\forall m\mathcal{\in A,}\ \forall n \in \mathcal{T}_{m} \\ \end{matrix} minC,Y m=1Nn=1Nm[ym,nk=1nym,kcmZm+ε(1ym,n)]s.t. C1:k=1nym,kcmZmtm,n,mA, nTmC2:m=1McmC(原式如此,但M应为N)C3:cm0C4:ym,n{0,1},mA, nTm

该优化问题如上式,显然可以看出需要最小化的式子与 c m c_{m} cm成反比。而原论文给出算法满足C1条件取等,但C2条件会是一个 ∑ m = 1 M c m < C \sum_{m = 1}^{M}c_{m}\mathcal{< C} m=1Mcm<C,即计算资源并没有被完全分配。如果是考虑到使用这一部分计算资源会额外造成能源消耗的话论文的做法或许也有其道理,但论文并未提到,所有单纯考虑最小的总延迟的话,即单纯对最小化上面的式子而言,论文的做法是有些问题的。

那么计算资源应如何分配以满足C2条件取等(即 ∑ m = 1 N c m = C \sum_{m = 1}^{N}c_{m}\mathcal{= C} m=1Ncm=C,资源被完全分配)?可以观察得出,当 y m , n y_{m,n} ym,n确定之后,

  ∑ m = 1 N ∑ n = 1 N m [ y m , n ∑ k = 1 n y m , k Z m c m + ε ( 1 − y m , n ) ] = ∑ m = 1 N ∑ n = 1 N m [ y m , n ∑ k = 1 n y m , k Z m c m ] + ∑ m = 1 N ∑ n = 1 N m [ ε ( 1 − y m , n ) ] = 1 C ( ∑ m = 1 N c m ) ( ∑ m = 1 N ∑ n = 1 N m [ y m , n ∑ k = 1 n y m , k Z m c m ] ) + 常数 = 1 C ( ∑ m = 1 N c m ) ( ∑ m = 1 N ∑ n = 1 N m [ y m , n ∑ k = 1 n y m , k Z m ] c m ) + 常数 \ \sum_{m = 1}^{N}{\sum_{n = 1}^{N_{m}}\left\lbrack y_{m,n}\sum_{k = 1}^{n}y_{m,k}\frac{Z_{m}}{c_{m}} + \varepsilon\left( 1 - y_{m,n} \right) \right\rbrack} = \sum_{m = 1}^{N}{\sum_{n = 1}^{N_{m}}\left\lbrack y_{m,n}\sum_{k = 1}^{n}y_{m,k}\frac{Z_{m}}{c_{m}} \right\rbrack} + \sum_{m = 1}^{N}{\sum_{n = 1}^{N_{m}}\left\lbrack \varepsilon\left( 1 - y_{m,n} \right) \right\rbrack} = \frac{1}{\mathcal{C}}\left( \sum_{m = 1}^{N}c_{m} \right)\left( \sum_{m = 1}^{N}{\sum_{n = 1}^{N_{m}}\left\lbrack y_{m,n}\sum_{k = 1}^{n}y_{m,k}\frac{Z_{m}}{c_{m}} \right\rbrack} \right) + 常数 = \frac{1}{\mathcal{C}}\left( \sum_{m = 1}^{N}c_{m} \right)\left( \sum_{m = 1}^{N}\frac{\sum_{n = 1}^{N_{m}}\left\lbrack y_{m,n}\sum_{k = 1}^{n}y_{m,k}Z_{m} \right\rbrack}{c_{m}} \right) + 常数  m=1Nn=1Nm[ym,nk=1nym,kcmZm+ε(1ym,n)]=m=1Nn=1Nm[ym,nk=1nym,kcmZm]+m=1Nn=1Nm[ε(1ym,n)]=C1(m=1Ncm)(m=1Nn=1Nm[ym,nk=1nym,kcmZm])+常数=C1(m=1Ncm)(m=1Ncmn=1Nm[ym,nk=1nym,kZm])+常数

该式可以使用柯西不等式计算最小值,取等条件为:

c m = ∑ n = 1 N m [ y m , n ∑ k = 1 n y m , k Z m ] ∑ m = 1 N ∑ n = 1 N m [ y m , n ∑ k = 1 n y m , k Z m ] ∗ C c_{m} = \frac{\sqrt{\sum_{n = 1}^{N_{m}}\left\lbrack y_{m,n}\sum_{k = 1}^{n}y_{m,k}Z_{m} \right\rbrack}}{\sum_{m = 1}^{N}\sqrt{\sum_{n = 1}^{N_{m}}\left\lbrack y_{m,n}\sum_{k = 1}^{n}y_{m,k}Z_{m} \right\rbrack}}*\mathcal{C} cm=m=1Nn=1Nm[ym,nk=1nym,kZm] n=1Nm[ym,nk=1nym,kZm] C

但这样得到的 c m c_{m} cm不一定满足C1条件,所以我仅对按照论文方法未分配的部分资源使用上述方法进行分配,

c m r = ∑ n = 1 N m [ y m , n ∑ k = 1 n y m , k Z m ] ∑ m = 1 N ∑ n = 1 N m [ y m , n ∑ k = 1 n y m , k Z m ] ∗ ( C − ∑ m = 1 N c m ) c_{m}^{r} = \frac{\sqrt{\sum_{n = 1}^{N_{m}}\left\lbrack y_{m,n}\sum_{k = 1}^{n}y_{m,k}Z_{m} \right\rbrack}}{\sum_{m = 1}^{N}\sqrt{\sum_{n = 1}^{N_{m}}\left\lbrack y_{m,n}\sum_{k = 1}^{n}y_{m,k}Z_{m} \right\rbrack}}*\left( \mathcal{C -}\sum_{m = 1}^{N}c_{m} \right) cmr=m=1Nn=1Nm[ym,nk=1nym,kZm] n=1Nm[ym,nk=1nym,kZm] (Cm=1Ncm)

c m ′ = c m + c m r c_{m}^{'} = c_{m} + c_{m}^{r} cm=cm+cmr

由于 c m r ≥ 0 c_{m}^{r} \geq 0 cmr0,由该式得到的 c m ′ c_{m}^{'} cm必然满足条件C1,且条件C2取等。

仿真:

该算法求得的资源分配策略Y和暴力最优解、随机解的性能对比:

横轴为无人机的计算资源,纵轴为平均延时。

下图1为论文原算法的延时情况,可以看出论文采用的近似求解方法有着接近蛮力最优解的性能,远好于随机的选取策略。

下图2为采用我的分配方法得到的延时情况,可以看出,由于充分使用了计算资源,延时确实明显减少。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值