智能優(yōu)化算法:人工電場優(yōu)化算法
@[toc]
摘要:人工電場算法(Artificial Electric Field Algorithm,AEFA)是由 Anita 和 Anupam Yadav于 2019 年提出的元啟發(fā)式優(yōu)化算法。AEFA 算法是一個杰出的非線性優(yōu)化算法,具有全局搜索能力強、優(yōu)化精度高和適應(yīng)范圍廣等特點。
1.算法原理
人工電場算法(AEFA)受庫侖定律的啟發(fā),通過模擬帶電粒子在靜電場的運動,將其演化成隨機搜索最優(yōu)解的過程。電荷在靜電力的作用下相互吸引或排斥,使電荷能在搜索空間中移動。在 AEFA 算法中,僅考慮電荷的吸引力,而忽略電荷的排斥力,因而電荷量大的帶電粒子能吸引所有其他電荷量較低的粒子向其靠近。
在搜索空間中,每一個電荷代表一個可行解,其強度由他們的電荷量來衡量,電荷的電荷量越大,表明該電荷越接近理論最優(yōu)解。如圖1所示,電荷面積的大小表示該電荷量的大小,電荷分別受到其它三個電荷的吸引力,根據(jù)運動定律,形成一個合力
和該方向的加速度。由于電荷
的電荷量最大,其吸引力也越大,電荷
合力
的方向更接近
與
之間的中心連線。因此,AEFA 算法通過模擬電荷間的相互作用力,當(dāng)搜索空間存在電荷量大的電荷時,其它電荷都向電荷量大的方向靠近,使算法收斂到最優(yōu)解。
AEFA 算法可看作是一個遵循庫侖靜電力定律和運動定律孤立的電荷系統(tǒng)。在此基礎(chǔ)上,定義了算法的物理性質(zhì)。
設(shè)維搜索空間中,第
個電荷的位置為:
式中, 為電荷
在第
維上的位置,
為電荷的總數(shù)。
電荷 在時刻
獲得的最佳適應(yīng)度值的位置由下式確定:
所有電荷的全局最佳適應(yīng)度的位置用表示。
在時刻,電荷
在第
維上受到電荷
的庫侖力如公式所示:
式中,和
分別為作用電荷
和被作用電荷
的電荷量,
表示一個極小的常量。
為電荷
與電荷
之間的歐式距離,由下式得出:
庫侖常數(shù)為當(dāng)前迭代數(shù)和系統(tǒng)迭代數(shù)的函數(shù),為了控制算法的搜索精度,呈指數(shù)遞減。時刻
的庫侖常數(shù)
可由下式計算:
式中,為初值,
為常數(shù),
是當(dāng)前迭代的次數(shù),
是系統(tǒng)迭代的次數(shù)。在算法伊始,庫侖常數(shù)常被初始化為一個較高的值,以便于算法的初期探索,然后逐次迭代遞減以控制算法的搜索精度。
在維搜索空間中,作用在電荷
總的作用力等于來自其他所有電荷作用力的總和,其大小為:
式中,為[0,1]之間的隨機數(shù),
為電荷
作用在電荷
上的庫侖力。在任意時刻
,電荷
位于第
維時的電場強度由下式給出:
根據(jù)牛頓第二運動定律,得出電荷在時刻
的加速度:
在每一次迭代過程中,電荷根據(jù)計算得到的加速度來更新電荷的速度和位置,更新方式如下式所示:
式中,分別為電荷
在時刻
的速度和位置。
電荷的電荷量通過適應(yīng)度函數(shù)計算得出,假設(shè)初始時每個電荷的電荷量相等。
采取以下式子更新電荷的電荷量:
式中,為電荷
在時刻
的適應(yīng)度值。
分別為最優(yōu)適應(yīng)度值和最差適應(yīng)度值。
人工電場算法實現(xiàn)的基本步驟如下:
Step1.在搜索空間中,隨機初始電荷種群;
Step2. 隨機初始化電荷的速度和位置,并計算每個電荷的適應(yīng)度值
Step3.計算電荷的庫侖常數(shù),全局最優(yōu)值和最差值
Step4.計算電荷的庫倫力和加速度,更新例子的速度以及位置
Step5.判斷是否滿足停止條件,如果滿足則輸出最優(yōu)值,否則重復(fù)步驟2-5;
2.實驗結(jié)果
3.參考文獻
[1]Anita,Anupam Yadav. AEFA: Artificial electric field algorithm for global optimization[J]. Swarm and Evolutionary Computation,2019,48{5}:
[1]葉桂旗. 基于人工電場算法的城市供水泵站優(yōu)化調(diào)度研究[D].長安大學(xué),2020.
4.Matlab
上述代碼,見個人資料