niuyongjie的专栏

混合粒子群算法将全局粒子群算法与局部粒子群算法结合,其速度更新采用公式

其中G(k+1)是全局版本的速度更新公式,而L(k+1)是局部版本的速度更新公式,混合粒子群算法采用H(k+1)的公式。

位置更新公式

因为是局部版本与全局版本相结合,所以,粒子群的初始化函数应该与局部版本的相同,这里就不列出了,参看粒子群算法(7)中的LocalInitSwarm函数。

关键还是混合粒子群算法的单步更新函数,函数名为HybridStepPso

代码如下:

注意代码的91行到96行,这几行就是混合粒子群速度更新公式,其他部分基本与前面的实现一样。

最后还是一个把这两个函数组装在一起的函数,同样采用LocalPsoProcessByCircle函数,详细见粒子群算法(7)的内容,最后还是给出一个应用实例。

注意:在这个LocalPsoProcessByCircle函数中,使用HybridStepPso作为单步更新的函数,其余基本与局部粒子群算法相同。

经过本人的实际测试,运行条件相同,最好的是局部版本的PSO,混合的PSO并不像有些文献上说的那么好,也许是我实现的不对,如果有那个大侠实现的效果更好,可以给我联系,我们可以共享代码。

同时也希望那些砖家、叫兽们共享你们的效果非常好的代码。

本人已经实现了一个PSO的工具箱,不过效果不好,本人水平低劣,又需要的可以联系我。

不知道CSDN能不能做链接下载,如果可以,请告诉我,我做个链接,,大家可以随便下载,共同交流。

一遍一遍的……你突然明白自己还活着,

niuyongjie的专栏

相关文章:

你感兴趣的文章:

标签云: