INFO:一种基于向量加权平均的高效优化算法【免费获取Matlab代码】

目录

    • 1.背景
    • 2.算法原理
      • 2.1算法思想
      • 2.2算法过程
    • 3.结果展示
    • 4.参考文献
    • 5.代码获取


1.背景

2022年,I Ahmadianfar受到基于向量加权平均方法启发,提出了加权平均向量优化算法(weIghted meaN oF vectOrs, INFO)。

在这里插入图片描述
在这里插入图片描述

2.算法原理

2.1算法思想

INFO 是一种修改过的加权平均方法,采用加权平均的思想来构建稳固的结构,并通过三个核心程序更新向量的位置:更新规则、向量组合和局部搜索。更新规则阶段基于基于平均的法则和加速收敛生成新向量,向量组合阶段结合获得的向量和更新规则以达到有希望的解决方案,局部搜索阶段帮助该算法逃离低精度的解决方案,并提高利用率和收敛性。

在这里插入图片描述

2.2算法过程

更新规则阶段

在INFO算法中,更新规则算子增加了种群在搜索过程中的多样性。这个算子使用向量的加权平均值来创建新的向量。基于平均的规则被应用于MeanRule:
M e a n R u l e = r × W M 1 l g + ( 1 − r ) × W M 2 l g (1) MeanRule=r\times WM1_l^g+(1-r)\times WM2_l^g\tag{1} MeanRule=r×WM1lg+(1r)×WM2lg(1)
其中各参数为:
W M 1 i g = δ × w 1 ( x a 1 − x a 2 ) + w 2 ( x a 1 − x a 3 ) + w 3 ( x a 2 − x a 3 ) w 1 + w 2 + w 3 + ε + ε × r a n d (2) WM 1_{i}^{g}=\delta\times\frac{w_{_1}(x_{_{a1}}-x_{_{a2}})+w_{_2}(x_{_{a1}}-x_{_{a3}})+w_{_3}(x_{_{a2}}-x_{_{a3}})}{w_{_1}+w_{_2}+w_{_3}+\varepsilon}+\varepsilon\times rand\tag{2} WM1ig=δ×w1+w2+w3+εw1(xa1xa2)+w2(xa1xa3)+w3(xa2xa3)+ε×rand(2)

W M 2 l g = δ × w 1 ( x b s − x b t ) + w 2 ( x b s − x w s ) + w 3 ( x b t − x w s ) w 1 + w 2 + w 3 + ε + ε × r a n d (3) WM 2_{l}^{g} = \delta\times\frac{w_{ 1}(x_{ bs} - x_{ bt} )+w_{ 2}(x_{ bs} - x_{ ws} )+w_{ 3}(x_{ bt} - x_{ ws} )}{w_{ 1} + w_{ 2} + w_{ 3} + \varepsilon}+\varepsilon\times rand\tag{3} WM2lg=δ×w1+w2+w3+εw1(xbsxbt)+w2(xbsxws)+w3(xbtxws)+ε×rand(3)
根据小波理论,WFs(波形函数)被用来根据两个原因调整MeanRule空间:(1)通过在优化过程中创建有效的振荡,帮助算法更有效地探索搜索空间并实现更好的解决方案;(2)通过控制引入WFs的扩张参数来生成微调,该参数用于调整WF的振幅。其中,δ是缩放因子,而β可以基于定义的指数函数进行变化:
δ = 2 β × r a n d − β β = 2 exp ⁡ ( − 4 × g M a x g ) (4) \begin{aligned}&\delta=2\beta\times rand-\beta\\&\beta=2\exp(-4\times\frac{g}{Maxg})\end{aligned}\tag{4} δ=2β×randββ=2exp(4×Maxgg)(4)
在更新规则操作中,还增加了收敛加速部分(CA),使用最佳向量在搜索空间中移动当前向量以提升全局搜索能力。在INFO算法中,假设最佳解决方案是最接近全局最优的解决方案。实际上,CA帮助向量朝更好的方向移动:
C A = r a n d n × ( x b s − x a 1 ) ( f ( x b s ) − f ( x a 1 ) + ε ) (5) CA=randn\times\frac{\left(x_{bs}-x_{a1}\right)}{\left(f\left(x_{bs}\right)-f\left(x_{a1}\right)+\varepsilon\right)}\tag{5} CA=randn×(f(xbs)f(xa1)+ε)(xbsxa1)(5)
计算新向量:
z l g = x l g + σ × M e a n R u l e + C A (6) z_{ l}^{ g}=x_{ l}^{ g}+\sigma\times MeanRule+CA\tag{6} zlg=xlg+σ×MeanRule+CA(6)

