APP下载

自适应多策略正余弦算法①

2020-02-28

关键词:余弦个体函数

(淮北师范大学1.物理与电子信息学院;2. 计算机科学与技术学院,安徽 淮北 235000)

0 引 言

智能优化算法作为处理各类优化问题的重要工具,在工程应用和科学研究中都得到了广泛应用。随着需要优化的问题越来越复杂,仅仅依靠某一种优化算法去求解问题,往往并不能得到令人满意的结果。因此,人们开始利用集成的思想,借鉴其他算法的优势和特点,并加以利用,通过多种更新策略的优势来弥补单一算法在处理优化问题时的缺陷。正余弦算法(Sine Cosine Algorithm,SCA)作为一种新型启发式智能优化算法,一经提出便受到众多研究人员的关注。虽然正余弦算法结构简单易于实现,但是仍存在着求解精度低,后期收敛速度慢等缺点。于是,Rizk M等人提出了一种改进的基于正交并行信息的正余弦全局优化算法,Sujoy Das等人利用正余弦算法解决短期热液调度问题,Diego Oliva等人利用蚁狮算法和正余弦算法相混合的方式改进算法的性能来解决图像分割问题。为改进正余弦算法的性能,在算法更新过程中采用多种策略对个体进行更新。本文除了正余弦算法外,又提出了三种不同的策略:(1)基于最优个体引导的进化策略。(2)基于个体差异引导的进化策略。(3)基于其他个体知识学习的进化策略。

1 正余弦算法

正余弦算法的原理简单,易于实现,其利用自适应参数实现算法的探索阶段和开发阶段的平稳转换。正余弦算法的更新方程为:

(1)

其中,Xit是第t次更新过程中i个体的位置,Pit是第t次迭代中的最优个体在搜索空间第i维度下的位置,r2∈[0,2π];r3∈[0,2];r4∈[0,1]。r1为:

(2)

其中,a作为一个常数,通常设置为2,t,T分别为当前迭代次数和最大迭代次数。

参数r1在算法的更新过程中,通过改变数值大小,以此平衡算法的探索阶段和开发阶段,当r1>1时,算法的探索能力增强,反之,算法的开发能力增强。参数r2可以改变算法中个体在下一代更新中的步长。参数r3具有调节算法在更新过程中对最优个体的依赖程度,当r3<1时,增加对最优个体的依赖,反之,则减弱。参数r4的作用则是等概率的切换算法的更新方式。

2 自适应多策略正余弦算法

现实中,优化问题的种类繁多且复杂,仅仅依靠某一种优化算法来解决这些优化问题,结果往往并不能全部满足人们的需求。因此,多策略改进的方式应运而生,多种策略的学习方式可以很大程度上避免算法陷入某一种算法的劣势,从而开启了智能优化领域的另一个新的篇章。

2.1 多策略学习

1)正余弦优化算法更新策略:正余弦算法虽然局部搜索能力不强、收敛精度低,但是其利用随机参数切换算法的更新模式,确保算法具有一定的探索能力,防止算法在更新过程中过早收敛。其位置更新公式如下所示:

(3)

2)基于最优个体引导的进化策略:该策略以最优个体的位置引导当前个体位置的更新,其更新公式如下所示:

(4)

其中,rand为(0,1)之间的随机数。

3)基于个体差异引导的进化策略:受教学优化算法(TLBO)[6]的启发,通过其他个体差异更新当前位置信息,能够有效的提高算法的探索能力,避免算法过早收敛,其位置更新公式为:

(5)

其中,j≠k。

4)基于其他个体知识学习的进化策略:本策略采用差分进化的DE/Rand/1/bin[7]的进化方式,其优势是搜索范围广,全局收敛速度较强,不易陷入局部最优解。该策略类似于遗传算法的变异操作,这种进化策略能够提高种群的多样性,在算法进化的过程中,结合反向学习策略,能够有效地避免过早的收敛,其表达式为:

(6)

其中,j≠k≠l。

