一种基于功率和能量优化的势博弈拓扑控制方法与流程

文档序号:16702815发布日期:2019-01-22 21:50阅读:240来源:国知局
一种基于功率和能量优化的势博弈拓扑控制方法与流程

本发明涉及一种无线传感器网络的拓扑控制方法,尤其是一种基于功率和能量优化的势博弈拓扑控制方法。



背景技术:

通过优化异构传感器节点的自主决策,满足传感器节点基于局部信息的优化目标,构建高可靠性和具有容错性的动态拓扑,建立具有实用价值的拓扑控制机制和优化方法,最大化延长网络生命周期,是目前无线传感器网络中研究的重点。

优化问题和网络的性能是密不可分的,优化能够提高网络的性能。优化方法大致可分为传统优化方法和现代优化方法,传统的优化方法大多是基于系统模型中目标函数的导数特性来搜索要优化的决策变量,从而获得目标函数的局部或全局最优解。但是对于求解复杂问题时,问题的解空间往往比较大,获取要求问题的所有可能解不太现实。

网络中节点的动态变化和自我决策对网络性能产生不可避免的影响。节点具有自私的特点,能够根据决策的收益情况自动变化策略选择。博弈(Game Theory)理论匹配了上述优化问题的大部分求解特征,在博弈论框架下,利用博弈论中参与者策略来刻画网络优化问题中变量的演化,降低了求解过程中的信息交互和求解的复杂度。而且,博弈优化充分考虑了参与者决策行为的变化对其他参与者进行决策的影响,并利用纳什均衡(Nash Equilibrium,NE)的分析,可以在综合动态变化和局部信息下建立一个改进的有交互的最终决策结果的机制。

基于上述理论,本案由此产生。



技术实现要素:

本发明提供了一种基于功率和能量优化的势博弈拓扑控制方法,可有效解决复杂的多源异构网络环境下的节点故障导致的网络阻塞或网络瘫痪问题。

为了实现上述目的,本发明所采用的技术方案为:

一种基于功率和能量优化的势博弈拓扑控制方法,包括以下内容:依照下列步骤顺序进行,

步骤1:选择簇头:采用N阶近邻分析方法计算出网络的最佳簇数kopt,再依据包括节点能量、节点之间的距离和节点丢包率参数来指导选取出kopt个节点作为最终选择的簇头;

步骤2:构建簇内和簇间路由:根据步骤1方法已确定为簇头的节点邀请非簇头节点加入所在的簇,非簇头节点通过衡量网络通信代价成本的方式选择合适的簇并加入,各个簇确定簇成员以及各个节点确定通信关系后,Sink节点直接或间接地与簇头节点建立通信关系;

步骤3:拓扑维护:在网络运行过程中节点故障触发局部的拓扑维护,将节点失效后的链路重构成序数势博弈模型,参与博弈的节点进行功率选择使博弈收敛到一个纳什均衡状态。

作为上述技术方案的进一步设置:

所述步骤1中簇头的选择首先根据下列公式计算出每个节点成为簇头的概率:

上述公式中,Er为节点剩余能量,为t时刻网络的平均能量,ploss为节点的丢包率,ploss∈[0,1],γ∈(0,1]是调节因数;将上述计算结果根据从大到小排序从数值最大的开始依次选择kopt个节点作为候选簇头;再将概率最大的节点确定为簇头,以确定的簇头为圆心,以设定的数值l为半径,分别判断其他候选簇头与所确定簇头之间的距离是否满足小于数值l,若其他候选簇头均在所设定的半径l数值范围内,则这kopt个候选簇头均确定为最终所选择的簇头;若存在到所确定簇头的距离大于设定的数值l的候选簇头,则首先将上述所确定为圆心的簇头作为最终确定选择的簇头后,再以概率值次之小的节点确定为簇头,按照上述方案以其为圆心进行判断,以此类推,直至确定符合上述要求的kopt个节点作为最终选择的簇头。

所述构建簇内路由时,首先已被确定为簇头的节点以其最大的发射功率pmax向周围广播HELLO消息,非簇头节点接收到消息后在邻居列表上记录消息内容,并根据与各个簇头之间的距离和各个簇头当前剩余的能量按下列公式来计算,

上式中val(i,j,r)表示由非簇头节点i计算出的它与簇头节点j之间的数值;是簇头节点j在网络生命周期中的第r轮的剩余能量;d(i,j)是节点i与簇头节点j之间的距离;非簇头节点向上述计算数值最大的簇头发应答消息ACK,由此加入簇头所在的簇并建立与簇头之间的路由。

所述邻居列表上记录的内容为发送消息节点的ID、发送消息节点的剩余能量、直接通信的路径损耗Ploss、通信方式和计数器加1的数值。

