面向电力物联网的基于GMM算法的高能效分簇多跳路由算法的制作方法

文档序号:17066258发布日期:2019-03-08 22:56阅读:212来源:国知局

本发明涉及一种高能效分簇多跳路由算法,特别是一种面向电力物联网的基于gmm算法的高能效分簇多跳路由算法。



背景技术:

随着配用电业务终端数量的不断增加与新型智能电网业务的不断开展,大规模物联业务也开始逐渐向智能电网渗入。大规模机器类通信(mmtc)有望在未来的电力无线网络中发挥重要作用。它将能够支持数百亿的低复杂度和能量受限的机器类终端。目前,物联网设备大规模地应用于环境监测、电力控制等领域中,通过部署海量的物联网节点来监测被监控区域内的各项物理指标,并将每个设备采集的数据上传到基站。

目前电力物联网的主要挑战是为大量设备提供可靠,高效的连接,其解决方案需要实现广域覆盖和深度室内穿透,同时具有低成本和高能效。同时,大多数物联网设备通常配备有低容量电池,并且预计可以长时间运行而无需更换电池。因此,非常低的功耗对于操作至关重要,这意味着节能是必不可少的。

随着电力物联网的快速发展,无线频谱资源的紧缺将成为制约物联网发展的关键问题。物联网物-物之间的通信需要无线频谱的支撑,而现有的固定频谱分配方式显然不能满足日益增长的频谱需求。本专利考虑在优化能量效率的同时,通过复用信道节约无线频谱资源。

分簇和多跳路由是提高物联网能效的常用方法。不同于每个节点直接接入到基站的传统方式,将网络中的节点划分到不同的集群中。在每个集群中,选取合适的簇头,集群中的全部数据汇总到簇头中。每个簇头可以选择其他集群的簇头作为中继,向基站回传数据。通过分簇和多跳路由,簇头节点可以压缩需要发送的数据,减少网络中的数据冗余。并且,通过让网络中的大多数节点传输到合适的簇头节点,大大提高了网络的能量效率。

下面是现有几种典型的多跳路由管理策略:

方案1:专利号zl201410621932.8提出了基于最大最小距离法的分簇多跳路由方法,采用最大最小法选取簇中心,根据簇中心重新分簇,簇头的选择按照权值最大的原则,根据节点到簇头的距离形成新簇,改善了leach协议中簇头随机选取的不足,使网络的能耗均匀的消耗在各个节点上。采用连续hopfield神经网络在簇头和sink间产生一条通信路径最短的链路,对所述链路进行优化形成以sink为中心的多跳树簇式链路。

方案2:专利号zl201710891220.1提出了基于剩余能量的集合划分多跳路由方法,包括:将无线传感器网络划分为多个区域;将无线传感器网络内的所有节点按距离最近的原则划分成多个具有相同节点数目的第一集合;根据第一集合在无线传感器网络内的位置分布,生成具有多个簇首的第二集合;为每个簇首赋予一个权值;为第二集合内的每个簇首确定前向簇首;为第二集合内的每个簇首确定下一跳簇首;每个第一集合内的成员与其对应的簇首之间具有第一距离,该成员与sink节点之间具有第二距离,根据第一距离与第二距离之间的大小关系,确定该成员是与其对应的簇首还是与sink节点通信。

方案3:专利号zl201010212142.6提供了一种多跳路由传输系统及传输方法,所述传输系统包括用以发出数据的源节点和用以接收数据的目的节点,所述源节点与目的节点之间设有用以接收源节点发出的数据的备份节点,所述备份节点用以在所述目的节点无法正确接收源节点发出的数据时代替目的节点的位置执行目的节点的功能,所述备份节点与目的节点之间的距离为备份步长,所述备份步长小于源节点与目的节点之间的距离。

上面几种方案均各自存在缺点,方案1:该方案基于最大最小距离法选择簇的簇头,但是专利中分簇的方法是首先确定簇头后,再计算节点到簇头的距离决定分簇。这样的方案十分依赖于簇头的位置,如果簇头选择的位置比较偏僻,其他普通节点需要消耗大量的能量传输到簇头。

方案2:该方案设计了基于剩余能量的集合划分多跳路由方法,该方法划分区域的方法是按扇形划分的。这样的划分方法会造成在区域边缘的节点,需要消耗大量的能量去接入比较靠近区域中心的簇头,相对地浪费了能量。

