【 摘 要 】 粒子群算法针对高维复杂函数常存在早熟收敛问题,本文提出一种在已有动态调整惯性权重的基础上对学习因子进行改进的粒子群算法,使学习因子随着搜索的不同阶段改变认知学习因子和社会学习因子。比较五个标准测试函数的实验结果,表明改进后的算法得到的结果更优。
【 关键词 】 粒子群算法;动态调整惯性权重;学习因子;全局搜索
【 中图分类号 】 TP18 【 文献标识码 】 A
1 引言
模拟昆虫、鸟群和鱼群等群集行为,Eberhart 和Kennedy提出粒子群算法。PSO算法作为一种随机搜索算法,由于其算法程序设计简单,便于操作而得到广泛应用。胡建秀等人对粒子群算法的惯性权重做了深入探讨,文献[3, 4,5]给出了一些惯性权重修改的方法,文献[6,7]采用变异或者是和其他算法结合增强种群在搜索过程中多样性。也有研究者将混沌理论用于粒子群算法的粒子初始化。文献[8]从学习因子上对算法进行改进。本文是建立在文献[4]动态调整惯性权重基础上对学习因子进行改进。通过具体的仿真实验,本文提出的改进方法使得算法的最优值更加的接近真实值。
2 粒子群算法
2.1 标准的PSO算法
粒子根据如下两个方程来更新自己:
(1)
(2)
其中,C1,C2分别是自身学习因子和社会学习因子,一般都取值为2, r1,r2是(0,1)区间内的随机数,pbestki是第i个微粒前k次的最好位置,gbestki是前k次所有微粒的最好位置,ω是惯性权重,一般取值0.1到0.9之间。
2.2 动态调整惯性权重参数的PSO算法[DPT-PSO]
粒子搜索过程中,速度大有利于全局搜索而不致陷入局部最优。当速度小时更有利于局部搜索得到更加精确的解.文献[5]根据这种思想提出了一种根据理想速度不断调整惯性权重的方法[Dynamic parameter tuning of Particle Swarm Optimization 记为[DPT-PSO]。
3 改进学习因子的PSO算法
粒子在搜索的过程中,初期希望粒子的速度大一些,能尽量搜索到整个空间,到了后期希望粒子的速度降下来,使得粒子能搜索到精确的位置。从公式(1)可以看到让惯性权重ω初期较大,后期变小。与此同时我们也可以让学习因子随着搜索状态变化而变化。在搜索的前阶段c1取较大值,c2取较小值,让粒子群向自身最好位置pbest学习,增强全局搜索能力,到了后阶段c1取较小值,c2取较大的值,让粒子向全局最好位置gbest学习,增强局部搜索能力。现对学习因子c1和c2的改进如下:
其中k是当前迭代次数,itermax是最大迭代次数。
4 对比试验
4.1 实验设计
为了分析修改学习因子对算法优化的效果,本文进行如下对比试验。为了记法方便进行几点说明。
对五个测试函数仅采用DPT-PSO的情形,记为B1。
对五个测试函数采用DPT-PSO算法对进行的调整,在此基础上采用本文提出对粒子的初始化和改进学习因子的算法,记为B2。
本文五个测试函数(如表1)分别设置从90和100维,每个函数独立运行30次,每次迭代3000次,微粒个数为50。在DPT-PSO中初始速度和理想速度设置为搜索范围的10%,Tend=900。评估算法的效果从最小值(Min),最大值(Max),平均值(Avg),标准方差(SD)进行比较。
4.2 实验结果及其分析
表2的数据是分别采用DPT-PSO算法和在DPT-PSO算法基础上改进学习因子的算法得到的,测试了五个基准函数,其中F1、F2是单模函数,F3,F4是多模态函数。F1(Rosenbrock)函数它是主要考查局部开发能力,而F4(Rastrigin)函数具有大量局部最小值,是考查算法避免陷入局部最优,进行全局探索的能力,从表2中不难发现这两个基准函数改进后的算法在最大、最小、平均值和方差这四个方面的效果得到了很大提高。在F1函数的有些维数出现了结果变坏的情形,而其它四个函数在每维的效果都有不同程度的改进,F4、F2改进后的效果最为明显。
5 结束语
在粒子群算法的速度更新中,学习因子也会对粒子搜索能力有一定影响。在搜索初期粒子需要有较好的全局搜索能力,因此需要自身学习因子取较大的值,而到后期则更需较小的速度让粒子具有较强的局部搜索能力。本文在已有动态调整惯性权重的基础上对学习因子进行改进,通过最小、大值、平均值和方差这四个指标的比较,改进学习因子后算法的得到的结果更优。
参考文献
[1] Kennedy J,Eberhart R C. Pacticle swarm optimization [C].IEEE International Conference on Neural Networks.Perth ,1995:1942-1948.
[2] 胡建秀.微粒群算法中惯性权重的调整策略[J].计算机工程,2007,33(11):193-195.
[3] 冯婷等.改进收敛条件的动态调整惯性权重PSO算法[J].计算机工程与应用,2009,45(3) :175-177.
[4] Nobuhiro Iwasaki,Keiichiro Yasuda,Genki Ueno.Dynamic Parameter Tuning of Particle Swarm Optimization [J].IEEJ Trans on Electrical and Electronic,2006,1(1):353-363.
[5] 陈贵敏,贾建援,韩琪.粒子群优化算法的惯性权值递减策略研究[J].西安交通大学学报,2006,40(1):53-56.
[6] 颜俊华,张敏等. 基于遗传算法的智能粒子群优化算法[J].西南大学学报,2010,32(11):135-139.
[7] 朱海梅,吴永萍.一种高速收敛粒子群优化算法[J].控制与决策,2010,25(1):20-24.
[8] 徐生兵,夏文杰,代安定.一种改进学习因子的粒子群算法[J].信息安全与技术,2012,3(7):17-19.
基金项目:
东莞理工学院城市学院青年教师基金项目(ZR15)。
作者简介:
徐生兵(1980-),男,湖北荆门人,硕士;主要研究方向和关注领域:智能计算。endprint
【 摘 要 】 粒子群算法针对高维复杂函数常存在早熟收敛问题,本文提出一种在已有动态调整惯性权重的基础上对学习因子进行改进的粒子群算法,使学习因子随着搜索的不同阶段改变认知学习因子和社会学习因子。比较五个标准测试函数的实验结果,表明改进后的算法得到的结果更优。
【 关键词 】 粒子群算法;动态调整惯性权重;学习因子;全局搜索
【 中图分类号 】 TP18 【 文献标识码 】 A
1 引言
模拟昆虫、鸟群和鱼群等群集行为,Eberhart 和Kennedy提出粒子群算法。PSO算法作为一种随机搜索算法,由于其算法程序设计简单,便于操作而得到广泛应用。胡建秀等人对粒子群算法的惯性权重做了深入探讨,文献[3, 4,5]给出了一些惯性权重修改的方法,文献[6,7]采用变异或者是和其他算法结合增强种群在搜索过程中多样性。也有研究者将混沌理论用于粒子群算法的粒子初始化。文献[8]从学习因子上对算法进行改进。本文是建立在文献[4]动态调整惯性权重基础上对学习因子进行改进。通过具体的仿真实验,本文提出的改进方法使得算法的最优值更加的接近真实值。
2 粒子群算法
2.1 标准的PSO算法
粒子根据如下两个方程来更新自己:
(1)
(2)
其中,C1,C2分别是自身学习因子和社会学习因子,一般都取值为2, r1,r2是(0,1)区间内的随机数,pbestki是第i个微粒前k次的最好位置,gbestki是前k次所有微粒的最好位置,ω是惯性权重,一般取值0.1到0.9之间。
2.2 动态调整惯性权重参数的PSO算法[DPT-PSO]
粒子搜索过程中,速度大有利于全局搜索而不致陷入局部最优。当速度小时更有利于局部搜索得到更加精确的解.文献[5]根据这种思想提出了一种根据理想速度不断调整惯性权重的方法[Dynamic parameter tuning of Particle Swarm Optimization 记为[DPT-PSO]。
3 改进学习因子的PSO算法
粒子在搜索的过程中,初期希望粒子的速度大一些,能尽量搜索到整个空间,到了后期希望粒子的速度降下来,使得粒子能搜索到精确的位置。从公式(1)可以看到让惯性权重ω初期较大,后期变小。与此同时我们也可以让学习因子随着搜索状态变化而变化。在搜索的前阶段c1取较大值,c2取较小值,让粒子群向自身最好位置pbest学习,增强全局搜索能力,到了后阶段c1取较小值,c2取较大的值,让粒子向全局最好位置gbest学习,增强局部搜索能力。现对学习因子c1和c2的改进如下:
其中k是当前迭代次数,itermax是最大迭代次数。
4 对比试验
4.1 实验设计
为了分析修改学习因子对算法优化的效果,本文进行如下对比试验。为了记法方便进行几点说明。
对五个测试函数仅采用DPT-PSO的情形,记为B1。
对五个测试函数采用DPT-PSO算法对进行的调整,在此基础上采用本文提出对粒子的初始化和改进学习因子的算法,记为B2。
本文五个测试函数(如表1)分别设置从90和100维,每个函数独立运行30次,每次迭代3000次,微粒个数为50。在DPT-PSO中初始速度和理想速度设置为搜索范围的10%,Tend=900。评估算法的效果从最小值(Min),最大值(Max),平均值(Avg),标准方差(SD)进行比较。
4.2 实验结果及其分析
表2的数据是分别采用DPT-PSO算法和在DPT-PSO算法基础上改进学习因子的算法得到的,测试了五个基准函数,其中F1、F2是单模函数,F3,F4是多模态函数。F1(Rosenbrock)函数它是主要考查局部开发能力,而F4(Rastrigin)函数具有大量局部最小值,是考查算法避免陷入局部最优,进行全局探索的能力,从表2中不难发现这两个基准函数改进后的算法在最大、最小、平均值和方差这四个方面的效果得到了很大提高。在F1函数的有些维数出现了结果变坏的情形,而其它四个函数在每维的效果都有不同程度的改进,F4、F2改进后的效果最为明显。
5 结束语
在粒子群算法的速度更新中,学习因子也会对粒子搜索能力有一定影响。在搜索初期粒子需要有较好的全局搜索能力,因此需要自身学习因子取较大的值,而到后期则更需较小的速度让粒子具有较强的局部搜索能力。本文在已有动态调整惯性权重的基础上对学习因子进行改进,通过最小、大值、平均值和方差这四个指标的比较,改进学习因子后算法的得到的结果更优。
参考文献
[1] Kennedy J,Eberhart R C. Pacticle swarm optimization [C].IEEE International Conference on Neural Networks.Perth ,1995:1942-1948.
[2] 胡建秀.微粒群算法中惯性权重的调整策略[J].计算机工程,2007,33(11):193-195.
[3] 冯婷等.改进收敛条件的动态调整惯性权重PSO算法[J].计算机工程与应用,2009,45(3) :175-177.
[4] Nobuhiro Iwasaki,Keiichiro Yasuda,Genki Ueno.Dynamic Parameter Tuning of Particle Swarm Optimization [J].IEEJ Trans on Electrical and Electronic,2006,1(1):353-363.
[5] 陈贵敏,贾建援,韩琪.粒子群优化算法的惯性权值递减策略研究[J].西安交通大学学报,2006,40(1):53-56.
[6] 颜俊华,张敏等. 基于遗传算法的智能粒子群优化算法[J].西南大学学报,2010,32(11):135-139.
[7] 朱海梅,吴永萍.一种高速收敛粒子群优化算法[J].控制与决策,2010,25(1):20-24.
[8] 徐生兵,夏文杰,代安定.一种改进学习因子的粒子群算法[J].信息安全与技术,2012,3(7):17-19.
基金项目:
东莞理工学院城市学院青年教师基金项目(ZR15)。
作者简介:
徐生兵(1980-),男,湖北荆门人,硕士;主要研究方向和关注领域:智能计算。endprint
【 摘 要 】 粒子群算法针对高维复杂函数常存在早熟收敛问题,本文提出一种在已有动态调整惯性权重的基础上对学习因子进行改进的粒子群算法,使学习因子随着搜索的不同阶段改变认知学习因子和社会学习因子。比较五个标准测试函数的实验结果,表明改进后的算法得到的结果更优。
【 关键词 】 粒子群算法;动态调整惯性权重;学习因子;全局搜索
【 中图分类号 】 TP18 【 文献标识码 】 A
1 引言
模拟昆虫、鸟群和鱼群等群集行为,Eberhart 和Kennedy提出粒子群算法。PSO算法作为一种随机搜索算法,由于其算法程序设计简单,便于操作而得到广泛应用。胡建秀等人对粒子群算法的惯性权重做了深入探讨,文献[3, 4,5]给出了一些惯性权重修改的方法,文献[6,7]采用变异或者是和其他算法结合增强种群在搜索过程中多样性。也有研究者将混沌理论用于粒子群算法的粒子初始化。文献[8]从学习因子上对算法进行改进。本文是建立在文献[4]动态调整惯性权重基础上对学习因子进行改进。通过具体的仿真实验,本文提出的改进方法使得算法的最优值更加的接近真实值。
2 粒子群算法
2.1 标准的PSO算法
粒子根据如下两个方程来更新自己:
(1)
(2)
其中,C1,C2分别是自身学习因子和社会学习因子,一般都取值为2, r1,r2是(0,1)区间内的随机数,pbestki是第i个微粒前k次的最好位置,gbestki是前k次所有微粒的最好位置,ω是惯性权重,一般取值0.1到0.9之间。
2.2 动态调整惯性权重参数的PSO算法[DPT-PSO]
粒子搜索过程中,速度大有利于全局搜索而不致陷入局部最优。当速度小时更有利于局部搜索得到更加精确的解.文献[5]根据这种思想提出了一种根据理想速度不断调整惯性权重的方法[Dynamic parameter tuning of Particle Swarm Optimization 记为[DPT-PSO]。
3 改进学习因子的PSO算法
粒子在搜索的过程中,初期希望粒子的速度大一些,能尽量搜索到整个空间,到了后期希望粒子的速度降下来,使得粒子能搜索到精确的位置。从公式(1)可以看到让惯性权重ω初期较大,后期变小。与此同时我们也可以让学习因子随着搜索状态变化而变化。在搜索的前阶段c1取较大值,c2取较小值,让粒子群向自身最好位置pbest学习,增强全局搜索能力,到了后阶段c1取较小值,c2取较大的值,让粒子向全局最好位置gbest学习,增强局部搜索能力。现对学习因子c1和c2的改进如下:
其中k是当前迭代次数,itermax是最大迭代次数。
4 对比试验
4.1 实验设计
为了分析修改学习因子对算法优化的效果,本文进行如下对比试验。为了记法方便进行几点说明。
对五个测试函数仅采用DPT-PSO的情形,记为B1。
对五个测试函数采用DPT-PSO算法对进行的调整,在此基础上采用本文提出对粒子的初始化和改进学习因子的算法,记为B2。
本文五个测试函数(如表1)分别设置从90和100维,每个函数独立运行30次,每次迭代3000次,微粒个数为50。在DPT-PSO中初始速度和理想速度设置为搜索范围的10%,Tend=900。评估算法的效果从最小值(Min),最大值(Max),平均值(Avg),标准方差(SD)进行比较。
4.2 实验结果及其分析
表2的数据是分别采用DPT-PSO算法和在DPT-PSO算法基础上改进学习因子的算法得到的,测试了五个基准函数,其中F1、F2是单模函数,F3,F4是多模态函数。F1(Rosenbrock)函数它是主要考查局部开发能力,而F4(Rastrigin)函数具有大量局部最小值,是考查算法避免陷入局部最优,进行全局探索的能力,从表2中不难发现这两个基准函数改进后的算法在最大、最小、平均值和方差这四个方面的效果得到了很大提高。在F1函数的有些维数出现了结果变坏的情形,而其它四个函数在每维的效果都有不同程度的改进,F4、F2改进后的效果最为明显。
5 结束语
在粒子群算法的速度更新中,学习因子也会对粒子搜索能力有一定影响。在搜索初期粒子需要有较好的全局搜索能力,因此需要自身学习因子取较大的值,而到后期则更需较小的速度让粒子具有较强的局部搜索能力。本文在已有动态调整惯性权重的基础上对学习因子进行改进,通过最小、大值、平均值和方差这四个指标的比较,改进学习因子后算法的得到的结果更优。
参考文献
[1] Kennedy J,Eberhart R C. Pacticle swarm optimization [C].IEEE International Conference on Neural Networks.Perth ,1995:1942-1948.
[2] 胡建秀.微粒群算法中惯性权重的调整策略[J].计算机工程,2007,33(11):193-195.
[3] 冯婷等.改进收敛条件的动态调整惯性权重PSO算法[J].计算机工程与应用,2009,45(3) :175-177.
[4] Nobuhiro Iwasaki,Keiichiro Yasuda,Genki Ueno.Dynamic Parameter Tuning of Particle Swarm Optimization [J].IEEJ Trans on Electrical and Electronic,2006,1(1):353-363.
[5] 陈贵敏,贾建援,韩琪.粒子群优化算法的惯性权值递减策略研究[J].西安交通大学学报,2006,40(1):53-56.
[6] 颜俊华,张敏等. 基于遗传算法的智能粒子群优化算法[J].西南大学学报,2010,32(11):135-139.
[7] 朱海梅,吴永萍.一种高速收敛粒子群优化算法[J].控制与决策,2010,25(1):20-24.
[8] 徐生兵,夏文杰,代安定.一种改进学习因子的粒子群算法[J].信息安全与技术,2012,3(7):17-19.
基金项目:
东莞理工学院城市学院青年教师基金项目(ZR15)。
作者简介:
徐生兵(1980-),男,湖北荆门人,硕士;主要研究方向和关注领域:智能计算。endprint