基于迭代优化度与直线搜索的改进粒子群算法
摘要:现有♪粒子群算法无论是在算法运行的前期还是后期,现有的改进方法都是以适应度值来作为评价粒子优劣的唯一标准,本文根据挖掘有潜力粒子的思想,提出迭代优化度概念来刻画粒子的潜力,并对于潜力较大的粒子采用直线搜索的策略来进行搜索,这样就避免所有的粒子均参考适应度值优秀的粒子运动,提高了算法效率,保持了潜力大的粒子的独立性。将改进粒子群算法用2个经典的检验函数进行对比检验,结果表明提出的改进粒子群算法能大幅度增强摆脱局部最优解的能力,有效地改善寻优性能。
关键词:PSO算法;改进PSO算法
1.引言
现有的改进方式主要有改进算法参数、改进搜索方式和改进搜索领域的拓扑结构[4],然而到目前为止同时兼顾收敛速度和跳出局部最优解的能力是很难的。比如,文献[3]把重心放在避免陷入局部最优解的问题上,却带来了收敛速度的变缓。2002年Clerc[5]等引入了收缩因子,提出了一种自适应PSO算法,到目前为止参数的自适应策略都是以种群迭代次数为参考变量的。2013年何茜[6]提出一种删除机制,对于长期不更新的粒子,直接删除。
2.粒子群算法简介
2.1粒子群优化算法
3.粒子群优化算法的改进
3.1迭代优化度与直线搜索
现有的改进方法均采用将适应度值好坏作为评价粒子优劣的唯一标准,对于适应度值暂时不优秀的粒子,强制性地让其以暂时优秀的粒子为中心运动,这样不仅会让种群失去多样性,而且还会造成潜在的优秀粒子被忽略。因此,在粒子群算法中,应该给予那些进步程度大的潜在优秀粒子独立发展的空间,这样就有更大的可能发现更优秀的粒子。
现有的改进方法无一例外都存在一个严重的问题,那就是将适应度值好坏作为评价粒子优劣的唯ส一标准,对于那些适应度值暂时不优秀的粒子,很粗暴地让它们以暂时优秀的粒子为中心运动,这样不仅会让种群失去多样性,而且还会失去很多寻找到更加优秀粒子的机会。
基于以上的分析,本文提出迭代优化度的概念来刻画粒子的进步程度,对于求最小值的优化问题,定义如下:
D_betteri,t=fiti,t-1-fiti,tfiti,t-1×100%(4)其中,i表示粒子的编号,t表示迭代种群迭代次数,fiti,t适应度值,D_betteri,t迭代优化度。
最后,考虑对于迭代优化度较大的粒子的独立搜索,但是考虑到算法的复杂度,必须提出一种简单有效的搜索方式。在此,本文提出了直线搜索的策略,对于迭代优化度排名靠前的粒子进行沿着原来速度所对应方向的直线搜索,在直线上有序取点进行搜索。
4.性能测试分析
为了测试算法的性能,选择2个标准的测试函数用于优化实验,2个函数的函数表达式、搜索空间、理论全局最小是入表1✪所示。
表1标准的测试函数
函数函数表达式搜索空间最优解
通过比较测试函数的平均适应度值、方差适应度值、最优适应度值和最差适应度值的方式对三种算法进行评价,其中平均适应度值和方差适应度值用于评价算法的寻优精度和鲁棒性。下面将通过与文献[22]中所提出的引入删除机制的粒子群算法作对比,来说明本文引入迭代优化度与线性搜索策略的粒子群算法的性能。
表2测试函数的仿真结果比较
函ฬ数算法平均值方差最优值最差值
f1 ☤
改进PSO2.242e-033.7259e-072.242e-033.923e-03
f2
f3
f4