智能优化算法:人工电场优化算法

智能优化算法:人工电场优化算法

@[toc]
摘要:人工电场算法(Artificial Electric Field Algorithm,AEFA)是由 Anita 和 Anupam Yadav于 2019 年提出的元启发式优化算法。AEFA 算法是一个杰出的非线性优化算法,具有全局搜索能力强、优化精度高和适应范围广等特点。

1.算法原理

人工电场算法(AEFA)受库仑定律的启发,通过模拟带电粒子在静电场的运动,将其演化成随机搜索最优解的过程。电荷在静电力的作用下相互吸引或排斥,使电荷能在搜索空间中移动。在 AEFA 算法中,仅考虑电荷的吸引力,而忽略电荷的排斥力,因而电荷量大的带电粒子能吸引所有其他电荷量较低的粒子向其靠近。

在搜索空间中,每一个电荷代表一个可行解,其强度由他们的电荷量来衡量,电荷的电荷量越大,表明该电荷越接近理论最优解。如图1所示,电荷面积的大小表示该电荷量的大小,电荷Q_1分别受到其它三个电荷的吸引力,根据运动定律,形成一个合力F和该方向的加速度。由于电荷Q_4 的电荷量最大,其吸引力也越大,电荷Q_1 合力F的方向更接近Q_1Q_4 之间的中心连线。因此,AEFA 算法通过模拟电荷间的相互作用力,当搜索空间存在电荷量大的电荷时,其它电荷都向电荷量大的方向靠近,使算法收敛到最优解。

图1.库仑力的作用。

AEFA 算法可看作是一个遵循库仑静电力定律和运动定律孤立的电荷系统。在此基础上,定义了算法的物理性质。

d维搜索空间中,第i个电荷的位置为:
X_i=(x_i^1,x_i^2,...,x_i^d);i=1,2,...,N\tag{1}
式中, x_i^d为电荷i在第d维上的位置, N为电荷的总数。

电荷 i 在时刻 t 获得的最佳适应度值的位置由下式确定:
p_i^d(t+1)=\begin{cases}p_i^d(t),if\,f(P_i(t))<f(X_i(t+1))\\x_i^d(t+1),else \end{cases}\tag{2}
所有电荷的全局最佳适应度的位置用P_{best}=X_{best}表示。

在时刻t,电荷j在第d维上受到电荷i的库仑力如公式所示:
F_{ij}^d = K(t)\frac{Q_i(t)Q_j(t)(p_j^d(t)-X_i^d(t))}{R_{ij}(t)+\xi} \tag{3}
式中,Q_iQ_j分别为作用电荷i和被作用电荷j的电荷量, \xi表示一个极小的常量。R_{ij}为电荷i与电荷j之间的欧式距离,由下式得出:
R_{ij}(t)=||X_i^t(t),X_j(t)||_2\tag{4}
库仑常数K(t)为当前迭代数和系统迭代数的函数,为了控制算法的搜索精度,呈指数递减。时刻t的库仑常数K(t)可由下式计算:
K(t)=K_0*exp(-\alpha \frac{iter}{maxiter}) \tag{5}
式中,K_0为初值, \alpha为常数, iter是当前迭代的次数, maxiter是系统迭代的次数。在算法伊始,库仑常数常被初始化为一个较高的值,以便于算法的初期探索,然后逐次迭代递减以控制算法的搜索精度。

d维搜索空间中,作用在电荷i总的作用力等于来自其他所有电荷作用力的总和,其大小为:
F_i^d(t)=\sum_{j=1,j\ne i}^N rand_jF_{ij}^d(t)\tag{6}
式中,rand_j为[0,1]之间的随机数,F_{ij}^d为电荷j作用在电荷i上的库仑力。在任意时刻t,电荷i位于第d维时的电场强度由下式给出:
E_i^d(t)=\frac{F_i^d(t)}{Q_j(t)}\tag{7}
根据牛顿第二运动定律,得出电荷i在时刻t的加速度:
a_i^d(t)=Q_i(t)E_i^d(t)/M_i(t)\tag{8}
在每一次迭代过程中,电荷i根据计算得到的加速度来更新电荷的速度和位置,更新方式如下式所示:
V_i^d(t+1)=rand_i*V_i^d(t) + a_i^d(t) \tag{9}

X_i^d(t+1)=X_i^d(t)+V_i^d(t+1)\tag{10}

式中,V_i^d(t),X_i^d(t)分别为电荷i在时刻t的速度和位置。

电荷的电荷量通过适应度函数计算得出,假设初始时每个电荷的电荷量相等。
Q_i(t)=Q_j(t);i,j=1,2,...,N \tag{11}
采取以下式子更新电荷i的电荷量:
q_i(t)=exp(\frac{fit_{pi}(t) -worst(t)}{best(t)-worst(t)})\tag{12}

Q_i(t)=\frac{q_i(t)}{\sum_{i=1}^Nq_i(t)}\tag{13}

式中,fit_i(t)为电荷i在时刻t的适应度值。best,worst分别为最优适应度值和最差适应度值。

人工电场算法实现的基本步骤如下:

Step1.在搜索空间中,随机初始电荷种群;

Step2. 随机初始化电荷的速度和位置,并计算每个电荷的适应度值

Step3.计算电荷的库仑常数,全局最优值和最差值

Step4.计算电荷的库伦力和加速度,更新例子的速度以及位置

Step5.判断是否满足停止条件,如果满足则输出最优值,否则重复步骤2-5;

2.实验结果

实验结果

3.参考文献

[1]Anita,Anupam Yadav. AEFA: Artificial electric field algorithm for global optimization[J]. Swarm and Evolutionary Computation,2019,48{5}:

[1]叶桂旗. 基于人工电场算法的城市供水泵站优化调度研究[D].长安大学,2020.

4.Matlab

上述代码,见个人资料

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,125评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,293评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,054评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,077评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,096评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,062评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,988评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,817评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,266评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,486评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,646评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,375评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,974评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,621评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,642评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,538评论 2 352

推荐阅读更多精彩内容