5)反向学习:反向学习机制(Opposition-based learning,OBL)[8]是Tizhoosh教授于2005年提出的一个新的概念。反向学习的主要思想是在当前个体所在的区域产生反向个体,并利用反向解提高智能优化算法的搜索能力和效率。目前,反向学习策略被广泛的应用于各种算法的改进中,如反向学习的蚁群算法(OACO)[9]、反向学习的粒子群算法(OPSO)[10]、反向学习的群搜索优化算法(OSGO)[11]等。

(7)

其中,ub,lb分别是上下界,Y是当前解,Z是当前解的反向解。

图1 算法流程图

新算法为保证种群的多样性,在选择其中一种策略更新之后,结合反向解,其更新公式为:

(8)

其中,u为(0,1)之间的随机数。

2.2 多策略选择机制

为了衡量各个策略在整个算法过程不同阶段的优劣,本文将引进收敛速度和多样性两个指标作为评价各个策略的优劣。收敛速度反映算法寻找最优解的快慢,多样性反映算法群体之间的差异。

1)多策略算法的收敛速度:算法的收敛速度是通过比较当前代个体适应度比前一代个体适应度的提高程度,可以通过公式(9)进行计算。

(9)

其中,oldSi表示前一代个体的收敛速度,oldFiti表示前一代个体的适应度值,Fiti是当前代个体的适应度值,为防止个体更新到最优解之后Fiti为0,需要设置一个比较小的值,ε=E-500。

2)多策略算法的多样性:欧氏距离,汉明距离,熵等指标通常被用来作为测量算法的依据,为了简单直观分析各个策略的多样性,本文采用基于所有个体的欧氏距离来衡量各个策略的多样性。策略的多样性的计算公式:

(10)

3)分数计算:在算法选择不同策略更新时,应该考虑这种策略是否有效,需要同时衡量收敛速度和多样性这两个方面,并为策略进行“打分”,其计算表达式为:

score(k)=norm(d(i))+norm(S(i))

(11)

其中,1≤k≤4,norm(x)表示x的归一化值。

4)赌轮选择:为了避免算法在更新过程中陷入某一种位置更新策略,本文引进了赌轮选择[12]。赌轮选择是通过各个个体的选择概率,计算其累计概率。由此可知,各个策略中被选中的概率和得分情况成正比,其选择概率P(k)的表达式为:

(12)

2.3 算法流程

由上述分析可知,改进的算法流程图如图1所示:

3 仿真实验分析

为了验证自适应多策略行为正余弦算法的性能,本实验将采用18个经典测试函数,在win10系统,RAM为8GB,MATLAB R2015b的环境下进行仿真实验,将自适应多策略正余弦算法与JADE[13],PSOFDR[14],BSA[15],TLBO,SCA等算法进行比较分析。

3.1 参数设置

本文实验所需的函数如表1所示。为了保证合理量化各个算法的性能,各个算法在同等条件下进行测试,即设定全部算法具有相同的种群数目40,而且当算法的评价次数达到150000次时,算法停止运行。

表1 18个基准测试函数

3.2 结果分析

在表2中记录AMSCA算法与其他优化算法JADE,PSOFDR,BSA,TLBO,SCA在30维情况下且每种算法独立运行10次的最优解(Best)、平均值(Mean)、标准差(Std),并进行分析。其中,表2中粗体为最优值。为了直观方便的比较各个算法的收敛情况,舍弃部分相似的函数收敛曲线图,图2中给出部分具有代表性的函数曲线图。

表2 30维函数测试结果

算法F4BestMeanStdF5BestMeanStdF6BestMeanStdJADE1.94E-101.27E-081.46E-086.228557.79731.093.55E-156.04E-151.72E-15PSOFDR1.31E-119.90E-092.14E-088.371.04E+011.657.11E-159.24E-153.43E-15BSA1.8112464.759833.1797720.414920.84740.28833.08E-121.85E-111.74E-11TLBO1.03E-507.696E-481.51E-471.79E+0119.45960.79673.55E-153.55E-150SCA1.480431086.21441.49526.987927.604870.42022.38E-130.000950.0034AMSCA〛067.996215.022227.901528.267790.3192000

算法F7BestMeanStdF8BestMeanStdF9BestMeanStdJADE000000000PSOFDR20.894131.83876.81301.61E-014.71E-0100.008860.01132BSA7.59E-060.1520.32221.71E-132.01E-112.26E-11000TLBO010.54664.9902000000SCA7.11E-1513.220224.196911.248727.317911.33700.038020.1202AMSCA000000000

