正在加载图片...
第3期 肖辉辉,等:改进的蝙蝠算法在数值积分中的应用研究 ·367. 理论全局最优解。 表2方平均运行时间对比 410 Table 2 Comparison of average running timef3 BA DEBA 维数 DEBA BA 巡3 10 0.9555 0.3276 30 1.0109 0.3526 50 1.1069 0.3853 ×10 3 4 5 迭代次数 3 DEBA算法求解数值积分算法 (a)函数的收敛对比曲线 通过上述实验仿真表明,改进的蝙蝠算法DE 200 BA具有收敛精度高、收敛速度快等特性。针对目前 BA @150 DEBA 数值积分方法存在的缺陷,利用DEBA算法求数值 100 积分,其基本思想是:在积分区间[a,b]随机生成 50 NP个节点位置,然后通过本文算法优化这些点的位 置,最终获得精度较高的积分值,实现步骤为 ×10 法代次数 10 1)在积分区间随机生成NP个D维个体的种 群,并确定种群中的每个个体的表达式,个体的表示 (b)函数的收敛对比曲线 形式为(X,V)=((x1,x2,…,xp),(1,2,…,D)。 5*10 2)计算适应度。对积分区间内的每个个体的 BA D维分量进行升序排列,接着分别计算D+2个节点 --DEBA 相邻之间的距离dj=1,2,…,D+1,然后计算D+ 1个小段中间节点和D+2个节点的函数值,并比较 ◇ 每小段中间节点、左端点和右端点的函数值,记下最 大的函数值为Max,最小的函数值为MinJ=1,2, 50 100 150 200 迭代次数 ,D+1,每个个体的适应度定义为:i)= D+1 (c)∫函数的收敛对比曲线 0.5∑d,1Max-Mim,l,设定一个很接近0的值s -0.5 作为程序的终止条件,当最小适应度小于ε时程序 -0.6 BA -0.7 DEBA 运行终止,适应度越接近于0,表明该个体越优良。 0.8 3)对算法的终止条件进行判断,假如终止条件 -0.9 不成立,则算法往下继续执行,如终止条件满足,算 .0 *10 法停止运行,并输出种群的最优个体,同时求出函数 迭代次数 的积分值。 (d)f函数的收敛对比曲线 4)更新蝙蝠种群。 图1DEBA与BA的收敛曲线对比 5)重复运行4),直到终止条件满足为止,输出 Fig.1 Comparison of convergence curves of DEBA and BA 种群的最优个体,并把它作为结果。 2.2算法复杂度的分析 6)算法停止执行时,算法最终所求出的函数积 一个好的智能优化算法,时间复杂度应该比较 分值近似于 低。由于篇幅限制,这里只选用了测试函数对本 文算法的时间复杂度进行测试分析,取相同的种群 4 (6) j=1 数(40)、独立运行次数(20次),计算所需要的平均 式中,(d1,d2,…,do)是积分区间的D+1个小段 运行时间,仿真结果如表2所示。从表2的平均运 对应的距离,(m1,m2,…,mo+1)为积分区间的D+1 行时间来看,虽然DEBA算法多了利用差分进化策 个小段对应的中间点所对应的函数值。 略进行变异操作,但在不同维数情况下DEBA算法 的平均运行时间比BA算法的平均运行时间略长一 4数值积分仿真实验与分析 些,说明本文算法是可行和有效的。 为验证DEBA算法求解数值积分问题的有效性理论全局最优解。 (a) f 1 函数的收敛对比曲线 (b) f 2 函数的收敛对比曲线 (c) f 3 函数的收敛对比曲线 (d) f 4 函数的收敛对比曲线 图 1 DEBA 与 BA 的收敛曲线对比 Fig.1 Comparison of convergence curves of DEBA and BA 2.2 算法复杂度的分析 一个好的智能优化算法,时间复杂度应该比较 低。 由于篇幅限制,这里只选用了测试函数 f 3 对本 文算法的时间复杂度进行测试分析,取相同的种群 数(40)、独立运行次数(20 次),计算所需要的平均 运行时间,仿真结果如表 2 所示。 从表 2 的平均运 行时间来看,虽然 DEBA 算法多了利用差分进化策 略进行变异操作,但在不同维数情况下 DEBA 算法 的平均运行时间比 BA 算法的平均运行时间略长一 些,说明本文算法是可行和有效的。 表 2 f 3 平均运行时间对比 Table 2 Comparison of average running time f 3 维数 DEBA BA 10 0.9555 0.3276 30 1.0109 0.3526 50 1.1069 0.3853 3 DEBA 算法求解数值积分算法 通过上述实验仿真表明,改进的蝙蝠算法 DE⁃ BA 具有收敛精度高、收敛速度快等特性。 针对目前 数值积分方法存在的缺陷,利用 DEBA 算法求数值 积分,其基本思想是:在积分区间[ a,b ] 随机生成 NP 个节点位置,然后通过本文算法优化这些点的位 置,最终获得精度较高的积分值,实现步骤为 1) 在积分区间随机生成 NP 个 D 维个体的种 群,并确定种群中的每个个体的表达式,个体的表示 形式为 (X,V) = ((x1 ,x2 ,…,xD),(v1 ,v2 ,…,vD)) 。 2) 计算适应度。 对积分区间内的每个个体的 D 维分量进行升序排列,接着分别计算 D + 2 个节点 相邻之间的距离 dj,j = 1,2,…,D + 1,然后计算 D + 1 个小段中间节点和 D + 2 个节点的函数值,并比较 每小段中间节点、左端点和右端点的函数值,记下最 大的函数值为 Maxj ,最小的函数值为 Minj,j = 1,2, …,D + 1, 每 个 个 体 的 适 应 度 定 义 为: f(i) = 0.5∑ D+1 j = 1 dj | Maxj - Minj | ,设定一个很接近 0 的值 ε 作为程序的终止条件,当最小适应度小于 ε 时程序 运行终止,适应度越接近于 0,表明该个体越优良。 3) 对算法的终止条件进行判断,假如终止条件 不成立,则算法往下继续执行,如终止条件满足,算 法停止运行,并输出种群的最优个体,同时求出函数 的积分值。 4) 更新蝙蝠种群。 5) 重复运行 4),直到终止条件满足为止,输出 种群的最优个体,并把它作为结果。 6) 算法停止执行时,算法最终所求出的函数积 分值近似于 ∑ D+1 j = 1 mjdj (6) 式中, (d1 ,d2 ,…,dD+1 ) 是积分区间的 D + 1 个小段 对应的距离, (m1 ,m2 ,…,mD+1 ) 为积分区间的 D +1 个小段对应的中间点所对应的函数值。 4 数值积分仿真实验与分析 为验证 DEBA 算法求解数值积分问题的有效性 第 3 期 肖辉辉,等:改进的蝙蝠算法在数值积分中的应用研究 ·367·
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有