标准PSO算法的参数包括:群体规模m;最大速度vmax;惯性权重w;加速因子c1和c2;最大迭代次数Gmax。
(1)群体规模
群体规模m的大小粗略地正比于问题的维数。一般地,待求解问题维数越高,所需的群体规模也就越大。通常群体规模是问题维数的1.5倍左右。
(2)加速因子
加速因子c1和c2代表将每个粒子推向pbest和gbest位置的统计加速项的权重。较低的加速因子允许粒子在被拉回之前可以在目标区域外徘徊,而高的加速因子则导致粒子突然冲向或越过目标区域,形成较大的适应值波动。一般将c1和c2固定为2.0。Suganthan的实验表明,c1和c2为常数时可以得到较好的解,但不一定必须为2,Clerc和Kennedy引入收缩因子K来保证粒子群优化算法的收敛性,
其中,φ1和φ2是需要预先设定的模型参数。
对应于式(4.3)中的参数,K为一种受φ1和φ2限制的w,而c1=Kφ1,c2=Kφ2。
(3)最大速度
vmax决定当前位置与最优位置之间区域的精度。如果vmax太高,粒子可能会飞过好解;如果vmax太小,粒子不能对局部最优区间之外进行足够的探索,导致算法陷入局部优值。设置最大速度的限制有以下三个目的:①防止计算溢出;②实现人工学习和态度转变;③决定问题空间搜索的粒度。通常设vmax为每维变化范围的10%~20%。(www.xing528.com)
(4)惯性权重
惯性权重w使粒子保持运动惯性,使其有扩展搜索空间的趋势,有能力探索新的区域。早期的实验将w固定为1.0,后期的研究中多将w设为随时间线性减小,如由1.4逐渐降低至0.2或者使用模拟退火算法中的降温公式。
由于惯性权重w和最大速度的限制vmax都是维护全局和局部搜索能力的平衡,因此,当vmax增加时,可以通过减小w来达到平衡搜索。反过采,w的增加可以使得全部粒子较快达到速度的上界。从这个意义上看,可以将vmax的每个分量固定为对应于变量的变化范围,从而只对w进行调节。
对问题空间较大的问题,为了在搜索速度和搜索精度之间达到较好的平衡,通常的做法是使算法在前期有较高的全局搜索能力以得到合适的种子,而在后期有较高的局部搜索能力以提高收敛的精度。为此,可以将w设为随时间线性减小,如由1.4逐渐降低至0.2或者使用模拟退火算法中的降温公式。
这些参数也可以通过模糊系统进行调节。Shi和Eberhart提出一个模糊系统来调节w,该系统包括9条规则,有两个输入和一个输出,每个输入和输出定义了三个模糊集。一个输入为当前代的全局最好适应值,另一个为当前的w;输出为w的变化。结果显示该方法能大幅度提高平均适应值。
此外,群体的初始化也是影响算法性能的一个方面。Angeline对不对称的初始化进行了实验,发现粒子群优化算法只是略微受影响。
Ozcan和Mohan通过假设w=1,c1和c2为常数,pbest和gbest为固定点,进行理论分析,得到一个粒子随时间变化可以描述为波的运行,并对不同的感兴趣的区域进行了轨迹分析。这个分析可以被Kennedy的模拟结果支持。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。