本发明涉及无线传感器网络领域,特别涉及一种无线传感器网络自适应休眠方法。
背景技术:
无线传感器网络(wirelesssensornetwork,wsn)是由部署在监测区域内的大型传感器节点组成,终端节点能够实时感知,测量和收集覆盖区域中的被监测对象信息,并进行存储转发。wsn具有监测精度高,覆盖区域广,容错性好等优点,特别适合部署在环境信息监测、军事侦察、工业控制、医疗健康等多个领域,是当前热门研究领域之一。
鉴于终端节点的微小型化特点,其大多数终端节点能量有限,不可更换电源,如何有效利用节点能量,以最大化wsn能量效率和吞吐量作为评价网络质量的关键因素。终端节点各部分能量消耗情况主要集中在无线通信模块,其中节点处于空间侦听状态时,由于终端节点不知邻居节点或者汇聚节点何时向自己发送数据,将射频模块一直处于接收状态,消耗了大量的能量,故适时适当的调度wsn中节点进入休眠状态可以延长网络寿命。
技术实现要素:
本发明针对无线传感器网络中,终端节点能量有限,周期性占空比不能应对流量快速变化的情况,线性调整幅度又不够精确,无法匹配最佳的流量情形,提出一种无线传感器网络自适应休眠方法,包括:
在本发明中,采用了基于强化学习的终端节点自适应调整占空比的方法将终端节点活跃时隙预留问题用马尔科夫决策过程进行描述,以优化系统性能,例如能量有效性、时延、吞吐量为目标,利用q-learning预测算法进行活跃时隙的预测。在每一周期到来时,根据当前的网络负载情况,匹配最佳的占空比;终端节点每个周期由活跃时隙和休眠时隙组成,终端节点在活跃阶段完成发送、接收以及侦听任务,在休眠阶段进入休眠状态,节省能量。
附图说明
图1为本发明一种无线传感器网络自适应休眠方法采用的无线传感器网络拓扑图;
图2为本发明一种无线传感器网络自适应休眠方法自适应休眠算法帧结构;
图3为本发明一种无线传感器网络自适应休眠方法q-learning算法设计流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提出一种无线传感器网络自适应休眠方法,一个典型的无线传感器网络拓扑如图1所示,由众多节点组成,其中终端节点与网关构成一个星型网络,终端节点负责采集、处理并转发信息,网关则负责将终端节点信息上传云端,终端节点基于强化学习的预测方法,预测出终端节点自身性能最佳的活跃时隙,具体包括以下步骤:
终端节点划分离散的时间周期,时间周期进一步划分成时隙,并在每一个周期开始时基于强化学习的预测方法预测出活跃时隙时间;
在活跃时隙中,终端节点采用csma/ca方式竞争信道与网关通信,通信时间由预测出的活跃时隙时间决定;
当活跃时隙时间结束后,终端节点立即进入睡眠状态以降低功耗。
终端节点划分离散的时间周期,时间周期进一步划分成时隙时,将时间被划分为周期性帧fk,fk帧长度固定。每一帧进一步被划分为更细的时间段fr,在本实施例中,将一个周期性帧fk划分为30个时隙,若射频发射一次需要的时间为107.5ms,为保证在一个活跃中也能完成一次射频发送,优选的,本发明采用fr=120ms,因此本发明fk取固定值3.6s;需要说明的是每个时间段fr根据发射一次射频的时间设置,该时间段为保证在一个活跃中也能完成一次射频发送应该稍大于射频发射的时间。
在每一帧中终端节点划分为活跃时隙和休眠时隙,在活跃时隙中终端节点有3种状态:侦听/发送/接收,在休眠时隙中,终端节点进入休眠降低能耗。
帧结构如图2所示,第k帧(framek,简称fk)包括活跃时隙(active,简称a)以及休眠时隙(sleep,简称s)。
终端节点采用基于强化学习的预测方法预测得到活跃时隙数,在活跃时隙中,终端节点侦听信道并尝试与其邻居交换数据包。活跃时间过期时,终端节点转入休眠状态以降低功耗。具体通过q-learning算法预留活跃时隙,减少终端节点处于活跃时隙中空闲侦听的时间,从而节省能耗。因此将活跃时隙预留的问题表示为马尔科夫决策mdp。
mdp是指决策者通过离散地或者连续的观察具有马尔科夫性的随机的动态系统,再根据特定的的策略做出决策。简单来说就是智能体根据每个时刻的状态,在动作集中根据某种策略选择某个状态,系统状态转移概率具有马尔科夫性,即下一时刻的状态只和当前状态有关,与之前的状态无关。
mdp模型定义了四元组(s,a,p,r),其中,s为包含所有状态的有限集合;a为包含所有动作的有限集合;p为状态转移概率,表示为p:s*a*s→[0,1],r是奖赏函数,表示为r:s*a→r,r是指在状态s下通过某种策略执行动作a后产生的奖赏,由目标函数决定。
π为状态空间映射到动作空间的决策策略,即π:s→a。mdp可以描述为:假设在某时刻k,有状态sk=s∈s,根据策略π选择动作ak=a∈a,以概率pss′(a)转移到下一个状态sk+1=s′∈s,并得到奖励rk(s,a)的过程。
当前状态值函数vπ(s)用来描述在某个策略下最终得到的回报,每个状态的值函数不仅由当前状态决定还要由后面状态决定,通过贝尔曼方程求解马尔科夫决策过程的最佳决策序列,所以状态的累计奖励求期望可得出当前sk的状态值函数:
其中,γ(0≤γ≤1),γ越接近于1代表它越有远见会着重考虑后续状态的的价值,当γ接近0的时候就会变得只考虑当前的利益的影响。进一步化简可得:
则最优累计期望用v*(s)表示,可得最优值函数就是v*(s)=maxπvπ(s),可化简为:v*(s)=r(s,a)+maxγ∑s′∈spss′vπ(s′)。状态动作值函数qπ(s,a)表示从状态s出发,执行动作a后再使用策略π带来的累计奖赏,其贝尔曼方程定义如下:
其中s∈s,a∈a,r(s,a)表示状态s下执行动作a将得到的立即回报,γ表示折扣因子,决定时间的远近对回报的影响程度。最优q值可表示为q*,其定义是执行相关的动作并按照最优策略执行下去,将得到的回报的总和,其贝尔曼最优方程定义如下:
智能计算已经在智能控制、工业设计、机器人、生物统计学领域都广泛应用,并取得了很好的研究成果。其中随着对强化学习方法的深入研究,应用强化学习方法实现智能体对环境的自适应已经成为wsn中的研究热点,在强化学习中智能体通过与动态环境进行不断交互,从而在“尝试-错误”过程中学习正确行为的问题研究。
在本发明中,根据网络性能进行优化,智能终端决策的目标包括3部分:(1)最大化能效,减少终端节点处于空闲侦听的时间,从而提高能效(2)减少延时(3)提高吞吐量。在无线传感器网络中,能量消耗和吞吐量以及时延都是很重要的指标,牺牲吞吐量和时延来节省能耗显然是不可取的。本发明中预留时隙应该是终端节点流量负载条件的函数。
在本实施例中,动作空间(a)、状态空间(s)、奖赏函数(r)是q-learning算法进行预测的三要素。状态空间代表智能体处于状态的集合,动作空间代表智能体在某种状态s下,执行动作a所有可能,奖赏函数代表智能体在状态s下执行动作a所带来的回报值。因此终端节点与环境的交互过程可以通过如下三元组形式表示:
智能终端的状态空间对应强化学习中环境状态,终端节点的活跃和休眠状态都是根据当前节点的网络负载情况进行判断的,在本设计中,用缓存队列中数据包的个数代表网络负载情况。在帧开始时,用
动作空间
其中,m、n、p分别指对能效、吞吐量、和时延赋予的权重。
q-learning是强化学习算法中value-based的算法,采用无模型的学习方法,它提供智能体在马尔可夫环境中利用经历的动作序列选择最优动作的一种学习能力,学习模型如图1所示。q-learning可以不用知道某个环境的模型也可以对动作进行期望值比较,即智能体当前所处的状态和所选择的动作,决定一个固定的状态转移概率分布、下一个状态、并得到一个即时回报。q-learning基于的一个关键假设是智能体和环境的交互可作为一个mdp,它可以在mdp问题中寻找一个最优的动作选择策略。它通过一个动作-价值函数来进行学习,并且最终能够根据当前状态及最优策略给出期望的动作。q-learning中,每个q(s,a)对应一个相应的q值,在学习过程中根据q值,选择动作。
智能体的每一次学习过程可以看作是从一个随机状态开始,采用一个策略来选择动作,本发明中选择ε贪心策略,每个状态有ε的概率进行探索,即以均匀概率随机选取一个动作,1-ε的概率进行利用,即选择当前平均奖赏最高的动作。在q-learning算法中都是利用时间差分方法来更新q函数,时间差分方法结合了蒙特卡罗的采样方法和动态规划方法的利用后继状态的值函数估计当前值函数,可以适用于无模型的算法并且是单步更新,速度更快。值函数计算方式如下:
v(s)←v(s)+α(r+γv(s′))-v(s))
其中,v(s)表示当前状态值函数,α表示学习速率,r表示回报值,γ表示折扣因子,v(s′)表示下一状态值函数;r+γv(s′)被称为td目标,δt=r+γv(s′)-v(s)称为td偏差。将q值更新计算带入上式,即可得到:
q(s,a)←q(s,a)+α[r(s,a)+γmaxq(s′,a′)-q(s,a)]
从上式可以看出,学习速率α越大,保留之前训练的效果就越少,γ越大,越看重长远利益,γ越小,代表眼前利益越重要。
在本发明中,q-learning算法采用贪心策略,ε的概率进行探索,即以概率ε从动作空间中均匀选择活跃时隙;1-ε的概率进行利用,即以1-ε的概率选取满足
由于流量负载和组网条件有所不同,因此我们采用恒定的学习率α=0.1。我们还注意到,如果流量负载在相当长的一段时间内保持恒定,则排队的数据包长度将集中在一定范围内,从而极大地加快了学习过程。q-learning算法流程如图3所示。
q-learning算法描述如下:
1、初始化状态集s,动作集a,定义α,γ,ε;
2、设置好回报函数r,初始化动作-状态价值函数
3、循环遍历次数t,进行迭代
a)初始化s为当前状态序列的第一个状态;
b)用ε贪婪法在当前状态s中选择动作a;
c)在状态s执行前动作a,的得到新状态s′和奖励r;
d)更新动作-价值函数:
e)s=s′,更新为新的状态;
如果s′是终止状态,当前迭代完毕,否则跳转到b)。
在第k周期,节点首先根据预测出活跃时隙,在活跃时隙内,节点采用csma/ca方式竞争信道成功,与网关进行数据通信,当活跃时间结束后,不管节点缓存中是否还有数据没来得及发送,都立即进入睡眠阶段。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。