基于matlab的粒子群优化算法程序设计58236

基于matlab的粒子群优化算法程序设计58236

ID:33693703

大小:216.79 KB

页数:4页

时间:2019-02-28

基于matlab的粒子群优化算法程序设计58236_第1页
基于matlab的粒子群优化算法程序设计58236_第2页
基于matlab的粒子群优化算法程序设计58236_第3页
基于matlab的粒子群优化算法程序设计58236_第4页
资源描述:

《基于matlab的粒子群优化算法程序设计58236》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第20卷第4期柳州师专学报Vo.l20No.42005年12月JournalofLiuzhouTeachersCollegeDec.2005基于MATLAB的粒子群优化算法程序设计吴建生,秦发金(柳州师范高等专科学校数学与计算机科学系,广西柳州545004)摘要:阐述了粒子群算法的基本原理,探讨了在MATLAB环境中实现粒子群算法的编程方法,构建粒子群算法工具箱函数,通过仿真示例验证了该方法的有效性,表明它能够对函数进行全局优化。关键词:粒子群;优化算法;MATLAB;程序设计中图分类号:TP301.6文献标识码:A文章编号:1003-7020(2005)04-0097-041

2、引言群体智能算法(SwarmIntelligenceAlgorithm,SIA)的研究开始于20世纪90年代,其基本思想是模拟自然界生物的群体行[1,2,3]为来构造随机优化算法,通常单个自然界的生物并不是智能的,但是整个生物群体却表现出处理复杂问题的能力,群体智能算法就是模仿这些生物的团体行为并把它应用在人工智能问题中,其中粒子群优化算法(ParticleSwarmOptimization,PSO)就是群体智能算法的一种,它是由美国社会心理学家JamesKennedy和电气工程师RussellEberhart在1995年提出的,其[4,5,6]基本思想是对鸟群、鱼群的觅食过程

3、中的迁徙和聚集的行为模拟,并利用了生物学家FrankHeppner的生物群体模型。PSO算法是一类基于群体智能的随机优化技术,相对遗传算法而言,二者都是基于群体的迭代搜索,但是PSO算法没有交叉、变异算子,粒子群优化算法是通过个体之间的协作来搜寻最优解,它利用了生物群体中信息共享的思想,其概念简单、易于实现,同时又有深刻的智能背景,既适合科学研究,又特别适合工程应用。因此,PSO一提出,就引起了众多学者的关注,并在短[7,8]短几年的时间里出现了大量的研究成果。2PSO基本原理PSO算法是基于群体智能理论的优化算法,群体中的粒子在每次迭代搜索的过程中,通过跟踪群体2个极值:粒子

4、本身所[5,6]找到的最优解Pbest和群体找到的最优解Gbest来动态调整自己位置和速度,完成对问题寻优,对于如下的函数优化问题maxf(x1,x2,,,xn)(1)s.tR1j[xj[R2j,j=1,2,,,n[1]其计算步骤如下:(1)对粒子群中粒子的位置和速度进行随机初始化。设定群体的规模为N,则随机生成如下矩阵x11x12,x1nv11v12,v1nx21x22,x2nv21v22,v2n,(2),,,,,,,,xN1xN2,xNnvN1vN2,vNn其中{xij,i=1,2,,,N,j=1,2,,,n}表示群体中i粒子的位置为j,vij是对应它的速度,二者均为区间[

5、R1j,R2j]上均匀分布的随机数。(2)计算每个粒子的适应度(目标函数值)。(3)计算粒子所经历的最好位置pbesti(t)=(xi1,xi2,,,xim,也就是粒子所经历过的具有最好适应度的位置,由下式确定pbesti(t)f(x1(t+1),x2(t+1),,,xn(t+1))

6、),(4)(4)依据下式对粒子的速度和位置进行进化vij(t+1)=vij+c1r1(Pbesti(t)-xij(t))+c2r2(Gbesti(t)-xij(t)),(5)收稿日期:2005-09-02作者简介:吴建生(1974)),陕西咸阳人,硕士,讲师,研究方向:神经网络应用及智能优化算法;秦发金(1967)),男,广西临桂人,副教授。基金项目:广西教育科学/十五0规划课题97第20卷第4期柳州师专学报2005年12月x1j(t+1)=xij(t)+vij(t+1),(6)其中c1,2为加速度常数(学习速率),r1,2为[0,1]均匀分布的随机数。(5)判断结束条件,目标

7、函数的适应度达到足够好或者进化到预先设定的代数,否则返回步骤(2),继续进行。3用MATLAB实现粒子群算法MATLAB是MathWorks公司的产品,是一个功能强大的科学与工程计算软件,集成了计算、可视化和程序编制等功能,其[9,10]使用直观、简洁并符合人们思维习惯的代码给用户提供了一个友好的开发环境,利用MATLAB矩阵运算的强大功能编写粒子群算法程序有很好的优势。3.1粒子群的初始化initpop函数的功能是实现群体的初始化,popsize表示群体的大小,dimsize表示粒子维数,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。