基于改进粒子群优化算法的无线传感器节点联盟生成方法转让专利

申请号 : CN201010034063.0

文献号 : CN101790251A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邱雪松熊翱关志丽亓峰杨杨芮兰兰高志鹏

申请人 : 北京邮电大学

摘要 :

本发明公开了一种基于改进粒子群优化算法的无线传感器节点联盟生成方法,包括:S1采集各节点的能力信息及任务信息,并将各节点的能力信息及任务信息用向量来量化;S2在t时刻,根据待执行任务的个数将粒子群分为m个子群,为各子群中的各粒子初始化当前位置,并设置最大迭代次数;S3对于m个子群,用如下效用函数评价各粒子的当前位置的效益值;S4用步骤S3计算得到的粒子的当前位置的效益值a1与预设的粒子自身最优位置的效益值a2和预设的群体最优位置的效益值a3进行比较,更新粒子自身最优位置和群体最优位置;S5利用粒子群优化算法计算t+1时刻粒子速度矢量和粒子位置。S6重复S3~S5,得到最后的群体最优位置。本发明执行效率高、稳定性高。

权利要求 :

1.一种基于改进粒子群优化算法的无线传感器节点联盟生成方法,其特征在于,所述方法包括以下步骤:S1,采集无线传感器网络中各节点的能力信息及任务信息,并将各节点的能力信息及任务信息用向量来量化;

S2,在t时刻,根据无线传感器网络中待执行的任务的个数将粒子群分为m个子群,为各子群中的各粒子初始化当前位置,并设置最大迭代次数itermax,其中,m个子群用于生成m个节点联盟,每个子群中的各粒子在多维空间中的位置组成的向量代表一个节点联盟,m为正整数,t≥0,且为整数;

S3,对于m个子群,用如下效用函数来评价每个子群中各粒子的当前位置的效益值:V(c)=P(c)-F(c)-C(c),其中V(c)表示节点联盟的净收益,P(c)为节点联盟完成任务的收益,该收益用表示任务信息的向量中各维值的和表示;F(c)为节点联盟完成任务的能力成本,该能力成本用表示能力信息的向量中各维值的和表示;C(c)为节点联盟内部的通信开销;

S4,用步骤S3计算得到的粒子的当前位置的效益值a1分别与预设的粒子自身最优位置的效益值a2和预设的群体最优位置的效益值a3进行比较,若a1>a2,则以粒子的当前位置更新粒子自身最优位置,若a1>a3,则以粒子的当前位置更新群体最优位置;

S5,根据t时刻粒子的速度矢量、粒子的当前位置、粒子自身最优位置和群体最优位置,利用粒子群优化算法计算t+1时刻粒子的速度矢量,并根据t+1时刻粒子的速度矢量和粒子的当前位置计算t+1时刻粒子的位置,其中,在该粒子群优化算法中的惯性系数为非线性可变的;

S6,重复执行步骤S3~S5,直到达到最大迭代次数,最后得到的群体最优位置即为执行相应任务的最优节点联盟。

2.如权利要求1所述的基于改进粒子群优化算法的无线传感器节点联盟生成方法,其特征在于,在步骤S5中,t+1时刻粒子的速度矢量的计算公式为:Vi(t+1)=α(iter)Vi(t)+β(iter)(pBesti-Xi(t))+γ(iter)(gBest-Xi(t));

t+1时刻粒子的位置的计算公式为:

Xi(t+1)=Xi(t)+Vi(t+1);

其中,α(iter)、β(iter)和γ(iter)为惯性系数,Vi(t)为t时刻粒子的速度矢量,Xi(t)为t时刻粒子的当前位置;Vi(t)在t=0时刻的值为预设值;pBesti表示粒子群中粒子i自身最优位置;gBest为群体最优位置;

α(iter)、β(iter)和γ(iter)均为指数函数,iter为迭代次数,0<iter≤itermax。

