智能優化演算法:象群演算法-附代碼
文章目錄
- 智能優化演算法:象群演算法-附代碼
- 1.演算法原理
- 1.1 氏族更新操作
- 1.2 氏族分離操作
- 2.演算法結果
- 3.參考文獻
- 4.Matlab代碼
摘要:象群優化演算法(Elephant Herding Optimization, EHO)是 Wang 等人于2016 年提出了一種新的群體智能優化演算法,用于解決全域無約束優化問題,它源于自然界中大象的畜牧行為,它已經成功應用于多級別閾值,支持向量機引數優化,調度問題等諸多問題,盡管 EHO 演算法是一種較新的元啟發式演算法,但它有著結構簡單、控制引數少以及易于和其它方法相結合等特點,能夠很好的解決尋優問題,
1.演算法原理
在自然界中,一個象群可分為幾個氏族,每個氏族都有母象作為首領,在每一代中,一定數量的雄象會離開氏族,對于不同氏族的的大象在族長(氏族中位置最好的大象)的領導下生活,固定數量的雄象在長大后會離開它們所在的氏族,從而執行氏族更新操作來更新氏族中每個大象的位置,得到新的大象氏族位置,隨后執行分類操作,進而優化氏族中位置較差的大象位置,
在基本的象群優化演算法中氏族代表著區域搜索,離開氏族的雄象則執行全域搜索,在基本的 EHO 演算法中,先進行更新操作決定演算法的搜索方向和區域搜素詳細程度,隨后實作分離操作,這個程序包括兩個階段:氏族更新操作和分離操作,
1.1 氏族更新操作
來自不同群體的大象在族長的領導下一起生活, 女族長是氏族中適應度最好的大象,每個大象的位置都根據其位置和女族長的位置進行更新, 族長的位置根據氏族中心的位置進行更新,
隨機初始化大象種群,將大象種群分為
n
n
n 個氏族,每個氏族中有
j
j
j 個大象個體,在每次迭代中,每個大象
j
j
j 的位置都會隨氏族
c
i
c_i
ci? 中族長(適應度值最好的位置
x
b
e
s
t
,
c
i
x_{best,ci}
xbest,ci?,)移動:
x
n
e
w
,
c
i
,
j
=
x
c
i
,
j
+
α
.
(
x
b
e
s
t
,
c
i
?
x
c
i
,
j
)
.
r
(1)
x_{new,ci,j} = x_{ci,j}+\alpha.(x_{best,ci}-x_{ci,j}).r \tag{1}
xnew,ci,j?=xci,j?+α.(xbest,ci??xci,j?).r(1)
式中:
x
n
e
w
,
c
i
,
j
x_{new,ci,j}
xnew,ci,j?,是更新后的位置,
x
c
i
,
j
x_{ci,j}
xci,j?,是上一代的位置,
x
b
e
s
t
,
c
i
x_{best,ci}
xbest,ci?,是在氏族
c
i
c_i
ci?中適應度最好的位置,
α
∈
[
0
,
1
]
\alpha \in [0,1]
α∈[0,1]代表氏族中位置最佳的女族長
x
b
e
s
t
,
c
i
x_{best,ci}
xbest,ci?,對大象個體
x
c
i
,
j
x_{ci,j}
xci,j?的影響的比例因子,
r
∈
[
0
,
1
]
r \in [0,1]
r∈[0,1]是演算法后期用來提高種群多樣性的亂數,
氏族
c
i
c_i
ci?中女族長的位置
x
b
e
s
t
,
c
i
x_{best,ci}
xbest,ci?,被定為:
x
n
e
w
,
c
i
,
j
=
β
?
x
c
e
n
t
e
r
,
c
i
(2)
x_{new,ci,j} = \beta*x_{center,ci} \tag{2}
xnew,ci,j?=β?xcenter,ci?(2)
式中:
β
∈
[
0
,
1
]
\beta \in [0,1]
β∈[0,1] 代表第二個演算法引數,它控制氏族中心
x
c
e
n
t
e
r
,
c
i
x_{center,ci}
xcenter,ci?的影響,氏族中心被定義為:
x
c
e
n
t
e
r
,
c
i
,
d
=
(
∑
j
=
1
n
c
i
x
c
i
,
j
,
d
)
/
n
c
i
(3)
x_{center,ci,d} = (\sum_{j=1}^{n_{ci}}x_{ci,j,d})/n_{ci} \tag{3}
xcenter,ci,d?=(j=1∑nci??xci,j,d?)/nci?(3)
其中
1
≤
d
≤
D
1\leq d \leq D
1≤d≤D代表第
d
d
d 維,
D
D
D 是搜索空間的總維數,
n
c
i
n_{ci}
nci? 是氏族
c
i
c_i
ci? 中大象的數量,
1.2 氏族分離操作
雄性大象在長大后會離開他們的群體,以增加群體的全域搜索能力和密度,最壞的大象(適應度最差的大象)被洗掉,并在搜索空間進行隨機搜索以增加搜索性能,
在每個氏族
c
i
c_i
ci?中,具有最差適應度函式值的恒定數量的大象會被移動到新的位置,它們的位置定義為:
x
w
o
r
s
t
,
c
i
=
x
m
i
n
+
{
x
m
a
x
?
x
m
i
n
+
1
}
?
r
a
n
d
(4)
x_{worst,ci} = x_{min}+\{x_{max} - x_{min} + 1\}*rand \tag{4}
xworst,ci?=xmin?+{xmax??xmin?+1}?rand(4)
其中
x
m
i
n
x_{min}
xmin?和
x
m
a
x
x_{max}
xmax?分別表示搜索空間的下限和上限,
r
a
n
d
∈
[
0
,
1
]
rand \in [0,1]
rand∈[0,1],
EHO 演算法的基本步驟如下:
Step1: 初始化種群、設定最大迭代次數,
Step2: 用適應度函式計算每個大象個體的適應度值,得到當前最優個體位置,
Step3: 根據公式(1)更新種群中每個大象個體的位置,使用公式(2)更新當前最優個體的位置,
Step4: 計算更新之后的每個大象個體的適應度值,評估種群,得到更新后的種群最優和最差的大象個體位置,
Step5: 使用公式(4)更新當前最差個體位置,保留更好的解,
Step6: 判斷是否達到最大迭代次數,若是,則輸出當前最優個體位置以及對應的適應度值,否則回傳執行 Step2,
2.演算法結果

3.參考文獻
[1]張子建,王宏偉,周懷芳,尤森檳.基于多機制混合象群演算法的混沌系統引數估計[J].微電子學與計算機,2020,37(06):40-45.
[1]曹倩倩. 象群優化演算法的改進及其在網路入侵檢測中的應用[D].湖北工業大學,2020.
4.Matlab代碼
https://mianbaoduo.com/o/bread/aZeTlpY=
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/179074.html
標籤:AI
