优化算法(五)——蛇优化
今日二更,看到了一个刚刚发表的蛇优化算法(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]