




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用MATLAB编写PSO算法及实例1.1 粒子群算法PSO从这种模型中得到启示并用于解决优化问题。PSO 中,每个优化问题的潜在解都是搜索空间中的一只鸟,称之为粒子。所有的粒子都有一个由被优化的函数决定的适值( fitness value) ,每个粒子还有一个速度决定它们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。PSO初始化为一群随机粒子(随机解),然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个极值来更新自己;第一个就是粒子本身所找到的最优解,这个解称为个体极值;另一个极值是整个种群目前找到的最优解,这个极值是全局极值。另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。假设在一个维的目标搜索空间中,有个粒子组成一个群落,其中第个粒子表示为一个维的向量,。第个粒子的“飞行 ”速度也是一个维的向量,记为,。第个粒子迄今为止搜索到的最优位置称为个体极值,记为,。整个粒子群迄今为止搜索到的最优位置为全局极值,记为在找到这两个最优值时,粒子根据如下的公式(1.1)和( 1.2)来更新自己的速度和位置: (1.1) (1. 2)其中:和为学习因子,也称加速常数(acceleration constant),和为0,1范围内的均匀随机数。式(1.1)右边由三部分组成,第一部分为“惯性(inertia)”或“动量(momentum)”部分,反映了粒子的运动“习惯(habit)”,代表粒子有维持自己先前速度的趋势;第二部分为“认知(cognition)”部分,反映了粒子对自身历史经验的记忆(memory)或回忆(remembrance),代表粒子有向自身历史最佳位置逼近的趋势;第三部分为“社会(social)”部分,反映了粒子间协同合作与知识共享的群体历史经验。二、算法设计2.1 算法流程图2.2 算法实现算法的流程如下: 初始化粒子群,包括群体规模,每个粒子的位置和速度 计算每个粒子的适应度值;%它的适应度就是指目标函数的值。一般来说,目标函数的选择由具体问题来决定,假如是背包问题,适应度即放入包中物体的总价格。 初始粒子位置和速度的位置一般随机产生。但是在某些领域,如果已有其他的算法可以产生可行解的话,可以用这个可行解来初始化,这样更容易得到最优的解 对每个粒子,用它的适应度值和个体极值比较,如果 ,则用替换掉; 对每个粒子,用它的适应度值和全局极值比较,如果则用替; 根据公式(1.1),(1.2)更新粒子的速度和位置 ; 如果满足结束条件(误差足够好或到达最大循环次数)退出,否则返回。2.3 参数选择 本算法中主要的参数变量为(惯性权值), ,(加速因子),N (种群数),M (迭代次数),D (粒子维数)。(1)种群规模通常,种群太小则不能提供足够的采样点,以致算法性能很差;种群太大尽管可以增加优化信息,阻止早熟收敛的发生,但无疑会增加计算量,造成收敛时间太长,表现为收敛速度缓慢。种群规模一般设为1001000。本文选择种群规模为100。(2)最大迭代次数迭代次数越多能保证解的收敛性,但是影响运算速度,本文选1000次。(3)惯性权值惯性权重表示在多大程度上保留原来的速度。较大,全局收敛能力强,局部收敛能力弱;较小,局部收敛能力强,全局收敛能力弱。本文选0.6。(4)加速因子加速常数和分别用于控制粒子指向自身或邻域最佳位置的运动。文献20建议,并通常取。本文也取。(5)粒子维数本文中粒子维数取决于待优化函数的维数。需要说明的是,本文的程序允许改变这些参数,因为本文编写的程序参照matlab工具箱,留给用户解决这类问题一个接口函数,上述的各个参数正是接口函数的参数,因此允许改变。另外对于和c也可采用变参数法,即随迭代次数增加,利用经验公式使它们动态调整,本文采用固定值。3.1求三维函数f=x(1).2+x(2).2+x(3).2 的最小值 步骤:1.初始化x,v; 2.求出每个粒子的适应值;3.初始化pb,pg个体最优和全局最优;4.根据式子更新x,v; 5.是否满足条件,满足跳出循环,否则重复2-4步尝试编码:(1)pso.m 文件%此算法是PSO算法,汪汪的20161024号版本functionxm,fv=PSO(fitness,N,c1,c2,w,M,D)%xm,fv算法最后得到的最优解时的x及最优解,fitness为适应度,即要优化的目标函数,N为种群数量,c1,c2为学习因子,w为惯性权重,M为迭代次数,D为粒子的维数%format long;%初始化种群for i=1:N for j=1:D x(i,j)=randn; %随机初始化位置 v(i,j)=randn; %随机初始化速度 endend%先计算各个粒子的适应度pi,并初始化y-粒子个体极值,pg-全局极值for i=1:N p(i)=fitness(x(i,:); %适应度 问题:将x(i,:)改成x(i,j)是否可以,答不能 y(i,:)=x(i,:); %个体极值endpg=x(N,:);%初始化全局极值/最优for i=1:N-1 if fitness(x(i,:)fitness(pg) pg=x(i,:);%替换并选出全局极值 endend%进入粒子群算法主要循环,更新v及xfor t=1:M for i=1:N v(i,:)=w*v(i,:)+c1*rand*(y(1,:)-x(1,:)+c2*rand*(pg-x(i,:); x(i,:)=x(i,:)+v(i,:); if fitness(x(i,:)p(i) p(i)=fitness(x(i,:); y(i,:)=x(i,:); end if p(i)fitness(pg) pg=y(i,:); end end pbest(t)=fitness(pg);%M次迭代后最优解endxm=pg;%为何要共轭转置?fv=fitness(pg); (2)目标函数fitness.m文件function f=fitness(x)f=x(1).2+x(2).2+x(3).2 ;end需要说明的是,针对不同的函数优化,只需要改变目标函数就可以。(3)在命令行输入或建立调用m文件 在命令行先后输入xm,fv = PSO(fitness,100,2,2,0.6,1000,3),或建立包涵该语句的m文件,运行即可得到结果。四、 结果与分析xm=1.0e-04 * -0.285730140229565 0.676783696397148 -0.250529540096653fv = 6.024429352056337e-09fv是最优值,xm为最优值对应的自变量值。3.2 高斯函数x y=meshg
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 192-2025普通螺纹牙型
- GB/T 45641-2025开士哥拉毛
- 2024-2025学年鲁教版(五四制)七年级数学下册期末考试计算专练
- 2021-2026年中国电液执行机构行业投资分析及发展战略咨询报告
- 焦末项目投资可行性研究分析报告(2024-2030版)
- 中国网络整合营销服务行业市场行情动态分析及发展前景趋势预测报告
- 2025年 兴化市明德技工学校招聘考试笔试试题附答案
- 2025年 黑龙江烟草考试试题附答案
- 2024年中国丁二烯橡胶行业市场调查报告
- 2025年中国存储部件行业市场深度分析及投资策略研究报告
- 2024年湖南省公安厅招聘警务辅助人员笔试真题
- 弘扬中国精神的课件
- 2025年高考英语全国二卷试题含答案
- 2025江苏扬州宝应县“乡村振兴青年人才”招聘67人笔试备考题库及完整答案详解一套
- 云南省玉溪市2023-2024学年高二下学期期末教学质量检测语文试卷(含答案)
- 抚州市乐安县招聘城市社区工作者笔试真题2024
- 网络服务器配置与管理(微课版) 教案 项目02 虚拟化技术和VMware-2
- 2025年西式面点师(中级)面包烘焙实操考试试卷
- T/CAPEC 3-2018汽轮机制造监理技术要求
- 工程完工后的回访与保修服务承诺
- 医疗质量管理质控科的未来发展趋势与挑战
评论
0/150
提交评论