粒子群算法(PSO算法):
优点:操作简单、收敛速度快;
缺点:早熟收敛、维数灾难、易于陷入局部极值
PSO算法的发展方向:
1、调整PSO的参数来平衡算法的全局探测和局部开采能力:(1)引入惯性权重并对其进行线性/非线性的动态调整–w
(2)研究加速因子对位置期望及方差的影响,得出更好的加速因子取值–c1单调递减,c2单调递增,迭代初期搜索更细致,迭代后期全局合作能力增强。
2、设计不同类型的拓扑结构,改变粒子学习模式,提高种群的多样性。(为解决:易早熟收敛,寻优精度不高)–拓扑结构是指整个群体中所有粒子之间相互连接的方式,如:4类(fourclusters):整个粒子群中有4个类组成,各个类内部相互完全通信,类间通信较少。
3、将PSO和其他优化算法(或策略)相结合,形成混合PSO算法。

另补充:骨干粒子群算法(BPSO):粒子每代的位置不由迭代计算的速度v得出,而是通过与Pb(历史最优位置)和Gb(全局最优位置)相关的高斯分布直接获得;自学习骨干粒子群优化算法(SLBPSO):[1]高斯分布的期望不再是Pb和Gb的算术均值,而是一个随迭代过程自适应的值;[2]当例子处于全局最优位置时,给予粒子一个可调节的标准差,使算法能继续搜索。

遗传算法(GA):

优点:搜索从群体出发,具有潜在的并行性,可以进行多个个体的同时比较。

缺点:1、编程实现比较复杂

2、交叉率和变异率,这些参数的选择严重影响解的品质,而目前这些参数的选择大部分是依靠经验

3、没有能够及时利用网络的反馈信息,算法的搜索速度比较慢,要得要较精确的解需要较多的训练时间

4、大量计算。涉及到大量个体的计算,当问题复杂时,计算时间是个问题。

5、稳定性差。因为算法属于随机类算法,需要多次运算,结果的可靠性差,不能稳定的得到解。

6、存在早熟收敛的可能(较早收敛到局部最优)—[可结合模拟退火算法进行改进,因为SA在理论上100%可得全局最优,但搜索代价高]

pso粒子群算法的Java实现 粒子群算法拓扑结构_pso粒子群算法的Java实现


由上图可知:遗传算法较粒子群算法这样的单点进化算法而言,陷入局部最优解的可能性要小,从而易于对全局的所有解进行搜索----[个人理解:遗传算法是否会容易陷入最优解?,这与遗传算法中的交叉率与变异率有很大的关系!]