SCI一区TOP|局部强化优化算法(PRO)原理及实现【免费获取Matlab代码】

目录

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


1.背景

2024年,A Taheri受到部分强化效应(PRE)理论启发,提出了局部强化优化算法(Partial Reinforcement Optimizer, PRO)。

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

2.算法原理

2.1算法思想

PRO来自进化学习和训练的心理学理论,称为部分强化效应(PRE)理论。根据PRE理论,学习者在学习和训练过程中间歇性地强化学习或加强特定的行为。通过选择适当的强化行为和实施强化过程的时间,强化模式显著影响学习者在强化计划中的反应率和强度。

在这里插入图片描述

2.2算法过程

调度

调度是指如何以及何时需要加强行为,在不同的时间间隔内为数据结构建模。每个学习者都有一个特定的时间表,由于每个标量代表了特定学习者行为的分数优先级,分数优先级越高,下一次迭代中被选择的机会就越大。将调度中的优先级按降序排序:
τ ← F E s M a x F E s S R ← e − ( 1 − τ ) μ ⊆ { 1 , 2 , 3 , … , N } ∣ ∀ j ∈ μ , S c h e d u l e j ≥ S c h e d u l e ∗ , λ , λ ← { ∥ μ ∥ ∣ ∥ μ ∥ = [ U ( 1 , N × S R ) ] } (1) \begin{aligned} &\tau\leftarrow\frac{FEs}{MaxFEs} \\ &SR\leftarrow e^{-(1-\tau)} \\ &\mu\subseteq\{1,2,3,\ldots,N\}\quad| \forall j\in\mu, Schedule^{j} \geq Schedule^{*,\lambda}, \\ &\lambda\leftarrow\{ \|\mu\| | \|\mu\|=[U(1, N\times SR)] \} \end{aligned}\tag{1} τMaxFEsFEsSRe(1τ)μ{1,2,3,,N}∣∀jμ,SchedulejSchedule,λ,λ{μ∥∣∥μ=[U(1,N×SR)]}(1)
其中, τ \tau τ为时间因子,FEs为函数评价的次数,MaxFEs为函数评价的最大次数。其中,SR是选择率,gr是基于调度选择的行为子集,gr是选择子集的大小,是行为(决策变量)的总数。

刺激

