QHDBO基于量子计算和多策略融合的蜣螂优化算法

时间:2025-03-20 07:35:44

2. DBO

基本的蜣螂算法通过模拟蜣螂在自然界中的四种行为(滚动、产卵、觅食和偷窃)来执行种群位置更新。

2.1 滚动蜣螂

在自然界中,蜣螂必须通过太阳导航,使其球滚动的路线尽可能直线。方程(1)用于原始论文中更新滚动蜣螂的位置:

x i ( t + 1 ) = x i ( t ) + α ⋅ k ⋅ x i ( t − 1 ) + b ⋅ Δ x (1) x_i(t + 1) = x_i(t) + \alpha \cdot k \cdot x_i(t - 1) + b \cdot \Delta x \tag{1} xi(t+1)=xi(t)+αkxi(t1)+bΔx(1)
其中
Δ x = ∣ x i ( t ) − X w ∣ \Delta x = |x_i(t) - X^w| Δx=xi(t)Xw

其中 t t t表示当前迭代次数, x i ( t ) x_i(t) xi(t)表示 i i i次迭代中蜣螂的位置。在原始文本中, α \alpha α表示蜣螂是否偏离原始方向, α \alpha α的值以1或-1的概率设置,1表示无偏差,-1表示偏差。 k ∈ ( 0 , 0.2 ] k \in (0, 0.2] k(0,0.2]表示缺陷系数。 b b b是一个常数,属于[0, 1],在代码中赋值为0.3。 X w X^w Xw表示全局最差值。 Δ x \Delta x Δx用于模拟太阳照射,较大的 Δ x \Delta x Δx表示蜣螂离光源更远。在自然界中,当蜣螂遇到障碍物时,它会通过跳舞行为获得新的滚动方向。为了模拟这种情况,原始文章通过概率模拟蜣螂在滚动过程中是否遇到障碍物,当遇到障碍物时,原始文章使用切线函数获得新的滚动方向,以模拟蜣螂的跳舞行为。滚动蜣螂位置的更新变为方程(2)。

x i ( t + 1 ) = x i ( t ) + tan ⁡ ( θ ) ∣ x i ( t ) − x i ( t − 1 ) ∣ (2) x_i(t + 1) = x_i(t) + \tan(\theta) |x_i(t) - x_i(t - 1)| \tag{2} xi(t+1)=xi(t)+tan(θ)xi(t)xi(t1)(2)

θ ∈ [ 0 , π ] \theta \in [0, \pi] θ[0,π],当 θ = 0 , π / 2 \theta = 0, \pi / 2 θ=0,π/2 π \pi π时,位置不更新。

2.2 产卵蜣螂

在自然界中,蜣螂选择一个安全区域进行产卵,为了模拟这种行为,原始论文提出了一种边界选择策略来模拟这个区域,定义如下:

L b ∗ = max ⁡ ( X ∗ × ( 1 − R ) , L b ) (3) Lb^* = \max(X^* \times (1 - R), Lb) \tag{3} Lb=max(X×(1R),Lb)(3)

U b ∗ = min ⁡ ( X ∗ × ( 1 + R ) , U b ) Ub^* = \min(X^* \times (1 + R), Ub) Ub=min(X×(1+R),Ub)

L b ∗ Lb^* Lb U b ∗ Ub^* Ub表示产卵区域的上下界, X ∗ X^* X是当前局部最优, R = 1 − t / T max ⁡ R = 1 - t / T_{\max} R=1t/Tmax T max ⁡ T_{\max} Tmax表示最大迭代次数。一旦产卵蜣螂确定了最佳产卵区域,它就会在这个区域内产卵。在原始文本中,每只产卵蜣螂产卵区域是动态变化的,因此搜索当前最优解所在的区域可以保证,同时防止陷入局部最优。产卵蜣螂的位置更新由方程(4)给出。

x i ( t + 1 ) = X ∗ + b 1 × ( x i ( t ) − L b ∗ ) + b 2 × ( x i ( t ) − U b ∗ ) (4) x_i(t + 1) = X^* + b_1 \times (x_i(t) - Lb^*) + b_2 \times (x_i(t) - Ub^*) \tag{4} xi(t+1)=X+b1×(xi(t)Lb)+b2×(xi(t)Ub)(4)

其中 b 1 b_1 b1 b 2 b_2 b2是大小为1×Dim的随机变量,Dim表示问题的维度。

2.3 觅食蜣螂

在自然界中,蜣螂觅食也会像产卵一样选择一个安全区域。原始文本选择重新定义该区域的具体定义为公式:

L b b = max ⁡ ( X b × ( 1 − R ) , L b ) (5) Lb^b = \max(X^b \times (1 - R), Lb) \tag{5} Lbb=max(Xb×(1R),Lb)(5)

U b b = min ⁡ ( X b × ( 1 + R ) , U b ) Ub^b = \min(X^b \times (1 + R), Ub) Ubb=min(Xb×(1+R),Ub)

这里 X b X^b Xb表示最优全局位置, L b b Lb^b Lbb U b b Ub^b Ubb表示最佳觅食区域的上下界, L b Lb Lb U b Ub Ub表示问题求解的上下界,每次觅食行为的蜣螂对应觅食蜣螂和觅食位置的一个位置更新如下:

x i ( t + 1 ) = x i ( t ) + C 1 × ( x i ( t ) − L b b ) + C 2 × ( x i ( t ) − U b b ) (6) x_i(t + 1) = x_i(t) + C_1 \times (x_i(t) - Lb^b) + C_2 \times (x_i(t) - Ub^b) \tag{6} xi(t+1)=xi(t)+C1×(x