以rand<0.5进行切换:
在这里插入图片描述
α 可以根据方程中定义的指数函数进行改变:
σ = 2 α × r a n d − α α = c exp ⁡ ( − d × g M a x g ) (7) \begin{aligned}&\sigma=2\alpha\times rand-\alpha\\&\alpha=c\exp(-d\times\frac{g}{Maxg})\end{aligned}\tag{7} σ=2α×randαα=cexp(d×Maxgg)(7)

矢量组合阶段

为了增强INFO中种群的多样性,生成新向量:
在这里插入图片描述

局部搜索阶段

有效的局部搜索能力可以防止INFO算法被欺骗和陷入局部最优解,以进一步促进开发、搜索和收敛到全局最优解:
在这里插入图片描述
伪代码
在这里插入图片描述

3.结果展示

在这里插入图片描述
在这里插入图片描述

4.参考文献

[1] Ahmadianfar I, Heidari A A, Noshadian S, et al. INFO: An efficient optimization algorithm based on weighted mean of vectors[J]. Expert Systems with Applications, 2022, 195: 116516.

5.代码获取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/412797.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在线任务分发系统开发架构分析

在线任务分发系统的架构分析是一个综合性的过程&#xff0c;涉及多个技术层面和功能模块的设计。以下是对在线任务分发系统架构的详细分析&#xff1a; 一、系统概述 在线任务分发系统是一个集任务发布、分配、执行、监控及反馈于一体的综合平台&#xff0c;它通过互联网技术实…

超详细带你学习go高性能web框架----fiber

go-fiber-fast go-fiber 主要定位为一个轻量级、高性能的 Web 框架&#xff0c;但其灵活性使得它可以通过与其他库的集成&#xff0c;构建出强大而多功能的应用程序&#xff0c;满足不同的业务需求,和gin一样轻量级别的路由,但是性能特别是极端性能比gin好一些,都可以通过整合其…

【Gradle】window下安装gradle及idea配置

gradle安装与配置 背景基本概念下载配置环境变量idea配置构建命令配置全局的镜像仓库 背景 最近在看spring源码时&#xff0c;Spring5 以后都是采用 Gradle 来编译&#xff0c;所以构建源码前先安装 Gradle 环境。 基本概念 Gradle是一个基于Apache Ant和Apache Maven概念的…

优化农业项目流程 10款实用管理系统推荐

国内外主流的 10 款农业建设管理系统对比&#xff1a;PingCode、Worktile、建米农业工程项目管理系统、泛普软件的农业项目管理系统、开创云数字农业管理平台、Trimble Ag Software、Agworld、FarmLogs、Granular、Conservis。 在管理复杂的农业建设项目时&#xff0c;选择合适…

LuaJit分析(三)luajit字节码文件格式

Luajit字节码文件格式的完整信息如上图所示&#xff0c;包括文件头Header和原型Proto&#xff0c;一个原型可以对应lua源码中的一个函数或源文件。一、文件头文件标志&#xff1a;占用三个字节&#xff0c;始终是0x1B4C4A&#xff0c;表示这是一个luajit文件版本&#xff1a;占…

时序预测 | 基于VMD-SSA-LSSVM+LSTM多变量时间序列预测模型(Matlab)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 旧时回忆&#xff0c;独此一家。基于VMD-SSA-LSSVMLSTM多变量时间序列预测模型&#xff08;Matlab&#xff09; ——————组合模型预测结果—————————— 预测绝对平均误差MAE LSTM VMDSSALSSVM 组合模型 …

Java项目:基于SpringBoot+mysql在线拍卖系统(含源码+数据库+答辩PPT+毕业论文)

一、项目简介 本项目是一套基于SSM框架mysql在线拍卖系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、功能齐全、…

基层医疗云HIS系统源码:云计算、大数据等现代信息技术研发

云HIS源码&#xff0c;基层云HIS系统源码&#xff0c;基层医疗云HIS系统 利用云计算、大数据等现代信息技术研发的基层医疗云HIS系统实现了医院信息化从局域网向互联网转型&#xff0c;重新定义医疗卫生信息化建设的理念、构架、功能和运维体系。实现了医院信息化由局域网向互…

分享两个方法分析python打包exe

在Python开发中&#xff0c;常常需要将Python脚本打包成独立的可执行文件&#xff0c;以便在没有Python环境的电脑上运行。你是否曾为此感到困惑&#xff0c;不知道该选择哪种工具来实现这一目标&#xff1f;其实&#xff0c;打包Python脚本并不难&#xff0c;关键在于选择合适…