所述构建簇间路由时,sink节点以设定的半径广播HELLO消息,消息包括sink节点的ID和计数器;接收到消息的簇头记录计数器中的值加1后向其他簇头节点传递,并确定自己到sink节点的路径,构建簇头节点与sink节点之间的直接通信。

所述接收到sink节点消息的簇头距离sink节点较远时,依据下列公式选择中转簇头,

其中,Er(j)表示簇头通信范围内的其他簇头j的剩余能量,d(i,j)是当前簇头与在其通信范围的邻居簇头j之间的距离,d(j,N+1)是当前簇头通信范围内的邻居簇头j与Sink之间的距离,countj,Sink是当前簇头通信范围内的邻居簇头j到Sink节点的跳数,并且满足d(i,N+1)>d(j,N+1),即只有那些到Sink节点跳数小于当前簇头的邻居簇头才可以成为候选中转节点;确定中转簇头后各个簇头再根据通信代价来调整通信关系,由此构建完成距离较远簇头与sink节点之间的间接通信。

所述在博弈中存活节点共享传递失效节点的ID,将自己的发射功率调整为最大功率,并向其他节点发送HELLO消息;收到消息的节点发回应答消息ACK并更新邻居列表;每个节点根据邻居列表上记录的自己的初始能量、剩余能量以及路径损耗参数执行拓扑维护,选择自己的最优功率策略,并把发射功率调至最大;最后以当前轮中节点的收益公式ujr(p*)=uj(r-1)(p*)来判断是否达到纳什均衡状态。

所述在判断当前轮中节点的收益时,首先判断是否存在ujr(p*)≥uj(r-1)(p*)的情况,若存在,则不需对节点的发射功率进行设置;若不存在,则将节点的发射功率设置为上一轮博弈产生的功率;若博弈中的参与节点存在未执行上述判断方法的节点,则下一个未进行策略选择的节点继续执行最优功率策略的选择步骤,若不存在未执行上述判断方法的节点,则直接以公式ujr(p*)=uj(r-1)(p*)来判断是否达到纳什均衡状态,尚未达到纳什均衡则重新返回到功率设置步骤继续按照上述方法执行。

本发明提供的势博弈拓扑控制方法,综合考虑了节点耗能和链路损耗等问题,构建了分簇的层次型拓扑,并在拓扑维护过程中针对网络能量保存和节点发射功率水平的联合优化,建立了势博弈模型,兼顾了能量的均衡和节点之间的通信干扰问题,在保障网络QoS的基础上有效地延长了网络服务周期。

附图说明:

图1为本发明拓扑控制方法的流程图。

具体实施方式:

如图1所示,本发明提供的一种基于功率和能量优化的势博弈拓扑控制方法,从网络运行完成预处理后,按照下列步骤进行:

1)选择簇头

采用N阶近邻分析方法计算出网络的最佳簇数kopt,再依据能量、簇头之间的距离等参数指导完成簇头的选择。

为了均衡网络中节点的负载,尽可能使网络中的节点在同一时刻死亡。在选择簇头时,以节点自身的能量、全网平均能量和节点的丢包率组合的通信代价计算每个节点成为簇头的概率,公式如下:

其中,Er为节点剩余能量,为t时刻网络的平均能量,ploss为节点的丢包率,ploss∈[0,1],γ∈(0,1]是调节因数。上式表示剩余能量越高,且丢包率越小的节点成为簇头的概率越大;反之,节点作为成员节点承担数据采集任务。

采用N阶近邻分析方法计算出网络的最佳簇数kopt,并利用上式计算出的节点成为簇头概率的值从大到小依次排列选取数值较大的kopt个节点作为候选簇头。由于节点随机部署,选出的kopt个候选簇头可能距离很近,就会增大争夺簇成员的几率。因此,首先选择一个cost值最大的节点确定为簇头,然后以其为圆心,l为半径的圆内是否有其他候选节点存在,即判断两个簇头节点之间的距离是否满足dC-C<l,其中dC-C为任意两个簇头之间的距离,采用接收信号强度(RSSI)估计;l为参数变量。若其他候选簇头均在所设定的半径l数值范围内,则这kopt个候选簇头均确定为最终所选择的簇头;若存在到所确定簇头的距离大于设定的数值l的候选簇头,则首先将上述所确定为圆心的簇头作为最终确定选择的簇头后,再以概率值次之小的节点确定为簇头,按照上述方案以其为圆心进行判断,以此类推,直至确定符合上述要求的kopt个节点作为最终选择的簇头。

2)构建簇内和簇间路由

