APP下载

采用混沌映射计算库伦常数的改进人工电场算法

2021-07-30李晓瑜

微型电脑应用 2021年7期
关键词:库仑电场力测试函数

李晓瑜

(安康学院 电子与信息工程学院,陕西 安康 725000)

0 引言

在过去的几十年中,由于基于种群的元启发式算法在解决复杂问题和工程优化方面有着突出的表现,所以各种不同的优化算法相继出现。基于种群的元启法式算法是通过模拟自然或生物的过程来进行优化的算法[1]。由于受到鸟群和鱼群觅食行为的启发Kennedy和Eberhart[2]在1995年提出了粒子群优化算法(PSO)。由于受到达尔文进化论的启发Storn和Price[3]于1997年提出差分进化算法(DE)。Karaboga,和Basturk[4]于2007年提出了人工蜂群算法(ABC),模拟蜂群的觅食行为。Tang和Man等[5]于1996年提出了遗传算法(GA)。Yang和 Deb[6]于2009年提出了布谷鸟算法(CCS)。受万有引力定律启发,Esmat Rashedi等[7]人在2009年提出万有引力算法(GSA)。

还有一些最新提出的基于种群的元启式搜索算法,受骑手运动行为的启发的骑手算法(ROA)[8]和受自然中原子运动模型启发的原子搜索算法(ASO)。人工电场算法是Anita 和 Anupam Yadav等于2019年提出来的一种基于库仑定律和第二运动定律的元启发式优化算法[9],根据带电粒子间的引力或斥力,改变粒子的移动位置来寻找最优解的算法。在AEFA中粒子的位置更新的步长是由粒子的速度决定的,而粒子的速度又是由加速度决定的,加速度的大小是由粒子间的电场力和带电量决定的,粒子间的电场力又受到引力常数K的影响,K 越大粒子间的电场力越大,电场中粒子移动的加速度就大,位置更新的步长就大,算法的探索能力就越强。相反,K 越小粒子间的电场力越小,电场中粒子移动的加速度就小,位置更新的步长就小,算法的开采能力就越强。由于在人工电场算法中种群在库仑力的作用下收敛到最优位置,带电量越大的粒子对其它粒子的吸引力就越大,所以被其他粒子吸引移动的就慢,步长就会变小,到算法后期具有较大电量的粒子会移动的越来越慢。同时原始的引力常数计算方法,使得引力常数快速减小,进一步降低了算法的收敛速度,易使算法陷入局部最优和“早熟”。为了更好地平衡算法的勘探和开采能力,我们在算法的引力常数计算中引入混沌映射,使得算法能够平缓地在勘探和开采阶段进行过渡,避免算法陷入“早熟”。

2 人工电场算法(AFEA)

人工电场算法是一种基于库伦定律和牛顿第二定律的基于种群的元启法式优化算法。算法把种群中的每一个个体看作是一个带电的粒子,种群中个体的位置和问题的解相对应,粒子靠它们之间的电场力在搜索空间中不断移动,粒子移动到的最优位置,便是要找的最优解。在库伦定律中,真空中两个静止的点电荷由于电场力的作用而相互吸引或排斥,同名电荷相排斥,异名电荷相吸引。两个粒子间的电场力和它们电荷量的乘积成正比与它们之间距离的二次方成反比。如式(1)。

(1)

其中,F表示粒子间的电场力;K表示引力常数;Q1和Q2分别表示两个粒子的带电量;D表示两个粒子间的距离。

在AEFA算法中只考虑一个电量较大的粒子对其他电量较低的粒子的静电引力,通过引力的作用,个体之间相互吸引并且朝着带电量较大的个体方向移动,在引力的不断作用下,整个种群逐渐向电量较大的个体方向逼近,最终搜索到问题的最优解。个体运动遵循牛顿第二定律。牛顿第二定律,物体的加速跟它所受的合力成正比,跟它的质量成反比。如式(2)。

(2)

其中,a表示加速度;F表示粒子间的合力;m表示粒子的质量。

(3)

(4)

其中,K0和α为初始参数值;iter为当前迭代数;maxiter为最大迭代次数。

在AEFA算法中粒子的电量是根据函数适应度值计算出来的,粒子的电量越大,它所在位置代表的解越优。一个个体i的电量可以定义为式(5)、式(6)。

(5)

(6)

