粒子群算法(1)----粒子群算法简单介绍 (4)

   2007年希腊的两位学者提出将收敛速度比較快的全局版本号的粒子群算法与不easy陷入局部最优的局部版本号的粒子群算法相结合的办法,利用的公式是

vn*v(全局版本号)+(1n*v(局部版本号)       速度更新公式,v代表速度

   wk1)=w(k)v                     位置更新公式

  该算法在文献中讨论了系数n取各种不同情况的情况,而且执行来了20000次来分析各种系数的结果。

  (2)粒子群算法的混合

   这个分支主要是将粒子群算法与各种算法相混合,有人将它与模拟退火算法相混合,有些人将它与单纯形方法相混合。可是最多的是将它与遗传算法的混合。依据遗传算法的三种不同算子能够生成3中不同的混合算法。

    粒子群算法与选择算子的结合,这里相混合的思想是:在原来的粒子群算法中,我们选择粒子群群体的最优值作为pg,可是相结合的版本号是依据全部粒子的适应度的大小给每一个粒子赋予一个被选中的概率,然后依据概率对这些粒子进行选择,被选中的粒子作为pg,其它的情况都不变。这样的算法能够在算法执行过程中保持粒子群的多样性,可是致命的缺点是收敛速度缓慢。

   粒子群算法与杂交算子的结合,结合的思想与遗传算法的基本一样,在算法执行过程中依据适应度的大小,粒子之间能够两两杂交,比方用一个非常easy的公式

   w(新)=n×w1+(1n×w2

  w1w2就是这个新粒子的父辈粒子。这样的算法能够在算法的执行过程中引入新的粒子,可是算法一旦陷入局部最优,那么粒子群算法将非常难摆脱局部最优。

   粒子群算法与变异算子的结合,结合的思想:測试全部粒子与当前最优的距离,当距离小于一定的数值的时候,能够拿出全部粒子的一个百分比(如10%)的粒子进行随机初始化,让这些粒子又一次寻找最优值。

  (3)二进制粒子群算法

最初的PSO是从解决连续优化问题发展起来的.Eberhart等又提出了PSO的离散二进制版.用来解决project实际中的组合优化问题。他们在提出的模型中将粒子的每一维及粒子本身的历史最优、全局最优限制为10,而速度不作这样的限制。用速度更新位置时,设定一个阈值,当速度高于该阈值时,粒子的位置取1,否则取0。二进制PSO与遗传算法在形式上非常类似,但实验结果显示,在大多数測试函数中,二进制PSO比遗传算法速度快,尤其在问题的维数添加时

  (4)协同粒子群算法

   协同PSO,该方法将粒子的D维分到D个粒子群中,每一个粒子群优化一维向量,评价适应度时将这些分量合并为一个完整的向量。比如第i个粒子群,除第i个分量外,其它D-1个分量都设为最优值,不断用第i个粒子群中的粒子替换第i个分量,直到得到第i维的最优值,其它维同样。为将有联系的分量划分在一个群,可将D维向量分配到m个粒子群优化,则前D mod m个粒子群的维数是D/m的向上取整。后m(D mod m)个粒子群的维数是D/m的向下取整。协同PSO在某些问题上有更快的收敛速度,但该算法easy被欺骗。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgyywg.html