结合能量和距离等参数指导非簇头节点加入簇,根据上述方法已确定为簇头的节点邀请非簇头节点加入所在的簇,非簇头节点通过衡量网络通信代价成本的方式选择合适的簇并加入。

各个簇确定簇成员以及各个节点确定通信关系后,Sink节点直接或间接地与簇头节点建立通信关系,具体方法如下:

已确定为簇头的节点以其最大的发射功率pmax向周围广播HELLO消息,该消息包括簇头ID、能量以及一个初始值为零的计数器Count。收到广播消息的节点记录发送消息节点的ID、发送消息节点的剩余能量Er、直接通信的路径损耗Ploss、通信方式C_Style(包括直接和间接通信)和计数器Count加1的值存放于其邻居列表中。

非簇头节点接收到多个簇头邀请加簇的消息时,非簇头节点会根据自己保存的来自簇头Count值、与各个簇头之间的距离和各个簇头当前剩余能量的情况,向依据下列公式计算出的最大值所确定的簇头发应答消息ACK:

其中,val(i,j,r)表示由非簇头节点i计算出的它与簇头节点j之间的数值;是簇头节点j在网络生命周期中的第r轮的剩余能量;d(i,j)是节点i与簇头节点j之间的距离,由此建立起簇内的路由。

各个簇确定簇成员以及各个节点确定通信关系后,Sink节点以一定的广播半径广播HELLO消息,该消息包括Sink节点的ID和一个计数器countSink。簇头接收该HELLO消息记下计数器中的值,加1向其他簇头节点传递,并确定自己到Sink节点的路径。簇头节点与Sink节点直接或间接通信,当簇头离Sink节点较远时它就会选择某些簇头作为中转节点,间接与Sink节点通信。这些簇头在选择中转簇头节点的依据根据如下公式进行:

其中,Er(j)表示簇头通信范围内的其他簇头j的剩余能量,d(i,j)是当前簇头与在其通信范围的邻居簇头j之间的距离,d(j,N+1)是当前簇头信范围内的邻居簇头j与Sink之间的距离,countj,Sink是当前簇头信范围内的邻居簇头j到Sink节点的跳数,并且满足d(i,N+1)>d(j,N+1),即只有那些到Sink节点跳数小于当前簇头的邻居簇头才可以成为候选中转节点。待中转簇头选择完毕后,各个簇头再考虑通信代价来调整通信关系,由此构建完成距离较远簇头与sink节点之间的间接通信。

3)拓扑维护

由于网络部署环境具有不可预测性,节点可能会因为能量不足、环境干扰或者软硬件故障等导致失效。而要保证无线传感器网络正常运行,就要使网络具有容错性,即在部分传感器失效的情况下整个网络并不发生中断。本方法将对失效节点所在的通信网络进行动态调整,将网络中节点失效后的链路重构问题构建成一个序数势博弈(OPG)模型。

首先,存活节点共享传递失效节点的ID,调整自己的发射功率至最大,并向其他存活成员发送HELLO消息。收到消息的节点发回应答消息ACK,同时根据收到的ACK更新当前的邻居列表。接着每个节点根据自己收集到的邻居列表消息计算出自己的功率选择策略并把自己的发射功率调节至最大功率pmax。在此基础上,参与博弈的节点根据自己的初始能量、剩余能量以及路径损耗等参数执行拓扑维护方法,选择自己的最优策略p*。选择策略之后,判断当前轮(第r轮)中节点的收益ujr(p*)≥uj(r-1)(p*)是否成立(r>=2)。若不成立,节点的发射功率值设置为上一轮博弈产生的功率;若成立,则不用对节点的发射功率值进行设置。在之后的过程中,如果博弈模型中的参与者中存在未执行该方法的节点,则下一个未进行策略选择的节点继续执行最优功率策略的选择步骤;若不存在,直接判断当前轮中所有参与者的收益是否满足ujr(p*)=uj(r-1)(p*)。若满足则说明博弈达到一个纳什均衡(NE)的状态,执行方法结束。若不满足则回到功率重新设置并继续执行方法,直到达到纳什均衡。

按照上述方案构建的拓扑网络,若所有节点均正常,则网络正常通信;若出现节点全部死亡,则网络运行结束;若出现部分节点死亡,则执行上述拓扑控制方法,将节点失效后的链路重构,构成序数势博弈模型,参与博弈的节点执行拓扑维护算法,各个参与者进行功率选择使势博弈收敛到一个纳什均衡状态。每一个拓扑维护过程均从上述技术方案中的步骤1开始循环。

以上实施例仅用以说明本发明的技术方案而非限制,本领域普通技术人员对本发明的技术方案所做的其他修改或者等同替换,只要不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1