matlab优化算法案例分析与应用_最优化计算与matlab实现(18)——粒子群优化算法——权重改进的粒子群算法...
参考资料
《精通MATLAB最优化计算(第二版)》
编程工具
Matlab 2019a
目录
石中居士:最优化计算与Matlab实现——目录zhuanlan.zhihu.com
权重改进的粒子群算法
在微粒群算法的可调整参数中,惯性权重
较大的
,根据不同的权重变化公式,可得到不同的PSO算法,常见的有线性递减权重法、自适应权重法、随机权重法。
线性递减权重法
- 原理
由于较大的惯性因子有利于跳出局部极小点,便于全局搜索,而较小的惯性因子则有利于对当前的搜索区域进行精确局部搜索,以利于算法收敛,因此针对PSO算法容易早熟以及算法后期易在全局最优解附近产生振荡现象,可以采用线性变化的权重,让惯性权重从最大值
,
其中,
- 算法步骤
线性递减粒子群算法的基本步骤如下:
【1】随机初始化种群中各微粒的位置和速度;
【2】评价每个微粒的适应度,将当前各微粒的位置和适应值存储在各微粒的pbest中,将所有pbest中适应值最优个体的位置和适应值存储于gbest中;
【3】用下式更新粒子的速度和位移:
【4】更新权重
【5】对每个微粒,将其适应值与其经历过的最好位置作比较,如果较好,则将其作为当前的最好位置;比较当前所有pbest和gbest的值,更新gbest;
【6】若满足停止条件(通常为预设的运算精度或迭代次数),搜索停止,输出结果,否则返回【3】继续搜索。
- Matlab代码与试算
用线性递减权重的粒子群算法求函数
解:此函数的最小点为
建立目标函数文件fitness.m
fitness.m
function
test.m
[
LDW_PSO.m
function
命令行窗口
x_optimization
对于本例题中的函数而言,用线性递减权重的粒子群算法求得了非常精确的最优点。但是在实际问题中,对于不同问题,其每次迭代所需的比例关系并不相同,所以
此外,如果在进化初期搜索不到最优点,随着
自适应权重法
- 原理
为了平衡PSO算法的全局搜索能力和局部改良能力,还可采用非线性的动态惯性权重系数公式,其表达式如下:
其中
自适应权重。
当各微粒的目标值趋于一致或者趋于局部最优时,将使惯性权重增加,而各微粒的目标值比较分散时,将使惯性权重减小,同时对于目标函数值优于平均目标值的微粒,其对应的惯性权重因子较小,从而保护了该微粒,反之对于目标函数值差于平均目标值的微粒,其对应的惯性权重因子较大,使得该微粒向较好的搜索区域靠拢。
- 算法步骤
自适应权重粒子群算法的基本步骤如下:
【1】随机初始化种群中各微粒的位置和速度;
【2】评价每个微粒的适应度,将当前各微粒的位置和适应值存储在各微粒的pbest中,将所有pbest中适应值最优个体的位置和适应值存储于gbest中;
【3】用下式更新粒子的速度和位移:
【4】更新权重
【5】对每个微粒,将其适应值与其经历过的最好位置作比较,如果较好,则将其作为当前的最好位置;比较当前所有pbest和gbest的值,更新gbest;
【6】若满足停止条件(通常为预设的运算精度或迭代次数),搜索停止,输出结果,否则返回【3】继续搜索。
- Matlab代码与试算
用自适应权重的粒子群算法求函数
的最小值。取粒子数为40,学习因子都取2,最大惯性权重取0.9,最小惯性权重取0.6,迭代步数取10000。
解:建立fitness.m文件
fitness.m
function
test.m
[
AW_PSO.m
function
命令行窗口
x_optimization =1.0e-06 *0.172784775909731-0.008767853535804f_optimization =0
本例题中的函数的最小点为
随机权重法
- 原理
将PSO算法中设定
首先,如果在进化初期接近最好点,随机
的随机生成可以克服这种局限。
计算公式如下:
其中
- 算法步骤
随机权重粒子群算法的基本步骤如下:
【1】随机初始化种群中各微粒的位置和速度;
【2】评价每个微粒的适应度,将当前各微粒的位置和适应值存储在各微粒的pbest中,将所有pbest中适应值最优个体的位置和适应值存储于gbest中;
【3】用下式更新粒子的速度和位移:
【4】更新权重
【5】对每个微粒,将其适应值与其经历过的最好位置作比较,如果较好,则将其作为当前的最好位置;比较当前所有pbest和gbest的值,更新gbest;
【6】若满足停止条件(通常为预设的运算精度或迭代次数),搜索停止,输出结果,否则返回【3】继续搜索。
- Matlab代码与试算
求下面函数的最小值
取粒子数为40,学习因子都取2,随机权重平均值的最大值取0.8,随机权重平均值的最小值取0.5,随机权重平均值的方差取0.2,迭代步数取10000。
解:首先建立目标函数文件fitness.m文件
fitness.m
function
test.m
[
RW_PSO.m
function
命令行窗口
x_optimization =-0.0898420111454120.712656402204421f_optimization =-1.031628453489878
本题中的函数的理论最小点有两个,分别为
目录
石中居士:最优化计算与Matlab实现——目录zhuanlan.zhihu.com
matlab优化算法案例分析与应用_最优化计算与matlab实现(18)——粒子群优化算法——权重改进的粒子群算法...相关推荐
- 【聚类算法】基于matlab改进的粒子群算法优化K-means算法【含Matlab源码 1946期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[聚类算法]基于matlab改进的粒子群算法优化K-means算法[含Matlab源码 1946期] 点击上面蓝色字体,直接付费下载,即可 ...
- 基于莱维飞行改进的粒子群算法输电线桩路径优化,粒子群算法通过shubert函数测试效果,混沌粒子群
摘要 环境保护,节能减排,减少碳排放越来越受到现代社会的重视,本文利用莱维飞行改进的粒子群算法优化输电线桩路径,对输电线路路径进行优化设计并加以合理选择,有助于构建稳定.高效的输电网络,保证电能供给质 ...
- 机器学习中的数学——粒子群算法(Particle Swarm Optimization, PSO)(三):改进的粒子群算法
分类目录:<机器学习中的数学>总目录 相关文章: · 梯度下降法(Gradient Descent) · 随机梯度下降(Stochastic Gradient Descent, SGD) ...
- c++分治法求最大最小值实现_最优化计算与matlab实现(12)——非线性最小二乘优化问题——G-N法...
参考资料 <精通MATLAB最优化计算(第二版)> 编程工具 Matlab 2019a 目录 石中居士:最优化计算与Matlab实现--目录zhuanlan.zhihu.com 非线性最 ...
- 【数据聚类】基于改进的粒子群算法优化K-means算法实现数据分类含Matlab源码
1 简介 针对传统的K-means算法对初始聚类中心的选取敏感,容易收敛到局部最优的缺点,提出一种基于改进粒子群优化算法(PSO)的K-means优化聚类算法.该算法利用PSO算法强大的全局搜索能力对 ...
- matlab求二元函数极值算法_最优化计算与matlab实现(3)——进退法
参考资料 <精通MATLAB最优化计算(第二版)> 数值实现 Matlab 2019a 目录 石中居士:最优化计算与Matlab实现--目录zhuanlan.zhihu.com 进退法 ...
- 【MATLAB第6期】基于MATLAB的粒子群及若干改进的粒子群算法原理介绍 持续更新
一.经典粒子群PSO算法 1 思想来源 粒子群优化(Particle Swarm Optimization,PSO) 作为进化计算的一个分支,是由 Eberhart 和 Kennedy 于 1995 ...
- 【路径规划】改进的粒子群算法路径规划【含Matlab源码 491期】
⛄一.粒子群算法简介 1 引言 自然界中的鸟群和鱼群的群体行为一直是科学家的研究兴趣所在.生物学家Craig Reynolds在1987年提出了一个非常有影响的鸟群聚集模型,在他的仿真中,每一个个体都 ...
- php案例分析百度云_百度阅读|助力推动阅读领域无障碍优化(二)
三.百度阅读无障碍解决方案 (一)前期深度调研了解视障用户阅读习惯及需求 在深圳市信息无障碍研究会的支持下,对视障用户阅读内容及阅读操作习惯进行了深度调研.大部分视障用户在调研过程中提供了多方面的建议 ...
最新文章
- EasyUI中进度条的简单使用
- 文本分类入门(四)训练Part 1
- python实现网页登录时的rsa加密流程
- Python基础(5) - 文件
- Django从理论到实战(part10)--URL命名与反转
- vmware中centos6.4突然无法进入图形界面解决方法
- php pg_fetch_row,pg_fetch_row
- linux之我常用的20条命令( 之三)
- 网络编程与分层协议设计:基于linux平台实现,网络编程与分层协议设计基于Linux平台实现[按需印刷]...
- 支持linux_Linux的UL库 支持MCC数据采集卡
- 【python练习题01】字符串格式化输出
- VS2017配置opencv-c++
- JDK动态代理和CGLIB动态代理介绍
- 用pcdet跑deecamp20_liadr3-1
- 你可以不信元宇宙,但请不要错过硬件光线追踪技术的先机
- Unknown host ‘dl.google.com‘ You may need to adjust the proxy settings in Gradle的解决方案
- 最新!!! iOS app添加微信授权登录——Qt for IOS
- 如何写好一个2Take1 Lua - 搭建Lua环境
- mariadb mysql.h_MariaDB(MySQL)的常用命令1 【检索数据】
- SpringCloudAlibaba【四】Nacos Config 多环境切换与公共配置
热门文章
- 迁移Net项目为Net Core\Standard项目
- 开源分享 Unity3d客户端与C#分布式服务端游戏框架
- 在CentOS上使用Jexus托管运行 ZKEACMS
- JS使用按位异或方式加密字符串
- Redis -- Hash(哈希) [3]
- C语言试题八十二之输入小写字母,把小写字母转换成大写字母。
- 贪心算法之最短路径问题(Dijkstra算法)
- sqlite数据库备份还原、导出导入
- Android之Activity的4种加载模式
- server如何调用 thrift_Thrift总结(二)如何快速创建自己的RPC服务