赞
踩
目录
粒子群优化算法(Particle Swarm Optimization,PSO)是进化计算的一个分支,是一种模拟自然界的生物活动及群体智能的随机搜索算法。PSO模拟了自然界鸟群觅食和鱼群捕食等过程。通过群体中的协作寻找到问题的全局最优解。它是1995年由美国学者Eberhart和Kennedy提出的一种全局搜索算法,现在已经广泛应用于各种工程领域的优化问题之中。
其中,我们可以看一下鸟群觅食和粒子群优化算法的基本定义对照图如下:
而鸟群觅食到粒子群优化算法的关系示意图如下:
PSO的算法步骤:
(1)初始化所有粒子,即给它们的速度和位置赋值,并将个体的历史最优pBest设为当前位置,群体中的最优个体作为当前的gBest。
(2)在每一代的进化中,计算各个粒子的适应度函数值。
(3)如果当前适应度函数值优于历史最优值,则更新pBest。
(4)如果当前适应度函数值优于全局历史最优值,则更新gBest。
(5)对每个粒子i的第d维的速度和位置分别按照公式6.1和公式6.2进行更新:
而这两个公式在二维空间中的关系如图所示:
(6)判断是否达到了结束条件(具体怎么定义后面会提),否的话就转到(2)继续执行,否则输出gBest并结束。
PS0算法流程图和伪代码如下:
我们接下来用一个实例实现一下PSO算法:
解题步骤如下:
粒子群优化算法的研究内容和改进方向如下:
(1) 静态拓扑结构
全局版本(Global Version PSO, GPSO)和局部版本(Local Version PSO, LPSO)两个主要范式。
两者主要区别在于社会网络结构的定义不同。
从全局和局部其实也不难看出,粒子在更新速度和位置的时候,前者使用到的是自身的历史最好位置pBest和整个群体中最好的位置gBest,而后者的话,每个粒子所处的“社会”不是整体,而是一个小的邻域。更新速度和位置时用到的除了自身最好的历史位置pBest外,还用到邻域中的最好位置lBest作为更新的向导。
不难发现,后者的多样性更好,在处理复杂的问题的时候,LPSO比GPSO会表现出更好的性能。
(2) 动态拓扑结构
由于即使是LPSO也很容易陷入局部最优的问题,而研究动态拓扑结构是希望能够通过在不同的进化阶段使用不同的拓扑结构,动态地改变算法的探索能力和开发能力,在保种群多样性和算法收敛性上取得动态的变化和平衡,以提高算法的整体性能。
(3) 其他拓扑结构
PSO是非常适合于连续领域问题优化的算法,且已经在此取得相当成功的应用。
离散版本改进将PSO运用到离散领域(组合优化)之中。
在众多的离散PSO改进版本中,二进制编码PSO和整数编码PSO是常见的两种形式。
这个看看就成。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。