本发明属于无线通信领域,具体涉及一种可再生能源供能的通信系统(简称“系统”)中最优化能量分配和用户调度方法,更涉及一种基于强化学习(reinforcementlearning)的在线学习最优化能量分配和用户选择策略的方法。
背景技术:
随着5g和物联网的发展,越来越多的复杂的无线通信网络被建立起来,包括数以百计的电池驱动的节点。不幸的是,这些无线终端的电池容量是有限的,需要手动充电和更换,导致劳动力成本增加。在某些危险地区,有些设备不方便来取代,这使得通讯设备不可持续工作。随着人类环境保护意识的增加,人们更加关注绿色能源在无线通信的使用。能量采集(energyharvesting)是一种很有前途的方法来减少碳排放。因此,配备有能量采集装置的通信系统吸引了大量研究人员的注意。
但目前,基于能量采集的无线通信系统面临两个挑战。首先,由于周边环境的不确定性,采集到的能量是不稳定的(如风能或者太阳能)。这意味着通信系统可能面临着能源短缺的风险,从而导致不可靠。其次,在每一个时刻,可用的能量是十分有限的,尽管在未来可能收集到更多的能量。因此如何分配这些能量,发送多少或者发送给谁等等问题,都需要研究。
目前的能量最优化分配方法大多数都是基于凸优化方法。但是这种方法都需要系统环境的所有信息,如发射器知道过去至将来任意时刻的信道信息,因此这在实际中是不可能的。通常来说,无线通信中信道的变化可视为一个随机过程,是一个动态问题,从而很难再使用凸优化方法解决问题。因此,寻找一种适用的算法来使系统的性能达到我们的要求具有重要意义。
技术实现要素:
本发明的目的在于弥补上述现有技术的不足,提出一种无线能量分配和用户调度的方法,使系统在满足用户能量收集约束条件以及基站能量到达的因果约束的条件下,进行用户调度和能量分配,使得系统获得最大的吞吐量。
本发明采用的技术方案为一种无线能量分配和用户调度的方法,包括1个以可充电电池和能量收集装置供电的基站,n个配有能量采集装置的用户,并且基站发射端只知道信道的估计值,包括如下步骤:
(1)通信系统在k个时隙中进行,在第k个时隙,所述基站对n个用户发射射频信号,其中发射的能量为tk,只有一个用户被选作进行信息接收,其余的用户进行能量接收;
(2)所述基站由可充电电池供电,所述能量收集装置为可充电电池充电,在下个时隙存入到可充电电池中供基站使用,能量到达过程为一阶马尔科夫过程,发射的能量tk小于当前的可充电电池的电量bk;
(3)根据当前观测的通信系统状态,来选择进行用户调度和能量分配,选择最佳的用户和最合适的能量以发送,从而在满足用户能量收集约束条件的情况下达到最大的吞吐量。
进一步的,所述步骤(2)中,在时隙k收集的能量为ehk,下一时隙的电池电量为bk+1=min{bk+ehk-tk,bmax},而能量采集的一阶马尔科夫过程表示为pr(ehk|ehk-1,…eh1)=p(ehk|ehk-1),其中bmax是电池容量,p(.|.)是条件概率。
进一步的,所述步骤(3)中,还包含以下步骤:
1)将信道离散化,使得信道功率增益只有有限个值;
2)通过强化学习方法和二分法来优化能量tk和用户n的选择,选择最优的能量和用户从而使得通信系统在满足用户收集能量的约束下达到最大的吞吐量。若系统模型已知,我们将使用策略迭代算法在当前的拉格朗日乘子λ下计算出最优的吞吐量和能量收集量,再用二分法对λ进行更新,如此反复,直到得出满足条件的λ,然后计算出当前的吞吐量和能量收集量。若系统模型位置,则我们将采取一种叫做q-learning的强化学习算法去计算出在当前λ下最优的吞吐量和能量收集量,同样再用二分法对λ进行更新,如此反复,直到得出满足条件的λ,然后计算出当前的吞吐量和能量收集量。
本发明的有益效果为:
本发明提出了基于能量采集的多用户通信系统中的无线能量分配和用户调度方法。通过配合使用强化学习方法和二分法来得到最优的能量分配和用户选择,从而使得系统在满足用户收集能量的约束下达到最大的吞吐量。
附图说明
图1是本发明的系统模型图;
图2是本发明的策略迭代算法程序流程图;
图3是本发明的q-learning算法框图;
图4是本发明的总体算法示意图;
图5是λ为0时改变电池容量对吞吐量的影响示意图;
图6策略迭代算法和q-learning算法的结果对比的示意图;
图7是λ对吞吐量影响以及q-learning算法和策略迭代算法比较示意图。
图8是λ对能量收集影响和q-learning算法和策略迭代算法比较示意图。
具体实施方式
如图1所示,我们所考虑的通信系统是由一个配有能量采集模块进行采能并且以电池供电的基站和n个由电池供能的用户终端所组成的,其中用户终端能对射频能量进行采能或者进行信息传输。基站和每个用户之间都是单天线传输。此外我们在用户终端上采取了时分接受模块,即在同一时刻只能进行能量收集或者信息接受中的一种功能。
(1)我们认为通信系统在k个时隙中进行,并且将每个时隙的时间长度归一化为1。在第k∈{1,2,…k}个时隙,基站对n个用户发射射频信号,其中发射的能量为tk,只有一个用户被选作进行信息接收,其余的用户进行能量接收。为了便于描述,那么我们引入一个变量ρk(n)∈{0,1},
其中hk(n)是第n∈{1,2,…,n}个用户在时隙k的信道功率增益,nn是加性高斯白噪声的功率谱密度,w是信道带宽。若用户n在时隙k进行能量收集,则收集的能量为
qk(n)=ξntkhk(n)(2),
其中ξn是用户n的能量接收效率,0<ξn<1。
(2)在时隙k收集的能量为ehk,下一时隙的电池电量为bk+1=min{bk+ehk-tk,bmax},而能量采集的一阶马尔科夫过程表示为pr(ehk|ehk-1,…eh1)=p(ehk|ehk-1),其中bmax是电池容量,p(.|.)是条件概率。
(3)我们将信道离散为fsmc(finitestatemarkovchannel,有限状态马尔科夫信道)模型,即信道功率增益只有有限个值而非连续值。认为
在此引入状态的定义:在时隙k时的状态为sk=[hk,bk,ehk]。由于我们只知道信道功率增益的观测值,那么类似的可以定义观测状态为
其中e[.|.]是基于条件数学期望值。让我们考虑无限时隙的情况,即k→∞时,如果单纯的进行累加,将会得到发散的式子从而无法求解,所以我们采用带有折扣因子的总吞吐量,其表示为
其中γ是折扣因子,是一个小于1且接近于1的常数,以确保(4)式不会发散至无穷大并且具有实际意义。同理我们可以将能量收集的数学期望表示为
那么每个用户平均收集的总折扣能量为
考虑无穷个时隙的情况,我们要使n个用户总的折扣吞吐量最大,并且能量收集也得满足qsum≥qreq。则我们的问题可以表示为如下一个带约束的优化问题:
st:c1:qsum≥qreq
可以发现,我们的问题(7)是一个mdp(markovdecisionprocess,马尔科夫决策过程),即下一个系统状态的概率是取决于当前系统状态和执行的动作。系统模型已知的时候,mdp可以用表示用一个四元组<s,a,p,r>表示。mdp四元组由下面四个部分组成:
1)状态空间
2)动作空间
3)转移概率p:我们定义p是状态转移概率集。我们用p(s′|s,a)表示在当前状态为s时执行动作a后,下个时隙状态转移到s′的概率。
4)及时奖赏函数r:r是奖励函数,我们使用r(s′|s,a)表示在当前状态为s时执行动作a,下个时隙状态转移到s′的奖赏值。由于本问题中即时奖励与下一个时隙的状态无关,因此可以将其重写为r(s,a)。本发明的具体奖励函数将在后面介绍。
为了解决问题(7),我们首先构造一个拉格朗日函数j(λ)=gsum+λqsum,得到
其中
接下来,对于j(λ),首先在给定λ时,并在满足约束c2至c5的情况下,求出的j(λ)最大值,即求解:
st:c2,c3,c4,c5
求解问题(10)的具体方法将在随后介绍。然后就可以找出关于给定λ时,在(q,g)平面上给定λ的最优可行点(qsum(λ),gsum(λ)),那么gsum(λ)就是在给定收集能量约束目标qsum(λ)的情况下的可达到的最大值。我们要找到一个λo使得qsum(λo)=qreq,而本发明由于是状态和动作是离散值,最后不一定能满足qsum(λo)=qreq,则我们可以取
接下来,我们首先对问题(10)进行求解,对于系统模型已知时,即系统mdp四元组是已知的,那么上述问题(10)的最优值的求解可以看作一个基于模型的强化学习任务,那么就可以用策略迭代(policyiteration)算法求解问题(10)。
策略迭代法,顾名思义肯定和策略有关,我们定义π为策略,而策略是一个从状态到动作的映射,即
策略迭代法的思想是首先评估当前策略下的值函数,然后进行策略改进,不断循环策略评估和策略改进,直至策略不再发生变化,即得到了使得状态值函数最大的最优策略。对问题(10)使用策略迭代算法即可得到在给定λ时最大的j(λ)值和使j(λ)最大的最优策略π*。状态值函数(state-valuefunction)vπ(s)的含义就是从状态s开始,一直执行策略π所能带来的奖赏。若起始状态是s,那关于问题(10)的状态值函数为
式(11)叫做γ折扣累计奖赏,由于mdp具有马尔科夫性质,即下一时刻的系统的状态仅有当前的系统状态所决定,不依赖于以往任何状态,所以状态值函数具有很简单的递归形式。一般的,给定策略π,对于γ折扣累计奖赏,状态值函数分别具有如下递归形式:
对于一个策略是否是最优策略,我们首先要对其做出评估,得出在这个策略下的值函数。对于(12),在系统状态已知时,r和p是已知的,那么未知数只有状态值函数,所以其实是一个解线性方程组的问题。一般的,采用数值方法求解比较符合我们的目的。我们采用如下更新规则去求解状态状态值函数:
其中v(s)的迭代初始值可以为任意值。
但是在上述部分,供评估的策略π是一个随机给定的策略,一般不是最优的,那么我们需要对策略做出改进。从而得到最优策略
由于我们需要改进动作,先给出状态-动作值函数q的定义。
策略改进只需要在选择当前策略时采用贪心策略,即将动作改变为当前最优的动作。值函数对于策略的每一点改进都是单调的,那么可以放心的将策略改进为
π′(s)=argmaxaqπ(s,a)(15)
不断循环策略评估和策略改进,直到策略不再发生变化,此时策略即为最优策略。
那么我们将策略评估和策略改进算法结合起来,就得到了策略迭代算法,策略迭代算法的流程图由图2给出。当得到最优策略π*后,就可以根据最优策略计算当前λ下的qsum(λ)和gsum(λ)。其计算方法相当于对目前的最优策略进行一次策略评估。但是在计算qsum(λ)时,需要将及时回报函数改为
我们根据最优策略计算得到qsum(λ)和gsum(λ)后,我们将利用二分法求得
但是系统模型是不一定可以事先知道的,假设我们的发射器在做决策前并不知道状态转移概率,即不知道p(s′|s,a),也不知道采取某个动作将会带来多少及时收益r(s,a,λ),只有在完成了某个动作后,才会得到环境所反馈的及时回报,和下一个时隙的状态。即便我们不知道系统模型,但只要这个问题是一个mdp问题,我们就能用q-learning算法去学习得到最优的策略。
q-learning是一种异策略的时序差分学习方法,具有蒙特卡洛方法和动态规划的思想。q-learning第一步就是初始化所有的动作状态值(action-statevalue),即对所有的
很显然,任意初始化的动作状态值一般不会是真正的动作状态值。而q-learning就是一种能不断更新q表格的算法,并且随着算法的进行,q表格最终将会收敛至qπ*(s,a)。q-learning是学习一步都会对q表中的一个值进行一次更新。而每一个时隙的更新步骤如下:
1.在时隙k时,状态为
2.观察下一时隙的状态
3.更新q表:q(s,a)←q(s,a)+α(r(s,a,λ)+γmaxa′q(s′,a′)-q(s,a))
其中α是学习率,是一个小于1大于0的值。一般来说在算法进行的初期稍微大一些,而算法进行的后期更希望它小一些,这样时常能获得更好的收敛性。在q-learning中,首先选择一个动作,然后执行上述三步,从而就能不断更新q值了。如果当前的q值时最优的q值,即q(s,a)=qπ*(s,a),那么我们在状态
1.
2.选取动作a=π(s),并且执行动作,得到奖赏r(s,a)和下一个时隙的状态s′。
3.更新状态值函数:v(s)←v(s)+α(r(s,a,λ)+γv(s′)-v(s))
4.x←x+1,若x>xstop,那么结束过程。否则s←s′,然后回到第2步。
不断执行以上四步即可计算出qsum(λ)和gsum(λ)。计算qsum(λ)时,及时回报函数r(s,a)为rq(s,a),gsum(λ)的及时回报函数r(s,a)为rg(s,a)。
然后我们需要结合使用二分法去获取我们所需要的λ。i.首先将一个较小的值赋给拉格朗日乘子λ,这个较小值为λlow,利用策略迭代法或者q-learning算法,得到在拉格朗日乘子λ=λlow时的最优策略π*,其中此时的最优策略π*是可以使j(λlow)达到最大值的策略;然后再根据该最优策略计算出当前的qsum(λlow)和gsum(λlow),并确保选中的λlow使得qsum(λlow)≤qreq;其中qsum(λlow)和gsum(λlow)表示在给定λlow时所求得的总折扣能量收集量和总折扣吞吐量。ii.然后将一个较大的值赋给拉格朗日乘子λ,这个较大值为λhigh,利用策略迭代法或者q-learning算法,得到在拉格朗日乘子λ=λhigh时的最优策略π*,此时的最优策略π*是使j(λhigh)达到最大值的策略,然后再根据最优策略计算出qsum(λhigh)和gsum(λhigh),并确保选中的λhigh可以使得qsum(λhigh)≤qreq;其中qsum(λhigh)和gsum(λhigh)表示在给定λ=λhigh时所求得的总折扣能量收集量和总折扣吞吐量。iii.再通过二分法更新λ,更新方式如下:
最后我们进行了仿真,图5是在固定λ=0的情况下,展示了改变电池容量bmax对吞吐量的影响,并且以随机策略作为参照。可以发现,在采取了我们的优化算法后,其吞吐量明显高于执行随机策略带来的吞吐量。
图6我们分别对4个用户和6个用户使用q-learning算法和策略迭代算法进行仿真。其纵坐标是总折扣吞吐量的期望值,横坐标是(n-1)个用户收集的平均折扣能量。可以发现策略迭代算法就是q-learning算法的上界。并且随着用户数的增多,收集的能量越多,因为有更多的空闲用户参与到能量收集中来。
图7和图8是我们研究了改变λ的值,研究λ分别对吞吐量和收集能量的影响,并且同样使用了q-learning算法和策略迭代算法。可以发现随着λ的增加,收集的能量越多,而吞吐量越少。而且q-learning算法产生的曲线和策略迭代算法产生的曲线十分相近。