选用随机的权重,可以在多峰函数求解的时候,避免陷入局部最优。

文章目录

  • 一、目标函数
  • 二、随机权重的计算公式
  • 三、MATLAB代码实现
  • 四、测试

一、目标函数

y=x(1)^2+2*x(2)^4;

二、随机权重的计算公式

权重可以理解为所占工作量的大小及影响整体能力的程度。

权重w设定为某种随机分布的随机数,当粒子在起始位置接近最优点时候,权重最小,加快算法的收敛。同时也可以克服在初期找不到最优点的局限。

%w=u+m*N(0,1)
%u=u(min)+[u(max)-u(min)]*rand(0,1)

三、MATLAB代码实现

随机权重的PSO:

function [xm,fv]=suijiquanzhongPSO(suijiquanzhonghanshu,N,c1,c2,meanmax,meanmin,sigma,M,D)
%目标函数、粒子数、学习因子、学习因子、最大权重、最小权重、方差、迭代步数
format long;
for i=1:Nfor j=1:D%初始化位置x(i,j)=randn;%初始化速度v(i,j)=randn;end
end
%计算适应度
for i=1:Np(i)=suijiquanzhonghanshu(x(i,:));y(i,:)=x(i,:);
end
zuiyou=x(N,:);%全局最优
for i=1:N-1if suijiquanzhonghanshu(x(i,:))<suijiquanzhonghanshu(zuiyou)zuiyou=x(i,:);end
end
%迭代求解
for t=1:Mfor i=1:Nmiu=meanmin+(meanmax-meanmin)*rand();w=miu+sigma*randn();v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(zuiyou-x(i,:));x(i,:)=x(i,:)+v(i,:);if suijiquanzhonghanshu(x(i,:))<p(i)p(i)=suijiquanzhonghanshu(x(i,:));y(i,:)=x(i,:);endif p(i)<suijiquanzhonghanshu(zuiyou)zuiyou=y(i,:);endendpbest(t)=suijiquanzhonghanshu(zuiyou);
end
r=[1:1:100];
plot(r,pbest,'r--','linewidth',2);
xlabel('迭代次数');ylabel('适应度');
title('随机权重策略自适应算法收敛曲线');
grid on
hold on
xm=zuiyou';
fv=suijiquanzhonghanshu(zuiyou);

目标函数:

function y=suijiquanzhonghanshu(x)
y=x(1)^2+2*x(2)^4;
end
%w=u+m*N(0,1)
%u=u(min)+[u(max)-u(min)]*rand(0,1)

四、测试

在命令行输入

[xm,fv]=suijiquanzhongPSO(@suijiquanzhonghanshu,100,2,2,0.8,0.5,0.2,100,2)

选取参数含义为:
目标函数:suijiquanzhonghanshu
粒子数:100
学习因子:2
权重最大值:0.8
权重最小值:0.5
随机权重平均值的方差:0.2
迭代步数:100

结果


得到理论最小值点为xm所表示:(-0.000004443481202e-04, -0.408099448228020e-04)
最小值fv所表示为: 5.744903292062844e-18

根据检验,图像符合实际,所以计算的结果可以认为是准确的。

如有遗漏或者错误,请在评论区中指正!

随机权重的PSO算法相关推荐

  1. 优化算法 | 随机漂移粒子群优化算法(附标准PSO算法Python工具包)

    目录 ▎标准PSO算法 ▎RDPSO算法 ▎标准PSO算法Python工具包 01 | 工具包适用范围 02 | 工具包安装方法 03 | 工具包使用实例 ▎参考文献 今天为各位讲解一种改进的粒子群优 ...

  2. 一种非线性动态自适应惯性权重PSO算法-附代码

    一种非线性动态自适应惯性权重PSO算法 文章目录 一种非线性动态自适应惯性权重PSO算法 1.粒子群优化算法 2. 改进粒子群算法 2.1 改进的动态自适应惯性权重 PSO 算法 3.实验结果 4.参 ...

  3. PSO算法文献阅读笔记

    粒子群算法读书笔记精读 2020<电子信息学报>基于非线性降维的自然计算方法 孙小晴(2020-04-28) 1针对问题 高维大规模优化问题,陷入局部最优与收敛速度和时间复杂度的矛盾. 2 ...

  4. Particle Swarm Optimization粒子群优化算法(PSO算法)概念及实战

    Particle Swarm Optimization 粒子群算法(PSO算法) 定义 粒子群算法,又称粒子群优化算法(Particle Swarm Optimization),缩写为 PSO, 是近 ...

  5. pso算法matlab程序,基本PSO算法的matlab源程序

    <基本PSO算法的matlab源程序>由会员分享,可在线阅读,更多相关<基本PSO算法的matlab源程序(2页珍藏版)>请在人人文库网上搜索. 1.主函数源程序( main. ...

  6. 粒子群优化算法(PSO算法)

    目录 粒子群算法的发展 粒子群算法的概述 粒子群算法的步骤与实现 算法步骤 算法的实现(MATLAB) 调用示例 关于惯性权重[^7] 自适应权重法 随机权重法 关于学习因子[^8] 同步变化的学习因 ...

  7. 算法 - 粒子群(PSO)算法

    文章目录 0. 简介 1. 原理 2. 流程 3. 代码 4. 权重的选择 0. 简介 粒子群算法( particle swarm optimization, PSO)是计算智能领域,除了蚁群算法.鱼 ...

  8. 粒子群PSO算法 python实现(亲测)

    受到生物学家Frank Heppner建立的鸟群运动模型影响,James Kennedy和Russell Eberhart于1995年提出了粒子群优化算法(Particle Swarm Optimiz ...

  9. PSO算法优化应用实例(2020.09.24)

    PSO算法解决函数优化问题 考虑下面的优化函数 PSO算法简要介绍 第一步,群体粒子的初始化 第二步,更新每个粒子的速度和位置 第三步,根据粒子的适应值来更新个体的历史极值并计算全局极值 最后 考虑下 ...

最新文章

  1. 计算机科学summer program,UCBLeadershipandInnovationSummerProgram加州大学伯克利分校夏季领导力创新课程.doc...
  2. 更新失败无法连接更新服务器未响应,逆水寒客户端更新失败_长时间停滞未响应相关问题解答[图]...
  3. C++vector容器-构造函数
  4. 前端学习(2999):vue+element今日头条管理--element导入
  5. 强大的DataGrid组件[12]_分组(Group)——Silverlight学习笔记[20]
  6. xamarin.android 图片高斯模糊效果
  7. 大道至简-第一张 伪代码
  8. Android 存储学习之在内部存储中读写文件
  9. 【JY】精彩仿真书籍推荐与投票~
  10. C语言实现贪吃蛇(简易)
  11. 豆瓣TOP250爬虫,数据分析项目实战——pyecharts
  12. 计算机,通信,自动化等方向期刊排名
  13. 马科维茨投资组合理论(均方模型)(1)
  14. 【华为机试真题 Python实现】黑板上的数字涂颜色【2022 Q1 Q2 |100分】
  15. Docker Windows Containers
  16. 给你的App添加动画效果
  17. 从零开始搭二维激光SLAM --- Hector论文公式推导与相关代码解析
  18. Android App开发基础篇—数据存储(SQLite数据库)
  19. VLC 视频转成rtsp流
  20. Linux、UNIX 下磁带机设备(Tape)的管理和使用

热门文章

  1. oracle 2018 拉里,Oracle拉里,有新武器对付SAP和HANA
  2. 三菱PLC模板程序FX5U轴FB块 使用ST语言编写的轴FB块,包含原点复归,点动,定位运动
  3. office运行时错误,部分系统文件可能丢失或已损坏(错误代码:0x80040154)
  4. springboot+微信小程序“微印象”在线打印预约系统的设计与实现毕业设计源码061642
  5. Activiti6 流程模型图中文显示为方块□□
  6. 德州仪器TI芯片实时监控自动抢购
  7. HTTP代理IP的三种使用方法
  8. 社工工具包 SEToolkit
  9. Convert() 转换时 报错:输入字符串的格式不正确
  10. php必应收录查询api,必应 Web 搜索 API v7.0