粒子群的算法思想就是现在一个空间的随机的撒若干个点,每个点都会保存两种信息:一个保存该结点所到过的最佳位置(个体极值点);另一个保存其它结点(包括该结点)中所到过的最好位置(全局极值点)。运动过程中每个粒子以这两个极值点为依据,不断更新自己的位置使自身不断趋于最优解。可以通过下面这个公式来理解:
c1、C2表示更新步长;Pid表示该粒子的个体极值点;Pgd表示全局极值点;rand和Rand表示随机数;Xid表示粒子的位置
算法步骤:
1、初始化所有粒子
2、计算所有粒子的适应值
3、根据上述式子(1)(2)更新粒子的速度和位置
4、迭代到规定次数或者规定精度的时候算法终止,否则根据返回2
改进:
w表示惯性权重因子,w较大可以增强其全局搜索能力,较小可以增强其局部搜索能力。