23年中科院1区算法|开普勒优化算法原理及其利用(Matlab/Python)

news/2025/2/14 2:24:45/

CEC2017中的测试

在这里插入图片描述

本文作者将介绍一个2023年发表在中科院1区期刊《Knowledge -Based Systems》上的优化算法——开普勒优化算法(Kepler optimization algorithm,KOA)[1]

在这里插入图片描述

算法性能上,与鹈鹕、黏菌、灰狼和鲸鱼等一众优化算法在CEC2014、CEC2017、CEC2020和CEC2022上进行了测试,均显示出其惊艳的性能。因此,感兴趣的各位就和作者一起学习一下该算法的巧妙之处吧,并且,在文章的最后也给出了算法的MATLAB和Python实现。将这样性能较好的新算法应用于一些工程问题也能够在一定程度上提升文章的创新性。

在这里插入图片描述

00 目录

1 开普勒优化算法(KOA)原理

2 代码目录

3 算法性能

4 源码获取

01 开普勒优化算法(KOA)原理

在这里插入图片描述

图源文献[1]

KOA为基于物理的优化器(意味着公式会比较多…作者这里就列出核心公式来帮助大家理解),是受开普勒行星运动定律启发的新型优化算法。太阳(最优解)和在椭圆轨道上绕它旋转的行星(候选解)构成了搜索空间,在不同的时间,行星将处于轨道中的不同位置,这种策略有效的执行了勘探与开发(如下)。太阳与行星的吸引力、旋转速度等因素也共同决定了行星与太阳的接近程度。为适配该算法,术语“时间”将更适合迭代一词。

在这里插入图片描述

图源文献[1]

1.1 初始化

KOA的种群初始化与其他算法相同,每个行星将放置在轨道上的随机位置,算式为xi=lb+rand*(ub-lb)。除此之外,KOA还有两个新的参数需要初始化,即轨道偏心率e和轨道周期T,其计算:

在这里插入图片描述

其中,rand为随机值,r为正态分布的随机数。ei与后文中的引力有关,能够赋予KOA一定随机性。而T与椭圆轨道半长轴长度有关,而半长轴长度将随着时间逐渐减小,对应的解也将向可能找到全局最优解的有希望区域移动。

1.2 天体速度

天体的速度受太阳的引力影响,当一颗行星靠近太阳时,它的速度会增加,当它移得更远时,它的速度会降低。如果行星靠近太阳,那么太阳的引力就会相当强,行星就会试图增加自己的速度,以避免被拉向太阳。然而,如果一个物体远离太阳,那么它的速度就会减慢,因为太阳的引力很弱。其关系可由下列方程表示:

在这里插入图片描述

其中具体参数的意义这里不作详解,但可以看到这个公式根据与最优解的距离进行了勘探与开发之间的转换。

1.3 跳出局部最优

在太阳系中,大多数天体都是逆时针绕太阳旋转,它们都绕着自己的轴旋转;然而,也有一些天体是顺时针绕太阳旋转。该算法利用这种行为来逃避局部最优区域,即通过使用标志F(即1.2中的F),改变搜索方向,使代理能够准确地扫描搜索空间。

1.4 更新天体位置

天体在各自的椭圆轨道上围绕太阳旋转。在旋转过程中,物体在一定时间内向太阳靠近,然后远离太阳。KOA通过两个主要阶段模拟这种行为:探索和开发阶段。KOA探索远离太阳的行星以寻找新的解决方案,同时更准确地使用靠近太阳的解决方案,因为它在最佳解决方案附近寻找新的地方。图4显示了太阳周围的勘探和开发区域。

在这里插入图片描述

图源文献[1]

行星的位置使用下式更新:
在这里插入图片描述

当行星远离太阳时,行星的速度将代表KOA的探索算子。然而,这个速度受到太阳引力的影响,这有助于当前行星略微利用最佳解附近的区域。与此同时,当行星接近太阳时,它的速度急剧增加,使其能够逃脱太阳的引力。在这种情况下,如果迄今为止最好的解(称为太阳)是局部最小值,则速度表示局部最优避免,并且太阳的引力表示利用算子以帮助KOA攻击迄今为止最好的解以找到更好的解。

其中,太阳通过引力控制行星以椭圆的形式绕着其运动,遵循万有引力定律,其定义式:

在这里插入图片描述

1.5 更新与太阳的距离

为进一步改善行星的探索与开发,算法模仿了太阳与行星之间的距离的典型行为,当行星靠近太阳时,KOA将专注于优化开发算子;当远离太阳时,KOA将优化探索算子。而规则的转换将取决于调节参数h,其随时间逐渐变化。h如下:

在这里插入图片描述

图源文献[1]

