PSO粒子群优化算法

您所在的位置:网站首页 PSO优化算法初始化方法 PSO粒子群优化算法

PSO粒子群优化算法

2024-07-11 18:00| 来源: 网络整理| 查看: 265

1算法简介

粒子群优化算法,在1995年由Eberhart博士和kennedy博士提出,源于对鸟群捕食的行为研究。该算法最初是受到飞鸟集群活动的规律性启发,进而利用群体智能建立的一个简化模型。算法流程图如下所示。

粒子群优化算法流程图

核心公式( 更新速度和位置): 在这里插入图片描述 在这里插入图片描述 这里   w \ w  w称为惯性因子,   C 1 \ C1  C1 和   C 2 \ C2  C2 称为加速常数,一般取   [ 0 , 4 ] \ [0,4]  [0,4] 。   P i d \ Pid  Pid 表示第   i \ i  i 个变量的个体极值的第   d \ d  d 维。   P g d \ Pgd  Pgd 表示全局最优解的第   d \ d  d维。

2 算法优缺点

PSO算法是一种随机的、并行的优化算法。

优点 是:不要求被优化函数具有可微、可导、连续等性质,收敛速度较快,算法简单,容易编程实现。

然而,PSO算法的 缺点 在于:

(1)对于有多个局部极值点的函数,容易陷入到局部极值点中,得不到正确的结果。

造成这种现象的原因有两种,其一是由于待优化函数的性质;其二是由于微粒群算法中微粒的多样性迅速消失,造成早熟收敛。这两个因素通常密不可分地纠缠在一起。

(2)由于缺乏精密搜索方法的配合,PSO算法往往不能得到精确的结果。

造成这种问题的原因是PSO算法并没有很充分地利用计算过程中获得的信息,在每一步迭代中,仅仅利用了群体最优和个体最优的信息。

(3)PSO算法虽然提供了全局搜索的可能,但是并不能保证收敛到全局最优点上。

因此,PSO算法一般适用于一类高维的、存在多个局部极值点而并不需要得到很高精度解的优化问题。

3 算法原理伪代码(matlab) for i=1:N for j=1:D x=xmin+rand(N,D)*(xmax-xmin); %随机初始化位置 v=rand(N,D); %随机初始化速度 end end %------先计算各个粒子的适应度,并初始化Pi和Pg---------------------- for i=1:N p(i)=fitness(x(i,:)); %计算初始粒子的适应度值 y(i,:)=x(i,:); %个体极值中的变量值等于粒子的初始值---为了后期进行保存全局最优值 end pg=x(N,:); %Pg为全局最优值---将初始位置的最后一列元素赋给全局最优值---目的在于保存全局最优值 for i=1:(N-1) if fitness(x(i,:))


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3