本发明属于水声传感器网络通信技术领域,涉及一种路由决策方法。
背景技术:
水声传感器网络具有长传输延时,高能量消耗以及动态拓扑的特点。由于水声传感器节点体积大,难以更换电池,因而受限的资源限制了网络寿命,即网络的有效作用时间。针对这些问题,目前虽然提出了很多面向水声通信的路由决策方法,但是仍然存在很多缺点与问题,迫切需要更加全面的路由算法。
传统的路由协议采用最短路径算法缩短端到端延时,减少网络能耗,但是分布在最短路径上的“热点”节点会被频繁使用,因而缩短了网络寿命。为延长网络有效使用时间,许多智能路由决策算法被提出。这些路由协议选择剩余能量多的节点作为下一跳转发节点,但是未能全面权衡网络寿命与端到端延时和能量消耗之间的综合优化情况。
技术实现要素:
针对上述问题,本发明提出一种自适应能耗和延迟的水声传感器网络路由决策方法,更加全面地考虑了水声通信的重要指标,从而可以延长网络寿命,提升通信网性能。技术方案如下:
一种基于深度q网络的自适应能耗和延迟的水声传感器网络路由决策方法,包括下列的步骤:
(1)以某传感器节点作为源节点,对从邻居节点接收到的剩余能量和深度信息通过公式rre=reini/remax和rde=deini/demax进行数据预处理,作为深度q网络的输入层信息,其中reini和deini分别表示某邻居节点当前的剩余能量和深度,remax和demax分别表示该源节点的所有邻居节点中具有最大剩余能量和深度的数值;
(2)构造深度q网络,包括输入层、若干隐藏层和输出层,通过全连接方式连接各层,输出层输出q值,其中q值表示在某一节点状态下做出某种行为的奖励值;
(3)构造损失函数:通过公式l(w)=e[(qreal-qesti(si,ai,w))2]得到深度q网络的损失函数,其中
(4)考虑节点的剩余能量和深度,构造深度q网络的回报函数:若当前源节点的下一跳节点是水面接收节点,则回报函数r(si,ai)=100;否则,回报函数r(si,ai)=c+αrre+βrde,其中α和β分别代表限定数据预处理后的剩余能量和深度权重的参数,c的值是α和β的总和且小于100;
(5)初始化深度q网络参数;
(6)在将节点部署到水下之前采用离线训练的方式训练深度q网络,利用公式
(7)根据传感器节点初始状态信息在水下部署传感器网络,利用离线训练得到的深度q网络参数和q值,每获得一个状态和行为数据对所对应的损失函数,累积存储损失梯度
本发明提出的一种自适应能耗和延迟的水声传感器网络路由决策方法,通过采用综合考虑节点剩余能量和深度信息的深度q网络算法,在严格限制能耗和延时的前提下,延长了网络寿命,提升了系统的通信性能。
附图说明
图1是深度q网络模型示意图。
具体实施方式
下面结合附图对本发明进行说明。
本发明提出的水声传感器网络路由决策方法,通过采用深度q网络算法,综合考虑节点的剩余能量和深度信息,选择计算得到的具有最大q值的节点作为下一跳转发节点,从而得到传输数据的最优路径。该路由决策方法在严格控制能耗与延时的前提下,有效延长了网络寿命,提升了系统的通信性能。
在一个5000×4000×4500m3的水下传感器网络通信场景中,均匀部署着80个传感器节点,水面中心部署着一个接收器,水下的节点都可以作为产生数据的源节点向水面接收器发送信息。传感器节点的传输范围为2000m,初始能量为10000j,发送和接收功率分别为10w和1w。假设节点可以知道自己的邻居节点,并且可以获得自己和邻居节点的剩余能量、深度和q值的信息。
本发明的具体操作流程如下:
1.数据预处理:传感器节点根据公式rre=reini/remax和rde=deini/demax对从当前源节点的邻居节点获得到的剩余能量和深度信息进行预处理,其中reini和deini分别表示某邻居节点当前的剩余能量和深度,remax和demax分别表示该源节点的所有邻居节点中具有最大剩余能量和深度的数值;处理后的数据将作为深度q网络的输入;
2.构造深度q网络:深度q网络模型如图1所示,输入端包括4个节点,分别是当前源节点和下一跳转发节点的序号,以及下一跳节点经过数据预处理的剩余能量和深度信息,这些数据构成一个状态和行为数据对;隐藏层1包括300个节点和偏置b1,隐藏层2包括150个节点和偏置b2,隐藏层3包括15个节点;输出层输出从源节点到下一跳转发节点的q值,每两层之间采用全连接方式连接且均设置一个权重参数w;前两层采用tanh激活函数;
3.构造损失函数:利用公式l(w)=e「(qreal-qesti(si,ai,w))2]得到深度q网络的损失函数,其中qreal=r(si,ai)+γ∑p(si,ai,si+1)q*(si+1,ai+1,w)表示将要更新的奖励q值,r(si,ai)表示在状态si采取行动ai后所获得的回报,γ表示折扣因子,p(si,ai,si+1)表示在状态si采取行动ai后转移到状态si+1的概率,q*(si+1,ai+1,w)=maxqesti(si+1,ai+1,w)表示在下一个状态si+1采取行动ai+1后所能获得的最大q值,w是网络参数;qesti(si,ai,w)表示在当前状态si下采取行动ai能够获得的q值,对qreal和qesti(si,ai,w)求均方差得到损失函数;
4.构造回报函数:若当前源节点的下一跳节点是水面接收节点,则在损失函数中定义的回报函数r(si,ai)=100;否则,利用公式r(si,ai)=c+αrre+βrde求得回报函数,其中α和β分别代表限定数据预处理后的剩余能量和深度权重的参数,c的值是α和β的总和且远小于100;
5.网络参数初始化:折扣因子γ设置为1,w1,w2,w3,w4通过正态分布随机初始化,偏置b1,b2均设置为1,根据80个源节点和1个水面接收器之间约1300个状态和行为数据对初始化对应的约1300个回报函数值和q值,其中回报函数值按照步骤4进行初始化,q值按照相邻节点间设置为0,不相邻节点间设置为-1000的方式进行初始化,其中到达终点的q值初始化后固定不变,不参与训练过程中的q值更新;
6.离线训练:在将节点部署到水下之前采用离线训练的方式训练深度q网络;采用梯度下降法拟合损失函数,利用公式
7.在线训练:根据离线训练时的传感器节点初始状态信息在水下部署传感器网络,在经验池中存储的数据的基础上,采用异步在线训练的方式周期性训练深度q网络:传感器网络中的节点周期性地交互状态信息,根据实时通信情况,每获得一个状态和行为数据对所对应的损失函数,累积存储损失梯度
本发明提供的基于深度q网络的自适应能耗和延迟的水声传感器网络路由决策方法,通过综合考虑节点在不同阶段的剩余能量和深度信息,采用深度q网络算法得到全局的最优路由决策,从而将数据包从源节点发送到水面的接收节点,在严格限制能耗和延时的前提下,延长网络寿命。