粒子群算法聚类设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(t 1) w (t ) r ( p (t ) z (t )) r ( p (t ) z (t ))
id id 1 1 id id 2 2 gd id
(3)
z (t 1) z (t ) v (t 1)
id id id
(4)
四.改进的粒子群优化算法
五.粒子群算法应用到模式分类
完整程序代码:
clc; clear all; format long; tic data=importdata(‘simulate_data.dat'); %--------参数设定----------N=70;%粒子数 c1=1.6;c2=1.6;%设定学习因子值(速度更新参数) wmax=0.9;wmin=0.4;%设定惯性权重初始及终止值 M=1600;%最大迭代数 K=4;%类别数 [S D]=size(data);%样本数和特征维数 %--------初始化---------------for i=1:N clmat(i,:)=randperm(S);%随机取整数 end clmat(clmat>K)=fix(rand*K+1);%取整函数
若加速系数、最大速度等参数太大,粒子群可能错过最优解,算法不能收
敛; 在收敛的情况下,由于所有的粒子都同时向最优解的方向飞去,所以粒子
趋向同一化( 失去了多样性 ) ,这样就使算法容易陷入局部最优解,即算法
收敛到一定精度时,无法继续优化。
四.改进的粒子群优化算法
2. 粒子群优化算法原理
粒子群优化算法具有进化计算和群智能的特点。与其他进化算法相类似, 粒子群算法也是通过个体间的协作与竞争,实现复杂空间中最优解的搜索。 粒子群算法可描述为:设粒子群在一个 n维空间中搜索,由m个粒子组成 种群 Z Z , Z ,...,Z ,其中的每个粒子所处的位置 Z Z , Z ,...,Z
(全局最好的微粒)为吸引子,将所有微粒拉向它,使所有的微粒最
终收敛于该位置。如果在进化过程中,该全局最优解得不到更新,则 微粒群将出现类似于遗传算法早熟的现象。
三.两种基本的进化模型
L 模型(局部最好模型)
best
L 模型采用多个吸引子代替 为了防止 G 模型可能出现早熟现象,
best
best
1 2
收敛且不易陷入局部最优。
四.改进的粒子群优化算法
(2)种群规模N
PSO 算法种群规模较小,一般令N=20~40。其实对于大部分问题 10 个粒 子就能取得很好结果,但对于较难或者特定类别的问题,粒子数可能取到 100 或200。 (3)适应度函数:
F w (X C )
j 1 i 1 ij p 1 ip jp
全局模型中的单一吸引子。首先将为粒子群分解为若干个子群,在每
个粒子群中保留其局部最好微粒 ,称为局部最好的位置或邻域最好位置。 实验表明,局部最好模型的PSO比全局最好模型的收敛慢,但不容易陷入
局部最优解。
四.改进的粒子群优化算法
1.基本粒子群算法的缺陷
粒子群算法是一种局部搜索效率高的搜索算法,收敛快,特别是在算法的 早期,但也存在着精度较低、易发散等缺点。
gd id
1 2
四.改进的粒子群优化算法
3.参数设置
PSO 算法中需要调节的参数主要包括: (1)学习因子 、
1 2
学习因子(也称加速度系数) 和 分别调节粒子向全局最优粒子和个体
1 2
最优粒子方向飞行的最大步长。若太小,则粒子可能远离目标区域;若太大则 可能导致粒子忽然向目标区域飞去或飞过目标区域。合适的 和 可以加快
id max id
max
max
;
(t 1) 时, (t 1)
从式( 3 )和式( 4 )可以看出,粒子的移动方向由三部分决定:自己原
) p z ( t) 有的速度 (t、与自己最佳经历的距离 、与群体最佳经历的距离
id id id
决定其重要性。 , p z (t ) 并分别由权重系数w ,
五.粒子群算法应用到模式分类
2.初始化
fitt=inf*ones(1,N);%初始化个体最优适应度 fg=inf;%初始化群体最优适应度 fljg=clmat(1,:);%当前最优分类 v=rand(N,K*D);%初始速度 x=zeros(N,K*D);%初始化粒子群位置 y=x;%初始化个体最优解 pg=x(1,:);%初始化群体最优解 cen=zeros(K,D);%类别中心定维 fitt2=fitt;%粒子适应度定维
五.粒子群算法应用到模式分类
%更新群体和个体最优解 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,:);%当前最优聚类 end end end bfit(t)=fg;%最优适应度记录 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,:);
ij ij 1 1 ij ij 2 2 gj ij
(1)
x (t 1) x (t ) v (t 1)
ij ij ij
(2)
下标“ i” 表示第 i个微粒,下标“ j” 表示的是微粒 i的第 j维分量,t 表示第t代,学习因子 c 和c 为非负常数,
1 2
c 用来调节微粒向本身最好位置飞行的步长, c 用来调节微粒向群体最好位置飞行的步长。
五.粒子群算法应用到模式分类
sumcs = sum(ww(:,j)*ones(1,D).*data); countcs = sum(ww(:,j)); if countcs==0 cen(j,:) =zeros(1,D); else cen(j,:) = sumcs/countcs; %求类别中心 end ccc=[ccc,cen(j,:)];%串联聚类中心 aa=find(ww(:,j)==1); if length(aa)~=0 for k=1:length(aa) tmp=tmp+(sum((data(aa(k),:)-cen(j,:)).^2));%%适应度计算 end end end x(i,:)=ccc; fitt2(i) = tmp; %%适应度值Fitness value end
PSO 优化算法需要设定粒子的学习因子(速度更新参数)、最大迭代次 数以及惯性权重初始和终止值及聚类类数。参数设定如下: c1=1.6;c2=1.6;%设定学习因子值(速度更新参数) wmax=0.9;wmin=0.4;%设定惯性权重初始及终止值 M=1800;%最大迭代数 K=4;%类别数
k
s
n
2
其中: w是0,1矩阵,当x属于该类时元素为0,否则为1。
四.改进的粒子群优化算法
(4)惯性权重系数w
w w t
max
w w t
max max
min
惯性权重系数w 用来控制前面的速度对当前速度的影响,较大的w 可以加 强PSO 的全局搜索能力,而较小的能加强局部搜索能力。目前普遍采用将w 设 置为从0.9 到0.1 线性下降的方法,这种方法可使得PSO 在开始时探索较大的 区域,较快地定位最优解的大致位置,随着w 逐渐减小,粒子速度减慢,开始 精细地局部搜索。
Macro Dorigo
一.算法简介
粒子群算法的基本思想是模拟鸟类群体行为,并利用了生物学家
的生物群体模型,因为鸟类的生活使用了简单的规则:
(1)飞离最近的个体; (2)飞向目标;
(3)飞向群体的中心;来确定自己的飞行方向和飞行速度,并且
成功的寻找到栖息地。
二.经典的粒子群算法的运算过程
经典粒子群算法和其他的进化算法相似,采用“群体”与“进化” 的概念,根据个体即微粒( particle )的适应度大小进行操作。所不
同的是,微粒群算法将每个个体看作是在N维搜索空间中的一个无重
量无体积的微粒,并在搜索空间中以一定的速度飞行。该飞行速度是 根据个体的飞行经验和群体的飞行经验来进行动态地调整。
二.经典的粒子群算法的运算过程
Kennedy和Eberhart最早提出的PSO算法的进化方程如下:
(t 1) (t ) c r ( p (t ) x (t )) c r ( p (t ) x (t ))
1 2
三.两种基本的进化模型
两种粒子群算法模型:全局模式(global version PSO)和局部模型 (local version PSO)。
G 模型(全局最好模型)
best
G 模型以牺牲算法的鲁棒性为代价提高算法的收敛速度,基本
best
PSO算法就是典型的该模型的体现。在该模型中,整个算法以该微粒
四.改进的粒子群优化算法
4.粒子群优化算法的基本流程
初始化粒子群
计算每个粒子的适应度 值
更新粒子的个体最优位置和全局最优位置
否
根据式(10-3)和式(10-4)更新粒子速度和 位置
满足终止条件 ? 是 输出全局最优位置
结束
五.粒子群算法应用到模式分类
在本例对酒瓶颜色进行分类,希望将三元色数据按照颜色数据所 表征的特点,将数据按照各自所属的类别归类。由于粒子群优化算法 是迭代求取最优值,所以事先无需训练数据,故取后30组数据确定类 别。 重要程序代码介绍: 1.设定参数
式中, (t 1) 表示第 个粒子在t+1次迭代中第d维上的速度, w为惯性权
id
为加速常数, 、 r、 r 为0-1之间的随机数。此外,为使粒子速度不致过 重,
1 2 1 2
大,可以设置速度上限
id max id
max
,当式(3)中 (t 1) 时, (t 1)
1 2 m i i1 i2 im
都表
示问题的一个解。粒子通过不断调整自己的位置 Z 来搜索新解。每个粒子都能
i
记住自己搜索到的最好解,记做 p
gd
id
,以及整个粒子群经历过的最好的位置,
i i1 in
即目前搜索到的最优解,记做 p。此外每个粒子都有一个速度,记作 v v ,...,v
,当两个最优解都找到后,每个粒子根据式(3)来更新自己的速度。
五.粒子群算法应用到模式分类
fitt=inf*ones(1,N);%初始化个体最优适应度 fg=inf;%初始化群体最优适应度 fljg=clmat(1,:);%当前最优分类 v=rand(N,K*D);%初始速度 x=zeros(N,K*D);%初始化粒子群位置 y=x;%初始化个体最优解 pg=x(1,:);%初始化群体最优解 cen=zeros(K,D);%类别中心定维 fitt2=fitt;%粒子适应度定维 %------循环优化开始-----------for t=1:M for i=1:N ww = zeros(S,K);%%产生零矩阵 for ii = 1:S ww(ii,clmat(i,ii)) = 1;%加权矩阵,元素非0即1 end ccc=[];tmp=0; for j = 1:K
粒子群算法聚类设计
主 单
讲:周润景 教授 位:电子信息工程学院
目 录
算法简介 经典的粒子群算法的运算过程 两种基本的进化模型 改进的粒子群优化算法 粒子群算法应用到模式分类 结论
一.算法简介
粒子群优化算法(Particle Swarm Optimization,PSO)是由美国的 Kennedy和Eberhar在1995年提出的一种 新的进化算法,该算法源于对鸟群体觅 食行为的研究。粒子群优化算法是近些 年来发展起来的一种仿生优化算法,因 其具有的多种优点受到学术界广泛关注 和研究,目前已经被广泛应用于函数优 化、神经网络、模式识别等科学和工程 领域。
粒子群算法应用到模式分类数据编号号原始分类类预测分类类数据编号号原始分类类预测分类类数据编号号原始分类类预测分类类数据编号号原始分类类预测分类类数据编号号原始分类类预测分类类133722131119442511233833142220222644311944154421222711433101116222233283354411331744233329336221233183324113033调整显示方式后pso算法聚类结果与标准结果对比表如