PSO
使用了pso工具箱。对调用的函数的参数进行一下记录:
pso_Trelea_vectorized(functname, D, mv,VarRange ,minmax, PSOparams, plotfcn, PSOseedValue)
functname
目标函数名
D
待优化问题的维度
mv
最大粒子速度,长度为D的标量或向量。(允许每个参数拥有独自的最大速度)(默认4)
VarRange
参数变化范围矩阵[min1 max1 min2 max2 … minD maxD](默认100~100)
minmax
寻优类型 0(默认):最小; 1:最大; 2:
PSOparams
参数矩阵
P(1)
每迭代多少次显示一次中间过程,若为0则不显示中间过程。默认100。
P(2)
最大迭代次数,默认2000
P(3)
种子数,即初初始化多少个种子。种子数越多,越有可能收敛到全局最优值,但算法收敛速度慢。默认24。
P(4)
、P(5)
算法的加速度参数,分别影响局部最优值和全局最优值,据说2对大多数情况来说都是挺好的选择,所以一般不需要修改。默认2、2。
P(6)
、P(7)
初始时刻和收敛时刻的加权值,在最早的PSO算法中,没有此参数,靠其它几个参数的调整来保证收敛,但收敛速度和收敛精度难以同时满足,后来在改进算法中,加入此权值,使得兼顾收敛速度和收敛精度成为可能。默认0.9、0.4 。
P(8)
指定的当迭代次数超过此值时,加权值取其最小(如上面的0.4)。默认1500 。
P(9)
用于终止算法的阈值。当连续的两次迭代中对应的种群最优值小于此阈值时,算法停止。默认1e-25 。
P(10)
用于终止算法的阈值。当连续250次迭代中函数的梯度之仍然没有变化,则推出迭代。默认250。
P(11)
用于说明优化的情况,默认NaN时表示为非约束下的优化问题(即没有附加约束方程)。
P(12)
用于指定采用何种PSO类型,默认0表示通常的PSO算法。
P(13 )
用于说明是否认为指定种子,默认0表示随机产生种子,1表示用户自行产生种子。
plotfcn
寻优过程中用于展示寻优过程的画图函数。默认goplotpso。
PSO seedValue
:可允许用户输入任意多组初始粒子。P(13)必须为1或2。