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

文章目录

  • 一、目标函数
  • 二、随机权重的计算公式
  • 三、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. 服务器可以响应字符类型的数据吗,HTTP - Response
  2. 机器人会模仿人类微笑了,但我总觉得这笑容……
  3. kubernetes集群网络配置方案——flannel部署
  4. 【Excle数据透视表】如何创建非共享缓存的数据透视表
  5. css实现圆形钟表,js+css3圆形指针时钟代码
  6. 统计apache404错误ip并加入iptables防火墙
  7. Android中已经添加权限,依然提示缺少权限,此时你需要添加动态权限
  8. Eclipse常用快捷键(转载)
  9. 详解 | Spring Boot 最核心的 3 个注解详解
  10. A10 平板开发一硬件平台搭建
  11. C++中sort排序之自定义排序cmp(入门)
  12. java和python互相调用
  13. Elasticsearch 5.x 源码分析(3)from size, scroll 和 search after
  14. 算法:唯一路径Unique Paths 动态规划和二项系数解法
  15. 大一c语言练习及答案,大一c语言习题练习及答案.doc
  16. java监控屏幕_Java实现简单屏幕监控
  17. 联想电脑 Windows10 20H2 32位64位 专业版 V2021【OEM原版镜像】
  18. C#窗体 绘画一棵树
  19. 2022群发邮件软件有哪些?哪个好用呢?解读如何大量群发邮件及单显功能
  20. schannel: next InitializeSecurityContext failed: SEC_E_ILLEGAL_MESSAGE (0x80090326)

热门文章

  1. godot mysql_Go 每日一库之 godotenv
  2. 微信企业号和手机关联的方式
  3. ♠Linux命令随笔
  4. 基于MXL90614设计温度传感器
  5. [位压] 高精度加法
  6. 【博学谷学习记录】超强总结,用心分享丨一种创新的表格
  7. matlab 符号值转为实数,Matlab:在实现二进制到实数转换的公式时,无法获得唯一的有理数Part1...
  8. 微信小程序与公众号区别PHP,微信小程序和微信公众号的区别是什么?
  9. Latex初次使用可能用到的小细节
  10. Vue3 使用 element-plus 不生效的原因之一