随机权重的PSO算法
选用随机的权重,可以在多峰函数求解的时候,避免陷入局部最优。
文章目录
- 一、目标函数
- 二、随机权重的计算公式
- 三、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算法相关推荐
- 优化算法 | 随机漂移粒子群优化算法(附标准PSO算法Python工具包)
目录 ▎标准PSO算法 ▎RDPSO算法 ▎标准PSO算法Python工具包 01 | 工具包适用范围 02 | 工具包安装方法 03 | 工具包使用实例 ▎参考文献 今天为各位讲解一种改进的粒子群优 ...
- 一种非线性动态自适应惯性权重PSO算法-附代码
一种非线性动态自适应惯性权重PSO算法 文章目录 一种非线性动态自适应惯性权重PSO算法 1.粒子群优化算法 2. 改进粒子群算法 2.1 改进的动态自适应惯性权重 PSO 算法 3.实验结果 4.参 ...
- PSO算法文献阅读笔记
粒子群算法读书笔记精读 2020<电子信息学报>基于非线性降维的自然计算方法 孙小晴(2020-04-28) 1针对问题 高维大规模优化问题,陷入局部最优与收敛速度和时间复杂度的矛盾. 2 ...
- Particle Swarm Optimization粒子群优化算法(PSO算法)概念及实战
Particle Swarm Optimization 粒子群算法(PSO算法) 定义 粒子群算法,又称粒子群优化算法(Particle Swarm Optimization),缩写为 PSO, 是近 ...
- pso算法matlab程序,基本PSO算法的matlab源程序
<基本PSO算法的matlab源程序>由会员分享,可在线阅读,更多相关<基本PSO算法的matlab源程序(2页珍藏版)>请在人人文库网上搜索. 1.主函数源程序( main. ...
- 粒子群优化算法(PSO算法)
目录 粒子群算法的发展 粒子群算法的概述 粒子群算法的步骤与实现 算法步骤 算法的实现(MATLAB) 调用示例 关于惯性权重[^7] 自适应权重法 随机权重法 关于学习因子[^8] 同步变化的学习因 ...
- 算法 - 粒子群(PSO)算法
文章目录 0. 简介 1. 原理 2. 流程 3. 代码 4. 权重的选择 0. 简介 粒子群算法( particle swarm optimization, PSO)是计算智能领域,除了蚁群算法.鱼 ...
- 粒子群PSO算法 python实现(亲测)
受到生物学家Frank Heppner建立的鸟群运动模型影响,James Kennedy和Russell Eberhart于1995年提出了粒子群优化算法(Particle Swarm Optimiz ...
- PSO算法优化应用实例(2020.09.24)
PSO算法解决函数优化问题 考虑下面的优化函数 PSO算法简要介绍 第一步,群体粒子的初始化 第二步,更新每个粒子的速度和位置 第三步,根据粒子的适应值来更新个体的历史极值并计算全局极值 最后 考虑下 ...
最新文章
- 服务器可以响应字符类型的数据吗,HTTP - Response
- 机器人会模仿人类微笑了,但我总觉得这笑容……
- kubernetes集群网络配置方案——flannel部署
- 【Excle数据透视表】如何创建非共享缓存的数据透视表
- css实现圆形钟表,js+css3圆形指针时钟代码
- 统计apache404错误ip并加入iptables防火墙
- Android中已经添加权限,依然提示缺少权限,此时你需要添加动态权限
- Eclipse常用快捷键(转载)
- 详解 | Spring Boot 最核心的 3 个注解详解
- A10 平板开发一硬件平台搭建
- C++中sort排序之自定义排序cmp(入门)
- java和python互相调用
- Elasticsearch 5.x 源码分析(3)from size, scroll 和 search after
- 算法:唯一路径Unique Paths 动态规划和二项系数解法
- 大一c语言练习及答案,大一c语言习题练习及答案.doc
- java监控屏幕_Java实现简单屏幕监控
- 联想电脑 Windows10 20H2 32位64位 专业版 V2021【OEM原版镜像】
- C#窗体 绘画一棵树
- 2022群发邮件软件有哪些?哪个好用呢?解读如何大量群发邮件及单显功能
- schannel: next InitializeSecurityContext failed: SEC_E_ILLEGAL_MESSAGE (0x80090326)
热门文章
- godot mysql_Go 每日一库之 godotenv
- 微信企业号和手机关联的方式
- ♠Linux命令随笔
- 基于MXL90614设计温度传感器
- [位压] 高精度加法
- 【博学谷学习记录】超强总结,用心分享丨一种创新的表格
- matlab 符号值转为实数,Matlab:在实现二进制到实数转换的公式时,无法获得唯一的有理数Part1...
- 微信小程序与公众号区别PHP,微信小程序和微信公众号的区别是什么?
- Latex初次使用可能用到的小细节
- Vue3 使用 element-plus 不生效的原因之一