粒子群算法学习报告_第1页
粒子群算法学习报告_第2页
粒子群算法学习报告_第3页
粒子群算法学习报告_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、粒子群算法 粒子群算法是模拟鸟群的飞行觅食的行为,通过鸟之间的集体协作使群体的达到最优。经管每个个体的行为准则是很简单的,但总体组合起来的行为是很复杂的。这个算法基于群体迭代,群体在解空间中追随最优粒子进行搜索。其优势在于简单容易实现,与此同时优有非常深刻的智能背景,即符合科学研究,又特别适合工程应用。一 基本粒子群算法 在粒子群算法中,每一个个体都是一个“粒子”,同时每一个粒子都有可能代表着一个最优解。例如:在一个D维的目标搜索空间中,每个粒子就可以看成空间内的一个点。设群体由m个粒子组成。M也被称为群体规模,m的值过大会影响算法的运行速度和收敛性。 设zi=(zi1,zi2,ziD)为第i

2、个粒子的空间位置,根据适应度函数计算出zi当前的适应度,即可衡量粒子位置的优劣;vi=(vi1,vi2,viD)表示i粒子在D维空间内的飞行速度;pi=(pi1,pi2,piD)表示i粒子到目前为止搜索到的最优解;pg=(pg1,pg2,pgD)表示整个群体到目前为止搜索到的最优解。 每次迭代,粒子根据下面的公式更新速度: 其中,i=1,2,m,d=1,2,D,k是迭代次数,r1和r2为0,1之间的随机数;w是保持原来速度的系数,所以叫做惯性权重;c1粒子跟踪自己历史最优值的权重系数,它表示粒子自身的认识,所以叫“认知”。通常设置为2。c2是粒子跟踪群体最优值的权重系数,它表示粒子对整个群体知

3、识的认识,所以叫做“社会知识”,经常叫做“社会”。通常设置为2。r是对位置更新的时候,在速度前面加的一个系数,这个系数我们叫做约束因子。通常设置为1。粒子群算法的流程开始选择阈值和最大迭代次数:Nmax初始化粒子位置zi=(zi1,zi2,,ziD),i=1,2,m测量每个粒子的适应度fitnesspi=fitness根据fitness=min(fitness1,fitness2,fitnessm)找出最优解pg;K=01 Kk+1根据速度更新公式更新vi根据位置更新公式更新zi测量zi的适应度,表示为fitnessi更新pi和pg如果kNmax,跳到步骤1结束简化流程图为初始化开始结束计算每

4、个个体的适应度调整每个个体的速度位置最大迭代次数二 粒子群算法的应用 粒子群算法作为新型的群体智能算法,自从提出之后,由于其概念简明,实现方便。在短期内迅速被应用到了计算研究的各个领域,同时由于其能很好的解决复杂组合优化问题,也被广泛应用与工程设计与优化电力系统,机器人控制,交通运输,通讯,计算机,工业生产以及生物医学和电磁学等领域。 在工程设计与优化方面,粒子群算法也被应用于神经网络进化,模糊神经元网络规则提取,电路设计,数字滤波器设计,半导体器件,布局优化,控制器参数优化以及系统辨识与状态评估等。(1) 电力系统领域粒子群算法被用于实现电能优化电压控制,提高电站可靠性以及电容器优化配置问题

5、等。(2) 计算机领域粒子群算法被用于任务分配,模式识别,图像处理以及数据挖掘等方面。(3) 生物医学领域粒子群算法被用于生物医学图像配准或图像数据的集合排列,基因分类等问题。(4) 机器人控制在机器人控制中,粒子群算法被用于机器人震动抑制轨迹规划以及动态规划问题。三 粒子群算法Matlab实例此例子为计算一个40个十维的粒子在空间任意的移动,得到在每个位置里fitness的值,经过1000次迭代得到求得到的最小值。fitness函数function result=fitness(x,D)sum=0;for i=1:D sum=sum+x(i)2;endresult=sum;主函数clear

6、all;clc;format long;c1=1.4962; c2=1.4962; w=0.7298; MaxDT=1000;D=10; N=40; eps=10(-6); for i=1:N for j=1:D x(i,j)=randn; v(i,j)=randn; endendfor i=1:N p(i)=fitness(x(i,:),D); y(i,:)=x(i,:);endpg=x(1,:);for i=2:N if fitness(x(i,:),D)fitness(pg,D) pg=x(i,:); endendfor t=1:MaxDT for i=1:N v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:)+c2*rand*(pg-x(i,:); x(i,:)=x(i,:)+v(i,:); if fitness(x(i,:),D)p(i) p(i)=fitness(x(i,:),D); y(i,:)=x(i,:); end

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论