智能优化方法作业 - PSO算法
更新时间:2023-12-21 09:47:01 阅读量: 教育文库 文档下载
- 智能优化算法大作业推荐度:
- 相关推荐
智能优化方法作业
PSO算法实验报告
课程名称: 智能优化方法 作者姓名: 专 业: 控制工程
目录
第一章 问题描述 ...................................................................................... 1 第二章 算法设计 ...................................................................................... 1
2.1解及目标函数的表达................................................................................ 1
2.1.1种群的编码..................................................................................... 1 2.1.2初始种群的产生............................................................................. 1 2.1.3评价函数的构造............................................................................. 1 2.2 POS速度迭代公式 .................................................................................... 2 2.3粒子的更新................................................................................................. 2 2.4惯性权重的调整......................................................................................... 3 2.5停止准则..................................................................................................... 3
第三章 算法实现及分析 .......................................................................... 3
3.1编译环境及界面介绍................................................................................. 3 3.2 matlab中GUI界面打开的3种方式........................................................ 4
第四章 算法分析 ...................................................................................... 5
4.1 默认参数下的运行结果........................................................................... 5 4.2种群大小对算法的影响............................................................................ 6 4.3 最大迭代次数对算法的影响................................................................... 8 4.4 实验得出的“最优”参数 ........................................................................... 9
第一章 问题描述
无约束5维的Rosenbrock函数可以描述如下:
minf(x)??(100(xi?1?xi2)2?(xi?1)2)
i?1n?1(1)
其中,xi?[?30,30],i?1,2,...5。
要求按PSO算法思想设计一个该问题的求解算法,并利用计算机语言实现设计的算法。将实验报告和程序代码(带有详细注释)。
第二章 算法设计
2.1解及目标函数的表达
2.1.1种群的编码
显然对于一个粒子个体可以用一个含有5个元素的一维数组进行表示。对于一个种群这里使用pop_size×5的二维数组进行表示。其中pop_size为种群大小。
2.1.2初始种群的产生
初始种群的各个粒子均采用均匀随机产生的方式,即粒子每一位都是-30到30上的随机数。同样粒子的速度也是-40到40上的随机数。这里设置速度在-40到40内是因为限定速度的最大值为40。
2.1.3评价函数的构造
这里直接采用解的函数值作为评价函数,评价函数值越小认为该解越好。评价函数如下:
minf(x)??(100(xi?1?xi2)2?(xi?1)2)
i?1n?1(2)
其中,xi?[?30,30],i?1,2,...5。
1
2.2 POS速度迭代公式
为了改善算法的收敛性,这里采样带惯性权重的迭代公式,速度迭代公式如下: 其中:
vid?wvid?c1?(pid?xid)?c2?(pgd?xid)
(3)
vid:粒子的速度。
w:粒子的权重,为0到1的数值。表示对之前速度的一个惯性。值越小,前一时刻的速度对当前时刻速度的影响也越小。
c1:对个体所搜索过的最优值的学习因子。值越大,向个体最优值的移动速度也越大。
c2:对全局搜索过的最优值的学习因子。值越大,向全局最优值移动的速度也越大。
?,?:0到1的随机数。表示粒子学习状态的随机,有可能向全局最优值学习,有可能向个体最优值学习。也有可能几乎不学习。
pid:粒子搜索过的个体最优解。
pgd:种群搜索过的全局最优解。
可以看出,这里将整个种群视为“连通的”。即整个种群共用一个全局最优值。另外,为了保证算法的收敛性,这里对速度的最大值进行了限定。这里设定的速度最大值的绝对值为40,即粒子的每一个分量在一次迭代过程中最多跨越搜索长度的2/3。
2.3粒子的更新
粒子的更新采用如下公式: 其中:
xid?xid?vid
(4)
2
xid:粒子的位置。
这里同样对粒子的位置进行限定,即让粒子的每一个分量均在-30到30之间。
2.4惯性权重的调整
惯性权重带代表着对之前速度继承情况。一般来说,惯性权重越大全局的探索能力越强,惯性权重越小局部的开发能力越强。根据这个规律,这里采样变惯性权重的搜索方式。在搜索的开始阶段,使用较大的惯性权重,随着迭代次数的进行,逐渐减少惯性权重。使其进行更多的局部开发,寻找最优解。惯性权重调整公式如下: 其中:
wi?wmax?wmax?wmin?i
iter_max(5)
wi:第i次迭代的惯性权重。 wmax:最大惯性权重。 wmin:最小惯性权重。 iter_max:最大迭代次数。 i:当前迭代次数。
2.5停止准则
停止准则采样固定的迭代次数。
第三章 算法实现及分析
3.1编译环境及界面介绍
本次试验算法采用matlab进行实现。matlab版本为R2013b.首先我们编写了一个m脚本文件进行调试(pso_pro.m).在程序调试成功以后,为了方便讨论各个参数对算法的影响及对算法进行分析。我们又编写了一个GUI界面(PSO_pro.fig
3
或PSO_pro.m)。界面如下:
图3.1 PSO算法GUI界面
3.2 matlab中GUI界面打开的3种方式
方法一:
将文件放到matlab当前工作目录或者添加文件目录到matlab搜索目录中。然后在命令空间输入PSO_pro. 方法二:
打开PSO_pro.m文件,然后点击上方run字样的绿色箭头。 方法三:
在命令空间输入guide,选择open existing GUI->browse->PSO_pro.fig.然后点击上方的run字样的绿色箭头。
以上方法均可以打开GUI界面,但是不能直接点击PSO_pro.fig文件进行打开。这是因为这样打开GUI文件时,不会调用opening函数。即不会初始化及更新结构体。运行文件会导致错误。
4
第四章 算法分析
4.1 默认参数下的运行结果
下面是默认参数下的一种运行结果
图4.1 默认参数下的运行情况
可以看出在这些参数下,算法的收敛速度非常不错,在迭代到150次左右次之后,结果几乎不变了。最优值1.2398距离理论最优值0也是比较接近。总体来说算法表现较为良好。
然后我们多运行了几次,发现并不是每一次算法都会收敛到最优值附近。如下图所示:
5
图4.2 默认参数下收敛效果不好的情况
这是因为,这里种群的大小为20,比较少。粒子群算法作为一种随机优化方法。在初始粒子分布较近,且他们的函数值离最优值较远时。他们通过互相学习,很快的就会“聚拢”。但是因为他们函数值较差,所以会出现求解失败的情况。这里由迭代曲线可以看出,在不到40代的时候,粒子几乎已经收拢了,不会出现更新到更好解的情况了。下面分别讨论一些参数对算法的影响。
4.2种群大小对算法的影响
下面是将种群大小改为30后,其中的一次较好的迭代结果:
6
图4.3 种群大小=30较好的一次结果
可以看出,当把种群大小改为30后,算法的收敛速度更快了(坐标轴从10^10到10^-30变化)。同时求解的效果也非常的好。另外,由迭代曲线可以看出,粒子并没有完全“聚拢”,最优值还可以继续下降。这里1.0000是显示精度不足,并不是代表1.
同样多运行几遍程序,发现很少出现求解失败的情况,即使求解失败,其最优值和之前求解失败的情况相比,也有明显的下降。如下图所示:
7
图4.4 种群大小=30求解失败的情况
另外,我们又将种群大小改为40,50,60.发现当种群大小超过40后,求解精度几乎为10^(-5)以上.同时几乎不存在求解失败的情况。
总结:随着种群的增加,系统求解到最优值的精度越来越高。同时系统求解成功的概率也越来越高。系统求解成功的概率和种群的大小密切相关。
4.3 最大迭代次数对算法的影响
下面是将最大迭代次数改为300后的一次运行结果:
8
图4.5 迭代次数=300的运行结果
可以看出,当增加迭代次数时,求解的结果也会越来越好。
但是通过多次运行发现,算法求解失败的概率几乎没有改变。这是因为算法的求解是否成功和种群的大小、他们的初始位置有关以及速度惯性权重有关。而和迭代次数关系不大,由上图可以发现在230次的时候,粒子几乎已经“聚拢”了。这时即使增加迭代次数,粒子也不会再进行广域的探索了。
结论:迭代次数越多,求解的精度越高。但求解的成功概率几乎不变。
4.4 实验得出的“最优”参数
通过一系列的测试,我们发现在以下这组参数下,算法用时最少,同时比较容易得到最优值。
9
图4.6 最优参数下的结果
可以看出算法可以收敛到10^(-30)以上,已经超过了matlab的最小数字。求解到了问题的最优值。而且差不多刚好在300代左右迭代到最优值,没有过多的浪费时间。
事实上,权重的设置对算法的影响也比较大。这里由于得到的结论和算法的理论分析相同,便不再赘述了。
10
正在阅读:
智能优化方法作业 - PSO算法12-21
水泥混凝土路面施工方案04-05
(完整版)植物生理学第六版课后习题答案_(大题目)03-20
精品阅读之文言文试题06-07
河南省农村能源环保信息03-05
妈妈眼中的我作文350字06-28
IT管理方案建议书0901 - 图文03-08
学习指导 文档12-16
《西游记》续写700字07-03
心照一生歌词02-13
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 算法
- 作业
- 优化
- 智能
- 方法
- PSO
- 二年级奥数学习讲义 第38讲 简单推理 练习及答案
- 塑胶跑道施工组织设计 - 图文
- 最新2016-2017学年秋季学期人教版pep小学五年级英语上册教案收藏版完整版本教材教案
- 关于汽运集团文化旅游发展现状及设想的汇报材料
- 语文教学:呼唤诗性 - 诗歌教学随想 - 1
- 动词固定搭配练习题
- 初中语文 说明文阅读理解分类练习 让脚告诉你 新人教版
- 废旧塑料生产建设项目建议书
- 山东省济宁市嘉祥一中2013-2014学年高一5月质量检测地理试卷(带解析)
- 高二化学第三章晶体结构与性质习题
- 伯努利方程的讨论
- 教师每周粉笔字练习内容
- 外出交流学习心得
- 1-工程勘察设计取费标准2002
- 形成性考核作业(二)
- 电气本1301班黄青云数字电子钟 - 图文
- 四五年级情景作文
- 关于举办计算机技能培训的通知
- 《明朝的那些事儿》人物统计表
- xx年学雷锋活动总结范文