基于天牛须搜索算法的函数寻优算法

一、理论基础

Jiang和Li在2017年受到天牛规食及寻偶行为的启发,提出了天牛须搜索算法(Beetle antennae search algorithm, BAS)。天牛在空气中捕获食物及潜在配偶的味道,根据天牛两侧天牛须检测到的气味浓度前进。该算法复杂度低,且不需要知道梯度信息等就能实现优化的目的。

1、算法原理

在寻找食物过程中,天牛幵不知道食物的具体位置,它通过头上的左右两个触角对周围环境中气味的浓度进行捕获。倘若天牛探测到左侧触角感知的浓度更大,便向左侧前进;反之,则向右侧前进。通过这一简单原理,天牛最终能有效的寻找到食物。
该算法用数学模型表示的寻优步骤如下:
(1)天牛在任意位置时,头的朝向都是随机的。在维度 D D D中,天牛朝向向量表示并归一化为 b → = r a n d ( D , 1 ) ∣ r a n d ( D , 1 ) ∣ (1) \overrightarrow b=\frac{rand(D,1)}{|rand(D,1)|}\tag{1} b =rand(D,1)rand(D,1)(1)
(2)天牛左右须 x l e f t x_{left} xleft x r i g h t x_{right} xright位置可用天牛质心位置 x m x^m xm和两须距离 d m d^m dm表示为 x r i g h t = x m + d m ⋅ b → x r i g h t = x m − d m ⋅ b → (2) \begin{aligned}x_{right}=x^m+d^m\cdot\overrightarrow b\\x_{right}=x^m-d^m\cdot\overrightarrow b\end{aligned}\tag{2} xright=xm+dmb xright=xmdmb (2)
(3)依据适应度函数 f ( x ) f(x) f(x)计算天牛两侧触须的气味浓度,即 f ( x l e f t ) f(x_{left}) f(xleft) f ( x r i g h t ) f(x_{right}) f(xright)。为了模仿天牛探测机制,生成以下位置更新迭代模型 x m = x m − 1 + δ m ⋅ b → ⋅ s i g n ( f ( x r i g h t − x l e f t ) ) (3) x^m=x^{m-1}+\delta^m\cdot\overrightarrow b\cdot sign(f(x_{right}-x_{left}))\tag{3} xm=xm1+δmb sign(f(xrightxleft))(3)其中, δ m \delta^m δm m m m时刻(迭代次数)的搜索步长。
(4)天牛步长 δ \delta δ与两须距离 d d d的更新规则如下,当然,也可以取一个特定的值,依实际情况而定。 d m = d e ⋅ d m − 1 + 0.01 (4) d^m =d_e\cdot d^{m-1}+0.01\tag{4} dm=dedm1+0.01(4) δ m = δ e ⋅ δ m − 1 (5) \delta^m =\delta_e\cdot\delta^{m-1}\tag{5} δm=δeδm1(5)其中, d e d_e de δ e \delta_e δe分别表示 d d d δ \delta δ的递减因子。
由于算法寻优过程中,仅有单只天牛,并非种群,故而算法所需参数少, 代码简单,计算量也远小于其他算法,复杂度低,但也因此而失去了种群多样性,算法的单一性使得其易陷入局部极值。

2、算法伪代码

在这里插入图片描述

二、仿真实验

基本测试函数如表1所示,函数维度均为2。种群规模 N = 30 N = 30 N=30,最大迭代次数 M a x _ i t e r = 1000 Max\_iter=1000 Max_iter=1000
在这里插入图片描述

表1 基本测试函数

迭代曲线依次显示如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

三、参考文献

[1] Jiang X, Li S. BAS: Beetle Antennae Search Algorithm for Optimization Problems[J]. International Journal of Robotics and Control, 2017, 1(1).

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心️升明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值