法律状态公告日
法律状态信息
法律状态
2018-06-29
授权
授权
2015-12-23
实质审查的生效 IPC(主分类):H04W40/10 申请日:20150630
实质审查的生效
2015-11-25
公开
公开
技术领域
本发明涉及一种无线传感器网络分簇路由方法,尤其涉及一种采用生存空间进化智能算法的无线传感器网络分簇路由方法。
背景技术
生物启发计算(Bio-inspiredcomputation)开辟了一条智能计算(Computationalintelligence)新途径,其基本思想是根据生物系统的行为特征或工作方式抽象出智能计算方法。在这一基本思想的指导下,一系列智能计算方法应运而生,包括人工神经网络、进化计算、群智能技术、人工免疫系统等等。这些方法模仿生物的神经结构或各种行为,无数的应用已经证明它们的有效性和可靠性。
目前,生物启发计算发展到今天,主要从以下几个方面模仿了自然界生物系统的有关特性。
(1)模仿生物的神经结构:人工神经网络(Artificialneuralnetwork)
人工神经网络(ANN)是一个多输入、多输出的数学模型,来自了对生物神经系统结构的模仿。ANN由多个神经元构成,而每个神经元带有一个对应的权值,这些权值可以动态调整。正是这些可以动态调整的权值,构成了神经元的记忆能力。神经元的连接可以有不同的结构,这反映了神经网络的不同类型。理论上已经证明,神经网络可以逼近任意类型的多输入、多输出非线性函数。
(2)模仿生物的进化过程:进化计算(Evolutionarycomputation)
进化计算(EC)起源于对生物进化的仿真,其基本方法有自然选择和基因遗传等。最为著名的进化计算方法是遗传算法(GA),其基本方法是:给定一个初始群体,计算它们的适应度,通过选择算子提取适应度优良的个体,通过交叉算子按一定的概率交换个体的基因产生新的个体,通过变异算子对部分个体进行变异。GA算法的特点是保持一定数量的个体,通过迭代的方法不断搜索问题域空间,从而达到寻优的目的。除此之外,其它GA的变种有进化编程(EP)、进化策略(ES)、基因编程(GP)等。
(3)模仿生物的群体行为:群智能(Swarmintelligence)
群智能(SI)主要是受生物群体的社会生存方式和行为方式的启发,比如,鸟群、鱼群、蚁群、蜂群等。这些群体以集中控制或自组织方式,以密切合作的方式在一定的空间范围内寻找食物。最为著名的群智能算法有粒子群算法(PSO),其工作原理是:有固定大小的粒子数作为群体,群体行为模仿鸟群捕食的行为。在捕食的过程中,粒子的个体根据一定的算法向当前局部和全局最优值移动一定的距离。算法以迭代的方式进行,从而逼近搜索空间的全局最优解。其它与此类似的群智能算法有蚁群算法(ACO)、人工蜜蜂算法(ABC)等。
(4)模仿生物的免疫系统:人工免疫系统(ArtificialImmuneSystem)
人工免疫系统(AIS)是模仿生物免疫系统的工作机理而产生的动态免疫系统模型。它模仿了生物免疫系统中的抗体与抗体、抗体与抗原之间的反应过程,并采用互补匹配字符串的方式实现了这一过程。从信息处理的角度来看,免疫系统具备强大的识别、学习和记忆的能力及分布式、自组织和多样性特性,这些显著的特性不断地吸引着研究人员从免疫系统中抽取有用的隐喻机制,开发相应的AIS模型和算法用于信息处理和问题求解。
以上总结了生物启发计算的四个方面的主要生物系统启发成果。从中可以看到,到目前为止,生物启发计算主要局限于对生物系统行为与结构等特性的启发,它们有一个共同的缺陷,那就是忽略了生物自身生存空间的生存条件。纵观自然界中的生命现象,生命周期与适者生存法则是生命个体与群体必须遵守的两个永恒的定律。在这个两个法则的指导下,大自然中的生命一代繁衍一代,生生不息,永无止境。然而,没有一定的生存条件,生命无法存在。同时,不去寻找更优越的生存条件,生命也就失去了生机。除此之外,群体也往往局限在一定的数量,这与自然界中真实生物的繁殖现象并不吻合。
在无线传感器网络路由协议中,LEACH是一个著名的分簇路由协议,其目的是用于解决节点之间的能量不平衡问题,其基本手段是在每一轮中重新分簇,以便在各个节点之间轮换族头。LEACH随机选择一部分节点作为族头节点,族头节点收集邻居信息从而构成一个族。每一个节点收集所感知的信息,传送给族头节点。再由族头节点融合数据,并传送给汇聚节点。LEACH考虑了数据融合以及不同节点之间的能量平衡。但是,它并未考虑不同节点到汇聚节点的距离。其实,距离的不同也会导致能量的不平衡。为了解决这个问题,CPSOCH协议不仅考虑了不同节点的能量平衡,而且也考虑了不同节点到汇聚节点的距离。但CPSOCH协议需要一个优化的过程。
发明内容
本发明提出了一种采用生存空间进化智能算法的无线传感器网络分簇路由方法,是一种新的生存空间进化(LivingSpaceEvolution,简称LSE)智能算法的应用。针对以往的生物启发计算方法中忽略了生物自身生存条件和固定群体数量等的不足,在本智能算法LSE中提出了两个新的思想。一是生存空间进化:在生存条件信息的指引下,生命的后代逐渐向富裕或优质的生存空间转移。二是多后代繁殖:为了与自然界中真实生命的繁殖现象相吻合,在该方法中引入了一个生命在一代内可以繁殖多个后代。
本发明的步骤是:
第1步:初始化
{
第1-1步:设置传感器网络的节点数;
第1-2步:设置下列(1)、(2)、(3)式的能量参数:
传输k位数据到d米的距离所需的能量消耗,ETx(k,d),其大小为:
ETx(k,d)=kEelec+kεfsd2(d<d0)
ETx(k,d)=kEelec+kεmpd4(d≥d0)(1)
收到这些信息所消耗的能量,ERx(k),其大小为:
ERx(k)=kEelec(2)
处理这些信息所需要的能量,Eda-fus(k),其大小为:
Eda-fus(k)=kEda(3)
其中,Eelec是发送电路与接受电路的能量消耗;Eda是处理数据的能量消耗;εfs和εmp分别是自由空间模型和多路衰减模型的功率损耗。d0是传输距离阈值。
第1-3步:根据下列(4)式设置适应度函数参数:
fitness=α1f1+α2f2(4)
其中,α1和α2是权值系数,并且满足α1+α2=1;qi是网络中第i个节点的剩余能量;qk是第k个族头节点的剩余能量;f1是能力的评估因子;li是第i个节点到汇聚节点的距离;lk是第k个族头节点到汇聚节点的距离;f2是距离的评估因子。
第1-4步:设置传输数据的最大数。
}
第2步:根据LEACH提供的方法,选择族头、建立族群、创建调度表,然后传输数据。
第3步:判断是否达到传输数据的最大值。若达到,则跳到第七步。
第4步:通过LSE智能算法对族头选择进行优化
{
第4-1步:给敏感区域的每一个节点编号;
第4-2步:设置族头数;
第4-3步:根据每一个节点的计算容量,设置最大迭代次数;
第4-4步:判断是否达到最大迭代次数。如果达到,则跳到第5步;
第4-5步:创建生命的生存空间,其方法如下:
生命的生存空间={候选者1、候选者2、……,候选者K|每一个候选者可以取某一个序列号1到N}。
第4-6步:优化分立生存空间,其方法如下:
{
1、用各维坐标轴的分立坐标值去代替连续的坐标值。
2、适应值按照如下的(4)式进行计算:
fitness=α1f1+α2f2(4)
3、LSE的优化过程如下:
{
第1步:初始化
设置初始生命群中的生命个体数;
设置初始生存空间范围;
设置每一个生存生命个体能够繁殖的后代的个数;
设置营养分布函数f();
设置最大的繁殖代数。
第2步:为初始群中的每一个生命个体均匀分配生存空间,简单地说,就是为每一个个体均匀地分配生存空间;
第3步:每一个生命个体在它的生存空间中获取营养,营养的大小就是分布函数f()在其生存空间坐标中点的值。
第4步:对每一个生命个体,做如下循环
{
第4-1步:计算阈值营养,其值等于当前所有生命个体获取营养的平均值;
第4-2步:比较生命个体的营养,大于或等于阈值营养者生存,否则死亡;
第4-3步:所有生存的生命个体,在它们的生存空间内繁殖多个后代;
第4-4步:这些后代们均匀地继承与共享它们前辈的生存空间,也即,均匀地为后代分配生存子空间;
第4-5步:繁殖后代的父辈们死亡;
第4-6步:每一个后代在它的生存空间中汲取营养,营养的大小就是分布函数f()在其生存空间坐标中点的值。
}
第5步:判断是否达到最大的繁殖代数,如果达到,则跳到第8步。
第6步:对每一个后代生命个体,做如下循环
{
第6-1步:计算阈值营养,其值等于当前所有后代生命个体获取营养的平均值;
第6-2步:比较后代生命个体的营养,大于或等于阈值营养者生存,否则死亡;
第6-3步:所有后代生存的生命个体,在它们的生存空间内繁殖多个新的后代;
第6-4步:这些新的后代们均匀地继承与共享它们前辈的生存空间,也即,均匀地为新的后代们分配生存子空间;
第6-5步:繁殖后代的父辈们死亡;
第6-6步:每一个新的后代在它的生存空间中汲取营养,营养的大小就是分布函数f()在其生存空间坐标中点的值。
}
第7步:跳到第5步。
第8步:结束。
}
第4-7步:发布族头信息;
第4-8步:跳到第4-4步。
}
第5步:根据LEACH提供的方法,建立族群,创建调度表,然后传输数据。
第6步:跳到第3步。
第7步:结束。
本发明的有益效果:使用本发明方法,采用生存空间进化智能算法优化分簇路由结构,提高了无线传感器网络数据传输效率,大大提升了无线传感器网络的使用寿命。
附图说明
图1是本发明的网络架构示意图。
其中:Candidate1和Candidate2为候选者1和候选者2;SinkNode为汇聚节点。
图2是本发明的二维生存空间示意图。
其中:Candidate1和Candidate2为候选者1和候选者2。
图3a~3i是本发明的验证效果图。
其中:(a)Sphere;(b)WeightedSphere;(c)Schwefel’s;(d)Rosenbrock;(e)Rastrigin;(f)Griewank;(g)Schwefei;(h)Ackley;(i)Schaffer’sf6;Generation是繁殖代数,Minimum是最小值。
表1是本发明的有关测试函数的数学模型及有关参数。
表中:Name表示函数名,Formula表示表达式,Range表示自变量取值范围,Optimalvalue表示最优值。
表2是本发明的LSE测试的有关参数设置。
表中:Function表示函数名,Dimension表示维数,Initialization表示初始化值。
具体实施方式
下面结合附图对本发明进行详细描述。
1问题描述
1.1网络与能力模型
假设网络模型如下:
(1)有N个传感器节点分布在敏感区域,每个节点有唯一的标识号。
(2)所有的节点是同质的,也就是说,有相同的初始能量和传输范围。
(3)所有的节点具有功率调节能力,以便可以与汇聚节点通信。
(4)汇聚节点位于敏感区域的外围适当的位置,并且有足够的能量。
(5)汇聚节点与传感器节点位置固定,并且互相能感知对方的位置信息。
能量模型假设如下:
传输k位数据到d米的距离所需的能量消耗,ETx(k,d),其大小为:
ETx(k,d)=kEelec+kεfsd2(d<d0)
ETx(k,d)=kEelec+kεmpd4(d≥d0)(1)
收到这些信息所消耗的能量,ERx(k),其大小为:
ERx(k)=kEelec(2)
处理这些信息所需要的能量,Eda-fus(k),其大小为:
Eda-fus(k)=kEda(3)
其中,Eelec是发送电路与接受电路的能量消耗;Eda是处理数据的能量消耗;εfs和εmp分别是自由空间模型和多路衰减模型的功率损耗。d0是传输距离阈值。
1.2分簇路由的目标
分簇路由的目标是从N个传感器节点中选择K个族头,从而构成K族。但必须满足如下的要求:剩余的能量越多和离汇聚节点越近,则成为族头节点的可能性越大。其适应度函数设计为:
fitness=α1f1+α2f2(4)
其中,α1和α2是权值系数,并且满足α1+α2=1;qi是网络中第i个节点的剩余能量;qk是第k个族头节点的剩余能量;f1是能力的评估因子;li是第i个节点到汇聚节点的距离;lk是第k个族头节点到汇聚节点的距离;f2是距离的评估因子。
从等式(4)可知,从N个传感器节点中选择K个族头,其实质是一个选择K个族头使其适应度函数值成为最优,这是一个典型的优化问题。
2创建生命的生存空间
与连续函数不同,从N个节点中选出K个族头的问题是一个分立事件。如何应用LSE到分立事件问题,其关键是如何创建生命的生存空间。
首先不妨分析一下,在这个问题中生命是什么?在连续函数问题中,生命就是变量空间中的一个点。但是现在,在分簇路由协议中什么是变量?其实,这K个候选者就是变量。因为K个候选者中的每一个候选者都可以取值为编号1到编号N,也就是说,每一个候选者就是一个变量。通过这种方法,可以创建生命的生存空间,其中,每一个候选者就是这个空间的坐标,如下所示:
生命的生存空间={候选者1、候选者2、……,候选者K|每一个候选者可以取某一个序列号1到N}。
例如,从随机分布在一个敏感区域中的100个节点中,选择2个族头节点。首先,应该按照一定的次序给每一个节点编号,比如从编号1到编号100,如图1所示。这样一来,生存空间就可以创建出来了,如图2所示。可以看到,这个生存空间就是一个分立的二维空间。
图2中,候选者1和候选者2的可能值都是编号1到编号100,其中的编号代表的是拥有该编号的该节点。很明显,这两个候选者不可以同时取某一个相同的编号,因此,图中标记为黑点的位置不可以为任何生命的位置。但图中标记为白点的位置,则构成了生命的生存空间,这是一个二维的生存空间。在这个生存空间中,任何一个标记为白点的位置,代表对应的两个候选者,即横坐标代表候选者1的编号,而纵坐标代表了候选者2的编号。也就是说,这两个候选者的编号就是生命在生存空间的x和y轴的坐标值,而这个标记为白点的位置就代表一个生命。
以上是以选择2个族头节点为例,从上面的分析可以得到如下的结论:如果从N个节点中选择K个族头,那么,生命的生存空间就是一个K维的空间。
3LSE优化分立生存空间
在创立分立的生存空间以后,下一个问题就是如何使用LSE优化这个生存空间?事实上,这与连续空间的使用方法是完全相同的,只不过用x和y轴的分立坐标值去代替连续的坐标值。
例如,在图2所示的二维分立生存空间中,x和y的坐标值只能取{1,2,…,100}各个分立值。除此之外,其余的过程与连续函数的优化方法完全相同。
4基于LSE优化的分簇路由协议
基于LSE优化的分簇路由协议步骤如下:
第1步:初始化
设置传感器网络的节点数;
根据(1)、(2)、(3)式设置能量参数;
根据(4)式设置适应度函数参数;
设置传输数据的最大数。
第2步:根据LEACH提供的方法,选择族头、建立族群、创建调度表,然后传输数据。
第3步:判断是否达到传输数据的最大值。若达到,则跳到第七步。
第4步:通过LSE对族头选择进行优化
{
第4-1步:给敏感区域的每一个节点编号;
第4-2步:设置族头数;
第4-3步:根据每一个节点的计算容量,设置最大迭代次数;
第4-4步:判断是否达到最大迭代次数。如果达到,则跳到第5步;
第4-5步:根据第2小节的创建生命的生存空间和第3小节的LSE优化分立生存空间所提供的方法对生存空间进行优化,其中适应值根据(4)式进行计算;
第4-6步:发布族头信息;
第4-7步:跳到第4-4步。
}
第5步:根据LEACH提供的方法,建立族群,创建调度表,然后传输数据。
第6步:跳到第3步。
第7步:结束。
描述本发明的工作原理及工作过程:
1、本发明的工作原理及工作过程
本发明的工作原理及工作过程可以用一个流程表示如下:
第1步:初始化
{
第1-1步:设置传感器网络的节点数;
第1-2步:设置下列(1)、(2)、(3)式的能量参数:
传输k位数据到d米的距离所需的能量消耗,ETx(k,d),其大小为:
ETx(k,d)=kEelec+kεfsd2(d<d0)
ETx(k,d)=kEelec+kεmpd4(d≥d0)(1)
收到这些信息所消耗的能量,ERx(k),其大小为:
ERx(k)=kEelec(2)
处理这些信息所需要的能量,Eda-fus(k),其大小为:
Eda-fus(k)=kEda(3)
其中,Eelec是发送电路与接受电路的能量消耗;Eda是处理数据的能量消耗;εfs和εmp分别是自由空间模型和多路衰减模型的功率损耗。d0是传输距离阈值。
第1-3步:根据下列(4)式设置适应度函数参数:
fitness=α1f1+α2f2(4)
其中,α1和α2是权值系数,并且满足α1+α2=1;qi是网络中第i个节点的剩余能量;qk是第k个族头节点的剩余能量;f1是能力的评估因子;li是第i个节点到汇聚节点的距离;lk是第k个族头节点到汇聚节点的距离;f2是距离的评估因子。
第1-4步:设置传输数据的最大数。
}
第2步:根据LEACH提供的方法,选择族头、建立族群、创建调度表,然后传输数据。
第3步:判断是否达到传输数据的最大值。若达到,则跳到第七步。
第4步:通过LSE智能算法对族头选择进行优化
{
第4-1步:给敏感区域的每一个节点编号;
第4-2步:设置族头数;
第4-3步:根据每一个节点的计算容量,设置最大迭代次数;
第4-4步:判断是否达到最大迭代次数。如果达到,则跳到第5步;
第4-5步:创建生命的生存空间,其方法如下:
生命的生存空间={候选者1、候选者2、……,候选者K|每一个候选者可以取某一个序列号1到N}。
第4-6步:优化分立生存空间,其方法如下:
{
1、用各维坐标轴的分立坐标值去代替连续的坐标值。
2、适应值按照如下的(4)式进行计算:
fitness=α1f1+α2f2(4)
3、LSE的优化过程如下:
{
第1步:初始化
设置初始生命群中的生命个体数;
设置初始生存空间范围;
设置每一个生存生命个体能够繁殖的后代的个数;
设置营养分布函数f();
设置最大的繁殖代数。
第2步:为初始群中的每一个生命个体均匀分配生存空间,简单地说,就是为每一个个体均匀地分配生存空间;
第3步:每一个生命个体在它的生存空间中获取营养,营养的大小就是分布函数f()在其生存空间坐标中点的值。
第4步:对每一个生命个体,做如下循环
{
第4-1步:计算阈值营养,其值等于当前所有生命个体获取营养的平均值;
第4-2步:比较生命个体的营养,大于或等于阈值营养者生存,否则死亡;
第4-3步:所有生存的生命个体,在它们的生存空间内繁殖多个后代;
第4-4步:这些后代们均匀地继承与共享它们前辈的生存空间,也即,均匀地为后代分配生存子空间;
第4-5步:繁殖后代的父辈们死亡;
第4-6步:每一个后代在它的生存空间中汲取营养,营养的大小就是分布函数f()在其生存空间坐标中点的值。
}
第5步:判断是否达到最大的繁殖代数,如果达到,则跳到第8步。
第6步:对每一个后代生命个体,做如下循环
{
第6-1步:计算阈值营养,其值等于当前所有后代生命个体获取营养的平均值;
第6-2步:比较后代生命个体的营养,大于或等于阈值营养者生存,否则死亡;
第6-3步:所有后代生存的生命个体,在它们的生存空间内繁殖多个新的后代;
第6-4步:这些新的后代们均匀地继承与共享它们前辈的生存空间,也即,均匀地为新的后代们分配生存子空间;
第6-5步:繁殖后代的父辈们死亡;
第6-6步:每一个新的后代在它的生存空间中汲取营养,营养的大小就是分布函数f()在其生存空间坐标中点的值。
}
第7步:跳到第5步。
第8步:结束。
}
第4-7步:发布族头信息;
第4-8步:跳到第4-4步。
}
第5步:根据LEACH提供的方法,建立族群,创建调度表,然后传输数据。
第6步:跳到第3步。
第7步:结束。
下面对上述方法中的LSE优化过程做一个简要的说明。
第1步完成初始化设置,包括设置初始生命群体的个体个数、生存空间范围、每一个生存个体可以繁殖后代个数、繁殖的最大代数,以及营养分布函数等。第2步为每一个生命个体均匀地分配生存空间。第3步,每一个生命个体在其生存空间中获取营养,其计算方法是取营养函数在其生存空间中点的值。
第4步,对于每一个生命个体,进入到一个循环。循环的第1步,计算营养阈值,其值等于当前所有个体获取营养的平均值;在循环的第2步,进行比较,获取营养值大于或等于营养阈值的生命个体生存下来,其它个体死亡;循环的第3步,生存下来的个体在其生存空间中繁殖多个后代;循环的第4步,所繁殖的后代均匀地继承其父辈的生存空间,也就是说,为后代均匀地分配子生存空间;循环的第5步,繁殖后代的父辈当即死亡;循环的第6步,每一个后代生命个体在其生存子空间中获取营养,其计算方法是取营养函数在其生存子空间中点的值。
第5步,判断是否达到了繁殖代数的最大值。如果达到了,则跳到第八步,从而结束整个计算过程。
第6步,对于每一个后代生命个体,进入到一个循环,其操作方法与计算过程与第四步完全相同。
第7步,跳到第五步。
第8步,结束整个计算过程。
需要特别指出的是,第4步和第6步分别完成生存空间进化与多后代繁殖。一方面在生存空间的进化过程中,一部分生命个体连同它们的生存空间一起消失了。另一方面,多后代繁殖可以连续不断地为生命种群注入新鲜的生命个体,这样就可以保证生命群体中的生命不会逐步减少。因此,多后代繁殖是实现生存空间进化的前提和保证。
2、本发明有效性验证
为了对本发明的有效性进行检验,采用标准测试函数(BenchmarkFunctions)对本方法中的核心内容LSE智能算法进行了测试。9个标准测试函数包括3个单峰函数和6个多峰函数用来测试,其目标是计算这些函数的最小值。表1是这些测试函数的数学模型及有关参数。LSE测试的有关参数设置如表2所示。
优化结果如图3所示。从图3可以看到,对于所有的函数,后代搜索到的最小值比前代都要小,这就说明生命不断向优质生存空间进化。同时可以看到,对于Rosenbrock,直接得到了其最小值,而对于其他函数,随着繁殖代数的增加,所搜索到的最小值越来越向函数的最小值靠近。因此,LSE智能算法对于这些标准测试函数的寻优问题是有效的。
表1
表2
机译: 窗ASH更换结构中灰尘侵入防止结构的生存空间和采用相同方法的窗SO隔音防尘方法
机译: 生成包括语音识别模块在内的语音信号执行语音识别人工智能算法的设备和采用相同方法的除颤方法
机译: 无线传感器网络系统,一种在无线传感器网络系统中设置多个传感器节点的方法,以及一种按传感器节点的面积计算传感能量消耗的方法,能够进行最佳传感器节点设置