




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基本粒子群算法算法原理基本粒子群算法采用常数因子 c和c2及常惯性权重可,粒子根据如下的公式来更新自 己的速度和新的位置。匕(t 1) = wVj,j(t) cVm(t)%-沧(t)x 饵 1) = X.(t) V.(t 1),j =1,2,.d算法步骤基本粒子群算法的基本步骤如下:随机初始化种群中各微粒的位置和速度;评价每个微粒的适应度,将当前各微子的位置和适应值存储在各微子的pbest中,将所有的pbest中适应最优个体的位置和适应值存储在gbest中;用下式更新粒子的速度和位移:V (t 1) = wV (t) CrP X (t) gr P X (t)i,jj,j i i i,j- j,
2、j g 2L g,j- i,jX.,j(t 1)=Xi,j(t) V,j(t 1),j-1,2,d对每个微粒,将其适应值与其经历的最好位置作比较,如果较好,将其作为当前的最好位 置;比较当前所有pbest和gbest的值,更新gbest ;若满足停止条件(通常为预设的运算精度或迭代次数),搜索停止,输出结果,否知返回(3)继续搜索。算法MATLAB实现在MATLAB中编程实现的基本粒子群算法优化函数为:PSO。功能:用基本粒子群算法求解无约束优化问题。调用格式:xm, fv = PSO( fitness N,c1,c2,w, M , D)其中,fitness :待优化的目标函数;N :粒子数目
3、;G:学习因子1 ;C2:学习因子2;w :惯性权重;M :最大迭代次数;D :自变量的个数;xm :目标函数取最小值时的自变量值;fv :目标函数的最小值。基本粒子群算法的MATLAB 代码如下:function xm,fv=PSO(fitness,N,c1,c2,w,M,D)% fitn ess :待优化的目标函数;% N:粒子数目;% cl:学习因子1;% c2:学习因子2;% w:惯性权重;% M:最大迭代次数;%。:自变量的个数;% xm:目标函数取最小值时的自变量值;% fv :目标函数的最小值。format long;for i=1:Nforj=1:Dx(i,j)=randn;%
4、随机初始化位置v(i,j)=randn ;%随机初始化速度endendfor i=1:Np(i)=fitness(x(i,:);y(i,:)=x(i,:);endpg=x(N,:); %pg为全局最优for1:(N-1)if fitness(x(i,:)fitness(pg)pg=x(i,:);endendfor t=1:Mfor 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,:)p(i)p(i)=fitness(x(i,:
5、);y(i,:)=x(i,:);endif p(i)fitness(pg)pg=y(i,:);end endendxm=pg;fv=fit ness(pg);例30采用基本粒子群算法求取 Sphere Model函数f(x)-7 x2的最小值。i 3解:本例题中函数的最小点为(为X2心)=(0 00),最小值为0,现在用PSO算法求最小值,首先看看不同迭代数对结果的影响,粒子群规模为40,学习因子都是2,惯性权重取0.5,迭代数分别取1000,5000,10000.首先建立目标函数文件fitness.m,输入下列内容:function F=fit ness(x)F=0;for i=1:30F=
6、F+x(i)A2;end在MATLAB命令窗口中输入:xm,fv=PSO(fit ness,40,2,2,0.5,1000,30)xm,fv=PSO(fit ness,40,2,2,0.5,5000,30)xm,fv=PSO(fit ness,40,2,2,0.5,10000,30)将上面求得的结果列表比较如下:迭代步数1000500010000 x1-0.1248159610.076616990.012519205x20.002098544-0.0344413010.023225914x30.3342652920.079611320.006409382x40.020930663-0.0205
7、89443-0.01245984x5-0.0223425970.0519288970.01045483x60.0710595280.0146866-0.002044968x7-0.0102492010.071374031-0.021047682x8-0.173703820.0539362690.074049957x90.044030849-0.0227154410.034692645x100.1152608770.014670858-0.014452009x11-0.0338816130.142809736-0.039527693x120.246496620.0062825960.008809
8、395x130.106152816-0.030329827-0.003126436x14-0.041429312-0.0750854530.007888331x15-0.0923389240.001383922-0.01880419x160.165928197-0.016592079-0.074531144x17-0.300160719-0.0934554250.055319274x18-0.2536121490.00385701-0.008023665x190.1897073210.027221239-0.019769054x20-0.126004501-0.0701443590.00844
9、6675x21-0.253708939-0.014838222-0.008821635x22-0.0491421820.034546978-0.033772348x230.1242394570.0188413610.010630827x24-0.068640510.012666381-0.016788305x250.193477783-0.047085223-0.019466059x26-0.082514364-0.0439247480.049907028x270.030547537-0.063624144-0.007000314x280.034872683-0.0150186970.0112
10、33546x290.017222532-0.002414611-0.023183183x300.062528682-0.0725939270.04341795函数极值0.6335670050.0827690110.026632793从上面的求解结果可以看出,在其他参数不变的情况下,一般迭代步数越大,求得的解得精度越高,但 这并不是绝对的,因为PSO算法本质上也是一种随机算法,即使用同样的参数,每一次求解也可能得出不 同的结果,同时如果对于多峰函数,PSO算法还可能陷入局部最优点。下面看看粒子群规模对结果的影响,学习因子都是2,惯性权重都是0.5,迭代步数都是10000,粒子种群规模分别取50,
11、60,80和100.在MATLAB命令窗口中输入:xm,fv=PSO(fitness,50,2,2,0.5,10000,30)xm,fv=PSO(fitness,60,2,2,0.5,10000,30)xm,fv=PSO(fitness,80,2,2,0.5,10000,30) xm,fv=PSO(fitness,100,2,2,0.5,10000,30)将上面求得点的结果列表比较如下:粒子规模506080100 x1-0.0038516160.009602536-0.021677781-0.01417639x20.028916006-0.00399180.0020802390.0066393
12、52x3-0.020816339-0.029155107-0.0146794980.006570414x4-0.013996327-0.032994703-0.023606005-0.009206691x5-0.0611956080.0153159820.0106670870.004333063x60.0594251370.0045642580.0052266920.000746219x70.025469967-0.00507466-0.0073936420.024755412x8-0.0581338050.0312299710.0111372730.001984843x9-0.0454399
13、76-0.0187316480.009383178-0.056376597x10-0.0220096990.036518558-0.0140111470.015999913x110.0565898640.005337156-0.001308054-0.026670753x120.041709956-0.0098912050.028213036-0.031919309x13-0.0107801540.0025090070.010189469-0.028577535x14-0.0061500350.0296137270.0100253470.004485906x15x16x17x18x19x20
14、x21x22x23x24x25x26x27x28x29x30函数极值-0.048458880.0063039080.009540240.0477722780.0173931080.0049338590.010141597-0.0197414150.0007111520.025022711-0.026329590.05270640.065753630.0205180430.0385902750.001238250.036343855-0.026871907 0.001120755 0.00642773 -0.022967437 -0.004758758-0.028100017 -0.000726
15、7440.0135315030.0190519490.0021108210.028880996-0.0185979560.0049487770.0063944370.006699072-0.0170227330.0102328770.0064641450.0072406060.0046881560.0040298950.009560694-0.0028791570.0077468230.005322445-0.012783715-0.008991788-0.012629268-0.017530155-0.039854583-0.026901063-0.019755395-0.0524164540.0093345340.003708717 -0.002
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车辆改装合同范本简易
- 吉林2025年01月吉林省通榆县2025年面向上半年应征入伍高校毕业生公开招考5名事业单位工作人员笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 培训机构色彩课件
- 2025年液压支架工(中级工)职业技能鉴定理论考试指导题库(含答案)
- 自体丰胸术后护理
- 英语时态小学试卷
- 砖雕工程承揽合同范本
- 2025至2030年中国成套环保污水处理设备数据监测研究报告
- 胎儿镜后护理
- 农村教师队伍建设与教育质量
- 重大危险源监理实施细则(二篇)
- 自身免疫性多内分泌腺体综合征
- 2023版个人征信模板简版(可编辑-带水印)
- IEC-60068-系列标准完整版
- 中医师承跟师笔记
- 凤飞羌舞演艺中心及演出项目可行性研究报告
- 工程电磁场教案
- 02职业生涯目标的分解和组合
- 全国2016年10月自考00043经济法概论(财经类)试题及答案
- 施工和检维修管理制度
- 建设工程档案预验收申请表
评论
0/150
提交评论