当h被设置为一个高值时,重点放在探索算子上,导致行星和太阳之间间隔扩大。相反,当h假设一个低的值,倾向于开发,使得能够在迄今为止获得的最佳解附近进行集中探索。

该原理的数学模型描述如下:

在这里插入图片描述

1.6 精英保留

该步骤相当于贪婪策略,若位置更新后适应度更佳则保留。
在这里插入图片描述

1.7 算法流程
在这里插入图片描述

1.8 算法利用

其实在15年和22年都有文献将开普勒混合于优化算法中来提升性能,但这些算法运用的只是开普勒第一定律,形式如下:

其简化程度高,是通过将太阳位置乘均匀分布的伪随机数或通过在太阳位置和行星之间添加距离分量来集中搜索。而在KOA中是一个完整的优化框架,能够更有效的利用和探索空间。其天体位置更新中,既有能够跳出局部最优的策略,也能够进行勘探与开发之间的有效转换,可以将其考虑引入其他算法提升性能。在这里插入图片描述

02 代码目录

在这里插入图片描述

代码包含MATLAB和Python以及KOA算法源文献,考虑到很多同学获取代码后,MATLAB代码部分有乱码(MATLAB版本问题),可以将MATLAB版本改为2020及以上,或使用乱码解决文件夹中的txt文件即可。

代码都经过作者重新注释,代码更清爽,可读性强。

部分代码:(MATLAB与Python)

在这里插入图片描述

03 算法性能

采用标准测试函数初步检验其寻优性能

在MATLAB中,进行CEC2017函数的测试,执行程序结果如下:

在这里插入图片描述

在Python中,进行CEC2005函数的测试,执行程序结果如下:

在这里插入图片描述

04 源码获取

在GZH(KAU的云实验台)后台回复 KOA 即可

参考文献

[1] Abdel-Basset, M. et al. Kepler optimization algorithm: A new metaheuristic algorithm inspired by Kepler’s laws of planetary motion. Knowl. Based Syst. 268, 110454 (2023).

另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。

如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看(ง •̀_•́)ง(不点也行),你们的鼓励就是我坚持的动力!若有定制需求,可私信作者。


http://www.ppmy.cn/news/1290436.html

相关文章

android studio官方网站关于android SDK环境变量的设置说明晦涩难懂

这是它中文版原文: 您可以通过设置环境变量来配置 Android Studio 和命令行工具的行为。其中一个最有用的环境变量之一是 ANDROID_HOME,很多工具都会读取该变量来确定 Android SDK 安装目录。如需通过命令行运行工具,而不包含可执行文件的完整…

Cytoscape3.8安装下载及安装教程

Cytoscape3.8下载链接:https://docs.qq.com/doc/DUmhZQ1lqTWhuSXJC 1.选中下载好的安装包右键选择“解压到 Cytoscape3.8.0”文件夹 2.打开解压好的”Cytoscape3.8.0“文件夹 3.选中“Cytoscape_3_8_0_windows_64bit.exe“右键以管理员身份运行 4.点击”Download“&…

穷举vs暴搜vs深搜vs回溯vs剪枝

欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析(3) 目录 👉🏻全排列👉&#…

如何在Linux中安装docker

1.首先卸载旧版本的Docker,若没有安装过Docker,可跳过本步。 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-e…

【authorized_keys配置及常见问题】

说明 authorized_keys 文件用于存储允许通过 SSH 访问特定用户帐户的公钥。当用户尝试通过 SSH 连接到服务器时,服务器会使用此文件中的公钥验证用户的身份。如果公钥匹配,用户将被允许访问。这有助于提高安全性,因为公钥认证比使用密码更安…

golang学习专栏

GOLANG专栏 Golang基础教程 Golang基础教程 Golang练手算法 Golang练手算法 Golang设计模式 Golang设计模式 Golang数据结构和算法 Golang数据结构和算法 Golang并发编程 Golang并发编程 ORM框架Gorm Golang ORM框架gorm Golang源码分析 Golang源码分析 MySQL教程 MySQ…

基于华为ENSP模拟器-vlan划分网络

需求 不连外网的内网。需求隔离故障和隔离广播风暴,并要保证网络的连通。 解决方案使用三层交互机,设置vlan用于隔离网络,并在三层交互机为网关保证各个vlan之间的通讯。 实现 使用三层交互机,设置vlan用于隔离网络&#xff0…

线性代数_对称矩阵

对称矩阵是线性代数中一种非常重要的矩阵结构,它具有许多独特的性质和应用。下面是对称矩阵的详细描述: ### 定义 对称矩阵,即对称方阵,是指一个n阶方阵A,其转置矩阵等于其本身,即A^T A。这意味着方阵A中的…