A PDDQNLP Algorithm for Energy Efficient Computation Offloading in UAV-assisted MEC: Na Lin
无人机辅助边缘计算的能量效率计算卸载PDDQNLP算法
- 讨论背景:无人机辅助移动边缘计算(UAV-assisted MEC)在提供计算服务方面的应用
- 解决的问题:最大化无人机的能源效率,同时考虑卸载的公平性
- 方法:基于深度强化学习(DRL)和线性规划(LP)相结合的PDDQNLP(参数化决策对偶深度Q网络和线性规划)算法。
- 贡献:考虑了无人机飞行时间和分配给终端设备的时间对能源效率的影响,并提出了一种新颖的PDDQNLP算法来解决这个问题。此外,该算法还考虑了卸载的公平性,以确保每个终端设备都有机会获得卸载服务。
介绍
优化考虑
首先介绍了物联网的发展,也带来了边缘计算的发展。
然后介绍了基于地面蜂窝网络基础设施的一些MEC研究。而对与缺少蜂窝基础设施和MEC服务器的场景,如何对终端提供边缘计算服务,则使用UAV辅助MEC。
再对现有的无人机辅助边缘计算对能耗和吞吐量的优化研究进行了列举,发现,现有的能效工作并未同时考虑无人机飞行时间和分配给用户的时间。从中找到自己的研究点,无人机飞行时间影响无人机能耗,分配给TDs的时间影响吞吐量,将飞行时间和分配时间结合考虑。
能效(energy efficiency):吞吐量与能源消耗的比率
解决方法
DRL方法被广泛的用于解决这一类问题,但大都研究的动作空间要么是纯连续动作,要么是纯离散动作。也有一些是混合这两种的,但采用的是连续动作离散化或使用连续函数来逼近离散动作。然而这种混合的方式会带来精度的损失和维度灾难,处理起来也很复杂。
本文联合无人机飞行时间,分配给终端设别的时间,二元卸载决策和无人机轨迹进行优化。
两步去优化:(分配给TD的时间取决于无人机飞行时间)
- 先联合优化TD卸载决策、无人机轨迹和无人机飞行时间。
对于其中的离散(卸载决策)和连续(飞行时间)动作混合问题,采用PDDQN算法处理离散-连续混合动作空间
- 再优化时间分配,是一个线性规划问题(LP)。
文章贡献
- 同时考虑飞行时间和时间分配,来最大化能效(energy efficiency);提示为了避免吞吐量不均衡,也考虑了卸载的公平性。
- 采用动作空间参数化技术,设计PDDQN与以往不同的方式解决离散-连续混合空间的问题。
- 提出PDDQNLP算法,将能效问题转变为两个子问题来求解,也保证了其中的物理约束。实验表明优于其他算法。
II、系统模型
节点位置和通信模型
将水平坐标以
Ω
\Omega
Ω为长度单位,垂直以
Δ
\Delta
Δ为单位,UAV每次在一个时段内移动都是一个单位。
UAV坐标:
u
(
i
)
=
(
x
(
i
)
,
y
(
i
)
,
z
(
i
)
)
\mathbf{u}\left(i\right)~=~\left(x\left(i\right),y\left(i\right),z\left(i\right)\right)
u(i) = (x(i),y(i),z(i)) ,i代表时间
UAV与TD的距离:
R
k
[
n
]
=
(
h
[
n
]
−
s
k
)
2
+
z
[
n
]
2
R_k[n]~=~\sqrt{(h[n]-\mathbf{s}_k)^2+z[n]^2}
Rk[n] = (h[n]−sk)2+z[n]2,
h
(
n
)
h(n)
h(n)水平坐标,
s
k
s_k
sk终端水平位置
路径损耗
C
k
L
o
S
[
n
]
=
C
k
F
S
[
n
]
+
η
L
o
S
,
∀
n
,
(4)
C_k^{LoS}[n] =C_k^{FS}[n]+\eta_{LoS},\forall n,\tag{4}
CkLoS[n]=CkFS[n]+ηLoS,∀n,(4)
C
k
N
L
o
S
[
n
]
=
C
k
F
S
[
n
]
+
η
N
L
o
S
,
∀
n
,
(5)
C_{k}^{N L o S}[n] =C_k^{FS}[n]+\eta_{NLoS},\forall n,\tag{5}
CkNLoS[n]=CkFS[n]+ηNLoS,∀n,(5)
C
k
[
n
]
=
C
k
F
S
[
n
]
+
η
N
L
o
S
+
(
η
L
o
S
−
η
N
L
o
S
)
p
k
L
o
S
[
n
]
(6)
C_k[n]=C_k^{FS}[n]+\eta_{NLoS}+(\eta_{LoS}-\eta_{NLoS})p_k^{LoS}[n] \tag{6}
Ck[n]=CkFS[n]+ηNLoS+(ηLoS−ηNLoS)pkLoS[n](6)
综合了 LoS (4)和 NLoS(5)通信信道的路径损耗表达式。它表示第 k 个终端设备与无人机在时间段 n 之间的路径损耗。
C
k
F
S
[
n
]
C_k^{FS}[n]
CkFS[n] :自由空间路径损耗;
ηLoS 和 ηNLoS 分别是与 LoS 和 NLoS 通信信道相关的过量路径损耗;
p
k
L
o
S
[
n
]
p_k^{LoS}[n]
pkLoS[n]是第 k 个终端设备与无人机在时间段 n 之间的 LoS 连接概率。
例如当为LoS连接,则 p = 1 ,此时 C k [ n ] C_k[n] Ck[n] = (4)式;
若为NLoS连接,则 p = 0 ,此时 C k [ n ] C_k[n] Ck[n] = (5)式。
(原文中6式的第三项应该写错了)
传输速率
r
k
[
n
]
=
B
log
2
(
1
+
P
c
δ
k
[
n
]
B
N
0
)
(7)
r_k[n]=B\log_2\left(1+\frac{P_c}{\delta_k[n]BN_0}\right) \tag{7}
rk[n]=Blog2(1+δk[n]BN0Pc)(7)
Pc:TD上行传输功率;
B:传输带宽;
δ
k
[
n
]
\delta_k[n]
δk[n] =
1
0
C
k
[
n
]
/
10
10^{C_k[n]/10}
10Ck[n]/10;
N0:噪声功率谱密度
吞吐量
d
k
[
n
]
=
(
α
k
[
n
]
f
u
r
k
[
n
]
t
k
[
n
]
r
k
[
n
]
F
k
+
f
u
+
(
1
−
α
k
[
n
]
)
t
[
n
]
f
k
F
k
)
(11)
d_k[n]=\bigg(\alpha_k[n]\frac{f_ur_k[n]t_k[n]}{r_k[n]F_k+f_u}+(1-\alpha_k[n])\frac{t[n]f_k}{F_k}\bigg)\tag{11}
dk[n]=(αk[n]rk[n]Fk+fufurk[n]tk[n]+(1−αk[n])Fkt[n]fk)(11)
公式解释:
-
文中把总过程分为一个个的 t [ n ] t[n] t[n],由地面设备k从 t [ n ] t[n] t[n]中分得 t k [ n ] t_k[n] tk[n];
每个设备在分到的 t k [ n ] t_k[n] tk[n]中,将 β t k [ n ] \beta t_k[n] βtk[n]这段时间用于数据卸载,将剩下的 ( 1 − β ) t k [ n ] (1-\beta)t_k[n] (1−β)tk[n]用于等待无人机计算,为了满足上传的数据全部得到处理,上传的数据量就会小于等于无人机处理的,相等时则处理完成,则会有: β t k [ n ] r k [ n ] ≤ f u ( 1 − β ) t k [ n ] F k , ∀ n . (9) \beta t_k[n]r_k[n]\leq\frac{f_u(1-\beta)t_k[n]}{F_k},\forall n.\tag{9} βtk[n]rk[n]≤Fkfu(1−β)tk[n],∀n.(9)
取等号,变形得到: β = f u r k [ n ] F k + f u \beta=\frac{f_u}{r_k[n]F_k+f_u} β=rk[n]Fk+fufu -
吞吐量 = α [ n ] ⋅ \alpha[n]· α[n]⋅数据卸载 + ( 1 − α [ n ] ) ⋅ (1-\alpha[n])· (1−α[n])⋅本地处理数据 = α k [ n ] β r k [ n ] t k [ n ] + ( 1 − α k [ n ] ) t [ n ] f k F k \alpha_k[n]\beta r_k[n]t_k[n]+(1-\alpha_k[n])\frac{t[n]f_k}{F_k} αk[n]βrk[n]tk[n]+(1−αk[n])Fkt[n]fk;
-
最后将 β \beta β带入其中得到吞吐量的(11)表达。
问题表述
(P):g,为了公平性;d,吞吐量;E,能耗,即考虑能效最大的同时考虑公平性;
- g [ n ] = ( ∑ k = 1 K ∑ n ′ = 1 n α k [ n ] ) 2 K ∑ k = 1 K ( ∑ n ′ = 1 n α k [ n ] ) 2 g[n]=\frac{\left(\sum_{k=1}^K\sum_{n'=1}^n\alpha_k[n]\right)^2}{K\sum_{k=1}^K\left(\sum_{n'=1}^n\alpha_k[n]\right)^2} g[n]=K∑k=1K(∑n′=1nαk[n])2(∑k=1K∑n′=1nαk[n])2,g会更加接近1,当各个终端卸载次数相当时;
- E u a v [ n ] = t [ n ] p u a v [ n ] E^{uav}[n]=t[n]p^{uav}[n] Euav[n]=t[n]puav[n] ,p 是功率,引用另一篇文献中的计算公式,(12)式;
- d k [ n ] = ( α k [ n ] f u r k [ n ] t k [ n ] r k [ n ] F k + f u + ( 1 − α k [ n ] ) t [ n ] f k F k ) d_k[n]=\left(\alpha_k[n]\frac{f_ur_k[n]t_k[n]}{r_k[n]F_k+f_u}+(1-\alpha_k[n])\frac{t[n]f_k}{F_k}\right) dk[n]=(αk[n]rk[n]Fk+fufurk[n]tk[n]+(1−αk[n])Fkt[n]fk),表达的是终端k在时间n,本地的吞吐量。
F k F_k Fk表示终端设备k在本地执行数据时,每比特数据所需的计算量;
f k f_k fk表示终端设备k在单位时间内能够执行的CPU周期数。
(15g):无人机能力消耗不能大于电池容量
(15i ):保证所有的数据都被处理
接下来就是解决这个非凸问题(P)
III、算法设计
在第一部分介绍中已经提到,由于2个时间的限制会将问题分成两个子问题,逐个进行解决。
- (P1):基于 PDDQN 优化 α ( 决策 ) 、 U ( 轨迹 ) 和 T n ( 飞行时间 ) \alpha(决策)、U(轨迹) 和 T_n(飞行时间) α(决策)、U(轨迹)和Tn(飞行时间)
- (P2):根据 LP 优化 T k ( 时间分配 ) T_k(时间分配) Tk(时间分配)
(P1)
相比(P)问题,删去了关于
T
k
T_k
Tk的约束条件
使用算法PDDQN:结合用于处理连续动作的 DDPG 算法和用于处理离散动作的 Dueling DQN 算法。分为两部分完成:
- 开始DDPG用于输出离散动作对应的连续动作;
- Dueling DQN根据状态和获得的连续动作得到离散动作最大Q值
对于这个DDPG、Dueling DQN需要了另外补充一下知识
DDPG:我理解就是DQN的加了一个Actor网络,负责进行动作的选择,更新参数时会结合critic的动作价值函数进行更新,采用的是梯度上升;然后Critic网络对采取的动作进行评价,更行网络使用的TD算法进行更新网络参数。
Dueling DQN :https://blog.csdn.net/weixin_46133643/article/details/121880738
经验回放:https://blog.csdn.net/qq_40206371/article/details/122336751
视频(讲的很好):https://www.youtube.com/@ShusenWang
状态空间
文章认为虽然(P1)的目标是能效(=吞吐量/能耗),而能量消耗和吞吐量不便于获得,就把状态用无人机的轨迹坐标表示 s [ n ] = { u [ n ] } s[n]=\{u[n]\} s[n]={u[n]}
动作空间
离散动作 j [ n ] j[n] j[n]:由【水平、竖直、卸载选择】三种动作组成 ( 5 ⋅ 3 ⋅ 2 K ) (5\cdot3\cdot2^K) (5⋅3⋅2K)
前面在模型中提到,无人机的一些运动。
- 水平上只能在一个时间移动单位距离,上、下、左、右和保持,5种水平动作
- 竖直上每个时间间隙,只能向上、下和保持进行移动一个单位距离
- 卸载决定, α k [ n ] ∈ { 0 , 1 } \alpha_k[n] \in \{0,1\} αk[n]∈{0,1}
连续动作 t [ n ] t[n] t[n]:无人机的飞行时间
两种数值类型的动作构成了系统的动作空间
a
[
n
]
a[n]
a[n]
奖励
奖励
r
[
n
]
r[n]
r[n]是作出动作之后环境给出的反馈,本文是将复杂的优化目标累积能效认为是环境给出的累积奖励,同时考虑了公平性
g
[
n
]
g[n]
g[n]。
r
[
n
]
=
∑
k
=
1
K
g
[
n
]
d
k
[
n
]
E
u
a
v
[
n
]
r[n] =\sum\limits_{k=1}^K g[n]\frac{d_k[n]}{E^{uav}[n]}
r[n]=k=1∑Kg[n]Euav[n]dk[n]
(P2)
确定好前面的关于轨迹、飞行时间、调度之后,优化设备分配到的时间
t
k
[
n
]
t_k[n]
tk[n]
表述为(P2):
在优化目标中
E
E
E,只与飞行时间和功率有关;
g
g
g与调度有关;
那么
E
E
E和
g
g
g在这个子问题中就已经在之前的优化中得到了确定,可以简化为下面的凸优化问题(P2-1):
最大化问题转化为最小化问题,是为了更容易地解决问题。这种转化使得问题可以使用线性规划算法来解决。线性规划算法通常用于求解最小化问题,因此将原始问题转化为最小化问题有助于使用线性规划算法求解。
最后,在获得 t k [ n ] t_k[n] tk[n]之后,无人机执行这些动作以获得奖励并进入下一状态。完整的过程将在下面进行介绍。
框架结构
该框架结构就是对上面提到的各个步骤连接起来。
上半部分:是用于生成动作(连续和离散),首先由DDPG生成连续的动作(飞行时间),再由Dueiling DQN生成相应的离散的动作(无人机的移动、卸载选择),最后通过线性规划解决子问题2,得到对应的具体设备分得的时间 t k [ n ] t_k[n] tk[n]。
下半部分:是用于更新网络,训练网络。会将上面生成的数据进行保存,包括【 s [ n ] s[n] s[n], a [ n ] a[n] a[n], r [ s , a ] r[s,a] r[s,a], s [ n + 1 ] s[n+1] s[n+1]】,作为一条transition,在训练阶段就会从存储的元组中拿数据进行训练。
完整PDDQNLP算法
算法的完整表述如下,内容为前面讲的过程,不再进行补充说明。