智能优化算法:蛇优化算法
文章目录
- 智能优化算法:蛇优化算法
- 1.蛇优化算法简介
- 2.蛇优化算法基本原理
- 2.1 蛇交配行为
- 2.2 灵感来源
- 2.3 数学模型与算法
- 2.3.1 初始化
- 2.3.2 将种群分为雌性和雄性两个组
- 2.3.3 勘探阶段(没食物)
- 2.3.4 开发阶段(有食物)
- 3.实验结果
- 4.参考文献
- 5.Matlab代码
1.蛇优化算法简介
蛇优化算法是2022年提出的一种新的元启发式算法,该算法是一种模仿蛇特殊交配行为的新型智能优化算法。对于每条蛇(雄性/雌性),如果在食物数量足够,温度很低的条件下,就会努力得到最好的伴侣。
2.蛇优化算法基本原理
2.1 蛇交配行为
雄性和雌性之间的交配行为受到一些因素的影响。蛇通常在春末和初夏温度较低的时候进行交配,但蛇交配过程不仅取决于温度,还取决于食物的供应。如果温带低,且食物充足,彼此竞争的雄性会互相争斗以吸引雌性的注意。雌性有权决定是否交配。如果交配发生,雌性就开始在巢或洞穴中产卵,卵一出来就会离开。
2.2 灵感来源
蛇优化算法的灵感来源于蛇的交配行为。如果温度较低,且食物可用,蛇的交配行为发生;否则蛇只会寻找食物或吃现有的食物。基于此,将考虑蛇优化算法的搜索过程分为两个阶段:勘探和开发。勘探描述了环境因素,即寒冷的地方和食物,该阶段并不存在蛇只在它周围的环境中寻找食物的这种情况。
开发包括许多过渡阶段,以提高算法的搜索效率。如果食物是可用的,但温度很高,蛇会只关注吃可用的食物。最后,如果食物可用,且该区域很冷,则交配过程发生。在交配过程中有一些情况,即战斗模式或交配模式。在战斗模式中,每个雄性会战斗得到最好的雌性,每个雌性会努力选出最好的雄性。在交配模式中,每对蛇交配行为的发生取决于食物的可用性数量。在搜索空间中,如果交配行为发生,雌性就有可能产卵,孵化成新的蛇。
2.3 数学模型与算法
2.3.1 初始化
蛇种群初始化数学描述如下:
式中:为第i个蛇的位置;r是[0,1]范围内的随机数;和分别是求解问题的上下边界。
2.3.2 将种群分为雌性和雄性两个组
假设雄性的数量为50%,雌性的数量为50%。种群被分为两组:雄性组和雌性组。用以下2个公式来划分种群。
式中:为蛇种群的大小规模;为雄性的数量;为雌性的数量。
评估每一组,并定义温度和食物数量
在每一组中找出最好的个体,得到最好的雄性和最好的雌性食物的位置
温度可以用以下公式来定义:
式中:t为当前的迭代次数;T为最大的迭代次数。
食物数量可以用以下公式定义:
式中:为一个常数,取0.5。
2.3.3 勘探阶段(没食物)
如果(阈值),蛇通过选择任何随机位置来搜索食物,并更新它们的位置。要模拟勘探阶段,如下所述:
式中:为雄性位置;为随机选择的雄性的位置;rand是[0,1]范围内的随机数;为雄性寻找食物的能力,计算公式如下:
式中:为随机选择的雄性的位置的适应度值,为雄性位置的适应度值;为一个常数,取0.05。
式中:为雌性位置;为随机选择的雌性的位置;rand是[0,1]范围内的随机数;为雌性寻找食物的能力,计算公式如下:
式中:为随机选择的雄性的位的适应度值,为雄性位置的适应度值。
2.3.4 开发阶段(有食物)
在的条件下,如果,那么温度处于热状态(hot)。蛇只会寻找食物,位置更新公式如下:
式中:为蛇个体(雄性或雌性)的位置;为蛇个体的最佳位置;rand是[0,1]范围内的随机数;为一个常数,取2。
在的条件下,如果,那么温度处于冷状态(cold)。蛇将处于战斗模式或交配模式。
(a)战斗模式
式中:为第i个雄性的位置;为雌蛇组中的最佳位置;rand是[0,1]范围内的随机数;为雄性战斗能力。
式中:为第i个雌性的位置;为雄蛇组中的最佳位置;rand是[0,1]范围内的随机数;为雌性战斗能力。
和可以由以下公式计算出来:
式中:为雌蛇组中的最佳位置的适应度值;为雄蛇组中的最佳位置的适应度值;为蛇个体的适应度值。
(b)交配模式
式中:为第i个雄性的位置;为第i个雌性的位置;rand是[0,1]范围内的随机数;和分为雄性和雌性的交配能力,可以由以下公式计算出来:
式中:为第i个雄性位置的适应度值;为第i个雌性位置的适应度值。如果卵孵化,选择最差的雄性和雌性,并替换它们。
式中:为雄蛇组中的最差位置;为雌蛇组中的最差位置。
算法流程如下:
3.实验结果
4.参考文献
[1] Hashim, F. A., & Hussien, A. G. (2022). Snake Optimizer: A novel meta-heuristic optimization algorithm.Knowledge-Based Systems, 108320.
5.Matlab代码