【优化算法】梯度优化算法:一种新的原启发式优化算法算法
目录
- 1.摘要
- 2.算法原理
- 3.结果展示
- 4.参考文献
- 5.获取代码

1.摘要
本文提出了一种新型的元启发式优化算法——梯度优化器(Gradient-based Optimizer, GBO)。GBO算法灵感来源于牛顿法,采用两个主要操作:梯度搜索规则(Gradient Search Rule, GSR)和局部逃逸操作算子(Local Escaping Operator, LEO),通过一组向量来探索搜索空间。GSR利用基于梯度的方法增强探索倾向并加速收敛速度,以实现更优的搜索空间定位,LEO则帮助GBO逃离局部最优解。
2.算法原理
梯度搜索规则(GSR)
在梯度搜索规则(GSR)中,GBO算法通过控制向量的移动,可以在可行域内更有效地搜索并寻找到更优的位置。考虑到许多优化问题不可微分,因此采用数值梯度方法。为了根据方程推导GSR,需要使用泰勒级数来计算函数的一阶导数:
f ( x + Δ x ) = 0 f ( x ) + f ′ ( x 0 ) Δ x + f ′ ′ ( x 0 ) Δ x 2 2 ! + f ( 3 ) ( x 0 ) Δ x 3 3 ! + ⋯ f ( x − Δ x ) = f ( x ) − f ′ ( x 0 ) Δ x + f ′ ′ ( x 0 ) Δ x 2 2 ! − f ( 3 ) ( x 0 ) Δ x 3 3 ! + ⋯ \begin{gathered} f(x+\Delta x)=0f(x)+f^{^{\prime}}(x_0)\Delta x+\frac{f^{^{\prime\prime}}(x_0)\Delta x^2}{2!}+\frac{f^{^{(3)}}(x_0)\Delta x^3}{3!}+\cdots \\ f(x-\Delta x)=f(x)-f^{^{\prime}}(x_{0})\Delta x+\frac{f^{^{\prime\prime}}(x_{0})\Delta x^{2}}{2!}-\frac{f^{^{(3)}}(x_{0})\Delta x^{3}}{3!}+\cdots \end{gathered} f(x+Δx)=0f(x)+f′(x0)Δx+2!f′′(x0)Δx2+3!f(3)(x0)Δx3+⋯f(x−Δx)=f(x)−f′(x0)Δx+2!f′′(x0)Δx2−3!f(3)(x0)Δx3+⋯
一阶导数的中心差分形式:
f ′ ( x ) = f ( x + Δ x ) − f ( x − Δ x ) 2 Δ x f^{^{\prime}}(x)=\frac{f(x+\Delta x)-f(x-\Delta x)}{2\Delta x} f′(x)=2Δxf(x+Δx)−f(x−Δx)
整理为迭代形式:
x n + 1 = x n − 2 Δ x × f ( x n ) f ( x n + Δ x ) − f ( x n − Δ x ) x_{n+1}=x_n-\frac{2\Delta x\times f(x_n)}{f(x_n+\Delta x)-f(x_n-\Delta x)} xn+1=xn−f(xn+Δx)−f(xn−Δx)2Δx×f(xn)
x n x_n xn的邻近位置是 x n + Δ x x_n+\Delta x xn+Δx和 x n − Δ x x_n-\Delta x xn−Δx,在GBO算法中,这些邻近位置被种群中的另外两个位置(向量)所替代。由于 f ( x ) f(x) f(x)是一个最小化问题,位置 x n + Δ x x_n+\Delta x xn+Δx的适应度比 x n x_n xn差,而 x n − Δ x x_n-\Delta x xn−Δx比 x n x_n xn好。因此,GBO算法用更好的位置 x b e s t x_{best} xbest,即 x n x_n xn邻域内的位置, 替换 x n − Δ x x_n-\Delta x xn−Δx,用较差的位置 x w o r s t x_{worst} xworst代替 x n x_n xn邻域内的较差位置,替换 x n + Δ x x_n+\Delta x xn+Δx。此外,提出的算法使用位置 x n x_n xn而非其适应度 f ( x n ) f(x_n) f(xn):
G S R = r a n d n × 2 Δ x × x n ( x w o r s t − x b e s t + ε ) GSR=randn\times\frac{2\Delta x\times x_{n}}{(x_{\mathrm{worst}}-x_{best}+\varepsilon)} GSR=randn×(xworst−xbest+ε)2Δx×xn
在提出的GBO算法中,梯度搜索规则(GSR)考虑了优化过程中的随机行为,以促进探索和逃离局部最优:
Δ x = r a n d ( 1 : N ) × ∣ s t e p ∣ s t e p = ( x b e s t − x r 1 m ) + δ 2 δ = 2 × r a n d × ( ∣ x r 1 m + x r 2 m + x r 3 m + x r 4 m 4 − x n m ∣ ) \begin{aligned} & \Delta x=rand(1:N)\times|step| \\ & step=\frac{(x_{best}-x_{r1}^{m})+\delta}{2} \\ & \delta=2\times rand\times\left(\left|\frac{x_{r1}^{m}+x_{r2}^{m}+x_{r3}^{m}+x_{r4}^{m}}{4}-x_{n}^{m}\right|\right) \end{aligned} Δx=rand(1:N)×∣step∣step=2(xbest−xr1m)+δδ=2×rand×( 4xr1m+xr2m+xr3m+xr4m−xnm )
为了更有效地利用 x n x_n xn附近的区域,GBO算法中引入了移动方向(DM)。这一机制通过使用最佳向量 x b e s t x_{best} xbest,并将当前向量 x n x_n xn向 ( x b e s t − x n ) (x_{best}-x_n) (xbest−xn)方向移动来操作。这样的设计不仅加强了局部搜索的能力,还有助于提升算法的收敛速度,从而使GBO算法在寻找最优解的讨程中更加高效:
D M = r a n d × ρ 2 × ( x b e s t − x n ) DM=rand\times\rho_{2}\times(x_{best}-x_{n}) DM=rand×ρ2×(xbest−xn)
因此,位置更新为:
X 1 n m = X n m − G S R + D M X 1 n m = x n m − r a n d n × ρ 1 × 2 Δ x × x n m ( x w o r s t − x b e s t + ε ) + r a n d × ρ 2 × ( x b e s t − x n m ) \begin{aligned} & X\mathbf{1}_{n}^{m}=X_n^m-GSR+DM \\ & X\mathbf{1}_{n}^{m}=x_n^m-randn\times\rho_1\times\frac{2\Delta x\times x_n^m}{(x_{\mathrm{worst}}-x_{\mathrm{best}}+\varepsilon)}+rand\times\rho_2\times(x_{\mathrm{best}}-x_n^m) \end{aligned} X1nm=Xnm−GSR+DMX1nm=xnm−randn×ρ1×(xworst−xbest+ε)2Δx×xnm+rand×ρ2×(xbest−xnm)
局部逃逸操作算子(LEO)