3.如权利要求1所述的基于改进粒子群优化算法的无线传感器节点联盟生成方法,其特征在于,在步骤S3中,在计算节点联盟内部的通信开销时,按照以下方式计算:

假设源节点及路由上所有节点的发送功率已知,首先根据以下的自由空间传播功率衰落方程式计算出路由上各节点的接收功率,然后求出节点的发送能耗和接收能耗:接收功率:

其中,Pr为接收功率,Pt为已知的发送功率,Gr和Gt分别为接收和发送天线增益,λ为波长,R为节点间的距离,L为与通信无关的系统损耗;

发送能耗:

接收能耗:

其中:Tt-startPt-start和Tr-startPr-start分别是发射机在发送和接收分组前的启动功耗;n是发送的总字节数,R为比特率,Rcode为编码率;Ptx和Prx分别为发送功率和接收功率;Pamp是无线传感器网络中的放大器的自身功耗;Edecbit是接收机每比特解码的功耗。

4.如权利要求1~3之任一项所述的基于改进粒子群优化算法的无线传感器节点联盟生成方法,其特征在于,在步骤S1中,各节点的能力信息的向量的各分量为节点能量、负载、带宽和主机的数据处理能力四个方面的性能值;任务信息的向量的各分量为预设的权值,权值代表该向量中各维能力对完成任务的重要程度,各维能力包括能量、负载、带宽和主机的数据处理能力四方面能力。

说明书 :

基于改进粒子群优化算法的无线传感器节点联盟生成方法

技术领域

[0001] 本发明涉及无线传感器网络领域,尤其涉及一种基于改进粒子群优化算法的无线传感器节点联盟生成方法。

背景技术

[0002] 无线传感器网络(WSN,Wireless Sensor Network)作为一种新兴的信息获取系统自出现以来就以其低功耗、低成本、分布式和自组织等特点受到人们的广泛关注。但是在
WSN中,由于节点处理能力有限且电源是有限供给等特点,所以在处理任务时往往需要多个
节点合作求解。可把WSN中的节点视为代理(agent),将agent联盟理论应用于WSN中多节
点合作问题中,解决WSN中联盟生成问题。
[0003] 与单个agent相比,多个agent在合作求解过程中,每个成员agent仅拥有局部的知识和不完全的问题求解能力,降低了对单个agent的要求。通过联盟可以提高agent求
解问题的能力,完成单个agent不能完成的任务,获得更多的效益。问题的关键是如何选择
加入联盟的节点以使整体收益最大。
[0004] 目前的联盟生成办法主要是基于蚁群算法,通过更新信息素或者加入简单先进的启发式信息等方法将蚁群算法改进,用来防止遗传算法中出现的“早熟”问题和蚂蚁算法中
发生的“停滞”状态。
[0005] 查询关键词“粒子群”,发现如下专利申请:申请号为200610089781.1的中国专利申请“基于粒子群算法的交通信号离线配时优化方法”;申请号为200710055653.X的中国
专利申请“一种基于免疫粒子群算法的超声电机控制方法”;申请号为200710019005.9的
中国专利申请“基于离散粒子群算法的V-BLAST系统检测方法”;申请号为200710193876.2
的中国专利申请“基于小生境粒子群优化算法的分类器集成的多层选择方法”;申请号为申
请号为200810019451.4的中国专利申请“基于量子行为粒子群算法的多分辨率医学图像
配准方法”;申请号为200810030543.2的中国专利申请“基于粒子群算法的模拟电路故障诊
断神经网络方法”;申请号为200810044739.7的中国专利申请“一种基于离散粒子群算法的
多目标故障测试优化方”;申请号为200810143538.2的中国专利申请“基于分组粒子群算法
的电子电路故障诊断神经网络方法”;请号为200810220656.9的中国专利申请“基于粒子群
算法的功率电子电路优化方法”;申请号为200810220650.1的中国专利申请“基于粒子群算
法的多播路由方法”;申请号为200810220635.7的中国专利申请“基于粒子群算法的无线传
感器网络节点覆盖优化方法”;申请号为200810220633.8的中国专利申请“运用粒子群算法
优化动态网格工作流的方法”。
[0006] 以上专利申请均是将粒子群优化算法应用于解决各种实际问题。
[0007] 专利申请号为200810200231.1的中国专利申请涉及一种基于蚁群算法的动态联盟伙伴选择方法,它提出了“小生境蚁群算法”(Microhabitat Ant Colony Optimization,
MACO),用来防止遗传算法中出现的“早熟”问题和蚂蚁算法中发生的“停滞”状态。但是蚁
群算法本身属于概率算法,具有不确定性和稳定性差的问题,算法进化不一定朝着最优解
的方向进行,因此基于蚁群算法的联盟搜索结果具有随机性,算法进化不一定朝着最优解
的方向进行,而且不支持并行多任务环境的联盟生成问题。