其中,fitpi(t)表示在第t次迭代;第i个个体历史最优适应度值;Qi(t)表示在第t次迭代时第i个个体的带电量;best(t)和worst(t)分别表示在第t次迭代时所有粒子中最优的适应度值和最差的适应度值。对于最大化问题best(t)和worst(t)定义如式(7)、式(8)。

best(t)=max(fitj(t)),j∈(1,2,…,N)

(7)

worst(t)=min(fitj(t)),j∈(1,2,…,N)

(8)

对于最小化问题best(t)和worst(t)定义如式(9)、式(10)。

best(t)=min(fitj(t)),j∈(1,2,…,N)

(9)

worst(t)=max(fitj(t)),j∈(1,2,…,N)

(10)

在第d维空间中,粒子i所受的合力为式(11)。

(11)

其中,rand()表示在[0,1]之间服从均匀分布的一个随机变量。

粒子i在d维空间中所具有的加速度定义为式(12)。

(12)

粒子的位置和速度更新式为式(13)、式(14)。

(13)

(14)

粒子在电场力的作用下不断的更新位置,逐渐向最优解靠近。

3 通过混沌映射计算引力常数

为了平衡AEFA算法的探索和开采能力,在库仑常数的生成过程中引入Singer[10]混沌映射来对引力常数进行扰动。使得粒子有充足的时间进行勘探操作,扩大搜索新解的范围,减缓递减的速度能够较好地平衡算法的勘探和开采能力。Singer混沌映射表示为式(15)。

(15)

其中,映射范围为(0,1)。

进行归一化处理,将x(t+1)从区间[0,1]映射到区间[0,N(t)],为式(16)、式(17)。

(16)

(17)

其中,max和min分别表示自适应间隔的最大值和最小值,本实验中分别设为max=20,min=1E-10。iteration表示当前迭代数,max iteration表示最大迭代数。

改进后的库仑常数表示为式(18)。

(18)

改进前库仑常数和改进后的库仑常数的递减曲线分别如图1、图2所示。

图1 改进前库仑常数递减曲线

图2 改进前库仑常数递减曲线

4 仿真实验及结果分析

4.1 基准测试函数

为验证改进后算法(IAEFA)的性能,将改进后的算法与原始AEFA算法进行对比,实验在6个标准测试函数[11]上进行,函数定义如表1所示。

表1 基准测试函数

表中函数F1-F4是单目标简单函数,函数F5也称香蕉函数是比较复杂的函数,其全局最小值位于山谷中,而山谷又比较平缓,所以要找到最小值比较困难。

两个算法采用相同的群体规模N=50,问题的维度D=30,最大迭代次数 max iter=1 000,为了验证算法的有效性,每个函数独立运行20次取两个算法最优值的平均值和方差来进行对比,其中最优值的平均值表示解的精度,方差表示解的稳定性,两种算法在6个标准测试函数上的最优值的平均值和方差如表2所示。

表2 解的对比结果

通过表2,可以看出使用改进后的引力常数,算法的精度和稳定性都有较大的提高。

两种算法的收敛曲线如图3所示。

图3 基准函数收敛曲线

由图3可以看出改进后的算法算法的收敛速度明显较快,并且改进后的算法在函数6上,找到了最优值。

5 总结

本文首先介绍了人工电场搜索算法的原理,在原始AEFA算法的基础上通过对引力常数K进行改进,改进后的人工电场算法,延长了算法探索的过程,扩大了搜索范围,提高了算法寻优的精度。通过6个基本的测试函数来对改进后的算法进行性能测试,通过与原始AEFA算法相对比无论是求解精度还是收敛速度都有提高,这表明了改进后的算法具有较好的性能。

猜你喜欢

库仑电场力测试函数
解信赖域子问题的多折线算法
一种基于精英选择和反向学习的分布估计算法
1976年唐山强震群震后库仑应力演化及其与2020年古冶5.1级地震的关系
基于博弈机制的多目标粒子群优化算法
“求解电场力做功”全攻略
具有收缩因子的自适应鸽群算法用于函数优化问题
例析计算电场力做工的方法
粒子群算法求解不等质量库仑卫星编队最优构型
库仑应力计算及应用过程中若干问题的讨论——以汶川地震为例
基于粘弹库仑应力变化的后续最大地震震级估计及2008、2014年于田2次7.3级地震之间关系的讨论