APP下载

具有随机扰动机制的改进QPSO算法及其应用

2022-07-19卢小丽

关键词:全局种群粒子

何 光, 卢小丽

(1.重庆工商大学 数学与统计学院,重庆 400067; 2.重庆工商大学 长江上游经济研究中心,重庆 400067)

0 引 言

在量子粒子群优化算法(QPSO)中,粒子的状态只需由位置矢量来决定,相比粒子群优化算法(PSO)形式更简单,计算速度更快,收敛性能更好。在处理复杂优化问题时,QPSO算法具有更快的收敛速度和更强的全局搜索性能,被广泛应用于非线性、不可微、非凸的优化问题中[1-3]。然而在实际应用中,特别是处理复杂的多模函数时,QPSO算法容易出现早熟和收敛精度低的情况。于是,研究者针对QPSO算法在迭代后期陷入局部最优的情况,提出了相应的改进手段。Sun 等[4]在分析QPSO算法收敛性时,讨论了迭代公式中参数的选择,他们的工作提升了算法的全局搜索能力;Zhang[5]在研究中融合了混沌映射、高斯分布的变异算子以及动态惯性权重调整等技巧,有效地改善了算法的多样性,使得QPSO算法具有更强的搜索性能;为了提升算法的计算效率,Yang等[6]提供了一种精细解搜索方法用于克服原始QPSO算法在搜索过程中出现的缺陷。

虽然已有研究在克服早熟和提升算法全局搜索上有一定的改进,但是在算法的收敛速度和局部挖掘能力方面还有待增强,对于算法整体性能的提升仍有很大的改进空间。于是针对原始QPSO算法在处理复杂多模函数时容易出现早熟和收敛精度低的情况,本文将对算法作出进一步的改良。在粒子的历史最优位置和全局最优位置的确定上,借鉴遗传算法中交叉算子的思想,并结合随机扰动操作,以增强算法在迭代后期的收敛性能,维持种群的多样性;另外,对收缩-扩张因子的结构进行非线性调整,以提高算法的全局收敛速度和精度。然后在仿真应用上,将改进后的算法用于求解一类具有最小最大风险的投资组合优化模型。

1 具有随机扰动机制的改进算法

在QPSO系统中,设种群规模为N,搜索维数为D,最大迭代次数为T。在迭代过程中,采用蒙特卡罗法模拟粒子的运动状态,每个粒子会聚集到一个局部吸引点Pi(t):

Pi(t+1)=φpi(t)+(1-φ)pg(t)

(1)

其中,φ=c1r1/(c1r1+c2r2),r1和r2表示0~1之间均匀分布的随机数,pi(t)表示在t次迭代时第i个粒子的历史最优位置,pg(t)为在t次迭代时群体最优位置。粒子位置更新公式如下:

xi(t+1)=Pi(t)±β|m(t)-xi(t)|ln[ui(t)]-1

(2)

其中,β称为收缩-扩张因子,m(t)表示在t次迭代时所有粒子历史最优位置的平均值,ui(t)表示0~1之间均匀分布的随机数,当ui(t)大于0.5时,式(2)中取“+”,否则取“-”。

由于原始QPSO算法在迭代后期容易出现早熟和收敛精度低的困境,于是考虑对粒子历史最优位置和全局最优位置的更新方式进行改良。因为遗传算法中的交叉算子能够有效地利用粒子的历史信息,对表现较差的个体进行淘汰、更新,从而增强算法的迭代效果。对于个体的历史最优位置,借鉴交叉算子思想,在迭代后期运用随机选择的粒子进行结合,产生新的个体,选择更好地继续迭代,具体公式如下:

cpi(t)=r·pi(t)+(1-r)pj(t)

(3)

其中,r表示0~1之间均匀分布的随机数,j表示1~N之间的随机整数。

对于全局最优位置的更新,将根据种群的多样性表现来重新调整群体的最优位置。多样性指标函数如下:

其中,|S|为粒子个数,|A|为粒子搜索的最大距离。当diversity(S)低于给定阈值时,采用以下形式对当前全局最优位置进行调整:

cpg(t)=r·pg(t)+(1-r)(pg(t)-pk(t))

(4)

其中,r表示0~1之间均匀分布的随机数,k表示1~N之间的随机整数。

对于算法中的收缩-扩张因子,考虑如下非线性结构:

(5)

这里β1=1,β2=0.5,T表示最大迭代次数。在迭代初期β有较大的取值,粒子在整个目标空间中运动,搜索范围较广。当β取得最小值时,粒子的局部探索能力逐渐增强,能够有效提高算法的搜索速度。在迭代后期,β从最小值变化到β2,粒子聚集到局部吸引点附近,在全局最优解周围进行探索,从而提升了算法的精确度。

改进后的算法简记为MQPSO,其算法流程如下:

Step1 设定种群规模N、搜索维数D和最大迭代次数T,并初始化种群中粒子的位置;

Step2 计算每个粒子的适应度,以适应度最优的粒子位置作为种群的全局最优位置pg(t);

Step3 根据式(1)计算局部吸引点Pi(t);

Step4 根据式(5)计算收缩-扩张因子,通过式(2)更新当前粒子的位置;

Step5 当t>0.8×T时,利用式(3)得到新个体位置cpi(t),将其与pi(t)的适应度比较,保留更优的作为粒子的历史最优位置;

Step6 运用比较原则得到粒子的历史最优位置;

Step7 当diversity(S)<0.001时,利用式(4)得到新的全局最优位置cpg(t),将其与pg(t)的适应度比较,保留更优的作为全局最优位置;

Step8 运用比较原则得到全局最优位置;

Step9t=t+1,若满足迭代终止条件,输出最优解,否则,转入Step 2。

2 性能测试

将FIPS算法[7]、CLPSO算法[8]、DNLPSO算法[9]、HPSO算法[10]与MQPSO算法进行性能对比分析。基准测试函数中,函数f1-Shpere,f2-Schwefel 2.22以及f3-Schwefel 1.2为高维单模,函数f4-Rastrigin,f5-Noncontinuous Rastrigin,f6-Rosenbrock,f7-Griewank以及f8-Ackley为高维多模。参数设定方面,算法FIPS,CLPSO,DNLPSO以及HPSO均采用相关文献中的设置。5种算法的粒子总数均为50个,搜索空间均为30维,最大迭代次数均为1 000次。每个测试函数独立运行50次,其结果取平均值、标准差以及最好值。通过表1中展示的测试结果,可见MQPSO算法几乎在所有函数测试中都取得了最好的均值和最小的标准差。

表1 5种算法的测试结果

在单模函数f1—f3上,由于MQPSO算法在进化过程中考虑了非线性收缩扩张因子,使得算法在收敛精度上有了更好的改善,表现为在f1和f2两个函数上取得了理论最优值,同时,在f3的测试上也比其他4个算法获得了更好的收敛结果。f4—f8等5个多模函数主要用于测试算法在克服早熟现象方面的表现能力。从f4—f63个函数的测试结果上看,各个算法都无一例外地陷入了局部最优,其中MQPSO与HPSO两种算法表现得相对较好;在函数f7上,MQPSO与HPSO的算法优势更明显,其中MQPSO算法在迭代后期运用了随机扰动机制,使得算法在多峰函数的寻优方面表现得更有特色,甚至有机会找到全局最优点;而在f8的测试结果上,可以明显感觉到MQPSO算法在对抗早熟问题时的优势,其他4种算法均不能完全摆脱局部最优的困境,而MQPSO算法则在每次运行中都取得了理论最优值,表现优异。

从8个测试函数的整体结果来看,MQPSO算法相比其他4种算法无论在收敛精度上,还是在寻优结果的稳定性方面均占有明显优势。接下来,借助中国证券市场的真实数据对MQPSO算法的实际应用效果进行检验。

3 仿真实验

