粒子群算法的寻优算法——非线性函数极值寻优 实验体会

通过老师对算法代码的简单介绍,我对于粒子寻优算法结构有了一个大致的了解

1. pso算法c1、c2、w的组合测试:

首先根据老师说的原则,c1从小变到大,c2从大变到小,权重w先从大的开始,惯性大的冲得快,后期再往小改。
初始值:
粒子群算法的寻优算法——非线性函数极值寻优 实验体会

之后再用公式来表示各变量以达到实验目的:
粒子群算法的寻优算法——非线性函数极值寻优 实验体会
运行算法,可以看到最优解已经浮出水面:粒子群算法的寻优算法——非线性函数极值寻优 实验体会
接着我们可以再运行九次以求其最佳迭代次数均值:
粒子群算法的寻优算法——非线性函数极值寻优 实验体会
粒子群算法的寻优算法——非线性函数极值寻优 实验体会
粒子群算法的寻优算法——非线性函数极值寻优 实验体会
粒子群算法的寻优算法——非线性函数极值寻优 实验体会
粒子群算法的寻优算法——非线性函数极值寻优 实验体会

粒子群算法的寻优算法——非线性函数极值寻优 实验体会
粒子群算法的寻优算法——非线性函数极值寻优 实验体会
粒子群算法的寻优算法——非线性函数极值寻优 实验体会
粒子群算法的寻优算法——非线性函数极值寻优 实验体会

416+997+477+648+245+856+286+380+423+586=5314
5314/10=531.4 为最佳迭代次数
即当
c1=-0.001 * maxgen+1.5=-0.001 * 531.4+1.5= 0.9686
c2=0.0005 * maxgen+1=0.0005 * 531.4+1=1.2657
w=-0.0007 * maxgen+0.9=-0.0007 * 531.4+0.9=0.52802
时更接近于寻得最优解
结果测试:
粒子群算法的寻优算法——非线性函数极值寻优 实验体会

2.pso算法dim与sizepop的组合测试:

初始值:
粒子群算法的寻优算法——非线性函数极值寻优 实验体会
在现有维度上改变种群规模:
200->400->800->1000->10000

粒子群算法的寻优算法——非线性函数极值寻优 实验体会
粒子群算法的寻优算法——非线性函数极值寻优 实验体会

经过多次试验可以确定当种群规模增加到400时,寻找到最优解的迭代次数多数处于200-300次之间,偶尔会迭代到900多次以上。

到800时:
粒子群算法的寻优算法——非线性函数极值寻优 实验体会
可以明显感觉到迭代时速度的力不从心,虽然收敛速度较快,集中在100-200次之间。

1000时
粒子群算法的寻优算法——非线性函数极值寻优 实验体会
可以看到实验结果很不稳定,但多集中于300-400之间

10000时
粒子群算法的寻优算法——非线性函数极值寻优 实验体会
粒子群算法的寻优算法——非线性函数极值寻优 实验体会
粒子群算法的寻优算法——非线性函数极值寻优 实验体会
粒子群算法的寻优算法——非线性函数极值寻优 实验体会

当种群规模达到10000,它找到最优解的速度非常之快,,尤其前期最优适应度跌落的幅度很大,但迭代的十分缓慢,所以在得出结果时我就暂停了…
下面就看看维度下降会产生什么影响
粒子群算法的寻优算法——非线性函数极值寻优 实验体会
粒子群算法的寻优算法——非线性函数极值寻优 实验体会
粒子群算法的寻优算法——非线性函数极值寻优 实验体会

可以看到,当维度降为8时,最优适应度跌落的更快,能更快找到最优解。
将种群规模降为1000,再继续观察
粒子群算法的寻优算法——非线性函数极值寻优 实验体会
可以看到基本在100次以内能查找到最优解。
再将维度降低
粒子群算法的寻优算法——非线性函数极值寻优 实验体会

基本几乎在50次以内可以得出最优解。
由此,可以得出结论,种群规模不变,维度越低查找到最优解的速度越快,维度不变,种群规模越大越易于查找到最优解。