本发明属于通信技术领域,更进一步涉及无线通信技术领域中的一种基于多智能体进化算法的无线传感器网络优化方法。本发明可用于优化无线传感器网络中无线传感器的分布,用无线传感器对一定规模的区域进行监测,使无线传感器对监测区域的覆盖范围达到最大。
背景技术:
无线传感器网络是一种能够有效获得信息的无线网络。无线传感器网络已经广泛的应用在军事、社会生产和生活中,例如战场监督、灾难救援、目标识别、天气监控、灾害干预、医疗护理等方面。无线传感器网络一般是指将一定数目的无线传感器分布在一个规模较大的区域进行监测。因此,如何去布局这些无线传感器的位置使覆盖范围达到最大是一个很重要的技术问题。当无线传感器数目较少时,可以进行人为放置,当无线传感器数目较大时,必须考虑如何合理的放置无线传感器。当无线传感器放置不合理时,无线传感器之间会造成干扰,使得信息传输不可靠。传统的优化方法只适用于无线传感器数目较少时,当无线传感器数目较多时,计算速度慢,耗时长。基于多智能体进化算法的无线传感器网络优化方法,不仅能降低成本,加快计算速度,还能增强无线传感器网络的稳定性。
Yourim Yoon等人在其发表的论文“An Efficient Genetic Algorithm for Maximum Coverage Development in Wireless Sensor Networks”(《IEEE Transactions on Cybernetics》文章编号:2168-2267(2013))中公开了一种基于有效遗传算法的无线传感器网络覆盖优化方法。该方法在遗传算法的基础上加入归一化方法,对解空间进行搜索,用种群中的个体串来对无线传感器的位置和覆盖半径进行编码,将无线传感器的覆盖面积作为适应度函数,用蒙特卡罗方法,对适应度函数进行求解,经过多次迭代,保留种群中适应度函数值最大的个体,直到满足终止条件停止。该方法存在的不足之处是,当无线传感器数目较多时,寻优速度慢,耗时长,搜索空间较大,收敛速度慢,迭代次数较多。
南京理工大学在其申请的专利“基于虚拟力算法的无线传感网覆盖优化方法与系统”(申请号:201410579915.2,申请公布号:CN 104333866 A)中公开了一种基于虚拟力算法的无线传感网覆盖优化方法与系统。该方法包括以下步骤:1.设定无线传感网的监测区域范围、传感器的探测距离;2.无线传感器在监测区域范围内的布撒;3.确定无线传感器节点的坐标值;4.计算各节点之间距离,存储至节点坐标矩阵,计算各节点的受力情况;5.判断节点移动是否满足约束条件:如果是则以当前的节点坐标矩阵作为节点位置数据输出,否则进入下一步骤,判断节点位置与监测区域范围的边界之间的距离是否超过距离阈值:如果未超过,则使节点受力后正常移动,如果超过,则使节点停止向监测区域范围的边界方向的移动,回弹第二距离阈值,然后返回步骤3。该方法存在的不足之处是,计算速度慢,耗时长,无线传感器对监测区域的覆盖范围较小,无线传感器间的覆盖重叠较大,使无线传感器间造成干扰,信息传输不可靠。
技术实现要素:
本发明的目的在于克服上述已有技术的不足,提供一种基于多智能体进化算法的无线传感器网络优化方法,以使无线传感器对监测区域的覆盖范围达到最大。
本发明包括有如下步骤:
(1)构建无线传感器网络:
(1a)输入无线传感器网络的工作区域范围;
(1b)输入三种无线传感器的覆盖半径;
(1c)将三种无线传感器随机散布在无线传感器网络的工作区域之中,完成一个无线传感器网络的构建;
(2)设置最大迭代次数:
在[0,500]的范围内,根据多智能体进化算法的优化结果,设置多智能体进化算法的最大迭代次数;
(3)构建智能体网格:
将一个无线传感器网络作为一个智能体,用81个智能体构建成大小为9×9智能体网格;
(4)采用带惩罚的蒙特卡罗方法,计算大小为9×9的智能体网格中每一个智能体的能量;
(5)对大小为9×9的智能体网格执行邻域竞争操作;
(6)对大小为9×9的智能体网格执行变异操作;
(7)确定大小为9×9的智能体网格的局部最优智能体:
采用带惩罚的蒙特卡罗方法,计算变异后大小为9×9智能体网格中每个智能体的能量,将能量最大的智能体作为9×9局部最优智能体;
(8)自学习操作:
(8a)在[0,100]的范围内,根据多智能体进化算法的优化结果,设置自学习操作的最大迭代次数;
(8b)将每一个无线传感器网络作为一个智能体,用25个智能体构建一个大小为5×5的智能体网格;
(8c)采用带惩罚的蒙特卡罗方法,计算大小为5×5的智能体网格中每个智能体的能量;
(8d)对大小为5×5的智能体网格执行邻域竞争操作;
(8e)对大小为5×5的智能体网格执行变异操作;
(8f)采用带惩罚的蒙特卡罗方法,计算变异后的智能体网格中每个智能体的能量,找出能量最大的智能体作为5×5局部最优智能体;
(8g)将9×9局部最优智能体的能量与5×5局部最优智能体的能量进行比较,若5×5局部最优智能体的能量大于9×9局部最优智能体的能量时,用5×5局部最优智能体更新9×9局部最优智能体;
(8h)将更新后的9×9局部最优智能体作为最优无线传感器网络;
(8i)判断当前自学习操作的循环代数是否达到最大迭代次数,若是,则执行步骤(9),否则,将自学习操作的循环代数加1后,执行步骤(8d);
(9)虚拟力操作:
(9a)从最优无线传感器网络中任意选取一个无线传感器;
(9b)按照下式,计算所选无线传感器分别与除所选无线传感器之外的每一个无线传感器间的距离:
其中,dm表示第m个无线传感器与除第m个无线传感器之外的第n个无线传感器之间的距离,xm和ym分别表示第m个无线传感器的横、纵坐标位置,xn和yn分别表示除了第m个无线传感器之外第n个无线传感器的横、纵坐标位置;
(9c)按照下式,计算所选无线传感器分别与除所选无线传感器之外的每一个无线传感器的覆盖半径之和:
Lm=Rm+Rn
其中,Lm表示第m个无线传感器与除第m个无线传感器之外的第n个无线传感器的覆盖半径之和,Rm表示第m无线传感器的覆盖半径,Rn表示除第m个无线传感器之外的第n个无线传感器的覆盖半径;
(9d)判断无线传感器间的距离dm是否小于覆盖半径之和Lm,若是,对第m个无线传感器施加排斥力,否则,对第m个无线传感器施加吸引力;
(9e)判断最优无线传感器网络中每一个无线传感器是否已被选取,若是,则执行步骤(10),否则,执行步骤(9a);
(10)判断当前多智能体进化算法的循环代数是否达到最大迭代次数,若是,则执行步骤(11),否则,将多智能体进化算法的循环代数加1后,执行步骤(3);
(11)输出无线传感器网络分布结果。
本发明与现有技术相比具有如下优点:
第一,由于本发明采用带惩罚的蒙特卡罗方法,计算智能体网格中每个智能体的能量,减少了寻优过程的迭代次数,快速的找到了最优无线传感器网络,克服了现有技术中的传统方法收敛速度慢、耗时长、迭代次数较多的缺点。使得本发明加快了优化无线传感器网络的收敛速度,缩短了寻找最优无线传感器网络的时间。
第二,由于本发明对智能体网格执行邻域竞争操作,缩小了无线传感器网络寻优的搜索空间,加快了无线传感器网络的寻优过程,克服了现有技术中的传统方法搜索空间大、计算量大的缺点。使得本发明缩小了搜索空间,大大减少了寻优过程的计算量。
第三,由于本发明对智能体网格执行自学习操作,适用于大规模的无线传感器网络优化问题,克服了现有技术中的传统方法对解决大规模问题时,耗时太长,速度太慢的缺点。使得本发明解决大规模的无线传感器网络优化问题时,任可快速找到最优解。
第四,由于本发明采用虚拟力操作,加大了无线传感器网络的覆盖面积,降低了无线传感器间的重叠覆盖度,克服了现有技术中的传统方法无线传感器对监测区域的覆盖范围较小,无线传感器间的覆盖重叠较大,使无线传感器间造成干扰,信息传输不可靠的问题。使得本发明减少了无线传感器间的干扰,加大了信息传输的可靠性。
附图说明
图1是本发明的流程图;
图2是本发明的仿真图。
具体实施方式
下面结合附图对本发明做进一步的描述。
参照附图1,本发明的具体步骤如下。
步骤1,构建无线传感器网络。
输入无线传感器网络的工作区域范围。
所述的无线传感器网络的工作区域范围为100×100米。
输入三种无线传感器的覆盖半径。
所述的无线传感器的覆盖半径分别为r1,r2,r3,其中,r3=0.8×r2米,r2=0.8×r1米。
将三种无线传感器随机散布在无线传感器网络的工作区域之中,完成一个无线传感器网络的构建。
步骤2,设置最大迭代次数。
在[0,500]的范围内,根据多智能体进化算法的优化结果,设置多智能体进化算法的最大迭代次数,本发明的实施例中将多智能体进化算法的最大迭代次数设置为300。
步骤3,构建智能体网格。
将一个无线传感器网络作为一个智能体,用81个智能体构建成大小为9×9智能体网格。
步骤4,采用带惩罚的蒙特卡罗方法,计算大小为9×9智能体网格中每一个智能体的能量。
所述的带惩罚的蒙特卡罗方法的具体步骤如下:
第一步,按照下式,计算与每个智能体对应的每个无线传感器网络的覆盖面积:
其中,Sk表示与第k个智能体对应的第p个无线传感器网络的覆盖面积,k与p的数值相等,N表示均匀散布在工作区域中的粒子数,q表示落在被无线传感器网络覆盖的工作区域中的粒子数,A表示无线传感器网络的工作区域的面积。
第二步,按照下式,计算与第k个智能体对应的第p个无线传感器网络中具有重叠覆盖的所有无线传感器间的惩罚值:
φk(C)=λ×∑S'(Ci,Cj)
其中,φk(C)表示与第k个智能体对应的第p个无线传感器网络中具有重叠覆盖的所有无线传感器间的惩罚值,λ表示数值大于零的惩罚因子,∑表示求和操作,S'(Ci,Cj)表示无线传感器网络中第i个无线传感器Ci与第j个无线传感器Cj的重叠覆盖度,当无线传感器Ci与Cj重叠覆盖时,S'(Ci,Cj)取值1,当无线传感器Ci与Cj无重叠覆盖时,S'(Ci,Cj)取值0。
第三步,按照下式,计算智能体网格中每个智能体的能量:
Energyk=Sk+φk(C)
其中,Energyk表示智能体网格中第k个智能体的能量,Sk表示与第k个智能体对应的第p个无线传感器网络的覆盖面积,φk(C)表示与第k个智能体对应的第p个无线传感器网络中具有重叠覆盖的所有无线传感器间的惩罚值。
步骤5,对大小为9×9的智能体网格执行邻域竞争操作。
所述的邻域竞争操作的具体步骤如下:
第一步,任选一个智能体,从所选智能体的上下左右四个邻域中,找出四个邻域中能量最大的智能体。
第二步,将能量最大智能体的能量与所选智能体的能量进行比较,若能量最大智能体的能量大于所选智能体的能量时,用能量最大的智能体更新所选智能体,得到更新后的智能体。
步骤6,对大小为9×9的智能体网格执行变异操作。
所述的变异操作是指,将一个符合高斯分布的随机扰动加到更新后的智能体上,得到变异后的智能体。
步骤7,确定大小为9×9的智能体网格的局部最优智能体。
采用带惩罚的蒙特卡罗方法,计算变异后大小为9×9的智能体网格中每个智能体的能量,找出能量最大的智能体作为9×9局部最优智能体。
所述的带惩罚的蒙特卡罗方法的具体步骤如下:
第一步,按照下式,计算与每个智能体对应的每个无线传感器网络的覆盖面积:
其中,Sk表示与第k个智能体对应的第p个无线传感器网络的覆盖面积,k与p的数值相等,N表示均匀散布在工作区域中的粒子数,q表示落在被无线传感器网络覆盖的工作区域中的粒子数,A表示无线传感器网络的工作区域的面积;
第二步,按照下式,计算与第k个智能体对应的第p个无线传感器网络中具有重叠覆盖的所有无线传感器间的惩罚值:
φk(C)=λ×∑S'(Ci,Cj)
其中,φk(C)表示与第k个智能体对应的第p个无线传感器网络中具有重叠覆盖的所有无线传感器间的惩罚值,λ表示数值大于零的惩罚因子,∑表示求和操作,S'(Ci,Cj)表示无线传感器网络中第i个无线传感器Ci与第j个无线传感器Cj的重叠覆盖度,当无线传感器Ci与Cj重叠覆盖时,S'(Ci,Cj)取值1,当无线传感器Ci与Cj无重叠覆盖时,S'(Ci,Cj)取值0;
第三步,按照下式,计算智能体网格中每个智能体的能量:
Energyk=Sk+φk(C)
其中,Energyk表示智能体网格中第k个智能体的能量,Sk表示与第k个智能体对应的第p个无线传感器网络的覆盖面积,φk(C)表示与第k个智能体对应的第p个无线传感器网络中具有重叠覆盖的所有无线传感器间的惩罚值。
步骤8,自学习操作。
(8a)在[0,100]的范围内,根据多智能体进化算法的优化结果,设置自学习操作的最大迭代次数,本发明的实施例中将自学习操作的最大迭代次数设置为20;
(8b)将每一个无线传感器网络作为一个智能体,用25个智能体构建一个大小为5×5的智能体网格。
(8c)采用带惩罚的蒙特卡罗方法,计算大小为5×5的智能体网格中每个智能体的能量。
所述的带惩罚的蒙特卡罗方法的具体步骤如下:
第一步,按照下式,计算与每个智能体对应的每个无线传感器网络的覆盖面积:
其中,Sk表示与第k个智能体对应的第p个无线传感器网络的覆盖面积,k与p的数值相等,N表示均匀散布在工作区域中的粒子数,q表示落在被无线传感器网络覆盖的工作区域中的粒子数,A表示无线传感器网络的工作区域的面积;
第二步,按照下式,计算与第k个智能体对应的第p个无线传感器网络中具有重叠覆盖的所有无线传感器间的惩罚值:
φk(C)=λ×∑S'(Ci,Cj)
其中,φk(C)表示与第k个智能体对应的第p个无线传感器网络中具有重叠覆盖的所有无线传感器间的惩罚值,λ表示数值大于零的惩罚因子,∑表示求和操作,S'(Ci,Cj)表示无线传感器网络中第i个无线传感器Ci与第j个无线传感器Cj的重叠覆盖度,当无线传感器Ci与Cj重叠覆盖时,S'(Ci,Cj)取值1,当无线传感器Ci与Cj无重叠覆盖时,S'(Ci,Cj)取值0;
第三步,按照下式,计算智能体网格中每个智能体的能量:
Energyk=Sk+φk(C)
其中,Energyk表示智能体网格中第k个智能体的能量,Sk表示与第k个智能体对应的第p个无线传感器网络的覆盖面积,φk(C)表示与第k个智能体对应的第p个无线传感器网络中具有重叠覆盖的所有无线传感器间的惩罚值。
(8d)对大小为5×5的智能体网格执行邻域竞争操作。
所述的邻域竞争操作的具体步骤如下:
第一步,任选一个智能体,从所选智能体的上下左右四个邻域中,找出四个邻域中能量最大的智能体。
第二步,将能量最大智能体的能量与所选智能体的能量进行比较,若能量最大智能体的能量大于所选智能体的能量时,用能量最大的智能体更新所选智能体,得到更新后的智能体。
(8e)对大小为5×5的智能体网格执行变异操作。
所述的变异操作是指,将一个符合高斯分布的随机扰动加到更新后的智能体上,得到变异后的智能体。
(8f)采用带惩罚的蒙特卡罗方法,计算变异后的智能体网格中每个智能体的能量,找出能量最大的智能体作为5×局部最优智能体。
所述的带惩罚的蒙特卡罗方法的具体步骤如下:
第一步,按照下式,计算与每个智能体对应的每个无线传感器网络的覆盖面积:
其中,Sk表示与第k个智能体对应的第p个无线传感器网络的覆盖面积,k与p的数值相等,N表示均匀散布在工作区域中的粒子数,q表示落在被无线传感器网络覆盖的工作区域中的粒子数,A表示无线传感器网络的工作区域的面积;
第二步,按照下式,计算与第k个智能体对应的第p个无线传感器网络中具有重叠覆盖的所有无线传感器间的惩罚值:
φk(C)=λ×∑S'(Ci,Cj)
其中,φk(C)表示与第k个智能体对应的第p个无线传感器网络中具有重叠覆盖的所有无线传感器间的惩罚值,λ表示数值大于零的惩罚因子,∑表示求和操作,S'(Ci,Cj)表示无线传感器网络中第i个无线传感器Ci与第j个无线传感器Cj的重叠覆盖度,当无线传感器Ci与Cj重叠覆盖时,S'(Ci,Cj)取值1,当无线传感器Ci与Cj无重叠覆盖时,S'(Ci,Cj)取值0;
第三步,按照下式,计算智能体网格中每个智能体的能量:
Energyk=Sk+φk(C)
其中,Energyk表示智能体网格中第k个智能体的能量,Sk表示与第k个智能体对应的第p个无线传感器网络的覆盖面积,φk(C)表示与第k个智能体对应的第p个无线传感器网络中具有重叠覆盖的所有无线传感器间的惩罚值。
(8g)将9×9局部最优智能体的能量与5×5局部最优智能体的能量进行比较,若5×5局部最优智能体的能量大于9×9局部最优智能体的能量时,用5×5局部最优智能体更新9×9局部最优智能体。
(8h)将更新后的9×9局部最优智能体作为最优无线传感器网络。
(8i)判断当前自学习操作的循环代数是否达到最大迭代次数,若是,则执行步骤9,否则,将自学习操作的循环代数加1后,执行步骤(8d);
步骤9,虚拟力操作。
(9a)从最优无线传感器网络中任意选取一个无线传感器。
(9b)按照下式,计算所选无线传感器分别与除所选无线传感器之外的每一个无线传感器间的距离:
其中,dm表示第m个无线传感器与除第m个无线传感器之外的第n个无线传感器之间的距离,xm和ym分别表示第m个无线传感器的横、纵坐标位置,xn和yn分别表示除了第m个无线传感器之外第n个无线传感器的横、纵坐标位置;
(9c)按照下式,计算所选无线传感器分别与除所选无线传感器之外的每一个无线传感器的覆盖半径之和:
Lm=Rm+Rn
其中,Lm表示第m个无线传感器与除第m个无线传感器之外的第n个无线传感器的覆盖半径之和,Rm表示第m无线传感器的覆盖半径,Rn表示除第m个无线传感器之外的第n个无线传感器的覆盖半径;
(9d)判断无线传感器间的距离dm是否小于覆盖半径之和Lm,若是,对第m个无线传感器施加排斥力,否则,对第m个无线传感器施加吸引力。
所述施加排斥力的具体步骤如下:
第一步,按照下式,计算对无线传感器施加的排斥力:
其中,表示对第m个无线传感器Cm施加的排斥力,Rm表示第m个无线传感器Cm的覆盖半径,Rn表示第n个无线传感器Cn的覆盖半径,d(Cm,Cn)表示第m个无线传感器Cm与第n个无线传感器Cn的距离;
第二步,按排斥力的大小和方向,移动待施加排斥力的无线传感器。
所述施加吸引力的具体步骤如下:
第一步,按照下式,计算对无线传感器施加的吸引力:
其中,表示对第m个无线传感器Cm施加的吸引力,Rm表示第m个无线传感器Cm的覆盖半径,Rn表示第n个无线传感器Cn的覆盖半径,d(Cm,Cn)表示第m个无线传感器Cm与第n个无线传感器Cn的距离;
第二步,按吸引力的大小和方向,移动待施加吸引力的无线传感器。
(9e)判断最优无线传感器网络中每一个无线传感器是否已被选取,若是,则执行步骤10,否则,执行步骤(9a);
步骤10,判断当前多智能体进化算法的循环代数是否达到最大迭代次数,若是,则执行步骤11,否则,将多智能体进化算法的循环代数加1后,执行步骤3;
步骤11,输出无线传感器网络分布结果。
下面结合仿真图对本发明的效果做进一步的描述。
1.仿真条件:
本发明的仿真实验是在计算机硬件配置为Intel Core(TM)i5-3210M CPU@2.50GHz、4.00GB RAM的硬件环境和计算机软件配置为Visual Studio 2010的软件环境下进行的。
2.仿真内容:
表1是本发明采用的数据集,r1、r2、r3分别表示三种无线传感器的覆盖半径,n1、n2、n3分别表示三种无线传感器的个数,N表示三种无线传感器的总数。
本发明的仿真实验是对15组数据分别采用本发明的方法优化无线传感器网络。在对每组数据采用本发明的方法优化无线传感器网络30次的基础上,再分别计算每组数据30次仿真后的无线传感器网络覆盖面积的均值、标准差和平均仿真时间。
图2是本发明的仿真图,其中图2(a)是采用数据集中S1-0.7组数据进行仿真的结果图,图2(b)是采用数据集中S2-0.7组数据进行仿真的结果图,图2(c)是采用数据集中S3-0.7组数据进行仿真的结果图,图2(d)是采用数据集中S4-0.7组数据进行仿真的结果图,图2(e)是采用数据集中S5-0.7组数据进行仿真的结果图,图2(f)是采用数据集中S1-0.8组数据进行仿真的结果图,图2(g)是采用数据集中S2-0.8组数据进行仿真的结果图,图2(h)是采用数据集中S3-0.8组数据进行仿真的结果图,图2(i)是采用数据集中S4-0.8组数据进行仿真的结果图,图2(j)是采用数据集中S5-0.8组数据进行仿真的结果图,图2(k)是采用数据集中S1-0.9组数据进行仿真的结果图,图2(l)是采用数据集中S2-0.9组数据进行仿真的结果图,图2(m)是采用数据集中S3-0.9组数据进行仿真的结果图,图2(n)是采用数据集中S4-0.9组数据进行仿真的结果图,图2(o)是采用数据集中S5-0.9组数据进行仿真的结果图。
表1本发明仿真采用的数据一览表
3.仿真结果分析:
表2是本发明采用15组数据,对每组数据仿真30次后计算得出的无线传感器网络覆盖面积的均值、标准差和平均仿真时间。
表2仿真结果一览表
由表2可以看到,每组数据仿真30次后计算出的无线传感器网络覆盖面积的均值与工作区域面积相近,说明本发明的方法使无线传感器网络对工作区域的覆盖范围较大,很好的实现了无线传感器网络对工作区域的监测。
由表2可以看到,每组数据仿真30次后计算出的无线传感器网络覆盖面积的标准差较小,说明本发明的方法在优化无线传感器网络时稳定性高,优化性能好。
由表2可以看到,每组数据仿真30次后计算出的优化无线传感器网络的平均时间短,说明本发明的方法提高了优化无线传感器网络的速度,对优化大规模的无线传感器网络效率高。对于不同规模的无线传感器网络,本发明的方法都能够快速有效的实现优化无线传感器网络的要求。