发明内容

[0008] 本发明的目的是针对现有技术中存在的缺陷和不足,提供了一种执行效率高、稳定性高的基于改进粒子群优化算法的无线传感器节点联盟生成方案。
[0009] 为达到上述目的,本发明提供了一种基于改进粒子群优化算法的无线传感器节点联盟生成方法,所述方法包括以下步骤:
[0010] S1,采集无线传感器网络中各节点的能力信息及任务信息,并将各节点的能力信息及任务信息用向量来量化;
[0011] S2,在t时刻,根据无线传感器网络中待执行的任务的个数将粒子群分为m个子群,为各子群中的各粒子初始化当前位置,并设置最大迭代次数itermax,其中,m个子群用于
生成m个节点联盟,每个子群中的各粒子在多维空间中的位置组成的向量代表一个节点联
盟,m为正整数,t≥0,且为整数;
[0012] S3,对于m个子群,用如下效用函数来评价每个子群中各粒子的当前位置的效益值:V(c)=P(c)-F(c)-C(c),其中V(c)表示节点联盟的净收益,P(c)为节点联盟完成任务
的收益,该收益用表示任务信息的向量中各维值的和表示;F(c)为节点联盟完成任务的能
力成本,该能力成本用表示能力信息的向量中各维值的和表示;C(c)为节点联盟内部的通
信开销;
[0013] S4,用步骤S3计算得到的粒子的当前位置的效益值a1分别与预设的粒子自身最优位置的效益值a2和预设的群体最优位置的效益值a3进行比较,若a1>a2,则以粒子的
当前位置更新粒子自身最优位置,若a1>a3,则以粒子的当前位置更新群体最优位置;
[0014] S5,根据t时刻粒子的速度矢量、粒子的当前位置、粒子自身最优位置和群体最优位置,利用粒子群优化算法计算t+1时刻粒子的速度矢量,并根据t+1时刻粒子的速度矢量
和粒子的当前位置计算t+1时刻粒子的位置,其中,在该粒子群优化算法中的惯性系数为
非线性可变的;
[0015] S6,重复执行步骤S3~S5,直到达到最大迭代次数,最后得到的群体最优位置即为执行相应任务的最优节点联盟。
[0016] 其中,在步骤S5中,t+1时刻粒子的速度矢量的计算公式为:
[0017] Vi(t+1)=α(iter)Vi(t)+β(iter)(pBesti-Xi(t))+γ(iter)(gBest-Xi(t));
[0018] t+1时刻粒子的位置的计算公式为:
[0019] Xi(t+1)=Xi(t)+Vi(t+1);
[0020] 其中,α(iter)、β(iter)和γ(iter)为惯性系数,Vi(t)为t时刻粒子的速度矢量,Xi(t)为t时刻粒子的当前位置;Vi(t)在t=0时刻的值为预设值;pBesti表示粒子群
中粒子i自身最优位置;gBest为群体最优位置;
[0021] α(iter)、β(iter)和 γ(iter)均 为 指 数 函 数,iter为 迭 代 次 数,0<iter≤itermax。
[0022] 其中,在步骤S3中,
[0023] 在计算节点联盟内部的通信开销时,按照以下方式计算:
[0024] 假设源节点及路由上所有节点的发送功率已知,首先根据以下的自由空间传播功率衰落方程式计算出路由上各节点的接收功率,然后求出节点的发送能耗和接收能耗:
[0025] 接收功率:
[0026] 其中,Pr为接收功率,Pt为已知的发送功率,Gr和Gt分别为接收和发送天线增益,λ为波长,R为节点间的距离,L为与通信无关的系统损耗;
[0027] 发送能耗:
[0028] 接收能耗:
[0029] 其中:Tt-startPt-start和Tt-startPr-start分别是发射机在发送和接收分组前的启动功耗;n是发送的总字节数,R为比特率,Rcode为编码率;Ptx和Prx分别为发送功率和接收功率;Pamp是无线传感器网络中的放大器的自身功耗;Edecbit是接收机每比特解码的功耗。
[0030] 其中,在步骤S1中,各节点的能力信息的向量的各分量为节点能量、负载、带宽和主机的数据处理能力四个方面的性能值;任务信息的向量的各分量为预设的权值,权值代
表该向量中各维能力对完成任务的重要程度,各维能力包括能量、负载、带宽和主机的数据
处理能力四方面能力。
[0031] 上述技术方案具有如下有益效果:1、对PSO(Partical SwarmOptimization,粒子群优化)算法进行改进,使算法的参数具有自适应性,且惯性系数具有非线性自适应,使算
法在初期扩大了搜索范围,在搜索后期可以更快的收敛,且支持并行多任务环境下的联盟
生成。因此本发明的技术方案解决了基于蚁群的联盟生成算法的不稳定性,且本发明的改
进的PSO算法在执行效率上高于普通PSO算法,可以在较少的迭代次数中寻找到最优解;在
搜索初期开拓了搜索空间,在搜索后期具有良好的收敛性;算法支持并行多任务环境的联
盟生成求解。2、结合WSN(wireless sensor network,无线传感器网络)的特点,将改进的
PSO应用于WSN节点协作联盟生成中,针对WSN设计的联盟效益函数考虑联盟内部的通信开
销,为有效合理的评价联盟提供了依据。

