APSO-适应粒子群优化算法简介

        由于PSO在最优点转移时的表现良好,我们认为PSO具有优秀的转移能力,即跳出局部最优能力,因此设计了ESE方法帮助PSO判断当前情况,并作出对应策略。

        ESE:

        

        粒子群的分布信息可以通过计算每个粒子到其他粒子的平均距离来表示。我们分为四种状态:勘探、开发、收敛、跳出。在图a中,粒子群被认为处与开发或者勘探状态;而在图b所示,在收敛状态下,预期全局最佳粒子到其他粒子的平均距离最小,因为全局最佳粒子往往被群体包围。相反,在跳出状态下,如图c所示这个平均距离将达到最大值,因为全局最佳粒子可能远离拥挤的群体。

        

  step1:当前位置下,计算粒子i到每个粒子的平均距离。

                

        在这个公式中,N代表种群的大小,D代表数据点的维度。公式中的求和符号表示对所有不等于i的数据点进行求和,并计算这些数据点与第i个数据点之间的距离。对于每一维数据,通过计算两个数据点之间的差的平方,并将所有维度的结果相加,然后开方得到欧几里得距离。最后,将所有不等于i的距离求和,并除以(N-1)得到平均距离。

 step2:计算粒子群的进化因子f

                        

        全局最佳粒子的记作为dg,然后比较所有粒子di的值,并确定最大距离dmax和最小距离dmin。然后计算进化因子f,其定义上,其取值范围在0到1之间。换句话说,进化因子f衡量了粒子群的分布范围在整个搜索空间中的相对位置。

        在勘探阶段中,f的值较大,然后在开发阶段f迅速减小,收敛阶段时,f趋于零。当APSO算法能够跳出之前的局部最优解,会导致f的值最大化,然后再次进行勘探和开发,直到出现另一个收敛。

step3:分类

        

 将f分为四类:勘探、开发、收敛、跳出,由于分类之间有重合,所以采用模糊分类的方式。

        根据目标函数值(f)的大小将算法的状态分为不同的情况。具体来说:

        勘探状态,当f的值处于中等到较大的范围时,表示系统处于S1状态。S1的隶属函数定义如下:
    

        开发状态,在f较小的范围内,表示系统处于S2状态。S2的隶属函数定义如下:
              

        收敛状态,当f的值很小时,表示系统处于S3状态。S3的隶属函数定义如下:
                  

        跳出局部最优解状态,当PSO算法远离聚集的粒子团时,表示系统处于S4状态。S4的隶属函数定义如下:
                    

因此,在过渡期间,f可能被分类为两种状态之一,即两种隶属函数的激活程度都比较大。

        

         由于一个f可能可以选中两个状态,这里要对状态选择进行模糊处理,状态变化通过PSO序列S1 ⇒ S2 ⇒ S3 ⇒ S4 ⇒ S1 。例如,被评估为0.45的f对应于S1和S2的隶属度,这表明PSO处于S1和S2之间的过渡期。通过规则库,如果前一个状态为S4,则单例方法将选择S1而不是S2,因为规则库(包含变化序列)决定了模糊化时的决策。如果前一个状态为S1,则为了分类的稳定性,f也被归类为S1,即不会过度切换状态指示器。然而,如果前一个状态为S2或S3,则规则表中的单例将把f分类为S2。

        

        由于ω不一定随时间单调增加,但与f单调相关,因此ω将适应由f表征的搜索环境。在跳出或探索状态下,大的f和ω将有利于全局搜索,正如之前提到的那样。相反地,当f较小时,会检测到利用或收敛状态,因此ω会减小以有利于局部搜索。

        

        参数c1代表“自我认知”,将粒子拉向其自身的历史最佳位置,有助于探索局部附近并保持群体的多样性。参数c2代表“社会影响”,推动群体收敛到当前全局最佳区域,有助于快速收敛。这是两种不同的学习机制,应在不同的演化状态下给予不同的处理

        为了保证加速系数的调整不会过于剧烈,两代之间加速系数的最大增减值被限制在一个范围内。具体来说,最大增减值应该满足

                   

其中δ在本文中被称为“加速率”。实验证明,在大多数测试函数中,将δ设为在[0.05, 0.1]之间均匀生成的随机值效果最好(参见第六节-B)。需要注意的是,在策略2和策略3中,我们使用了0.5δ,因为这里推荐使用“轻微”的变化。另外,为了约束c1和c2,我们选取了区间[1.5, 2.5]。与Clerc的约束因子[29]和人工神经网络中极化的“竞争学习”范式类似,这里使用了[3.0, 4.0]这一区间,来约束这两个参数的和。如果这个和大于4.0,则同时对c1和c2进行归一化操作,使得

                                                                     

·        勘探阶段,即增加c1和减小c2的值。这样做有助于促使粒子个体进行独立的探索,并达到其自身的历史最佳位置。

        开发阶段,稍微增加c1的值和稍微减少c2的值,因为全局粒子在这个阶段并不总是位于全局最优位置。

        收敛阶段,增加c2的值和减少c1的值,这个阶段粒子群看起来已经找到了全局最优区域

        跳出阶段,全局最佳粒子从局部最优跳跃到更好的最优时,很可能远离拥挤的粒子群,这时候一个相对较大的c2值和一个相对较小的c1值是有帮助的。

         

         

        ELS:

        当前状态被判断为收敛状态时,需要一个强有力的动力,推动当前的全局最优粒子,因此开发基于扰动的ELS来帮助全局粒子推动自身。

         ELS随机选择gBest历史最佳位置的一个维度,用Pd表示第d个维度。只选择一个维度是因为局部最优很可能具有全局最优的一些良好结构,因此应该保护起来。由于每个维度被选择的概率相同,ELS运算可在统计意义上视为对每个维度进行执行。类似于模拟退火,进化规划或演化策略中的突变操作,精英学习通过高斯扰动进行。
        
搜索范围[Xmind,Xmaxd]与问题的下限和上限相同。Gaussian(μ, σ2)是一个服从零均值μ和标准差(SD)σ的高斯分布的随机数,被称为“精英学习率”。与一些时间变化的神经网络训练方案类似,建议σ随着世代数线性减小,

                                 

其中σmax和σmin是σ的上限和下限,代表了学习尺度达到新区域的大小。经验研究表明,σmax = 1.0和σmin = 0.1在大多数测试函数上都能表现出良好的性能。 

        在ELS中,只有当新位置的适应度优于当前gBest时,才会接受该位置。否则,新位置将用于取代群体中适应度最差的粒子。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值