闲鱼技术01 发表于 2022-4-28 13:27

优化算法(五)——蛇优化

今日二更,看到了一个刚刚发表的蛇优化算法(SO),心血来潮,决定马上分享给大家!!!
蛇优化(Snake Optimizer, SO)是Hashim, F. A.和 Hussien, A. G两位教授于2022年提出的优化算法,其算法灵感来蛇的觅食和繁殖行为和模式,下面直接步入正题:
1.算法介绍

与所有元启发式算法一样,SO 首先生成均匀分布的随机种群,以便能够开始优化算法过程。初始化公式如下:




SO的探索和开发阶段主要受温度和食物量的影响,其公式如Eq(2)和Eq(3)表示:


其中 https://www.zhihu.com/equation?tex=t 代表当前迭代, https://www.zhihu.com/equation?tex=T 代表最大迭代次数, https://www.zhihu.com/equation?tex=c_%7B1%7D%3D0.5
当 https://www.zhihu.com/equation?tex=Q%3C0.25 (0.25为原文规定的阈值)SO通过择任何随机位置来搜索食物并更新它们相对于它的位置,即探索阶段,随机搜索公式为:






SO的开发阶段相对复杂,分为3种模式——靠近猎物(食物)模式、战斗模式、交配模式,3种模式同时受温度和食物量的影响,这是与探索模式的不同之处。
(1) 靠近猎物(食物)模式



(2) 战斗/交配模式(对于这两个模式的理解,个人认为是吃饱了才能有力气掐架,才能有力气为爱鼓掌)。

       言归正传,当 https://www.zhihu.com/equation?tex=Temp%5Cleq0.6 时,蛇将处于战斗模式或交配模式。
i. 战斗模式





ii. 交配模式



2. 源代码

SO源代码传送门:Snake Optimizer


3. 算法改进

   通过观察算法公式该算法使用了较多固定值,如 https://www.zhihu.com/equation?tex=c_%7B1%7D%2Cc_%7B2%7D%2Cc_%7B3%7D ,可以从这里下手,通过添加随机扰动来跳出局部最优,在蛇孵蛋也就是将最劣解重置的时候,可以采用其他方法进行重置,比如对立学习(OBL)等。
4. 引用

Hashim, F. A., & Hussien, A. G. (2022). Snake Optimizer: A novel meta-heuristic optimization algorithm.Knowledge-Based Systems, 108320.
页: [1]
查看完整版本: 优化算法(五)——蛇优化