粒子群算法分类

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三.算法实现
①随机给出D维空间初始化粒子的速度和位置,并设定迭
代次数N;
②计算每个粒子在当前状态下的适应函数值 pi

③将②中计算的适应函数值 pi 与自身的优化解 pbesti 进行比较, 如果
pi pbesti
, 则用新的适
应函数值取代前一轮的优化解, 用新的粒子取代
前一轮粒子。即 pbesti
2. 种群规模N 3.适应度函数
1.学习因子
学习因子(也称加速度系数) 1和 c2分别调节粒 c 子向全局最优粒子和个体最优粒子方向飞行的最大步 长。若太小,则粒子可能远离目标区域;若太大则可 能导致粒子忽然向目标区域飞去或飞过目标区域。合 适的c1 和 c2可以加快收敛且不易陷入局部最优,目前
time=etime(clock,t0)
1.基本粒子群算法输出
2.改进后输出
3.比较
结论
通过粒子群算法能够很快的实现分类。而且通过惯 性权重的线性更新可以有效的防止局部最优。每种聚类 数目下的最优聚类可以根据输出的适应度fg判断,适应
度值越小越好,并且需多次运行判断。
参考文献
[1] 杨淑莹. 模式识别与智能计算[M].北京:电子工业出版
行移动,产生新的粒子,直到适应度不变。
流程图
开始 初始化 计算聚类中心和适应度 求取pid和pgd 更新惯性权重 更新粒子的速度和位置 以粒子位置为聚类中心重新聚类 N
达到终止条件 Y 输出结果
四.部分代码及仿真
clc; clear all; %sam=xlsread('.xls'); t0=clock;%开始计时 sam=[2793.36 1766.08 1207.88 245.75 3009.26 1803.14 1600.62 3373.67 1073.55 1895.18 3123.07 2248.4
………………………………………………];
N=50;%粒子数 c1=1.3;c2=1.9;%学习因子
wmax=0.9;wmin=0.4;%惯性权重系数
M=200;%代数 K=4;%类别数,根据需要修改 [S D]=size(sam);%%样本数和特征维数 v=rand(N,K*D);%初始速度
fitt=inf*ones(1,N);%初始化个体最优适应度
大多数文献均采用c1 = c 2=2。
2.种群规模
PSO 算法种群规模较小,一般令N=20~40。其实
对于大部分问题10 个粒子就能取得很好结果,但对于较 难或者特定类别的问题,粒子数可能取到100 或200。
3.适应度函数
F wij X ip C jp
k S n j 1 i 1 p 1
惯性权重系数
w wmax
wmax wmin t t max
惯性权重系数w 用来控制前面的速度对当前速度的
影响,较大的w 可以加强PSO 的全局搜索能力,而较小
的能加强局部搜索能力。目前普遍采用将w 设置为从0.9 到0.1 线性下降的方法,这种方法可使得PSO 在开始时 探索较大的区域,较快地定位最优解的大致位置,随着 w 逐渐减小,粒子速度减慢,开始精细地局部搜索。
k 1 id
x
xid vid
k
k 1
v k 其中:是粒子的速度向量 xk是粒子当前位置
是粒子本身所找到的最好解的位置 pbest 是整个种群目前找到的最优解的位置 gbest
参数设定
PSO 算法中需要调节的参数主要包括: 1. 学习因子
c1 和 c2
F wij X ip C jp
社,2008.1
[2]侯志荣,吕振肃.基于MATLAB 的粒子群优化算法及其 应用[J].计算机仿真第20 卷,第10期 [3] 齐敏,李大健,郝重阳.模式识别导论[M].北京:清华大 学出版社,2009.6
fg=inf;%初始化群体最优适应度
%更新群体和个体最优解
for i=1:N if fitt2(i)<fitt(i)
fitt(i)=fitt2(i);
y(i,:)=x(i,:);%个体最优 if fitt2(i)<fg
pg=x(i,:);%群体最优
fg=fitt2(i);%群体最优适应度 fljg=clmat(i,:);%当前最优聚类
, xbesti xi
④ 将每个粒子的最好适应值 pbesti 与所有粒子最好适应值
gbesti 进行比较, 如果 pbesti gbesti , 则用每个粒子的
最好适应值取代原所有粒子的适应值, 同时保存粒子 的当前状态,更新聚类中心。
⑤完成以上的计算后, 再进行新一轮的计算, 将粒子进
粒子群分类算法
主要内容
1 2 3 4 5
引言 基本粒子群算法
算法实现
部分代码及仿真 结论
一.引言
粒子群算法(Particle Swarm Optimization,
PSO)是1995 年由Kennedy 和Eberhart 在鸟群、鱼 群和人类社会的行为规律的启发下提出的一种基于 群智能的演化计算技术。由于算法收敛速度快,需 要设置、调整的参数少,实现简洁,近年来受到学
end
end end
w = wmax - t*(wmax-wmin)/M;%更新权重 for i=1:N %更新粒子速度和位置
v(i,:)=w*v(i,:)+c1*rand(1,K*D).*(y(i,:)x(i,:))+c2*rand(1,K*D).*(pg-x(i,:)); x(i,:)=x(i,:)+v(i,:); fljg %最优聚类输出 fg %最优适应度输出
术界的广泛重视。
二.基本粒子群算法(PSO)
PSO算法的基本思想是通过群体中个体之间的协
作和信息共享,通过迭代寻找最优解。在每次的迭代
中粒子通过跟踪两个“极值 pbest gbest来更新自 和 己。粒子依据下式来更新速度和位置:
vk
v
k 1
vk c1 r1 ( pbestk xk ) c2 r2 ( gbestk xk )
2
其中: w是0,1矩阵,当x属于该类时元素为0,否则 为1
算法优化
v
k 1
k 1
w vk c1 r1 ( pbestk xk ) c2 r2 ( gbestk xk )
xid vid
k k 1
x
id
与基本算法相比,在速度更新上增加了惯性权重系 数w
相关文档
最新文档