为了增强GBO算法解决复杂问题的效率,引入了局部逃逸操作算子(LEO)。LEO通过整合多个解决方案来显著改变解的位置,这些方案包括最佳位置 x b e s t x_{best} xbest,两个随机解 x m r 1 x_{mr1} xmr1和 x m r 2 x_{mr2} xmr2,以及一个新生成的随机解 x m k x_{mk} xmk:
x k m = L 2 × x p m + ( 1 − L 2 ) × x r a n d x_{k}^{m}=L_{2}\times x_{p}^{m}+(1-L_{2})\times x_{rand} xkm=L2×xpm+(1−L2)×xrand

伪代码

3.结果展示


4.参考文献
[1] Ahmadianfar I, Bozorg-Haddad O, Chu X. Gradient-based optimizer: A new metaheuristic optimization algorithm[J]. Information Sciences, 2020, 540: 131-159.
5.获取代码
相关文章:
【优化算法】梯度优化算法:一种新的原启发式优化算法算法
目录 1.摘要2.算法原理3.结果展示4.参考文献5.获取代码 1.摘要 本文提出了一种新型的元启发式优化算法——梯度优化器(Gradient-based Optimizer, GBO)。GBO算法灵感来源于牛顿法,采用两个主要操作:梯度搜索规则(Grad…...
内部类(3)
大家好,今天我们继续来看看内部类,今天我们来学习一下内部类的分类,我们来看看一共有几种,它们有什么作用,那么话不多说,我们直接开始。 9.1 内部类的分类 先来看下,内部类都可以在一个类的哪些位置进行定…...
svn分支相关操作(小乌龟操作版)
在开发工作中进行分支开发,涉及新建分支,分支切换,合并分支等 新建远程分支 右键选择branch/tagert按钮 命名分支的路径名称 点击确定后远程分支就会生成一个当时命名的文件夹(开发分支) 分支切换 一般在开发阶段&a…...
rust_shyper
title: 探索 Rust_Shyper:系统编程的新前沿 date: ‘2024-12-30’ category: blog tags: Rust_ShyperRust 语言系统编程性能与安全 sig: Virt archives: ‘2024-12’ author:way_back summary: Rust_Shyper 作为基于 Rust 语言的创新项目,在系统编程领域…...
HAL 库 HAL_UARTEx_ReceiveToIdle_IT 函数解析
一、存在位置:stm32f1xx_hal_uart.c 二、具体代码 二、返回值:HAL_StatusTypeDef 通过查看返回值HAL_StatusTypeDef在stm32f1xx_hal_edf.h文件中定义为结构体类型。 status:(进展的)状况,情形 三、函数名…...
【ArcGIS Pro】完整的nc文件整理表格模型构建流程及工具练习数据分享
学术科研啥的要用到很多数据,nc文件融合了时间空间数据是科研重要文件。之前分享过怎样将nc文件处理成栅格后整理成表格。小编的读者还是有跑不通整个流程的,再来做一篇总结篇,也分享下练习数据跟工具,如果还是弄不了的࿰…...
REDIS的集群
REDIS的集群模式: 主从模式:redis高可用的基础,哨兵和集群都是建立在此基础之上 特点: 主从模式和数据库的主从模式(工作模式)是一样的,主负责写入,然后把写入到数据同步到从&…...
酒店管理系统的设计与实现【源码+文档+部署讲解】
酒店管理系统的设计与实现 摘 要 中国经济近几年来取得蓬勃飞速发展,使得人民生活水平的要求和生活的质量有了很高的要求。因此人们对外出旅游和就餐的需求也越来越大。同时,随着我国科技水平的兴起和对互联网新时代的大力支持,酒店管理系统在…...
[论文阅读] (34)ESWA2024 基于SGDC的轻量级入侵检测系统
《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢。由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学术路上期…...
从社区共识到资本效能:解析SYNBO的去中心化投资协议创新
Web3 资本市场正处于深刻变革的关键节点。随着去中心化技术的不断进化,传统风险投资模式逐渐显现出效率、透明性与公平性等方面的局限性。而 SYNBO 的出现,为这一市场注入了全新的可能性。 作为新一代去中心化风险投资协议,SYNBO 不仅创新性地…...
一、数据库 Sqlite3 资料
SQLite3 教程 SQLite3 是一个轻量级的嵌入式数据库引擎,它不需要单独的服务器进程,数据库直接存储在磁盘文件中。Python 内置了 sqlite3 模块,可以方便地操作 SQLite 数据库。以下是 SQLite3 的详细教程。 1. SQLite3 简介 SQLite3 是一个自…...
Passlib库介绍及使用指南
什么是Passlib? Passlib是一个强大的Python密码哈希库,它支持多种哈希算法和工具。 Passlib不仅提供了易于使用的API,还集成了多种安全特性,如加盐、密钥派生函数等,广泛应用于用户账户系统、敏感数据保护和多因素认证…...
模型选择+过拟合欠拟合
训练误差和泛化误差 训练误差:模型在训练数据上的误差 泛化误差:模型在新数据上的误差 验证数据集:一个用来评估模型好坏的数据集 例如拿出50%的数据作为训练 测试数据集:只能用一次 K则交叉验证 在没有足够数据时使用 算法…...
绝美的数据处理图-三坐标轴-散点图-堆叠图-数据可视化图
clc clear close all %% 读取数据 load(MyColor.mat) %读取颜色包for iloop 1:25 %提取工作表数据data0(iloop) {readtable(data.xlsx,sheet,iloop)}; end%% 解析数据 countzeros(23,14); for iloop 1:25index(iloop) { cell2mat(table2array(data0{1,iloop}(1,1)))};data(i…...
损失函数-二分类和多分类
二分类和多分类的损失函数 二分类 损失函数 L ( y , y ^ ) − ( y l o g ( y ^ ) ) ( 1 − y ) l o g ( 1 − y ^ ) L(y,\hat{y}) -(ylog(\hat{y})) (1-y)log(1-\hat{y}) L(y,y^)−(ylog(y^))(1−y)log(1−y^) 其中真实标签表示为y(取值为 0 或 1&#…...
汽车损坏识别检测数据集,使用yolo,pasical voc xml,coco json格式标注,6696张图片,可识别11种损坏类型,识别率89.7%
汽车损坏识别检测数据集,使用yolo,pasical voc xml,coco json格式标注,6696张图片,可识别11种损坏类型损坏: 前挡风玻璃(damage-front-windscreen ) 损坏的门 (damaged-d…...
从 Elastic 迁移到 Easysearch 指引
从 Elasticsearch 迁移到 Easysearch 需要考虑多个方面,这取决于当前使用的 Elasticsearch 版本、能容忍的停机时间、应用需求等。在此背景下,我们梳理了一下通用的升级指引,方便大家进行迁移工作。 迁移路径 Elasticsearch 版本快照兼容推…...
Yapi RCE 复现和批量编写
一、漏洞复现 首先祭出fofa,搜索语句为 app"yapi",但是为了避开国内,所以使用 app"yapi" && country"SG",SG为新加坡,结果如图 虽然有30页,但是能利用的可能也没几…...
【2024年-9月-21日-开源社区openEuler实践记录】PilotGo:简化运维管理的开源利器
开篇介绍 大家好,我是 fzr123。在运维领域摸爬滚打许久,我发现了PilotGo这个超实用的开源项目,它正悄然改变着运维人员处理日常任务的方式,为复杂的运维管理工作带来了极大的便利与效率提升。 技术亮点 1. 自动化运维任务编排 …...
ubuntu 20.04 国内源安装docker
先更新软件包,安装备要apt软件 # 更新软件包索引 sudo apt-get update# 安装需要的软件包以使apt能够通过HTTPS使用仓库 sudo apt-get install ca-certificates curl gnupg lsb-release使用阿里云源 # 添加阿里云官方GPG密钥 curl -fsSL http://mirrors.aliyun.co…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
uniapp 实现腾讯云IM群文件上传下载功能
UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中,群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS,在uniapp中实现: 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...
