1. 算法簡介
(以下描述哲身,均不是學術(shù)用語,僅供大家快樂的閱讀)
阿基米德算法(Archimedes optimization algorithm)是受阿基米德浮力定律啟發(fā)而提出的優(yōu)化算法疯暑。算法發(fā)表于2020年勾给,新算法一枚滩报。
該算法主要模擬了浮力定律,每個個體除了位置之外播急,還有密度脓钾、體積和加速度這三個屬性,通過改變個體的密度和體積來調(diào)節(jié)個體的加速度桩警,加速度和當前位置決定個體的新位置
2. 算法流程
阿基米德算法中惭笑,每個個體有四個屬性:
每次迭代會依次更新個體的密度、體積生真、加速度和位置沉噩,其中加速度和位置會根據(jù)迭代次數(shù)分階段更新。
2.1更新密度和體積
算法迭代過程中柱蟀,個體的密度和體積都在向著全局最優(yōu)個體的密度和體積靠近川蒙。
其中為第i個個體密度的第d維值,為第i個個體體積的第d維值长已⌒笳#可以看出昼牛,密度和體積的更新公式相似,都是向著最優(yōu)個體的密度和體積靠近康聂。
2.2階段1
當TF<=0.5時贰健,進入第一階段。TF計算公式如下:
其圖像如下:
可以看出算法在約前30%迭代時會進入該階段恬汁,在剩下的70%迭代中會進入第二階段伶椿。
該階段中個體的加速度按照如下公式計算:
公式(4)中r為群體中隨機個體的編號。公式(5)則表示將所有個體的加速度歸一下氓侧,線性映射到[l,u]內(nèi)脊另,其中l(wèi)取值為0.1,u取值為0.9约巷。
得到歸一化后的加速度后偎痛,可用于計算其新位置:
公式(6)中r為種群中隨機個體的編號,C1為常量独郎,一般取值為2踩麦,rand為取值在[0,1]的均勻隨機數(shù)。公式(6)表示該個體向隨機個體移動了一小步氓癌。
公式(7)的圖像如下:
得到新位置后靖榕,如果新位置優(yōu)于原位置則移動到該位置,否則保持不動顽铸。
2.3階段2
當TF>0.5時,進入第二階段优质,第二階段的計算公式與第一階段較為相似,只是將個體的出發(fā)點變?yōu)榱巳肿顑?yōu)位置拍皮,其具體計算公式如下:
其中F隨機在{-1,1}中取值萨螺,C2取值為6惹盼,C3取值為2掩蛤,rand為[0,1]內(nèi)均勻分布隨機數(shù)阳藻,T最大取值為1啃匿,若T>1則取其值為1。
從上述公式可以看出階段2是以全局最優(yōu)位置為起點,向自身移動一段距離逻住。
得到新位置后扒秸,如果新位置優(yōu)于原位置則移動到該位置拾徙,否則保持不動询微。
2.4流程圖
算法在階段1和階段2后需要添加貪心步驟西雀,保證當前位置不差于之前的位置。如果某個個體優(yōu)于全局最優(yōu)歉摧,除了記錄其位置作為新的最優(yōu)位置艇肴,還需要額外記錄該個體的密度、體積和加速度叁温,以便下次迭代的階段2使用再悼。
個人感覺阿基米德優(yōu)化算法與之前的萬有引力算法比較像,像是對受力進行了歸一化的萬有引力算法膝但。不過阿基米德優(yōu)化算法使用了兩個階段以不同的方式去搜索冲九,階段1以自身為起點,搜索范圍較大但是步長小,階段2以最優(yōu)解為起點莺奸,搜索范圍較小丑孩,但是步長大。
3. 實驗
適應度函數(shù)灭贷。
實驗一:
問題維度(維度) | 2 |
總?cè)簲?shù)量(種群數(shù)) | 20 |
最大迭代次數(shù) | 50 |
取值范圍 | (-100温学,100) |
實驗次數(shù) | 10 |
C1 | 2 |
C2 | 6 |
C3 | 2 |
從圖像看算法的性能還是不錯的,雖然由于階段2的步長較長甚疟,容易超出邊界仗岖,但是還階段的搜索能力還是很不錯的,最終還是收斂到了正解附近览妖。
值 | |
---|---|
最優(yōu)值 | 5.946754698793426E-9 |
最差值 | 8.60629838153433E-4 |
平均值 | 8.630576946952844E-5 |
從結(jié)果也可以看出其性能還是很不錯的轧拄,算法也相對比較穩(wěn)定,簡單的測試似乎已經(jīng)無法測試其性能了讽膏。
就這樣吧檩电,普通修改似乎也無法讓其擁有更好的性能,畢竟“天下沒有免費的午餐”桅打。
4.總結(jié)
阿基米德優(yōu)化算法是受阿基米德浮力定律啟發(fā)而提出的優(yōu)化算法是嗜。通過個體的密度和體積計算其加速度進而確定其位置愈案。位置的確定有兩個階段挺尾,階段1以自身為起點,向隨機個體前進一小步站绪,全局搜索遭铺,快速收斂,階段2以最優(yōu)個體為起點恢准,向自身前進一大步魂挂,為局部搜索。算法明確兩個階段的搜索方式馁筐,結(jié)果還是不錯的涂召,如果能加入一點跳出局部最優(yōu)就更好了。
參考文獻
Hashim F A , Hussain K , Houssein E H , et al. Archimedes optimization algorithm: a new metaheuristic algorithm for solving optimization problems[J]. Applied Intelligence, 2020:1-21.
提取碼:a83n
原文代碼 提取碼:a83n
以下指標純屬個人yy,僅供參考
指標 | 星數(shù) |
---|---|
復雜度 | ★★★☆☆☆☆☆☆☆ |
收斂速度 | ★★★★★☆☆☆☆☆ |
全局搜索 | ★★★★★☆☆☆☆☆ |
局部搜索 | ★★★★★☆☆☆☆☆ |
優(yōu)化性能 | ★★★★★☆☆☆☆☆ |
跳出局部最優(yōu) | ★☆☆☆☆☆☆☆☆☆ |
改進點 | ★★☆☆☆☆☆☆☆☆ |