附图说明

[0032] 图1是本发明实施例的方法流程图;
[0033] 图2是本发明实施例的方法中粒子进行位置更新的示意图。

具体实施方式

[0034] 下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0035] 依据本发明实施例的方法流程图如图1所示,包括如下步骤:
[0036] 101,采集网络中节点及任务信息。中心节点需要随着网络的运行,周期性地感知当前网络中节点的能力情况以及任务的需求和执行情况。采集到的节点能力采用向量的形
式表示,根据系统需要确定需要采集的参数,如能量信息等。一般选取能量、负载、带宽和主
机数据处理能力四项参数作为节点能力的综合度量。对于网络中待执行的任务信息,采集
后同样以向量的形式表示,综合表示执行此任务的能力要求。
[0037] 102-103,输入网络中节点的能力向量和任务的能力需求。根据网络中待执行的任务数将粒子群分为m个子群,m个子群分别负责生成m个节点联盟。确定最大迭代次数
itermax。
[0038] 为各子群中的粒子赋予一个初始位置,使粒子在t=0时的位置是随机的。在该算法中粒子在多维空间的位置代表一个节点联盟,如[0,0,1,1,0,1,0,0,1,0],表示网络中共有10个节点,且节点3、4、6和9被选择加入联盟。
[0039] 104,对于每个子群中的粒子用效用函数F评价位置的效益值。本发明设计了一种效益函数,量化了联盟的效益值,并且在计算中引入了通信开销值,为合理评价联盟的效益
提供了有利的依据。函数设计具体如下:
[0040] 效用函数一般表示为:V(c)=P(c)-F(c)-C(c)。其中V(c)表示联盟的净收益,P(c)为联盟完成任务的收益,采用任务需要能力向量的各维值求和的方式表示;F(c)为联
盟完成任务的能力成本,通常采agent能力向量各维值的和来表示;C(c)为其他开销,一般
指联盟内部的通信开销。根据任务的能力需求给各维能力分配一个权值,以表示各维能力
对完成任务的重要程度。
[0041] 假设源节点及路由上所有节点的发送功率已知,首先根据自由空间传播功率衰落方程式计算出路由上各节点的接收功率,然后求出节点的发送能耗和接收能耗:
[0042] 接收功率:
[0043] 其中,Pr为接收功率,Pt为发送功率,Gr和Gt为接收和发送天线增益,λ为波长,R为节点间的距离,L为与通信无关的系统损耗。系统本身在实际工作中总是有各种损
耗的,这些损耗将影响信号在传播过程中的衰落,因此在自由空间传播功率衰落方程式中
引入与通信无关的系统损耗这一修正量。系统损耗L(L>=1)通常归因于传输线衰减、滤
波损耗和天线损耗,还包括一些不易估计的值,如人为操作损耗等。可以取L=1,表明系统
无损耗。
[0044] 发送能耗:
[0045] 接收能耗:
[0046] 其中:Tt-startPt-start和Tr-startPr-start分别是发射机在发送和接收分组前额外的启动功耗;n是发送的总字节数,R为比特率,Rcode为编码率;Ptx和Prx分别为发送功率和接收功率;Pamp是放大器的自身功耗。Edecbit是每比特解码的功耗。
[0047] 据此,本发明将效用函数F具体设计如下:
[0048]
[0049] 其中,c:在粒子群算法中每个粒子的位置代表一个联盟,Xi是粒子i的位置,即一个联盟c。
[0050] η:根据任务的能力需求给各维能力分配一个权值,以表示各维能力对完成任务的重要程度,也即某一维度向量对于任务t的重要性,有
[0051] h:用于标识一项任务,eh表示任务h的需求能力向量。
[0052] r:表示能力向量一共有r维。
[0053] Eti:表示源节点i的发送功耗
[0054] Erj:表示目标节点j的接收功耗
[0055] Etk和Erk:分别表示节点k的发送功耗和接收功耗
[0056] route(i,j):表示从i到j路由经过的节点。
[0057] 105-107,比较粒子搜索到的当前联盟效益与其自身最优联盟的效益和子群中最优位置的效益。取当前联盟效益和自身最优联盟效益的较大值更新自身最有联盟;取当前
联盟效益和群体最优联盟效益的较大值更新群体最优联盟。
[0058] 108,粒子根据自己当前的位置,自身最优位置和群体最优位置修改自己的速度矢量,按照优化后的速度矢量更新自己的位置,得到t+1时刻的位置。粒子更新位置示意图如
图2所示。
[0059] 具体更新公式如下所示:
[0060] Vi(t+1)=α(iter)Vi(t)+β(iter)(pBesti-Xi(t))+γ(iter)(gBest-Xi(t))
[0061] Xi(t+1)=Xi(t)+Vi(t+1)
[0062] Vi(t)为t时刻粒子的速度矢量,Xi(t)为t时刻粒子的当前位置;Vi(t)在t=0时刻的值为预设值;pBesti表示粒子群中粒子i自身最优位置;gBest为群体最优位置;
[0063] 迭代执行步骤104-108,直至达到最大迭代次数itermax。
[0064] 本发明在联盟生成模块中引入PSO算法的同时,为了提高算法执行效率和搜索优化对PSO中涉及到的三个参数进行了改进,将固定值的参数设为动态可变的,随算法迭代
次数的增加发生改变。具体改进如下:
[0065] 对惯性系数进行优化:α(iter)=μ+v*(e-1/ω*iter),根据经验可得当μ=0.11,v=0.11且ω=3时性能较优。
[0066] 对认知系数进行优化: 根据经验可得当μ=0.22且v=0.11时性能较优。
[0067] 对社会系数进行优化: 根据经验可得当μ=0.22且v=0.22时性能较优。
[0068] 其中iter为迭代次数,0<iter≤itermax。
[0069] 109)在执行完指定的迭代次数后,得到群体最优联盟和自身最优联盟。在整个迭代过程中,自身最优联盟会逐步趋向于群体最优联盟;而群体最优联盟的变化会逐步减小,
最终趋于一个定值。此时得到的群体最优联盟即为求解到的执行该任务的最优节点联盟。
[0070] 以下举两个实例:
[0071] 实例1:
[0072] 当WSN中执行入侵检测任务时需要多节点协作完成,利用本方法生成节点联盟,协作完成入侵检测任务。
[0073] 101,采集网络中节点及任务信息,具体如下:
[0074] 假设系统中共有10个节点,节点信息库维护着10个节点的能力向量。设本任务需要考虑6个方面的参数,系统首先将采集到的节点的参数进行量化,得到节点的能力向
量。同样将任务的能力需求的具体参数值进行量化,得到任务的能力需求向量,设执行该入
侵检测任务的能力需求向量为T=[10,35,25,41,23,42]。
[0075] 102-103,输入网络中节点的能力向量和任务的能力需求。当前网络中只有上述入侵检测任务未分配资源,所以只需一个粒子群(也即一个子群),设该粒子群中粒子数为5。
输入最大迭代次数30。
[0076] 初始化群体中粒子的位置,保证在t=0时粒子的位置是随机的,设随机生成的5个位置分别为:[1,0,1,0,1,1,1,0,0,1],[0,1,0,0,1,0,1,0,0,1],[0,1,1,0,1,1,1,0,0,
1],[1,0,0,0,1,0,1,0,0,1]和[0,0,1,0,1,1,0,0,1,1]。在该算法中粒子在多维空间的位置代表一个节点联盟,如[0,0,1,1,0,1,0,0,1,0],表示网络中共有10个节点,且节点3、4、
6和9被选择加入联盟。
[0077] 104,将5个生成结果发送的联盟效益评价模块,用效用函数F评价联盟的效益值,返回联盟效益值,分别为f(c1)=199.9091,f(c2)=283.9091,f(c3)=205.9091,f(c4)
=277.9091和f(c5)=205.9091。
[0078] 105-107,粒子i比较自身最优位置和f(ci),将较大的更新为自身最优位置,在第一次迭代中,由于自身最优联盟初始为0,所以分别将c1,c2,c3,c4和c5更新为自身最优位
置;将f(ci)中最大的更新为群体最优位置。在此后的迭代中,需要比较f(ci)和f(pbest),
取较大者更新f(pbest);将f(ci)中最大值与f(gbest)比较,取较大值更新f(gbest)。
[0079] 108,粒子根据自己当前的位置,自身最优位置和群体最优位置更新自己的位置,得到t=1时刻的位置,分别为:[0.66,0,1,0,1,1,1,0,0,1],[0,1,0,0,1,0,1,0,0,1],[0,
1,1,0,1,1,1,0,0,1],[0.33,0,0,0,1,0,1,0,0,1]和[0,0,1,0,1,1,0,0,1,1]。
[0080] 迭代执行步骤104-108,用效用函数F评价各联盟的效益值,并据此更新自身最优位置pBesti和群体最优位置gBest,直至达到最大迭代次数。此时得到的群体最优位置
gBest即为搜索到的最优联盟组合。
[0081] 实例2:
[0082] 证明本发明中算法的并行性。假设系统中有3个并行的入侵检测任务,已知这三个任务的能力需求分别为,t1=[10,35,35,41,23,42],t2=[20,30,38,40,27,45],t3=[15,25,41,42,34,38]。已知系统中共有10个节点,根据此时需要并行执行的任务数,将粒子群分为3个子群,每个子群负责生成一个联盟。假设各子群中的粒子数为5,同实例1中
相同,每个子群独立搜索,分别生成3个联盟,且在迭代过程中每个联盟的效益逐渐趋于最
优解。
[0083] 以上所述仅是本发明的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应
视为本发明的保护范围。