方案3:该方案提供了一种多跳路由传输系统及传输方法,通过选择备用节点来防止传输失败时的损失。但是,通过简单的重复传输就可以解决上述问题,同时可以避免备份节点造成的资源占用和能量消耗。



技术实现要素:

本发明的目的在于克服现有技术的不足之处,而提供一种可以有效地提高系统的能量效率,可以在没有任何先验条件下,快速准确地完成聚类,路由算法可以在保证节点的能量效率的前提下,选择最优的簇头和路径,可在网络生命周期,吞吐量和能量效率方面的表现都更好的面向电力物联网的基于gmm算法的高能效分簇多跳路由算法。

一种面向电力物联网的基于gmm算法的高能效分簇多跳路由算法,首先,利用不依赖先验条件的分簇算法,以减低物联网设备的能耗和节约信道资源;其次,每个集群根据节点分布和电池情况选择出簇头;最后,采用dijkstra算法选择合适的路由路径。

每个集群根据节点分布和电池情况选择出簇头的具体做法为:在聚类的过程中,每一层中的节点被分成不同的集群,簇头的选择分为两步骤,第一步基站根据节点的物理分布选择簇头的位置,第二步簇头节点根据自身的能量剩余进行簇头的切换,以提高节点的能量效率,

我们将每一层的节点分到不同的集群,并且每层的集群数量为ck,根据集群中节点的位置,

其中jk是第k层中的目标函数,ck是第k层中的簇的数量,nk是第k层中的节点总数,ξ是恒定的实参数,dij是节点j和簇i的簇头的距离,qij是属于簇i的节点j的度因子,

然后使用智能遗传算法,最小化目标函数(19),簇头节点选择过程描述如下,所有节点都将其位置信息发送给基站,根据节点分布,基站将网络划分为多个层,并使用gmm计算每层中的簇的数量,基站初步计算每个簇的簇头位置,如果当前簇头节点的能量水平不满足以下条件,则将选择该群集中的新ch节点,

ech≥eth,#(21)

其中,eth是簇头节点的能量门限,当簇头的能量低于eth时,将该节点排除,重新在剩下的节点中选择簇头。

综上所述的,本发明相比现有技术如下优点:

1、为了降低系统的总能量效率,能够在没有任何先验条件的情况下实现了节点的分簇,节省了节点计算的时间和需要消耗的资源。

2、根据簇内的节点能量和分布确定簇头,提高簇头的能量效率。

3、边缘的物理网终端可以通过本方案实现高能量效率的条件下接入基站,大大提升了基站的覆盖范围,节约系统的部署成本。

具体实施方式

下面结合实施例对本发明进行更详细的描述。

实施例1

一种面向电力物联网的基于gmm算法的高能效分簇多跳路由算法,首先,利用不依赖先验条件的分簇算法,以减低物联网设备的能耗和节约信道资源;其次,每个集群根据节点分布和电池情况选择出簇头;最后,采用dijkstra算法选择合适的路由路径。

将网络均匀地划分为k层,假设每层的宽度为r。物联网节点采用时分多址(tdma)的方式,并且物联网节点间传输是载波侦听多路访问(csma)调度。簇头节点接收集群中的其他节点传输的数据,并对全部数据进行压缩,然后传给较内层的簇头节点。最内层的簇头节点直接将数据回传给基站。

1.gmm分层聚类

假设网络分为k层,每层的宽度为r,即k=r/r。网络中共有n个物联网节点,随机分布在网络区域中,网络的第k层中有nk个节点。本文对每层区域中的节点进行聚类分簇,使用gmm算法。

不同于一般的聚类算法,gmm算法不需要提前获得集群的真实数量,并且不会被困在似然函数的众多局部最大值中。因此,本文采用了gmm算法对每一层中的节点进行聚类,可以在没有任何先验条件的情况下,快速地实现分簇。具体地来说,gmm算法从单个簇开始并且有序地添加簇直到簇的数量达到最大值。

如果φ(x;θj)是第j个分量的分布函数,并且参数为θj,假定具有s个分量的随机向量x的混合分布为

其中πj是满足π1+π2+…πs=1的权重,并且πj≥0。

多元高斯混合加权由公式(1)给出,其中第j个分量φ(x;θj)是d维高斯密度

其中,mj是x的均值,sj是x的协方差矩阵。假设数据集是独立同分布的点,所以问题转化为估计参数{πj,mj,sj}来最大化对数似然函数

为了防止对数似然的最大值趋于无穷大,我们必须在混合分量的协方差矩阵的奇异值上设置下界。对于每个分量j,可以使用以下迭代更新方程来执行对数似然最大化