任何试图刺激学习者的行为以引起反应的尝试都是通过应用操作来改变所提出的解决方案的决策变量来建模。使用以下操作来生成新的解:
S F i ← τ + U ( 0 , β ˉ ) , w h e r e β ˉ ← ∑ j ∈ μ ( S c h e d u l e i , j M a x ( S c h e d u l e i ) ) S i μ ← { ( X b e s t μ − X i μ ) If rand < 0.5 ( X i μ − X j μ ) Otherwise. X i , n e w μ ← X i μ + S F i × S i μ (2) \begin{aligned} &SF_{i}\leftarrow\tau+U(0,\bar{\beta}),\mathrm{~where~}\bar{\beta}\leftarrow\sum_{j\in\mu}\left(\frac{Schedule_{i,j}}{Max\left(Schedule_{i}\right)}\right) \\ &S_i^\mu\leftarrow\begin{cases}(X_{best}^\mu-X_i^\mu)&\text{If rand < 0.5}\\[1ex](X_i^\mu-X_j^\mu)&\text{Otherwise.}\end{cases} \\ &X_{i,new}^{\mu}\leftarrow X_{i}^{\mu}+SF_{i}\times S_{i}^{\mu} \end{aligned}\tag{2} SFiτ+U(0,βˉ), where βˉjμ(Max(Schedulei)Schedulei,j)Siμ{(XbestμXiμ)(XiμXjμ)If rand < 0.5Otherwise.Xi,newμXiμ+SFi×Siμ(2)

强化

应用正强化来增加特定行为的分数,学习者的目标函数作为刺激阶段改进后的响应:
S c h e d u l e i μ ← S c h e d u l e i μ + ( S c h e d u l e i μ × R R ) (3) Schedule_i^\mu\leftarrow Schedule_i^\mu+(Schedule_i^\mu\times RR)\tag{3} ScheduleiμScheduleiμ+(Scheduleiμ×RR)(3)
其中,RR为强化率。当没有反应时,就会施加负强化。在这种情况下,学习者的目标函数在刺激阶段后减小,导致特定行为得分下降:
S c h e d u l e i μ ← S c h e d u l e i μ − ( S c h e d u l e i μ × R R ) (4) Schedule_i^\mu\leftarrow Schedule_i^\mu-(Schedule_i^\mu\times RR)\tag{4} ScheduleiμScheduleiμ(Scheduleiμ×RR)(4)

重新调度

在训练过程中为学习者应用一个新的时间表,当学习者的所有行为都持续受到负强化时。在这种情况下,PRO利用计划的标准偏差(Std)作为度量来确定何时需要重新安排学习者的计划:
Schedule i ← { U ( 0 , 1 ) if Std(Schedule i ) = 0 D o nothing otherwise (5) \text{Schedule}_{\mathrm{i}}\leftarrow\begin{cases}U(0,1)\quad\text{if Std(Schedule}_{\mathrm{i}})=0\\Do\text{nothing}\quad\text{otherwise}\end{cases}\tag{5} Schedulei{U(0,1)if Std(Schedulei)=0Donothingotherwise(5)
X i ← { U ( L B , U B ) i f S t d ( S c h e d u l e i ) = 0 D o nothing o t h e r w i s e (6) \mathrm X_\mathrm{i}\leftarrow\left\{\begin{matrix}U(L_B,U_B)&\mathrm{if~Std(Schedule_i)=0}\\Do\text{nothing}&\mathrm{otherwise}\end{matrix}\right.\tag{6} Xi{U(LB,UB)Donothingif Std(Schedulei)=0otherwise(6)

在这里插入图片描述

流程图

在这里插入图片描述

伪代码

在这里插入图片描述

3.结果展示

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

4.参考文献

[1] Taheri A, RahimiZadeh K, Beheshti A, et al. Partial reinforcement optimizer: An evolutionary optimization algorithm[J]. Expert Systems with Applications, 2024, 238: 122070.

5.代码获取

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

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

相关文章

OpenGL绘制Bezier曲面

Bezier的定义 贝塞尔曲面是贝塞尔曲线在二维上的扩展。它由一组控制点定义,通过这些控制点生成光滑的曲面。贝塞尔曲面通常用两个参数 u u u和 v v v来表示,这两个参数的取值范围都在 [0, 1] 之间。 数学表示 P ( u , v ) = ∑ i = 0 n ∑ j = 0 m p i j ⋅ B i , n ( u ) ⋅…

redis-基础篇(1)

黑马redis-基础篇笔记 1. 初识redis REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统&#xff0c;是跨平台的非关系型数据库。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的…

Mybatis中BaseEntity作用

新建各种对象的时候&#xff0c;一般来说&#xff0c;有几个属性是所有对象共有的&#xff0c;比如说id,is_del&#xff0c;is_enable这些&#xff0c;然后设置一个基础对象&#xff0c;以后新建所有对象的时候都继承它&#xff0c;就省的每次都要写这些共有的属性了

HCIA-速查-ENSP模拟器2步清空配置

需求&#xff1a;清空模拟器配置 清空当前图中配置 步骤1&#xff1a;reset saved-configuration 后输入y确认 步骤2&#xff1a;reboot后输入n否认再输入y确认 验证已经清空配置

文件防篡改监控工具 - WGCLOUD全面介绍

WGCLOUD是一款优秀的运维监控软件&#xff0c;免费、轻量、高效&#xff0c;部署容易&#xff0c;上手简单&#xff0c;对新手非常友好 WGCLOUD部署完成后&#xff0c;点击菜单【文件防篡改】&#xff0c;可以看到如下页面 我们点击【添加】按钮&#xff0c;输入监控文件的信息…

Java面向对象的三大特性之一——继承

目录 一、继承概念 二、为什么要继承 三、继承语法&#xff08;关键字extends&#xff09; 四、父类成员访问 1、子类中访问父类的成员变量 &#xff08;1&#xff09;子类和父类不存在同名的成员变量 &#xff08;2&#xff09;子类和父类中存在同名的成员变量 2、子类中访…

React+TS 从零开始教程(1)

源码链接&#xff1a;https://pan.quark.cn/s/c6fbc31dcb02 创建项目 直接通过以下命令&#xff0c;我们来创建一个reactts的项目。 npx create-react-app myapp --template typescript这样就创建好了,然后我们导入vscode. npx是npm里面的一个库&#xff0c;可以让你自动使用…

2-11 基于matlab的BP-Adaboost的强分类器分类预测

基于matlab的BP-Adaboost的强分类器分类预测&#xff0c;Adaboost是一种迭代分类算法&#xff0c;其在同一训练集采用不同方法训练不同分类器&#xff08;弱分类器&#xff09;&#xff0c;并根据弱分类器的误差分配不同权重&#xff0c;然后将这些弱分类器组合成一个更强的最终…

云专线组网方案的特性和实施要素

云专线组网方案是指企业通过专用的网络连接&#xff0c;将其内部网络与云服务商的数据中心直接相连&#xff0c;从而实现高速、安全、稳定的云资源访问。云专线通常提供比公共互联网更优的网络性能&#xff0c;包括更低的延迟、更高的带宽和更强的安全性。以下是云专线组网方案…

物联网设备安装相关知识整理

拓扑图 对于ADAM-4150先接设备的整体的供电。 ADAM-4150就涉及到几个电子元器件的连接&#xff0c;一个是485-232的转换器&#xff0c;一个是将RS-232转换为USB的转接口&#xff0c;因为现在的计算机很多都去掉了RS-232接口而使用USB接口。 4150右侧有个拨码&#xff0c;分别两…

UniApp 开发微信小程序教程(一):准备工作和环境搭建,项目结构和配置

文章目录 一、准备工作和环境搭建1. 安装 HBuilderX步骤&#xff1a; 2. 注册微信开发者账号步骤&#xff1a; 3. 创建 UniApp 项目步骤&#xff1a; 二、项目结构和配置1. UniApp 项目结构2. 配置微信小程序修改 manifest.json修改 pages.json 3. 添加首页文件index.vue 示例&…

排序之快速排序

快速排序之所以叫快速排序&#xff0c;肯定要配得上它的名字。我们就来看看它是如何这么快的。 快速排序的原理 快速排序是霍尔创建的&#xff0c;是通过以第一个或者最后一个数值作为比较值key&#xff0c;形成一个它的左边比它都小&#xff0c;右边比它都大的情况&#xff0…

家用电器信息管理系统

摘 要 随着互联网的快速发展&#xff0c;传统家电行业受到冲击&#xff0c;逐渐向智能家居市场转型。因此&#xff0c;智能家居无疑是一个有着巨大市场需求和新兴发展空间的新兴产业&#xff0c;也是人们追求安全、便捷、舒适的生活方式的必然趋势。互联网推动了我国传统家居产…

从复用性角度阐述中台建设

目录 复用性中台定义深思中台建设产品线形态何时演变中台能力落地中台 业务中台架构总结 技术学习永不止步&#xff0c;最近也是看了很多关于架构设计相关的专栏&#xff0c;慢慢总结出来一部分知识&#xff0c;代入自己的思考与理解&#xff0c;以及结合并反思自己之前公司的架…

鸿蒙开发通信与连接:【@ohos.nfc.tag (标准NFC-Tag)】

标准NFC-Tag 本模块主要用于操作及管理NFC Tag。 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 import tag from ohos.nfc.tag;tag.getNfcATag getNfcATag(tagInfo: TagInfo): Nf…

Codeforces Global Round 26 E. Shuffle(树形dp)

题目 思路来源 乱搞ac 题解 注意到提出一个点之后&#xff0c; 后面第二次提出的点、第三次提出的点&#xff0c; 如果后续成为叶子&#xff0c;一定不相邻&#xff0c;所以等价于求原树的最大独立集 但是第一次提出的叶子可以和第二次提出的叶子相邻 这个看最后一个样例…

Java按照GBK拼音顺序对汉字排序

最近遇到一个需求&#xff0c;需要对一个列表数据的特定字段&#xff0c;比如姓名&#xff0c;初看应该不难&#xff0c;但是有什么比较快速便捷的方法&#xff0c;因为是Java的项目&#xff0c;所以想到比较火的工具框架Hutool&#xff0c;在Hutool官网 找到一个比较器类Pinyi…

python离线安装第三方库、及其依赖库(单个安装,非批量移植)

文章目录 1.外网下载第三方库、依赖库2.内网安装第三方库3.补充附录内网中离线安装python第三方库,这时候只能去外网手动下载第三方库,再传回内网进行安装。 问题是python第三方库往往有其前置依赖包,你很难清楚某个第三方库依赖的是哪些依赖包,更难受的是依赖包可能还有其…

五十一、openlayers官网示例Layer Min/Max Resolution解析——设置图层最大分辨率,超过最大值换另一个图层显示

使用minResolution、maxResolution分辨率来设置图层显示最大分辨率。 <template><div class"box"><h1>Layer Min/Max Resolution</h1><div id"map" class"map"></div></div> </template><…

Java 8 Stream API介绍

Java 8引入了Stream API&#xff0c;这是对集合框架的一种增强&#xff0c;它允许你以一种声明式的方式处理数据集合。Stream API的核心在于将数据的操作分为两个主要阶段&#xff1a;中间操作和终端操作。中间操作返回的是一个新的Stream&#xff0c;可以链式调用多个中间操作…