一种基于竞争机制的快速收敛多目标粒子群算法
竞争群优化算法
在竞争式群优化算法中,粒子通过竞争机制进行更新,而不是使用全局最优粒子和个体最优粒子,从而大大提高了群的多样性,避免了早熟收敛。具体地说,在竞争性群优化算法中,粒子是从当前群中两两随机选择进行竞争的,竞争中的失败者通过向赢家学习来更新,而胜利者则直接传递给下一代。
失败者速度更新公式如上图中(1)所示,R1,R2,R3是[0,1]之间的随机数,XK(t)是全局粒子的平均位置,φ用来控制XK的影响。
基于竞争机制的学习策略
通过非支配排序和拥挤距离排序来选择精英粒子,首先对群P执行非支配排序[50]以获得前沿F1、F2、...,Fk,其中k是前沿的最大索引。随后找到第t个帕累托前沿,使得F1到Ft的总和大于γ,其中γ是待选择的精英粒子的数量。属于F1...到FT-1的粒子是精英粒子,剩余的粒子根据Ft中每个颗粒的拥挤距离从Ft中选择。(前T-1个可能小于γ,而加上t带后又可能多了,所以在t中根据拥挤距离来选择)
一个例子说明了两个随机选择的精英粒子之间的成对竞争。在该示例中,p是要更新的粒子,a和b是从精英粒子集合中随机选择的两个竞争者。θ1是p和a之间的夹角,θ2是p和b之间的夹角。因此,粒子a赢得竞争,因为θ1 < θ2。
值得注意的是,由于精英粒子是从当前群体中选择在每一代,CMOPSO不需要任何额外的外部档案,而大多数现有的多目标PSO算法往往包含一个档案存储的全局和个人最佳particlces。此外,精英粒子集的大小γ可以用来控制算法的收敛速度.对于多目标优化问题,γ值过小会导致早熟收敛,而γ值过大则会减慢算法的收敛速度。
在生成精英粒子集后,在其中的粒子之间进行成对竞争,获胜者将用于引导当前群体中粒子的运动方向。对于每个成对竞争,给定群中的粒子p,从精英粒子集中随机选择两个精英粒子a和b。分别计算a、b、p之间的夹角,角度较小的精英粒子获胜,粒子p将向更接近其收敛方向的精英粒子学习。图1给出了所提出的CMOPSO中的成对竞争的说明性示例,其中a和B是从精英粒子集中随机选择的两个竞争者,p是要更新的群中的粒子。如图所示,由于a和p之间的角度θ1小于b和p之间的角度θ2,因此竞争者a将成为赢家,因此a将用于更新p
设vi和pi是群中第i个粒子的速度和位置,1 ≤ i ≤ N。第i个粒子的更新速度v i和位置p i使用上述等式计算,其中R1,R2 ∈ [0,1]是两个随机生成的向量,pw是赢家的位置。
在多目标优化领域,IGD(Inverted Generational Distance)是一种常用的评价指标。IGD用于衡量一个多目标优化算法生成的近似解集与真实的前沿解集之间的距离。
通常情况下,多目标优化算法旨在在多个冲突的目标函数中找到一组最优解,这些解在目标空间中形成一个非支配解集,也称为前沿解集。真实的前沿解集表示问题的真实最优解集,而算法生成的近似解集则是问题的近似最优解集。
(IGD通过计算近似解集中每个解到真实前沿解集之间的平均距离来评估算法的性能。具体而言,对于每个真实前沿解集上的解,IGD计算与该解最近的近似解集上的解之间的距离,并将所有距离求平均。因此,IGD越小,表示近似解集与真实前沿解集越接近,算法的性能越好。)