智能优化算法:瞬态搜索优化算法 -附代码

2024-06-18 07:18

本文主要是介绍智能优化算法:瞬态搜索优化算法 -附代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

智能优化算法:瞬态搜索优化算法

文章目录

  • 智能优化算法:瞬态搜索优化算法
    • 1.算法原理
    • 2.算法结果
    • 3.参考文献
    • 4.Matlab代码

摘要:瞬态搜索优化算法(Transient search optimization (TSO))是于2020年提出的,一种新的基于物理的启发式优化算法。该算法的灵感来自于包含电感和电容等存储元件的开关电路的瞬态行为。

1.算法原理

该算法的灵感来自于包含电感和电容等存储元件的开关电路的瞬态行为。

在这一部分中,TSO算法被建模为: 1)初始化搜索代理在搜索区域的上下界之间; 2) 寻找最佳解决方案(探索);3) 达到稳定状态或最佳解决方案(开发)。

首先,搜索代理的初始化是随机生成的,如式(1)所示.
Y = l b + r a n d ∗ ( u b − l b ) (1) Y=lb+rand*(ub-lb)\tag{1} Y=lb+rand(ublb)(1)
其次,TSO的探测行为是受到图1所示的二阶电路在零点附近振荡的启发。如图1所示,TSO的爆炸是由一阶放电的指数衰减引起的。利用随机数r1来平衡勘探(r1≥0.5)和开发(r1<0.5)来描述。方程(2)给出了TSO算法的开发和探索的数学模型。

请添加图片描述

图1

Y l + 1 = { Y l ∗ + ( Y l − C l Y l ∗ ) e − T , r 1 < 0.5 Y l ∗ + e − T ( c o s ( 2 π T ) + s i n ( 2 π T ) ) ∣ Y l − C l Y l ∗ ∣ , e l s e (2) Y_{l+1}=\begin{cases} Y_l^*+(Y_l-C_lY_l^*)e^{-T},r_1<0.5\\ Y_l^*+e^{-T}(cos(2\pi T)+sin(2\pi T))|Y_l-C_lY_l^*|,else\end{cases}\tag{2} Yl+1={Yl+(YlClYl)eT,r1<0.5Yl+eT(cos(2πT)+sin(2πT))YlClYl,else(2)

C l = k ∗ z ∗ r 3 + 1 (3) C_l=k*z*r_3+1\tag{3} Cl=kzr3+1(3)

T = 2 ∗ z ∗ r 2 − z (4) T=2*z*r_2-z \tag{4} T=2zr2z(4)

z = 2 − 2 l l m a x (5) z=2-\frac{2l}{l_{max}}\tag{5} z=2lmax2l(5)

其中: l b lb lb u b ub ub搜索区域的下界和上界, r a n d rand rand​为随机数服从均匀分布, z z z为衰减系数变量从2变为0。 C l , T C_l,T Cl,T​为热阻系数。 r 1 , r 2 , r 3 r_1,r_2,r_3 r1,r2,r3为[0,1]内随机数。 Y l Y_l Yl为搜索代理的位置。 Y l ∗ Y_l^* Yl​为当前最佳解。 l l l为迭代次数, l m a x l_{max} lmax为最大迭代次数, k k k​为常数(k=0,1,2…)。

算法流程如下:

步骤1:初始化算法种群 Y Y Y

步骤2:更新 C l C_l Cl T T T系数根据式(3)-(5)。

步骤3:更新位置根据式(2)。

步骤4:评估适应度值及更新最优位置。

步骤7:判断是否满足最大迭代次数,若满足,则输出最优位置和全局最优解,否则,返回步骤2重新迭代计算。

2.算法结果

请添加图片描述

3.参考文献

[1] Qais M H , Hasanien H M , Alghuwainem S . Transient search optimization: a new meta-heuristic optimization algorithm[J]. Applied Intelligence, 2020.

4.Matlab代码

这篇关于智能优化算法:瞬态搜索优化算法 -附代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1071640

相关文章

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

MySQL不使用子查询的原因及优化案例

《MySQL不使用子查询的原因及优化案例》对于mysql,不推荐使用子查询,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,本文给大家... 目录不推荐使用子查询和JOIN的原因解决方案优化案例案例1:查询所有有库存的商品信息案例2:使用EX

python多进程实现数据共享的示例代码

《python多进程实现数据共享的示例代码》本文介绍了Python中多进程实现数据共享的方法,包括使用multiprocessing模块和manager模块这两种方法,具有一定的参考价值,感兴趣的可以... 目录背景进程、进程创建进程间通信 进程间共享数据共享list实践背景 安卓ui自动化框架,使用的是

SpringBoot生成和操作PDF的代码详解

《SpringBoot生成和操作PDF的代码详解》本文主要介绍了在SpringBoot项目下,通过代码和操作步骤,详细的介绍了如何操作PDF,希望可以帮助到准备通过JAVA操作PDF的你,项目框架用的... 目录本文简介PDF文件简介代码实现PDF操作基于PDF模板生成,并下载完全基于代码生成,并保存合并P