智能优化算法:乌燕鸥优化算法

2019智能优化算法:乌燕鸥优化算法

@[toc]
摘要:乌燕鸥优化算法是由 G. Dhiman 和 A.Kaur于 2019 年针对工业工程问题提出的一种新的优化算法,其灵感来源于海鸟在自然界中觅食的行为,乌燕鸥是杂食性鸟类,以蚯蚓、昆虫、鱼等食物为生。这种算法具有很强的全局搜索能力,精度也较高。

1.算法原理

1.1 迁移行为(全局探索)

迁移行为,也就是探索部分,主要分为三个部分:冲突避免,聚集和更新。

(1)冲突避免:
c_{st} = S_A*P_{st}(Z) \tag{1}
其中, p_{st}表示乌燕鸥的当前位置,c_{st}表示的是在不与其他乌燕鸥碰撞的情况下应当处于的位置,S_A代表了一个避免碰撞的变量因素,用来计算避免碰撞后的位置,它的约束条件如公式(2)
S_A=C_f-(Z*(C_f/Max_{iterations}))\tag{2}
其中,C_f是用来调整S_A的控制变量,Z表示当前迭代次数,因此S_AC_f到 0 线性递减。本文中C_f的值设置为 2,因此,S_A将从 2 到 0 逐渐减小。

(2)聚集

聚集是指在避免冲突的前提下向相邻乌燕鸥中最好的位置靠拢,也就是向最优解的位置靠拢,其数学表达式如下:
m_{st}=C_{B}*(p_{bst}(Z)-p_{st}(Z))\tag{3}
其中m_{st}表示在不同位置的p_{st}最优解的位置p_{bst}移动的过程,
C_B是一个使探索更加全面的随机变量,按照以下公式变化:
C_{B}=0.5*R_{rand}\tag{4}
其中,R_{rand}是 0 到 1 之间的随机数。

(3) 更新

更新是指在朝向最优解的位置更新轨迹,其轨迹d_{st}的数学表达式为:
d_{st}=c_{st}+m_{st}\tag{5}

1.2 攻击行为(局部探索)

在迁移过程中,乌燕鸥可以通过翅膀提高飞行高度也可以调整自身的速度和攻击角度,在攻击猎物的时候,它们在空中的盘旋
行为可定义为以下数学模型:
x'=R*sin(i) \tag{6}

y'=R*cos(i)\tag{7}

z' = R*i\tag{8}

R = ue^{kv}\tag{9}

其中,R表示每个螺旋的半径, i 表示[0,2\pi]之间的变量。 uv 是定义其螺旋形状的常数,在本文中均设定为 1, e 则是自然对数的基底。乌燕鸥的位置将按照下面的公式不断更新:
p_{st}(Z)=(d_{st}*(x'+y'+z'))*p_{bst}(Z) \tag{10}
算法流程:

Step1. 初始化算法参数,迭代次数,种群数量等等。

Step2.计算适应度值。

Step3.乌燕鸥进行迁移操作

Step4.乌燕鸥进行攻击操作

Step5.乌燕鸥更新位置

Step6.计算适应度值,并记录全局最优值

Step7.判断是否达到结束条件,如果没有则重复步骤Step2-Step7,否则输出最终结果。

2.实验结果

实验结果

3.参考文献

[1] Dhiman G, Kaur A. STOA: A bio-inspired based optimization algorithm for industrial engineering problems. Engineering Applications of Artificial Intelligence, 2019, 82:148-174.

[1]贾鹤鸣,李瑶,孙康健.基于遗传乌燕鸥算法的同步优化特征选择[J/OL].自动化学报:1-18[2020-12-29].https://doi.org/10.16383/j.aas.c200322.

4.Matlab代码

https://mianbaoduo.com/o/bread/YZWblppy

5.python代码

https://mianbaoduo.com/o/bread/YZaVm5hv

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容