% Copyright (c) 2014,2016,2018 Casper Ti. Vector % Public domain. \chapter{基于深度强化学习的信道分配算法研究} \section{引言} 为了应对下一代卫星移动通信系统高吞吐量的数据需求,卫星广泛采用了多波束卫星的架构,不同波束分别覆盖地面特定的区域,波束共同组成了单卫星的区域覆盖。由于卫星通信的用户和终端在地理空间和使用时间上分布不均匀,卫星不同波束间的通信数据量存在较大的差异,如果采用固定的频谱分配方式,即使波束内不存在用户使用资源,也会造成资源的浪费。而采用动态资源分配的方式,即所有的信道资源都可以被各个波束的用户所使用\supercite{刘召2019多波束卫星动态信道资源分配算法},相比固定的频谱分配方式能够拥有较高的资源利用率。关于如何合理地将星上资源在波束之间分配的研究越来越多\supercite{杨宇龙2020多波束卫星通信系统的资源分配算法研究},这些研究主要是将带宽或者功率作为优化目标,本章将首先针对现有的单一资源优化分配算法的性能进行研究,根据其不足改进得到基于强化学习的多波束卫星资源的分配算法。 % 但是在多波束卫星系统中,从不同的波束发送的信道在卫星转发器相遇,这样导致使用相同频率资源的信号在中心距离小于同频复用距离时存在同频干扰 % 但多波束卫星系统中,不同波束使用相同信道进行转发时,会产生同频干扰,使用相同频率工作的波束会相互干扰,引起通信速率和通信质量的下降。 \section{系统与问题建模} \subsection{场景描述} \begin{figure}[hbpt] \centering \includegraphics[width=0.85\textwidth]{chap/figures/multi-satellite.pdf} \caption{多波束卫星系统图} \label{fig:multi-satellite} \end{figure} 多波束卫星系统由多波束卫星和地面用户组成。本章场景中,多波束卫星拥有$N$个波束,服务于$N$个小区。 % 图\ref{fig:multi-satellite}描述了常见的多波束卫星的整体系统结构,多波束卫星主要包括的以下几部分: % \begin{enumerate} % \item 地面中心站:主要包含前向链路网关处理部分 % \item 前向链路:该链路将以频率复用的方式将网关的数据包传输给卫星 % \item 多波束卫星:该单元为一个卫星,从前向链路网关接受数据包,转发到地球上的另一个用户终端。 % \item 下行链路:卫星与用户终端的传输链路。 % \item 覆盖区域:卫星服务的地面区域。 % \end{enumerate} 如图\ref{fig:beam_users}所示,考虑一个给定的卫星场景。其中存在数量为$K$的用户终端分散在各小区中,图中的点、“x”等标记代表不同的地面用户。在$t$时刻,用户通过根据地理位置通过最大化信干噪比(Signal to Interference plus Noise Ratio,SINR)的方式与波束对应并申请接入卫星通话系统。各个波束之间的业务量之间存在一定的差异,因而每个波束的业务需求和信道容量也有所差别,使用$C_i(i=1,2,\dots,N)$表示。 同时,用户根据地理位置的不同,会被不同的点波束所服务,波束与用户之间的关系可以使用以下矩阵描述: $$\mathbf{X}=\{x_{k,n}|x_{k,n}\in\{0,1\}, \sum_{n=1}^{N}x_{k,n}=1,\forall k \} .$$ 考虑LEO卫星系统中,由于卫星轨道相对较低,卫星移动速度较快,例如卫星在\SI{780}{km}的轨道高度时运行速度为\SI{7.46}{km\per s},因此这种场景下可以忽略地面用户的移动性,只需要考虑卫星的移动性。卫星相对于地面区域向特定方向的运动可以视为用户朝着相反方向进行移动。 \begin{figure}[hbpt] \centering \includegraphics[width=0.65\textwidth]{chap/figures/beams_users.png} \caption{小区与用户示意图} \label{fig:beam_users} \end{figure} \subsection{问题建模}\label{sec:problem} 卫星系统中卫星的总功率和总的带宽可以分别使用$P_{tot}$和$B$表示,而每个波束的最大功率和每个波束的带宽可以表示为$P_b$与$B_b$。由于星上带宽资源具有稀缺性,卫星分配给各个波束的带宽通常小于或等于其业务需求量,即 $$C_i \le T_i^t, \forall t$$ % 多波束卫星通信的一大特点就是可以使用频率复用技术,能够使得卫星在使用相同信道的同时与多个波束服务的小区内的用户进行通信。频率复用技术的优势能够提高频率资源的利用率,提高系统的通信容量。 多波束卫星通信的一个显著特点是它能够利用频率复用技术。这使得卫星可以在同一信道上同时服务多个波束覆盖的小区,与这些小区内的众多用户进行通信。这种频率复用技术大幅提高了频率资源的利用效率和整个系统的通信容量。但是同频复用导致波束的天线旁瓣增益对其他使用同频信道的波束造成一定的干扰,而这种干扰会影响系统的容量。假设系统拥有$M$个可以复用的信道,每个可复用信道的带宽为$B_c = \frac{B}{M}$,即每个点波束可以在所有可用的信道集合中分配未使用的信道,每个用户单个时隙只能占有一个信道。假设星上资源中,用户$k$使用信道$m$进行通信的功率为$w_{m,k}$,那么可以用以下矩阵作为信道分配的描述: $$ \mathbf{W} = [\mathbf{w_1, w_2,\dots,w_K}] = \begin{bmatrix} w_{1,1} & w_{1,2} & \dots & w_{1,K} \\ w_{2,1} & w_{2,2} & \dots & w_{2,K} \\ \vdots & \vdots & \dots & \vdots \\ w_{M,1} & w_{M,2} & \dots & w_{M,K} \\ \end{bmatrix} , \mathbf{W} \in \mathbb{R}^{M\times K}. $$ 基于用户与点波束的对应关系,可以有: \begin{equation} \mathbf{F} = \mathbf{W} \cdot \mathbf{X} \end{equation} 由于存在波束间的干扰关系,如果定义$h_{i,j}$为用户$j$对用户$i$的干扰关系,可以构建用户之间的增益矩阵为$\mathbf{H}$ \begin{equation} \mathbf{H} = \begin{bmatrix} h_{1,1} & h_{1,2} & \dots & h_{1,K} \\ h_{2,1} & h_{2,2} & \dots & h_{2,K} \\ \vdots & \vdots & \dots & \vdots \\ h_{K,1} & h_{K,2} & \dots & h_{K,K} \\ \end{bmatrix} \end{equation} 其中,$h_{i,i},i\in{1,2,\dots,K}$为用户所在波束对自身的增益,根据公式\ref{eq:P_R},地面用户接收到的信号的增益为 \begin{equation} h_{u_i,u_j} = g_{t}^{m,u_i} \cdot PL \cdot g_r \label{eq:hnk} \end{equation} 该式中,$g_{t}^{m,u_i}$为用户$u_j$对应的点波束$m$对用户$u_i$的发射增益,即满足$x_{u_j,m}= 1$。 定义$\mathbf{A} = diag\{PL_1,PL_2,\dots,PL_K\}$为空间损耗矩阵,$\mathbf{G_r}=\mathrm{diag}\{g_{r,1},g_{r,2},\cdots g_{r,k}\}$为用户接收增益,$\mathbf{G_t}=\{g_{k,n}|1\le k\le K, 1\le n\le N\}$为波束到用户的发射增益,可以自然地得到用户之间的干扰矩阵为 \begin{equation} \mathbf{H} = \mathbf{A} \cdot \mathbf{G_r} \cdot \mathbf{G_t} \cdot \mathbf{X}^T \end{equation} 那么用户接收到的信号功率可以表示为 \begin{equation} P_k = h_{k,k} \cdot w_{m,k} % , \forall m,k, x_{m,k} = 1 \end{equation} 干扰可以表示为: \begin{equation} P_{cci,k} = \sum_{i\ne k} h_{k,i} \cdot w_{m,i} % , \forall m,i, x_{m,i} = 1 \end{equation} 那么能够方便的得到用户的信干噪比公式(SINR)为 \begin{equation} SINR_k = \frac{P_k}{B_c N_0 +\sum_{i\ne k} h_{k,i} \cdot w_{m,i} } \label{eq:SINR} \end{equation} 根据香农公式,用户$k$的信道容量可以表示为: \begin{align} C_k = B_c \log_2{(1+\frac{P_k}{B_c N_0 +\sum_{i\ne k} h_{k,i} \cdot w_{m,i} })} \label{eq:ci} \end{align} 公式\ref{eq:ci}给出了用户在所建模的低轨卫星通信系统上在系统资源分配策略下可以达到的速率。为了保障用户的服务质量,该速度需要满足达到特定的最低值,否则通信或者数据传输服务就会因为服务质量过程被阻塞或者失去响应,将速度最低值记为$C_t$。 在以上的基础上,卫星的资源分配问题可以描述为在给定的资源约束下,在业务到达时为其分配合理的信道,最大化服务的用户数量,这一问题属于序列决策问题,这一问题在\ref{sec:decision}中已经有了比较细致的阐释。具体到该问题就是需要对离散时域上的业务到达请求进行信道的合理分配。本文场景中系统的频谱效率与同时接入服务的用户数量等价,最优化系统的频谱效率就是最小化系统的阻塞率。对决策起到主要影响的就是由于用户地理位置和频率复用产生的同频干扰。当$t$时刻,用户$u_i$申请接入卫星通信系统,由$\mathbf{X}$矩阵可知,需要在波束$b'=\arg \max \mathbf{x_i}$中寻找合适的信道$c$,为用户提供服务,如果存在能够满足限制条件的信道,那么用户就能得到服务,否则用户就会被阻塞。是否阻塞反应了用户的QoS质量,定义阻塞函数: \begin{equation} \Psi^t = \begin{cases} 1, & \text{用户被阻塞} \\ 0, & \text{用户得到服务} \end{cases} \label{eq:B_r} \end{equation} 此时系统服务的用户集合为$\mathcal{U_t}$,根据公式\ref{eq:ci},此时系统的总容量为$\sum_{\forall u \in \mathcal{U_t}} C_u$。可以计算系统的频谱效率$SE_t$: \begin{equation} SE_t = \frac{\sum_{\forall u \in \mathcal{U_t}} C_u}{B} \label{eq:SE} \end{equation} % 假设此时系统中每个波束的发射功率为$P_t^b$,此时系统的能量效率为 % \begin{equation} % EE_t = \frac{\sum_{\forall u \in \mathcal{U_t}} C_u}{\sum_{b=0}^{N}P_t^b} % \label{eq:EE} % \end{equation} 信道分配的目的是最小化用户通信的阻塞率、最大化系统的频谱效率,需要满足系统的限制。因此可以将信道分配问题建模为以下问题: \begin{align} opt. \mathcal{P_1} = \min \sum_{t=1}^{T} \Psi^t \\ \mathcal{P_2} = \max \sum_{t=1}^{T} SE_t \\ s.t. \sum_{i,j} f_{ij} \le P_{tot}, \forall t \label{eq:pt}\\ \sum_{j=0}^{N} f_{i,j} \le P_t^b \forall i, t \label{eq:pbb}\\ C_i \ge C_t, \forall i \in \mathcal{U_t} \label{eq:Cth} \end{align} 为了简化问题的复杂度,在本章的卫星通信场景中假设了每个信道采用相同的功率进行发射,即$f_{i,j} \in \{P_{Channel}, 0\} $,同时本章场景主要是卫星语音通话,因此可以将用户的业务需求视为固定值,每次用户的通信只占用一个信道。式\ref{eq:pt}表示卫星所有波束的发射总功率不超过系统的总的发射功率。式\ref{eq:pbb}表示每个波束的发射功率不超过单波束的最大的发射功率,卫星单个波束的最大发射功率限制和其波束形成的方式有关。式\ref{eq:Cth}表示用户的通信速率不低于最低的通信速率,同时新用户的接入不能影响原有正在使用系统的用户的正常通信条件。由此便将卫星信道的动态分配问题转化为了一个序列决策问题从而能够使用深度强化学习的方法。 \section{基于强化学习的卫星信道分配算法的问题建模} % vim:ts=4:sw=4 本节主要探讨的是如何将\ref{sec:problem}提出的序列决策问题转化为\ref{sec:decision}中描述的马尔可夫决策过程的形式,即给出状态、动作等问题的抽象,同时给出了本章基于强化学习的卫星信道分配算法的整体框架、阐释所给出的算法的设计思想和主要过程并给出了算法的具体实现过程和部分细节。 \subsection{总体框架} 由于在本问题中,每个用户每个时刻最多只能占用一个信道,因此每次决策时只需要输出一维的动作信息即选择一个可用的信道。算法将卫星视为一个智能体,用户和信道的分配信息量化为系统的状态信息,智能体和状态相结合得到环境的反馈,这一反馈转化为系统目标函数的奖励值,通过基于值的强化学习方法深度Q网络的思想,一步步实现收益的优化。算法的总体框架图为\ref{fig:framework1}。 \begin{figure}[hbpt] \centering \includegraphics[width=0.95\textwidth]{chap/figures/framework.png} \caption{算法框架图} \label{fig:framework1} \end{figure} 环境的信息经过预处理和状态重构后转化为张量的状态$s$输入到$Q$网络中,经过的$Q$网络的计算后,得到一组Q值,通过Q值产生对应的动作$a$,动作应用到环境中产生一定的激励与奖励值$r$。每经过一次运算,就能够产生一组经验值($\phi_i = {s_i, a_i, r_i, s_{i+1}}$),这组经验条目被存储于经验池$D$中。当经验池中的数据到达了训练门限后,就会利用损失函数$L(\theta)$对Q网络进行训练,期中还存在一个Q网络的延迟副本Q'网络,Q'网络具有与Q网络相同的结构,每经过$G$步更新为Q网络。通过对Q网络的训练和学习,实现的最大的收益。 \subsection{马尔可夫过程构建} 强化学习的基础是马尔可夫决策过程,具体的构建过程如下: \subsubsection{状态空间} 状态是对由卫星和用户构成的环境的形式化抽象,根据最优问题建模,进行决策所需要的信息有$t_i$时刻多波束卫星的波束分配矩阵$W_{t_i}$,当前时刻正在服务的用户的集合$\mathcal{U_{t_i}}$,$t_i$时刻请求通信资源的用户$u_{t_i}$。使用公式可以表示为: \begin{equation} s_{t_i} = \{W_{t_i}, \mathcal{U_{t_i}}, u_{t_i}\} \end{equation} \subsubsection{动作空间} 动作是智能体对环境的操作与输出,根据Q网络的特点,动作空间是离散的,每个时刻的动作是选择一个可用的信道,即 $\mathcal{A} = \{1, 2, \cdots, M\}$。 Q网络会输出$M$个Q值,对应不同信道的$Q$值,根据最大化价值函数的原则,动作$a_{t_i}$表示为 \begin{equation} a_{t_i} = \arg \max_{a \in \mathcal{A}} Q(s_{t_i}) \label{eq:att} \end{equation} \subsubsection{奖励设计} 根据优化问题的设计,将优化目标增量$\Delta F$作为收益率的依据,任务目标由优化问题中的目标决定,本问题中的优化目标是最小化阻塞率和最大化频谱效率,因此优化目标可以公式表示为: \begin{equation} F_{i} = \alpha_1 SE_{t_i} - \alpha_2 \frac{\sum_{0}^{t_i} \Psi^{\tau}}{N_{arrival}} \label{eq:target} \end{equation} 为了保障优化目标的公平性,$\alpha_1, \alpha_2$分别代表为两个归一化系数,减号代表是最小化阻塞率参数,那么优化目标的增量值可以表示为: \begin{equation} \Delta F = F_{t_i}-F_{t_{i-1}} \label{eq:DeltaF} \end{equation} 收益计算公式为 \begin{equation} r_{t_i} = \begin{cases} r_g, & \Delta F > 0 \\ r_l, & \Delta F \le 0 \end{cases} \label{eq:rtii} \end{equation} 其中,$r_g$为正值,代表系统在这种情况下选择该动作是比较好,$r_l$为负值,代表系统在这种情况下选择该动作是差的。 \subsection{状态重构}\label{sec:stateChange} 在完成了马尔可夫过程的抽象后,需在此基础上进行一定的数据预处理和状态重构操作。这主要是因为: \begin{enumerate} \item 神经网络的输入往往需要一定的结构化约束,只有将数据转化为特定的张量形式才能够由神经网络学习发现其中的特征信息,例如在状态空间中,已经服务的用户包含了用户之间的空间位置信息,由于地理信息是空间连续的必须要将其进行离散化处理才能够输入到神经网络中。 \item 对状态信息进行重构,可以减少状态空间的维度。进行预处理后可以有效降低空间复杂度信息,例如在考虑共频干扰时只需要考虑用户周边信道的干扰即可,而实际卫星可能拥有数百甚至数千的波束,不进行状态压缩将会带来巨大的时空复杂度。 \end{enumerate} 基于以上两点原因,在本节中将对把状态$s_{t_i} = \{W_{t_i}, \mathcal{U_{t_i}}, u_{t_i}\}$重构为多维的图形张量,以便于神经网络的学习。具体的状态重构过程如下。 图\ref{fig:origin}描述了某个时刻业务的需求信息,这其中三角符号代表正在通信的用户,圆形代表新申请接入通信的用户,为了便于使用CNN等网络进行处理,首先将系统的状态分隔为$L\times H$的图片,每个像素点代表一个区域的情况。 \begin{figure}[hbpt] \centering \includegraphics[width=0.75\textwidth]{chap/figures/origin.png} \caption{某个时刻的业务需求量} \label{fig:origin} \end{figure} 通过构造$M+1$张图片,其中前$M$张代表正在进行通信的用户对$M$个信道的占用情况,第$m(m \in {1,2,\cdots,M})$张图片代表了$t_i$时刻已经服务用户集合$\mathcal{U_{t_i}}$ 对$m$信道的占用情况。第$M+1$张代表了新到来用户的情况。每个像素点占用1位的信息,这样就将信息重构为了一个$(M+1) \times L \times H$的图形张量,即拥有$M+1$个颜色通道的黑白图像。图\ref{fig:state_restruct}描述了图\ref{fig:origin}的一种可能的状态压缩情况。在这种状态压缩方案下,状态空间的计算复杂度通过系统$L$和$H$两个维度进行控制,状态可以表示为$s\in\{0, 1\}^{(M+1)\times L \times H}$。 \begin{figure} \centering \includegraphics[width=0.95\textwidth]{chap/figures/statechange.png} \caption{状态重构示意图} \label{fig:state_restruct} \end{figure} 本章聚焦于中低轨卫星的情况,需要考虑卫星的移动性问题,如图\ref{fig:leonet}所示,地面用户不能总在任何时候都与卫星通信,通信的时长受到低轨卫星的覆盖时间限制。图\ref{fig:leonet}所描述的系统多种,卫星正下方的紫色圈层即为卫星的覆盖范围,其覆盖范围会随着卫星的移动而进行移动。使用时间$T$表示地面用户与单颗卫星的最长通信时间,那么可以得到 \begin{equation} T = \frac{L}{v_{sat}} \label{eq:maxt} \end{equation} $v_{sat}$是低轨卫星的运行速度,$L$如图\ref{fig:leonet}所示,是单颗卫星的覆盖范围信息。而通过以上的状态重构后,卫星的移动便转化为图片各个像素点朝着某个方向平移的问题。图\ref{fig:move}展示了这种情况下的变化。 \begin{figure}[hbpt] \centering \includegraphics[width=0.75\textwidth]{chap/figures/multileo.png} \caption{多波束低轨卫星通信系统场景} \label{fig:leonet} \end{figure} \begin{figure}[hbpt] \centering \includegraphics[width=0.85\textwidth]{chap/figures/move.png} \caption{卫星移动导致状态的变化} \label{fig:move} \end{figure} \subsection{Q网络的架构与计算}\label{sec:qwl} 如\ref{sec:rl}介绍,RL旨在找到最佳的动作选择策略,这一策略可以基于当前的状态做出最佳的动作决策。Q学习是通过定义Q函数的方法来估计价值函数,聚焦于在状态$s$下找到执行动作$a$的累计奖励,通过迭代的方式求解。由于时序决策序列存在较强的相关性,DQN架构采用了经验回放技术提升网络的收敛性,每次训练过程中都从经验池中提取一定数量的经验数据,通过\ref{eq:Ltheta}计算目标网络与当前网络的误差,通过随机梯度下降(Stochastic Gradient Descent, SGD)的方式来更新网络参数。 \begin{equation} L(\theta) = \mathrm{E} [(r_{t} + \gamma \max_{a'} Q'(s_{t+1}, a'; \theta ') - Q(s_t, a_t; \theta))^2] \label{eq:Ltheta} \end{equation} 式\ref{eq:Q_star_iter}表明Q函数可以通过迭代的方式获得最优解,结合\ref{eq:Ltheta}Q网络的迭代可以表示为 \begin{equation} \hat{Q}_{t+1} \leftarrow r_{t} \max Q(s_t, a; \theta) + \alpha L(\theta) \label{eq:Q_t_1} \end{equation} 由式\ref{eq:Q_t_1}可以得到,SGD的本质就是最小化误差函数,即$\min L(\theta)$ 本章算法使用了卷积神经网络(Convolutional Neural Network, CNN)作为Q网络的架构,具体而言主要包含了四层的网络结构。第一层是卷积层,包含16个$5\times 5$卷积核,依据\ref{sec:stateChange}中状态重构的描述,其输入为$M+1$张$L\times H$张量。第二层是32个$3\times 3$个卷积核。经过重新排列与重构输入到第三层和第四层的全连接层中,最后输出为$M$个Q值。其具体参数如表\ref{tab:Q}所示,其中$L = H = 10$。 \begin{table}[hbpt] \centering \caption{Q网络的参数} \label{tab:Q} \begin{tabular}{ccccc} \toprule 层 & 输入 & 卷积核 & 激活函数 & 输出 \\ \midrule 卷积层1 & $(M+1) \times L \times H$ & $5\times 5, 16$ & Relu & $16\times 6 \times 6$ \\ 卷积层2 & $16\times 6 \times 6$ & $3\times 3, 32$ & Relu & $32\times 4\times4 $ \\ 全连接层1 & 512 & - & Relu & 512\\ 全连接层1 & 512 & - & Relu & $M$\\ \bottomrule \end{tabular} \end{table} \subsection{算法流程} 算法一共分为以下几个主要过程: \begin{enumerate} \item 参数初始化,初始化仿真场景和算法的参数。 \item 训练更新:将经验$\phi = \{s, a, r, s\}$存储到经验池。当经验池数据量达到训练门限时,随机选取一组数据批量训练,通过随机梯度下降的方式更新Q网络的参数,更新Q'网络的参数。 \end{enumerate} 具体的步骤如下: \begin{breakablealgorithm} \caption{基于DQN的低轨卫星信道分配算法} \label{algo:1} \begin{algorithmic}[1] \renewcommand{\algorithmicrequire}{\textbf{参数初始化}} \REQUIRE \STATE 初始化低轨多波束卫星场景与用户信息 \STATE 初始化业务到达参数 \STATE Q网络参数$\theta$初始化,目标Q网络参数$\theta '$初始化,初始化经验回放池$D = \emptyset, N = N_e$ \STATE 初始化卫星信道分配表$\mathbf{W}$、业务队列信息 \renewcommand{\algorithmicrequire}{\textbf{训练与优化过程}} \REQUIRE \FOR{episode $i \leftarrow 1,2,\dots, S$} \STATE 初始化状态$s_0$,并进行状态的重构 \FOR{timestep $t \leftarrow 1,2,\dots, T$} \STATE 用户$u_t$申请到达,更新业务队列,更新探索概率$\epsilon = \max (\epsilon\cdot\lambda, \epsilon_f)$ \STATE 观察环境,构建状态$s_t$ \STATE 计算可用的动作空间 $\mathcal{A}({s_t})$ \IF{$\mathcal{A}(s_t) = \emptyset$} \STATE 直接拒绝用户$u_t$的业务申请 \STATE 计算收益值 \ELSE \STATE 利用$\epsilon - greedy$选择一个概率$p$ \IF{$p \le \epsilon$} \STATE 随机选择动作$a_t \in \mathcal{A}(s_t)$ \ELSE \STATE 选择$a_t = \arg \max Q(s_t, a; \theta)$ \ENDIF \STATE 执行$a_t$,更新环境的状态,得到奖励$r_t$,观察下一个状态$s_{t+1}$ \STATE 处理$s_{t+1}$,将$\langle s_t, a_t, r_t, s_{t+1}\rangle$添加到经验回访池$D$中 \ENDIF \IF{经验存储池$D$中的数据量大于经验回放门限} \STATE 从$D$中随机抽取一组经验数据进行训练 \STATE 计算目标网络的预测值 \STATE 根据\ref{eq:Ltheta}计算损失函数$L(\theta)$,通过神经网络的反向传播进行训练 \ENDIF \IF{$t \mod G = 0$} \STATE 更新目标网络$\theta' \leftarrow \theta$ \ENDIF \ENDFOR \ENDFOR \STATE 输出参数$\theta$ \renewcommand{\algorithmicrequire}{\textbf{算法结束}} \REQUIRE \end{algorithmic} \end{breakablealgorithm} 在算法的流程中使用到了$\epsilon - greedy$策略,即使用$\epsilon \in [0,1]$的概率随机地进行动作选择,否则选择具有最大Q值的动作。这种方法的主要目的是在探索(exploration)和利用(exploitation)之间达到平衡,利用的含义是在当前的信息下选择已知的最优动作在当前例子中就是最大化Q值所对应的动作,这样主要的目的是利用历史知识进行学习,而探索则是随机选择一个动作,抛弃所有的已获得的信息。这种策略有助于寻找到全局最优解,避免过早地陷入到局部最优解中。在本算法中使用衰减率$\lambda$来控制探索概率的衰减速度,$\epsilon_f$是探索概率的最小值。 \section{仿真结果分析} 本节首先搭建了评估本章算法的仿真环境,给出了DRL算法所使用的参数。为了验证算法的有效性和性能,选取了多个不同的参数作为仿真的场景并与固定信道分配等算法进行了对比,结果表明本章的算法能够实现较高的频谱效率和较低的阻塞率。 \subsection{实验参数设计} 仿真中使用的是低轨的单颗L波段卫星系统,主要的参数如表\ref{tab:para}所示,主要参考文献\parencite{zhao2020deep}。其中,业务申请服从参数为$\lambda$的泊松分布,业务的持续时间服从参数为$\mu$的负指数分布,参考\parencite{刘帅军2018卫星通信系统中动态资源管理技术研究}。系统中初始存在的用户数为400,分散在各个波束内。业务速率的最低为\SI{500}{kbps}。 \begin{table} \centering \caption{卫星场景仿真参数} \label{tab:para} \begin{tabular}{cc} \toprule 参数 & 值 \\ \midrule 卫星轨道高度 & \SI{1000}{km} \\ 卫星波束数 & 37 \\ 用户数 & 400 \\ 下行链路中心频率 & \SI{1500}{MHz} \\ 信道数 & 16 \\ 信道最大功率 & \SI{0.35}{dBW} \\ 卫星总功率 & \SI{23}{dBW} \\ 波束最大功率 & \SI{20}{dBW} \\ 信道带宽 & \SI{312.5}{kHz} \\ 信道到达率 & [10, 100] \\ 业务持续时间 & [1, 9] \\ 卫星发射增益 & \SI{41.6}{dBi} \\ 卫星终端接收增益 & \SI{20}{dBi} \\ 噪声功率谱密度 & \SI{-174}{dBm\per Hz} \\ % 信道持续时间 & 0.1 \\ 多波束天线半波束角 & \SI{0.5}{\degree} \\ 业务速率最低门限 & \SI{500}{kbps} \\ \bottomrule \end{tabular} \end{table} 本算法采用了深度强化学习的方法来解决多波束低轨卫星中信道的分配问题,因此需要说明卫星通信的算法参数。对于深度强化学习而言需要有一个经验回放池子,在这里设置经验回访池的容量为20000条经验数据,当经验池中存放了2000条经验后,从中每次抽取64条经验进行Q网络的训练。学习率是影响算法收敛速度的重要指标,本算法中使用的参数为0.0001。为了平衡探索和利用的关系,设置了探索概率的初始值为0.9,每次训练后以0.9的速率进行衰减,最小值为0.01。目标网络的更新频率为100步,即每100步更新一次目标网络的参数。具体的参数列表如表\ref{tab:para_1}所示。 \begin{table}[hbpt] \centering \caption{深度强化学习算法参数} \label{tab:para_1} \begin{tabular}{cc} \toprule 参数 & 值 \\ \midrule 经验回放池容量 & 20000 \\ 经验回放门限 & 2000 \\ 每次训练经验数 & 64 \\ 学习率 & 0.0001 \\ 初始探索概率 & 1.0 \\ 探索概率衰减率 & 0.9 \\ 探索概率最小值 & 0.01 \\ 目标网络更新步长 & 100 \\ 激活函数 & Relu \\ 正向收益 & 0.05 \\ 负向收益 & -0.3 \\ \bottomrule \end{tabular} \end{table} 本次使用了Python3.10中的PyTorch机器学习框架实现了本次系统的算法,所有的仿真运行在CPU平台为Intel Core i7 11700CPU和NVIDIA RTX 3090 图形计算卡上。 \subsection{算法性能分析} \subsubsection{算法复杂度分析} 本文中使用的DRL算法通过状态重构、卷积降采样等方式降低了数据维度和计算的复杂度,从而大大缩减了计算开销和计算时间。本算法使用了卷积神经网络描述,其中卷积层的复杂度为: \begin{equation} \mathcal{O}(\sum_{i=1}^{N_{conv}} M_i^2\cdot K_i^2 \cdot C_{in} \cdot C_{out}) \label{eq:CNN} \end{equation} 其中$N_{conv}$为卷积层层数,$M_i$为输出维度。$K_i$为卷积核的大小,$C_{in}$为输入的通道数,$C_{out}$为输出的通道数。全连接层的复杂度为: \begin{equation} \mathcal{O}(\sum_{i=1}^{N_{fc}} M_{in} \cdot M_{out}) \label{eq:FC} \end{equation} $M_{in},M_{out}$分别是输入输出维度,总的复杂度为: \begin{equation} \mathcal{O}(\sum_{i=1}^{N_{conv}} M_i^2\cdot K_i^2 \cdot C_{in} \cdot C_{out} + \sum_{i=1}^{N_{fc}} M_{in} \cdot M_{out}) \label{eq:total} \end{equation} 本算法复杂度相较于NP困难问题,已经能够得到收敛的表达式公式。 \subsubsection{算法收敛性能分析} \begin{figure}[H] \centering \includegraphics[width=0.7\textwidth]{chap/figures/Loss.png} \caption{神经网络损失随eposide的变化图} \label{fig:Loss} \end{figure} 图\ref{fig:Loss}为平均业务到达率$\lambda = 80$, 平均业务持续时间为$\mu = 3$时,Q网络损失随着训练迭代次数增加出现先增加后变小的趋势,这是因为Q网络在0-20步即前2000条记录,Q网络还没有进行训练,而随着迭代次数的增加系统的损失逐渐趋近于0,说明了系统的收敛性。同样地图\ref{fig:blkr}反映了在仿真场景下系统的阻塞率的性能指标,随着训练次数的增加,系统的阻塞率逐渐减小,在业务量超过500 episode即5万的业务申请后趋于稳定收敛结果。 \begin{figure}[H] \centering \includegraphics[width=0.7\textwidth]{chap/figures/blkr.png} \caption{业务阻塞率的系统指标} \label{fig:blkr} \end{figure} \subsubsection{系统性能分析} 为了比较算法性能,本节选取了不同的业务参数、业务持续时间验证算法的性能,并与四色复用方案下的固定信道分配方式、最小化干扰的动态信道分配方式进行了比较。这几种算法的描述如下: \begin{itemize} \item 固定信道分配方式:将系统中的可用信道按照一定的频率复用因子划分为多个子集,每个波束归属于特定的子集,从每个子集中选择可使用的信道进行分配,本次使用四色复用的方案。 \item 最小干扰的动态分配方式:在每个时刻选择一个最小干扰的信道分配给用户。 \end{itemize} 为了比较以上的算法,下面针对不同的场景进行分析。 \textbf{(1) 业务持续时间固定的情况} 在本节中将固定业务的持续时间$\mu = 3$,分别比较不同$\lambda$条件下,各个算法的性能。 \begin{figure}[hbpt] \centering \begin{subfigure}{0.45\textwidth} \includegraphics[width=\textwidth]{chap/figures/mu_6.png} \caption{阻塞率随$\lambda$变化情况} \label{fig:subfigurelamb} \end{subfigure} \begin{subfigure}{0.45\textwidth} \includegraphics[width=\textwidth]{chap/figures/mu_3_se.png} \caption{频谱效率随$\lambda$变化情况} \label{fig:subfigurelambse} \end{subfigure} \caption{业务持续时间一定的情况下算法性能随着到达率的变化情况} \label{fig:mu_6blk} \end{figure} 如图\ref{fig:mu_6blk}所示,阻塞率会随着业务到达率的增大而增大,可用的信道数是固定的,随着到达率的增加,会有越来越多的用户因为信道被完全占用无法得到服务。本章方法在业务的持续时间固定时,在大多数的业务到达率情况下在阻塞率方面优于其他两种算法。例如在$\lambda = 60$时,本文算法的阻塞率要比固定信道分配方式低约0.3,比动态分配方式低约0.03。 在所有的到达率中,固定信道的分配方式的系统阻塞率都要高于其他两种方法。这是因为本次比较的信道分配算法使用的是四色复用的方式,每个波束能够使用的信道数量较其他两种方法小,动态新的分配方式可以通过灵活的配置满足新到达的业务从而能够降低整体的阻塞率。固定分配方式与动态方法之间的差距随着到达率的增大先逐渐增大再减小,到达率较低时,所有算法都能有效分配信道,而随着到达率的增大,固定分配方式和动态分配方式先后到达阈值。本章的DRL算法在阻塞率方面都要优于贪心算法。这主要是因为贪心算法只考虑当前状态下系统的收益容易陷入到局部最优解,而通过DRL方法考虑了时域的关联性和累计的效率,能够更好地优化系统的性能。 从频谱效率上看,固定信道分配频谱效率相比其他动态方法更低,在较低到达率时,贪心与本章算法的频谱效率相近,在业务到达率较高时,本章算法明显领先贪心算法。 % 由于系统的带宽是固定的,阻塞率一定时能够服务用户数量可以一定程度上反映的系统的频谱效率与承载量,DRL算法能够在阻塞率在0.1时比固定分配算法提高2倍以上,相比贪心算法提升约4\%。这都表明DRL算法相比其他算法具有较高的频谱效率。 \textbf{(2) 业务的到达率固定的情况} 本节将分别在低业务量和高业务量情况下分别讨论业务持续时间对业务阻塞情况和频谱效率的变化。 \begin{figure}[hbpt] \centering \begin{subfigure}{0.45\textwidth} \includegraphics[width=\textwidth]{chap/figures/mu_10.png} \caption{阻塞率随$\mu$变化情况} \label{fig:subfigurelowmu} \end{subfigure} \begin{subfigure}{0.45\textwidth} \includegraphics[width=\textwidth]{chap/figures/mu_10_se.png} \caption{频谱效率随$\mu$变化情况} \label{fig:subfigurelowmuse} \end{subfigure} % \includegraphics[width=0.7\textwidth]{chap/figures/mu_10.png} \caption{低业务量场景下系统的表现情况} \label{fig:lamb10} \end{figure} 如图\ref{fig:lamb10}所示,展示了低业务量场景($\lambda = 20$)下各个算法的表现。同样地,随着业务持续时间的增加,各个算法的阻塞率都呈现出增加的趋势。从图中可以看出,当业务量较低时,两种动态资源分配算法都能够有效降低系统的阻塞率,而固定分配方式的阻塞率要高于其他两种方法。在低业务量的场景下,DRL算法能够在业务平均持续时间更长的情况下保持较低的业务阻塞率和较高的业务呼通率,这表明在低频的业务量场景下,DRL算法能够有效保障整个通信系统的性能。 \begin{figure}[hbpt] \centering \begin{subfigure}{0.45\textwidth} \includegraphics[width=\textwidth]{chap/figures/lamb_90.png} \caption{阻塞率随$\mu$变化情况} \label{fig:subfigurelowmu} \end{subfigure} \begin{subfigure}{0.45\textwidth} \includegraphics[width=\textwidth]{chap/figures/lamb_90_se.png} \caption{频谱效率随$\mu$变化情况} \label{fig:subfigurelowmuse} \end{subfigure} \caption{高业务量场景下系统的表现情况} \label{fig:lamb90} \end{figure} 而图\ref{fig:lamb90}反映出了高业务量场景下的情况。这张图反映出,在任何情况下固定信道分配的情况下都不如动态信道分配算法。在业务量较大的情况下,如果业务的持续时间较短,DRL算法相比贪心算法具有明显的优势,而随着业务平均持续时间的提高,由于系统的信道资源逐渐趋于饱和,两种动态信道分配方式的性能也逐渐趋同。本章算法的频谱效率显著高于贪心算法。 \section{本章小结} % 本章基于深度强化学习领域的研究,提出了基于DQN的在低轨卫星通信下行链路中的多波束资源分配算法。本章首先详细分析了该场景下的序列决策问题,进而在分析问题的基础上提出了基于DQN的资源分配算法。本章首先对问题进行了数学建模,然后对状态空间进行了重构,接着详细介绍了DQN算法的原理和实现细节。最后通过仿真实验验证了本章提出的算法的有效性和性能。实验结果表明,本章提出的算法在低轨卫星通信场景下能够有效的降低系统的阻塞率,提高系统的频谱效率。 本研究针对低轨卫星通信下行链路中的多波束资源分配问题,引入了深度强化学习中的DQN实现了动态信道分配算法。在深入分析序列决策问题的基础上,通过数学建模与状态空间的重构,本文设计了适用于此场景的资源分配策略,并详细阐述了DQN算法的原理及实现细节。通过仿真实验,验证了该算法能有效减少系统阻塞率,提高频谱效率。