运用均值-方差模型来分析证券投资组合选择时,除了股票的历史收益率外,还需要分析各只股票之间的相关性,计算相应的协方差矩阵。随着组合规模的扩大,对矩阵计算的要求也相应增加,从而会提高模型的计算复杂度。于是在仿真环节中,借鉴Teo模型[11]的风险度量方式,并结合实际的一些约束条件,建立了如下模型:

Li≤xi≤Ui

(1)

其中,Rit为第i只股票在t时刻的收益率,E(Rit)表示Rit的期望,T0表示每只股票的观测时限,ri为第i只股票的预期收益率,μ表示投资组合的预期收益率,Li和Ui分别表示第i只股票投资占比的下限和上限。

根据沪深证券市场中的行业板3块,选择了信息技术和通信设备制造领域15家上市公司,包括中国联通(600050)、中国卫通(601698)、深信服(300454)等10家在内的信息技术类企业以及 兆易创新(603986)、士兰微(600460)、工业富联(601138)等5家通信设备制造公司。在仿真实验中,收集了这15家上市公司的股票在241个交易日内的历史收盘价格。MQPSO算法的参数设定与前面性能测试中一致,在求解时选择粒子总数为50个,搜索空间为15维,最大迭代次数为1 000次,独立运行取30次后取最优解的均值。实验中不允许股票卖空,Li和Ui分别取0和0.5,T0取30。

通过表2的结果,可见在不同的预期收益率下利用MQPSO算法得到了投资组合的最优解,15只股票的投资占比能够清晰地展现出来,投资者可以根据相应的股票投资份额进行及时地投资调整。随着预期收益率的增大,投资组合的风险值也随之增加,意味着追求更高回报率的同时,需要承担更多的投资风险。

表2 不同预期收益率下的最优投资组合

为进一步凸显MQPSO算法在求解投资组合模型I时的优势,考虑比较4种具有代表性的群智能优化算法:粒子群优化算法(PSO)、量子粒子群优化算法(QPSO) 、布谷鸟搜索(CS)和蝙蝠算法(BA)。对比实验中,预期收益率取10%,各种算法的种群规模均为50,搜索空间均为15维,最大迭代次数均取1 000次,每个算法分别独立运行30次,统计相应的均值、标准差、最好值和最差值,具体结果见表3。

表3 不同算法的优化结果比较

根据表3中显示的计算结果,可见CS和BA两种算法在仿真实验中的表现相对其他3种粒子群类算法要差些,同时QPSO算法又优于PSO算法。MQPSO算法无论在均值、标准差,还是在最好值和最差值上,都表现得更为出色,在寻优结果的精度和稳定性方面比其余4种算法都更有优势。

4 结束语

为挖掘QPSO算法的全局搜索和局部探索能力,增强算法的整体性能,本文提出了一种改进的QPSO算法(MQPSO)。在改进算法中,首先借鉴遗传算法中交叉算子的思想,并结合随机扰动操作,对单个粒子的历史最优位置和全局最优位置进行重新设定,以增强算法在迭代后期的收敛性能,同时维持种群的多样性;其次,对算法中的重要参数收缩-扩张因子,进行非线性结构调整,以提高算法的全局收敛速度和精度;随后,通过8个测试函数,将MQPSO算法与4个现有的改进算法进行对比,分析结果显示无论在计算精度还是在稳定性方面,MQPSO算法表现更好;最后,在仿真应用上,根据中国证券市场中15只股票的历史数据,分别运用粒子群优化算法、量子粒子群优化算法、布谷鸟搜索、蝙蝠算法和MQPSO算法对一类具有最小最大风险的投资组合优化模型进行数值求解,结果表明MQPSO算法在风险控制和稳定性上均优于其他4种群智能算法。

猜你喜欢

全局种群粒子
山西省发现刺五加种群分布
领导者的全局观
落子山东,意在全局
由种群增长率反向分析种群数量的变化
虚拟校园漫游中粒子特效的技术实现
一种用于抗体快速分离的嗜硫纳米粒子的制备及表征
惯性权重动态调整的混沌粒子群算法
再撑一下
问:超对称是什么?
统筹全局的艺术