智能優化演算法: 基于混合量子理論的鴿群優化演算法,QPIO
- 前言
- 一、創新點
- 二、鴿群演算法
- 鴿群演算法原理
- 地圖和指南針算子(Map/compass operator)
- 地標算子(LandMark operator)
- 基本鴿群演算法流程(簡)
- 實數編碼的量子表示(A real-code quantum representation)
- 量子旋轉門(Quantum rotation gate, QRG)
- 三、文章優勢分析
- 對比實驗
- 分析
前言
哈嘍,大家好,我是一枚小博士,今天得閑,所以馬不停蹄的給大家更新我疫情期間學習的一篇優化演算法文獻——基于量子的鴿群優化演算法(SCI文章),
一、創新點
這篇文獻的創新點有兩處:一、利用一種實數編碼的量子表達方式對當前迭代中的最優候選解進行重構;二、利用量子旋轉門,更新量子表達,
二、鴿群演算法
鴿群演算法原理
鴿群演算法是由北航教授段海濱等人于2014年提出的一種新的群體智能優化演算法,演算法主要由兩部分組成:地圖和指南針算子和地標算子兩部分,
地圖和指南針算子(Map/compass operator)
地圖和指南針算子是模仿太陽和地球磁場這兩種導航工具對鴿子的作用,鴿子通過磁感來感受磁場,從而在腦海中繪制地圖,并把太陽當作指南針來調整方向,隨著鴿群越來越逼近目的地,會逐步減少對太陽和磁性粒子的依賴,
在此階段,鴿群演算法有點類似于粒子群演算法(PSO),每只鴿子同樣由其位置資訊和速度資訊表示,在這里不做過多的原理性贅述,第
j
j
j只鴿子在第
t
t
t代的速度資訊和位置資訊更新策略如下:
V
j
(
t
+
1
)
=
V
j
,
s
+
r
a
n
d
?
V
j
,
c
(
t
)
=
e
?
R
t
V
j
(
t
)
+
r
a
n
d
[
x
g
b
(
t
)
?
x
j
(
t
)
]
V_j(t+1)=V_{j,s}+rand*V_{j,c}(t)=e^{-Rt}V_j(t)+rand[x_{gb}(t)-x_j(t)]
Vj?(t+1)=Vj,s?+rand?Vj,c?(t)=e?RtVj?(t)+rand[xgb?(t)?xj?(t)]
x
j
(
t
+
1
)
=
x
j
(
t
)
+
V
j
(
t
+
1
)
x_j(t+1)=x_j(t)+V_j(t+1)
xj?(t+1)=xj?(t)+Vj?(t+1)其中,
R
R
R為羅盤算子,其取值為0.2,
地標算子(LandMark operator)
此階段,主要針對演算法的探索能力進行了提升優化,地標算子模仿導航工具地標對鴿子的影響,當鴿群接近目的地時,會依靠臨近地標進行導航,如果某只鴿子熟悉地標,那么以徑直飛向目的地;反之,如果不熟悉地標并且遠離目的地的情況下,該只鴿子會跟隨熟悉地標的其他鴿子飛行,從而到達目的地,
首先對鴿子的適應度值進行排序,然后每次迭代對其種群數量減半,假設中心鴿子熟悉地形,可以直接飛向目的地,其他的鴿子都在中心鴿子的引領下,向著目的地前進,位置更新策略如下:
N
p
(
t
)
=
N
p
(
t
?
1
)
/
2
N_p(t)=N_p(t-1)/2
Np?(t)=Np?(t?1)/2
X
c
=
∑
X
i
(
t
)
?
f
i
t
n
e
s
s
(
X
i
(
t
)
)
N
p
∑
f
i
t
n
e
s
s
(
X
c
(
t
)
?
X
i
(
t
?
1
)
)
{X_c} = \frac{{\sum {{X_i}\left( t \right) \cdot fitness\left( {{X_i}\left( t \right)} \right)} }}{{{N_p}\sum {fitness\left( {{X_c}\left( t \right) - {X_i}\left( {t - 1} \right)} \right)} }}
Xc?=Np?∑fitness(Xc?(t)?Xi?(t?1))∑Xi?(t)?fitness(Xi?(t))?
X
i
(
t
)
=
X
i
(
t
?
1
)
+
r
a
n
d
?
(
X
c
(
t
)
?
X
i
(
t
?
1
)
)
{X_i}\left( t \right) = {X_i}\left( {t - 1} \right) + rand \cdot \left( {{X_c}\left( t \right) - {X_i}\left( {t - 1} \right)} \right)
Xi?(t)=Xi?(t?1)+rand?(Xc?(t)?Xi?(t?1))
基本鴿群演算法流程(簡)
start——
step1:初始化引數與位置資訊;
step2:設定每只鴿子隨機速度和位置資訊,比較每只鴿子的適應度,找出當前最優解;
step3:操作地圖和指南針算子,根據公式(1)(2)對鴿子的位置資訊和速度資訊進行更新,然后比較所有鴿子的適應度,找到新的最優解;
step4:如果迭代次數達到地圖和指南針算子的迭代上限,則停止當前迭代,轉而操作地標算子,否則跳轉至Step3;
step5:根據鴿子的健康值對其進行排序,根據公式(3)(4)(5)操作地標算子,存盤最佳位置以及最優函式值;
step6:判斷迭代次數是否超過迭代上限,若超過,則輸出結果,否則跳轉至Step5,
Output:最優解——end
實數編碼的量子表示(A real-code quantum representation)
一個量子可以通過“0”態和“1”態進行表示,即正態與偽態,量子位狀態被表示為如下:
∣
ψ
?
=
α
∣
0
?
+
β
∣
1
?
\left| \psi \right\rangle = \alpha \left| 0 \right\rangle + \beta \left| 1 \right\rangle
∣ψ?=α∣0?+β∣1?,其中,
α
\alpha
α和
β
\beta
β分別代表兩種狀態的線性概率,且滿足
α
i
2
+
β
i
2
=
1
,
(
i
=
1
,
2
,
?
?
,
n
)
\alpha _i^2 + \beta _i^2 = 1,\left( {i = 1,2, \cdots ,n} \right)
αi2?+βi2?=1,(i=1,2,?,n)在這里最優解被認為是兩個狀態概率的線性疊加,即“0”態和“1”態,最優解的量子表示可以更新為:
則每只鴿子的收斂方向可以重新被定義為:
d
j
,
c
=
x
^
g
?
x
j
{d_{j,c}} = {\hat x_g} - {x_j}
dj,c?=x^g??xj?其中,
x
^
g
{\hat x_g}
x^g?是最有候選解的觀測值,文獻中引入一個復函式
ω
(
x
,
y
)
\omega \left( {x,y} \right)
ω(x,y),通過計算其概率密度
∣
ω
(
x
,
y
)
∣
2
{\left| {\omega \left( {x,y} \right)} \right|^2}
∣ω(x,y)∣2得到最優候選解得觀測值,
∣
ω
(
x
i
)
∣
2
=
1
2
π
σ
i
exp
?
(
?
(
x
i
?
μ
i
)
2
2
σ
i
)
,
i
=
1
,
2
,
?
?
,
n
{\left| {\omega \left( {{x_i}} \right)} \right|^2} = {1 \over {\sqrt {2\pi } {\sigma _i}}}\exp \left( { - {{{{\left( {{x_i} - {\mu _i}} \right)}^2}} \over {2{\sigma _i}}}} \right),\quad i = 1,2, \cdots ,n
∣ω(xi?)∣2=2π
?σi?1?exp(?2σi?(xi??μi?)2?),i=1,2,?,n其中,
μ
i
{\mu _i}
μi?和
σ
i
{\sigma _i}
σi?分別代表期望值和標準差,期望值可以用當前最優候選解表示,標準差可以用下式進行計算:

最后,得到當前最優解得觀測值為:
x
^
g
=
r
a
n
d
×
∣
ω
(
x
i
)
∣
2
×
(
x
i
,
max
?
?
x
i
,
min
?
)
{\hat x_{g}} = rand \times {\left| {\omega \left( {{x_i}} \right)} \right|^2} \times \left( {{x_{i,\max }} - {x_{i,\min }}} \right)
x^g?=rand×∣ω(xi?)∣2×(xi,max??xi,min?)
綜上所示,第
j
j
j只鴿子在第
t
t
t次迭代種得速度更新公式更改為:
V
j
(
t
+
1
)
=
V
j
,
s
+
r
a
n
d
?
V
j
,
c
(
t
)
=
e
?
R
t
V
j
(
t
)
+
d
j
,
c
V_j(t+1)=V_{j,s}+rand*V_{j,c}(t)=e^{-Rt}V_j(t)+d_{j,c}
Vj?(t+1)=Vj,s?+rand?Vj,c?(t)=e?RtVj?(t)+dj,c?
量子旋轉門(Quantum rotation gate, QRG)
在量子遺傳演算法中,由于量子編碼作用下的染色體不再是單一狀態,遺傳操作不能繼續采用傳統的選擇、交叉、變異操作,繼而采用量子旋轉門作用于量子染色體的基態,使其相互干擾、發生相位變化,從而改變
α
i
\alpha_i
αi?的分布域,
這里同樣使用QRG對最優解的概率幅值進行更新,通過增加旋轉角度,提高
α
i
\alpha_i
αi?的概率幅值,進而提高了個體朝全域最佳解的收斂速度,演算法開始時,
α
i
\alpha_i
αi?與
β
i
\beta_i
βi?所對應的概率幅值均為
2
/
2
\sqrt2 /2
2
?/2,如果全域最優解在迭代結束之后發生改變,則通過量子旋轉門增加
α
i
\alpha_i
αi?;否則,將概率幅值全部重置為初始值,防止演算法陷入區域最優,QRG具體更新策略如下:
α
i
(
t
+
1
)
=
[
cos
?
(
Δ
θ
)
?
sin
?
(
Δ
θ
)
]
[
α
i
(
t
)
1
?
[
α
i
(
t
)
]
2
]
{\alpha _i}\left( {t + 1} \right) = \left[ {\cos \left( {\Delta \theta } \right) - \sin \left( {\Delta \theta } \right)} \right]\left[ {{{{\alpha _i}\left( t \right)} \over {\sqrt {1 - {{\left[ {{\alpha _i}\left( t \right)} \right]}^2}} }}} \right]
αi?(t+1)=[cos(Δθ)?sin(Δθ)]???1?[αi?(t)]2
?αi?(t)????
這里大家對RCQ和QRG還有疑問得地方,可以去看一下這篇文章,https://blog.xupengit.top/index.php/20181210/cid=35.html
三、文章優勢分析
這篇文章得主要賣點在于用最少的個體,表達最多得種群特性,因此,QPIO演算法可以用最小的種群數量解決大規模優化問題,這樣就減少了演算法的時間復雜度,
對比實驗
老規矩,使用CEC測驗函式Sphere進行測驗,其中,將種群數量population size都設定為6,觀察對比結果,

分析
通過對比圖片中的收斂情況,讀者應該有一個直觀的認識,即量子鴿群演算法,可以用最少的種群來解決大規模問題,且具有更加優秀的演算法性能,
這篇文章為SCI一區特刊論文,具有非常強的實用性和可拓展性,可以將此方法RCQ和QRG嫁接至其他群體智能優化演算法上,繼而發表一些高質量論文,
具體Matlab代碼鏈接如下:
https://mianbaoduo.com/o/bread/aZ2ckpw=
前一段時間給大家分享的海鷗演算法(SOA),就可以與這篇文章的思路進行結合,發表一篇SCI文章,我覺得應該是沒問題噠,祝大家識訓滿滿!
具體Matlab代碼鏈接如下:
https://mianbaoduo.com/o/bread/aZqamJc=
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/224053.html
標籤:其他