C++从入门到起飞之——list模拟实现 全方位剖析!

​ ​ ​ &#x1f308;个人主页&#xff1a;秋风起&#xff0c;再归来~&#x1f525;系列专栏&#xff1a;C从入门到起飞 &#x1f516;克心守己&#xff0c;律己则安 目录 ​ ​1、list的整体框架 2、list迭代器 >整体分析 >整体框架 >成员函数 >运…

windows安全软件之火绒杀毒的密码忘记后处理

一、问题描述 某次&#xff0c;想升级系统补丁&#xff0c;但多次尝试后都失败&#xff0c;排查杀毒软件影响过程中&#xff0c;发现火绒杀毒配置了密码保护&#xff0c;但因时间太久&#xff0c;密码已无从考证&#xff0c;那我们应该怎样处理这种情况呢&#xff1f; 二、处…

开发知识付费小程序的秘诀:从设计到上线一步到位

在移动互联网时代&#xff0c;知识付费小程序成为内容创作者和教育者的热门选择。它不仅降低了用户的使用门槛&#xff0c;还具备高效传播的优势。本文将带你一步步了解如何开发一个功能齐全的知识付费小程序&#xff0c;从设计规划到技术实现&#xff0c;最后顺利上线。 一、…

QT接收并解析GPS模块串口数据

目录 一、QT读取串口数据 二、解析数据 目标&#xff1a; 使用QT&#xff0c;读取gps模块的串口数据&#xff0c;并解析其中的经纬高数据&#xff0c;然后进行处理 一、QT读取串口数据 变量定义 QSerialPort *serial; QSerialPortInfo SerialPortInfo; QByteArray lineData…

RKNPU2从入门到实践 --- 【10】RKNPU2零拷贝API实现RKNN模型在RK3588开发板上的部署

目录 一、为什么叫零拷贝API&#xff1f; 二、零拷贝API执行流程&#xff08;代码解读&#xff09; 2.1 前奏工作 2.2 main.cc文件的编写&#xff08;代码的编写&#xff09; 2.2.1 第一步&#xff1a;rknn_init接口创建rknn_context对象、加载RKNN模型 2.2.2 第二步…

C# 传值参数

传值参数 1.值类型 值参数创建变量的副本&#xff1a;当传递值参数时&#xff0c;实际上是创建了原始变量的一个副本&#xff0c;然后将副本传递给方法。对值参数的操作永远不影响变量的值&#xff1a;由于是复制了一份新的副本&#xff0c;所以对副本进行操作不会影响原始变量…

python,json数据格式,pyecharts模块,pycharm中安装pyecharts

json数据格式 JSON是一种轻量级的数据交互格式 可以按照JSON指定的格式去组织和封装数据 JSON本质上是一个带有特定格式的字符串 主要功能&#xff1a; json就是一种在各个编程语言中流通的数据格式&#xff0c;负责不同编程语言中的数据传递和交互. 类似于&#xff1a; 国…

普元Devops-在云主机上拉取harbor的docker镜像并部署

1 前言 本文讲解如何从普元Devops配置构建&#xff0c;从而实现在云主机上拉取Docker镜像&#xff0c;然后运行Docker容器&#xff0c;实现云主机的Docker部署。 2 主要步骤说明 首先&#xff0c;我们有一个Devops服务器&#xff0c;还有一个云主机服务器&#xff0c;还有一个…

【微信小程序】如何触发按钮事件,例如调起微信客服

需求 实现一个如下图的效果, 点击客服按钮, 调起微信客服功能, 需要和button组合使用 效果图 实现思路 客服只能通过button按钮调起, 所以我们需要写一个button按钮, open-type“contact”, 然后把它隐藏起来。给客服图标加一个label, 设置for“btnId”, 这样点击图片就会触…

在ElementUI项目中集成iconfont图标库

在前端项目开发中经常会遇到使用的组件库提供的ICON图标不够用的情况。最常见的解决方案无非就是把设计图的图标切图引入到项目中。还有就是使用svg图标&#xff0c;封装一个渲染组件在项目里面直接引入这个组件。 本文将介绍另一种方法&#xff0c;即集成iconfont图标库的图标…

养老小程序源码家政服务小程序开发方案

预约上门养老小程序&#xff0c;是php开发预约&#xff0c;前端是uniapp&#xff0c;有开发好的小程序案例&#xff0c;可源码&#xff0c;也可以二开&#xff0c;也可以定制开发。 一 用户端&#xff1a;服务分类、服务内容详情介绍、在线下单支付&#xff0c;管理我的订单。…