【智能优化算法之GOA优化】
2022/1/14 20:04:16
本文主要是介绍【智能优化算法之GOA优化】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
蚱蜢优化算法(GOA)
一 蚱蜢优化算法的概念
蚱蜢是昆虫。由于它们对农作物生产和农业造成损害,因此被认为是有害生物。尽管蚱蜢在自然界中通常是单独出现的,但它们是所有生物中最大的群体之一。蜂群的规模可能是可控的,对农民来说是一场噩梦。蚱蜢群的独特之处在于,无论是在若虫期还是成年期,都可以发现蝗虫的群集行为。数以百万计的若虫蚱蜢像滚动的圆柱体一样跳跃和移动。在他们的道路上,他们几乎吃掉了所有的植被。在这种行为之后,当它们成年后,它们会在空中形成一个蜂群。这就是蝗虫长距离迁徙的方式。
幼虫期蝗虫群的主要特征是行动缓慢,步幅小。相比之下,长距离和突然的移动是成年期蜂群的基本特征。寻找食物来源是蝗虫群集的另一个重要特征。正如简介中所讨论的,受自然启发的算法在逻辑上将搜索过程分为两种趋势:探索和利用。在爆炸中,搜索代理被鼓励突然移动,而在攻击过程中,他们倾向于在本地移动。这两个功能以及目标搜索都是由蚱蜢自然完成的。因此,如果我们找到一种方法对这种行为进行数学建模,可以设计一种新的自然启发算法。该算法通过数学建模和模拟自然界中蝗虫群的行为来解决优化问题。
二 算法数学模型
用于模拟蝗虫群集行为的数学模型如下
其中,Xi表示第i只蚱蜢的位置,Si表示社会相互作用,Gi表示第i只蚱蜢上的重力,Ai表示风平流。Si由如下方程求解:
式中,dij是第i个和第j个蚱蜢之间的距离。
定义s函数计算如下:
G分量计算如下:
A分量计算如下:
通过将各分量代入公式可得:
然而,这个数学模型不能直接用于解决优化问题,主要是因为蝗虫很快到达舒适区,而蝗虫群不会收敛到指定的点。为了解决优化问题,该方程的修改版本:
式中ubd是d维的上界,lbd是d维的下界。
:目标中第D维度的值;c: 缩小舒适区、排斥区和吸引区的递减系数。
式表明,蚱蜢的下一个位置是根据其当前位置、目标位置和所有其他蚱蜢的位置来确定的。请注意,该方程式的第一部分考虑了当前蝗虫相对于其他蝗虫的位置。事实上,我们已经考虑了所有蚱蜢的状态来定义目标周围搜索代理的位置。这与PSO不同,PSO是文献中最受欢迎的群体智能技术。在粒子群优化算法中,每个粒子有两个向量:位置向量和位置向量。然而,GOA中每个搜索代理只有一个位置向量。GOA根据搜索代理的当前位置、全球最佳位置和所有其他搜索代理的位置更新搜索代理的位置。这意味着在粒子群优化算法中,没有任何其他粒子有助于更新粒子的位置,而GOA要求所有搜索代理参与定义每个搜索代理的下一个位置。
三 GOA算法性能测试
图1. S函数
图2. S函数随l和f变化的行为
图3. F1函数的寻优
参考文献::Saremi Shahrzad, Mirjalili Seyedali, Lewis Andrew. Grasshopper Optimisation Algorithm: Theory and application[J]. Advances in Engineering Software, 2017, 105: 30-47. Doi: https://doi.org/10.1016/j.advengsoft.2017.01.004.
GOA算法matlab版本下载地址:智能优化算法-GOA.zip-其它文档类资源-CSDN下载智能优化算法之GOA算法matlab代码更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/weixin_46263379/75848308
这篇关于【智能优化算法之GOA优化】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24MongoDB资料:新手入门完全指南
- 2024-12-20go-zero 框架的 RPC 服务 启动start和停止 底层是怎么实现的?-icode9专业技术文章分享
- 2024-12-19Go-Zero 框架的 RPC 服务启动和停止的基本机制和过程是怎么实现的?-icode9专业技术文章分享
- 2024-12-18怎么在golang中使用gRPC测试mock数据?-icode9专业技术文章分享
- 2024-12-15掌握PageRank算法核心!你离Google优化高手只差一步!
- 2024-12-15GORM 中的标签 gorm:"index"是什么?-icode9专业技术文章分享
- 2024-12-11怎么在 Go 语言中获取 Open vSwitch (OVS) 的桥接信息(Bridge)?-icode9专业技术文章分享
- 2024-12-11怎么用Go 语言的库来与 Open vSwitch 进行交互?-icode9专业技术文章分享
- 2024-12-11怎么在 go-zero 项目中发送阿里云短信?-icode9专业技术文章分享
- 2024-12-11怎么使用阿里云 Go SDK (alibaba-cloud-sdk-go) 发送短信?-icode9专业技术文章分享