gmm算法是通过连续地向混合物中添加分簇,以贪婪的方式进行混合物的最大似然学习。假设将一个新分量φ(x;θ)加入到已经有s个分量的混合物中,得到混合物

fs+1(x)=(1-a)fs(x)+aφ(x;θ),#(8)

其中,a的取值范围为(0,1)。对于每个s,在给定fs(x)的情况下,如果权重a和参数向量θ是最优的,则新的对数似然函数

也是最优的。

这个结论的重要性在于,一般高斯混合的最大似然学习可以用两个部分的连续学习来代替,其中第一个分量是旧混合物fs(x),第二个分量是高斯分量φ(x;θ)。从实用的观点来看这是有利的,因为将问题拆分为两个部分更容易学习。然而,需要开发适当的搜索方法以便最佳地指定使ls+1最大化的参数πj,mj,sj。接下来介绍解决上述问题的有效方法。

1)局部搜索

针对上述的问题,我们使用em算法[5]来搜索最大化ls+1的参数πj,mj,sj。此外,由于参数fs(x)保持不变,可以使用部分em步骤,来更新权重a,均值m和协方差矩阵s,即

2)全局搜索

局部em步骤需要初始化新组件的参数m和s,以及权重a。为了便于对参数空间进行全局搜索,我们可以用点a=a0的泰勒近似代替对数似然函数(9),然后使用得到的估计来搜索最优m和s。

进一步简化可以得到

其中,δ(xi,θ)=[fs(x)-φ(x;θ)]/[fs(x)+φ(x;θ)]。并且,此时a为

在em算法的初始化中,我们还使用了矩阵h,矩阵的元素

gmm算法分为六个步骤:

1)初始化:使用一个组件初始化为m=e[x]和s=cov(x)。通过将β设置为s的最大奇异值的一半来计算(18)中的σ。从(17)计算核矩阵。

2)执行em步骤直到收敛:如果停止条件成立则终止。

3)在所有xj上搜索新组件的候选位置。使用预先计算的内核值hij代替φ(xi;xj,σ2i)最大化(15),其中xj=m。

4)通过在(16)中引入这些估计,用m,s=σ2i的估计值初始化局部em。

5)应用局部em步骤(10)-(13)直到如步骤2中的收敛。

6)如果ls+1<ls然后终止,否则分配新组件并转到2。

2.选择簇头

在聚类的过程中,每一层中的节点被分成不同的集群。簇头的选择分为两步骤,第一步基站根据节点的物理分布选择簇头的位置,第二步簇头节点根据自身的能量剩余进行簇头的切换,以提高节点的能量效率。

根据上一轮的工作,我们将每一层的节点分到了不同的集群,并且每层的集群数量为ck。根据集群中节点的位置,我们有

其中jk是第k层中的目标函数,ck是第k层中的簇的数量,nk是第k层中的节点总数,ξ是恒定的实参数,dij是节点j和簇i的簇头的距离,qij是属于簇i的节点j的度因子。

然后,本文使用智能遗传算法,最小化目标函数(19)。簇头节点选择过程描述如下。所有节点都将其位置信息发送给基站。根据节点分布,基站将网络划分为多个层,并使用gmm计算每层中的簇的数量。基站初步计算每个簇的簇头位置。如果当前簇头节点的能量水平不满足以下条件,则将选择该群集中的新ch节点。

ech≥eth,#(21)

其中,eth是簇头节点的能量门限。当簇头的能量低于eth时,将该节点排除,重新在剩下的节点中选择簇头。

3.簇头路由

在上面的工作中,我们可以得到每个簇的簇头。接下来,我们使用dijkstra算法[6]在不同的簇头之间选择路由路径。dijkstra算法作为经典的最短路算法,在下文直接给出

1)初始化:l(u0)=0,l(v)=∞,γ0={u0},t=0。

2)(这时已经求出γt={u0,u1,…,ut},且对每个uj∈γt,有l(uj)=d(u0,uj)。)l(v)←min{l(v),l(ut)+d(ut,v)},再计算min{l(v)},设其最小值点为ut+1,令γt+1=γt∪{ut+1}。

3)若t=v-1,停止;不然,令t←t+1,并回到2。

dijkstra算法包括v(v-1)/2步加法,v(v-1)步比较和(v-1)2步选择,总共时间复杂度为o(v2)。

本实施例未述部分与现有技术相同。

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