算法F10BestMeanStdF11BestMeanStdF12BestMeanStdJADE0.0003811.844237.45351.90E-583.67E-141.16E-139.98E-114.16E-096.09E-09PSOFDR2055.982945.34531.364.06E-801.74E-453.73E-451.43E-111.35E-083.79E-08BSA0.000380.00080.00131.08E-127.49E-081.78E-070.83762.2891.34602TLBO2901.884221.18825.19702.78e-32104.74E-517.05149E-481.25E-47SCA8840.299820.73451.098.93E-232.66E-118.40E-1180.3471178.341077.72AMSCA9263.8210058.02467.2900004.96E-121.57E-11

算法F13BestMeanStdF14BestMeanStdF15BestMeanStdJADE12.543615.32592.3682JADE12.543615.32592.3682JADE12.5436PSOFDR2.15E+014.14E+012.25E+01PSOFDR2.15E+014.14E+012.25E+01PSOFDR2.15E+01BSA22.868945.732723.3222BSA22.868945.732723.3222BSA22.8689TLBO18.649350.679824.6432TLBO18.649350.679824.6432TLBO18.6493SCA428.4972179.231936.79SCA428.4972179.231936.79SCA428.497AMSCA608.9251832.18857.096AMSCA608.9251832.18857.096AMSCA608.925

算法F16BestMeanStdF17BestMeanStdF18BestMeanStdJADE00.23925.70E-01JADE00.23925.70E-01JADE0PSOFDR7.05E-022.071.35PSOFDR7.05E-022.071.35PSOFDR7.05E-02BSA0.00910.28370.3516BSA0.00910.28370.3516BSA0.0091TLBO000TLBO000TLBO0SCA28.541838.83233.84499SCA28.541838.83233.84499SCA28.5418AMSCA000AMSCA000AMSCA0

从表2中的数据和图2中的函数收敛曲线可以看出,AMSCA算法的性能整体优于SCA算法,且AMSCA算法对上述18个基准函数中的F1~F3,F6~F9,F11,F14~F17等12个函数求解到理论上的最优值。由表2中的均值和标准差可知,AMSCA算法的测试结果优于SCA算法,表明改进策略能够提高SCA算法的求解精度和鲁棒性。

由表2可知,AMSCA算法与JADE,PSOFDR,BSA以及TLBO算法相比,在F1~F3,F6,F7,F11,F14~F17等10个函数的实验结果中,AMSCA算法的求解精度远高于JADE,PSOFDR,BSA这三种算法,而且标准差也达到了理论上的最小值,这说明AMSCA算法的性能稳定,鲁棒性较强。与TLBO算法相比,虽然AMSCA算法在F4~F5,F12三个函数上表现得不如TLBO算法,从整体分析,AMSCA算法的性能优于TLBO算法。但是,AMSCA算法对F4,F5,F10,F12,F13和F18这6个函数的优化时并不能展现出良好的性能,这说明AMSCA算法在优化复杂问题时,性能有待提升。

图2 函数收敛曲线

综合以上分析可知,AMSCA能获得比较好的优化性能,特别是在优化精度和鲁棒性方面,明显优于其他优化算法。

4 结 语

本文提出了一种自适应多策略正余弦算法。通过计算各个策略的收敛速度和多样性作为某种策略的指标,利用赌轮选择机制,避免算法陷入单一策略,在整个算法的更新过程中,根据各项指标合理选择出当前阶段最适合的策略。实验结果表明,自适应多策略正余弦算法的整体性能优于其他优化算法,但在处理一些复杂函数上,并不能表现出优异的性能,这也为SCA算法的改进提供了新的方向。

猜你喜欢

余弦个体函数
二次函数
第3讲 “函数”复习精讲
二次函数
函数备考精讲
关注个体防护装备
明确“因材施教” 促进个体发展
两个含余弦函数的三角母不等式及其推论
实施正、余弦函数代换破解一类代数问题
分数阶余弦变换的卷积定理
图像压缩感知在分数阶Fourier域、分数阶余弦域的性能比较