智能優(yōu)化算法:象群算法-附代碼
@[toc]
摘要:象群優(yōu)化算法(Elephant Herding Optimization, EHO)是 Wang 等人于2016 年提出了一種新的群體智能優(yōu)化算法伦吠,用于解決全局無約束優(yōu)化問題,它源于自然界中大象的畜牧行為娃豹。它已經(jīng)成功應(yīng)用于多級別閾值,支持向量機(jī)參數(shù)優(yōu)化购裙,調(diào)度問題等諸多問題懂版。盡管 EHO 算法是一種較新的元啟發(fā)式算法,但它有著結(jié)構(gòu)簡單躏率、控制參數(shù)少以及易于和其它方法相結(jié)合等特點(diǎn)躯畴,能夠很好的解決尋優(yōu)問題。
1.算法原理
在自然界中薇芝,一個象群可分為幾個氏族蓬抄,每個氏族都有母象作為首領(lǐng),在每一代中夯到,一定數(shù)量的雄象會離開氏族嚷缭。對于不同氏族的的大象在族長(氏族中位置最好的大象)的領(lǐng)導(dǎo)下生活,固定數(shù)量的雄象在長大后會離開它們所在的氏族,從而執(zhí)行氏族更新操作來更新氏族中每個大象的位置阅爽,得到新的大象氏族位置路幸,隨后執(zhí)行分類操作,進(jìn)而優(yōu)化氏族中位置較差的大象位置付翁。
在基本的象群優(yōu)化算法中氏族代表著局部搜索简肴,離開氏族的雄象則執(zhí)行全局搜索。在基本的 EHO 算法中百侧,先進(jìn)行更新操作決定算法的搜索方向和局部搜素詳細(xì)程度砰识,隨后實現(xiàn)分離操作。這個過程包括兩個階段:氏族更新操作和分離操作佣渴。
1.1 氏族更新操作
來自不同群體的大象在族長的領(lǐng)導(dǎo)下一起生活辫狼。 女族長是氏族中適應(yīng)度最好的大象。每個大象的位置都根據(jù)其位置和女族長的位置進(jìn)行更新辛润。 族長的位置根據(jù)氏族中心的位置進(jìn)行更新予借。
隨機(jī)初始化大象種群,將大象種群分為 個氏族频蛔,每個氏族中有
個大象個體,在每次迭代中秦叛,每個大象
的位置都會隨氏族
中族長(適應(yīng)度值最好的位置
,)移動:
式中:,是更新后的位置晦溪,
,是上一代的位置,
,是在氏族
中適應(yīng)度最好的位置挣跋,
代表氏族中位置最佳的女族長
,對大象個體
的影響的比例因子三圆,
是算法后期用來提高種群多樣性的隨機(jī)數(shù)。
氏族 中女族長的位置
,被定為:
式中: 代表第二個算法參數(shù)避咆,它控制氏族中心
的影響舟肉。氏族中心被定義為:
其中代表第
維,
是搜索空間的總維數(shù)查库,
是氏族
中大象的數(shù)量路媚。
1.2 氏族分離操作
雄性大象在長大后會離開他們的群體,以增加群體的全局搜索能力和密度樊销。最壞的大象(適應(yīng)度最差的大象)被刪除整慎,并在搜索空間進(jìn)行隨機(jī)搜索以增加搜索性能。
在每個氏族中围苫,具有最差適應(yīng)度函數(shù)值的恒定數(shù)量的大象會被移動到新的位置裤园。它們的位置定義為:
其中和
分別表示搜索空間的下限和上限,
。
EHO 算法的基本步驟如下:
Step1: 初始化種群剂府、設(shè)置最大迭代次數(shù)拧揽。
Step2: 用適應(yīng)度函數(shù)計算每個大象個體的適應(yīng)度值,得到當(dāng)前最優(yōu)個體位置。
Step3: 根據(jù)公式(1)更新種群中每個大象個體的位置淤袜,使用公式(2)更新當(dāng)前最優(yōu)個體的位置痒谴。
Step4: 計算更新之后的每個大象個體的適應(yīng)度值,評估種群饮怯,得到更新后的種群最優(yōu)和最差的大象個體位置闰歪。
Step5: 使用公式(4)更新當(dāng)前最差個體位置,保留更好的解蓖墅。
Step6: 判斷是否達(dá)到最大迭代次數(shù)库倘,若是,則輸出當(dāng)前最優(yōu)個體位置以及對應(yīng)的適應(yīng)度值论矾,否則返回執(zhí)行 Step2教翩。
2.算法結(jié)果
3.參考文獻(xiàn)
[1]張子建,王宏偉,周懷芳,尤森檳.基于多機(jī)制混合象群算法的混沌系統(tǒng)參數(shù)估計[J].微電子學(xué)與計算機(jī),2020,37(06):40-45.
[1]曹倩倩. 象群優(yōu)化算法的改進(jìn)及其在網(wǎng)絡(luò)入侵檢測中的應(yīng)用[D].湖北工業(yè)大學(xué),2020.
4.Matlab代碼
https://mianbaoduo.com/o/bread/aZeTlpY=