人工萤火虫群优化算法求解二重数值积分
2018-09-26杨艳刘生建周永权
杨艳 刘生建 周永权
摘要:为提高传统方法求解二重数值积分精度,提出利用人工萤火虫群优化算法求解二重积分的新方法。该方法初始时将矩形积分区域两个方向分割成若干不等距节点,通过萤火虫算法优化这些节点,以优化后的节点为分割点求数值积分的值,以得到比较精确的积分结果。数值积分算例表明,该算法得到的积分值精度高、自适应性强,是一种有效的数值积分方法,在数值计算、工程实际应用中具有一定的参考和应用价值。
关键词:人工萤火虫群优化算法;二重积分;不等距节点;智能优化算法
DOI:10.11907/rjdk.173096
中图分类号:TP312
文献标识码:A文章编号:1672-7800(2018)007-0116-04
Abstract:Inordertoimprovetheaccuracyproblemofdoublenumericalintegrationoftraditionalalgorithms,anewmethodforsolvingdoublenumericalintegrationbasedonartificialglowwormswarmoptimizationalgorithm(GSO)ispresented.GSOisusedtooptimizethenodepointsonthedirectionrangeinrectangularintegrationdomaintogetamorepreciseintegrationresult.Simulationexamplesofintegrationshowthealgorithmisavalidatedmethodwithhighprecisionandpowerfulself-adapting.Thealgorithmhasvalueinnumericalcalculationandengineeringpractice.
KeyWords:artificialglowwormswarmoptimizationalgorithm;doubleintegration;unequalnodepoints;intelligenceoptimizationalgorithm
0引言
二重數值积的求解问题是科学计算与工程技术领域常见问题之一。传统的二重数值积分计算方法有梯形法、Newton-Cotes方法、Simpson方法、Gauss积分法等[1-4]。在求解二重积分过程中,传统方法不适于原函数表达过于复杂的情况。求解二重积分的过程是分化成二次积分求解过程。传统方法在计算二重积分时不考虑被积函数形状,节点的划分是等距的,或在整个计算过程中等距节点数不变,或在选择好的等距节点基础上继续等距分割,这些按等距节点分割法求积公式难以求得精确度高的积分值,只有增加更多的节点才能得到较高精度。最理想的分割方法是根据被积函数曲线的凹凸形状确定分割点位置,函数值变化大的区域分割点多,划分的子区域就多;函数值变化小的地方分割点少,划分的子区域就少。最后优化分割点进行积分求和,这样求得的函数积分比传统方法精度高。使用智能算法求解二重数值积分的新方法越来越多,如进化策略、粒子群算法及人工鱼群算法等[5-7],对新型群智能算法求解二重数值积分问题非常必要。
Krishnanand和Ghose[8]受自然界中萤火虫发光发亮吸引伴侣或猎物行为启发,于2005年提出人工萤火虫群优化算法(GlowwormSwarmOptimization:GSO)。GSO是一种新的群智能仿生算法,它具有良好的求取全局极值和搜索多极值问题能力,已在多极值函数求解、高噪音影响问题、寻找危险信号源位置、跟踪多个移动信号源等诸多方面得到了应用[8]。算法提出后诸多学者对萤火虫算法进行了改进研究,并应用于组合优化、经济调度等领域[9-12]。
本文基于人工萤火虫算法,通过不等距节点分割求解二重积分,基本思想是:将人工萤火虫看做矩形积分区间两个方向上产生的节点,通过人工萤火虫的移动原理对节点进行优化,以达到这些点基本上根据函数图像的凹凸形状排列的目的,最后以优化后的节点为最优节点进行积分求和,得到所求被积函数比较精确的积分值。
1人工萤火虫群优化算法(GSO)原理
设N个萤火虫组成一个群体在m维的目标搜索空间进行搜索,该群体根据荧光素值的相近程度分成nei个邻域,每个邻域内萤火虫i以概率Pij在决策域范围Rd(0 GSO算法主要通过荧光素值更新方程(1)、概率分布方程(2)、位置更新方程(3)和局部决策域范围更新方程(4)对萤火虫进行操作,模拟求解函数最优值。 2人工萤火虫群优化算法求解二重数值积分 2.1个体表达方法确定 设x轴和y轴上的萤火虫个体均由位置、萤光素值两部分组成,X和Y表示位置,LX和LY表示荧光素值,x轴、y轴方向上的个体每部分分别包含S和D个分量,即 2.2算法步骤 (1)群体初始化。分别在x轴和y轴两个方向上随机生成一个初始群体,每个初始群体由N个人工萤火虫个体组成,x轴方向上的每个个体(Xi,LXi)内包含S个xi、lxi分量,y轴方向上的每个个体(Yi,LYi)内包含D个yi、lyi分量。设定初始荧光素值l0,初始决策范围Rd0,感知范围Rs,邻域个数nei,移动步长step,最大迭代次数iter_max。 (2)适应度值计算[6]:在两个方向上将随机产生的个体分别置于积分区间的左、右端点之间,各自按照升序排。x轴方向上产生的初始群体的第一个个体对应y轴方向上产生的初始群体的第一个个体,其它依此类推。x轴方向上有S+2个节点和S+1个小段,y轴方向上有D+2个节点和D+1个小段,这样积分区域分割成(S+1)×(D+1)个小矩形;分别计算x轴、y轴上S+2和D+2个相邻节点之间的距离di、dj(i=1,2,…,S+1,j=1,2,…,D+1)及小矩形面积areaij=di×dj,再计算出每个小矩形的4个顶点和小矩形中点对应的函数值,并找出这5个函数值中的最小值Minij和最大值Maxij,则萤火虫个体的适应度为:
3数值实验
为验证本算法的有效性和正确性,选取文献[1]和文献[6]给出的实例,与传统的复化梯形法和复化辛普生法比较。本实验用MATLAD7.6编写仿真程序,其中算法的参数设计如下:l0=5,step=0.03,Rd0=1,Rs=1,nei=5,ρ=0.4,β=0.08,γ=0.6,iter_max=50,进行30次独立实验。
已知积分的准确值为0.28768210,本文算法中N=50,采用两种方法得到的积分结果及误差如表1所示。从表1可以看出,在GSO算法中分割点越多,平均耗时越长,时间复杂度越大。图1为本文算法在计算该函数积分x向和y向剖分段数为64时,独立运行次数与每次得到的最优积分值之间的曲线图,从图中可看出独立运行30次,几乎每次得到的最优积分值都接近积分准确值,验证了算法的有效性和可行性。
程序中a=1,b=2,c=1,d=2,N=50,已知积分的准确值为0.2500000,采用两种方法得到的积分结果及误差如表2所示。从表2可以看出,本文算法能夠求得积分的近似值且误差较小,但不及参考文献算法所求的积分近似值好;同时,在GSO算法中分割点越多,平均耗时越多,时间复杂度就越大。图2为本文算法在计算该函数积分x向和y向剖分段数为64时,独立运行次数与每次得到的最优积分值之间的曲线图,从图中可以看出独立运行30次,几乎每次得到的最优积分值都接近积分精确值,验证了算法的有效性和可行性。
已知积分的准确值为0.4720828,被积函数无原函数。本文算法中N=50,采用两种方法得到的积分结果及误差如表3所示。从表3可以看出,本文算法能够求得积分的近似值,但误差较大,不及参考文献算法所求的积分近似值好;同时,在GSO算法中分割点越多,平均耗时越多,时间复杂度就越大。图3为GSO算法在计算该函数积分x向和y向分割点为32时,独立运行次数与每次得到的最优积分值之间的曲线,从图中可看出独立运行30次,几乎每次得到的最优积分值都接近积分精确值,验证了算法的有效性和可行性。
已知积分的准确值为5.1001700,被积函数在(0,0)点无定义,本文算法中N=100。采用两种方法得到的积分结果及误差如表4所示。从表4可以看出,当x向和y向分割点均为64时,本文算法求得的积分值精度较高,误差较小;同时,在GSO算法中分割点越多,平均耗时越多,时间复杂度就越大。图4为本文算法在计算该函数积分x向和y向剖分段数为64时,独立运行次数与每次得到的最优积分值之间的曲线图,从图中可看出独立运行30次,几乎每次得到的最优积分值都接近积分精确值,验证了算法的有效性和可行性。
已知积分的准确值为0.42955452600,复化辛普生方法中x向和y向均分成100份,所求得积分值为0.4295524387,相对误差为0.00000486。本文算法中N=100,x向和y向分割点均为100,所得积分值为0.429557437360488,相对误差为2.911360487800607e-006,可见,本文算法求得的积分值精度较高,误差较小。独立运行30次的平均耗时为7.945130930000005ms。图5为本文算法计算积分时,独立运行次数与每次得到的最优积分值之间的曲线图,从图中可看出独立运行30次,几乎每次得到的最优积分值都接近积分精确值,验证了算法的有效性和可行性。
4结语
本文提出了一种基于人工萤火虫群算法求解二重积分的新方法。该方法初始时在矩形积分区域两个方向的区间内各自随机选取一定的不等距节点,通过萤火虫群算法优化这些节点,以优化后的节点为分割点求数值积分值,最后得到比较精确的积分结果。通过5个数值实验表明,基于萤火虫群优化算法求二重积分的方法可行、有效,该方法具有计算精度较高、自适应性强等特点,在数值计算和工程实际中有一定的应用价值。
参考文献:
[1]朱磊.关于Gauss-PerKai型数值积分方法[J].合肥工业大学学报,2007,30(5):655-656.
[2]郑华盛,唐经纶,危地.高精度数值积分公式的构造及其应用[J].数学的实践与认识,2007,37(15):141-148.
[3]陈付龙.二元数值积分的计算方法[J].计算机工程与应用,2007,43(19):32-34.
[4]彭喜元,彭宇,戴毓丰.群智能理论及应用[J].电子学报,2003,31(12):1982-1988.
[5]周永权,张明,赵斌.基于进化策略方法求任意函数的数值积分[J].计算机学报,2008,31(2):196-206.
[6]韦杏琼,周永权.基于粒子群算法的二重积分方法研究[J].计算机工程与设计,2009,30(20):4705-4707.
[7]聂黎明,周永权.用人工鱼群算法求解二重数值积分[J].计算机工程与应用,2009,45(10):34-37.
[8]KRISHNANANDKN,GHOSED.Glowwormswarmoptimisation:anewmethodforoptimisingmulti-modalfunctions[J].Int.InternationalJournal.ComputationalIntelligenceStudies,2009,1(1):93-119.
[9]吴斌,钱存华,倪卫红.萤火虫群优化算法在越库调度问题中的应用[J].计算机工程与应用,2013,49(6):39-42.
[10]莫愿斌,马彦追,郑巧燕等.单纯形法的改进萤火虫算法及其在非线性方程组求解中的应用[J].智能系统学报,2014,9(6):747-755.
[11]陈海东,庄平,夏建矿,等.基于改进萤火虫算法的分布式电源优化配置[J].电力系统保护与控制,2016,44(1):149-154.
[12]郭丽萍,李向涛,谷文祥.改进的萤火虫算法求解阻塞流水线调度问题[J].智能系统学报,2013,8(1):33-38.
(责任编辑:杜能钢)