苏玉 孔国利
摘 要: 由于优化问题的目标函数和约束条件都随着时间而改变导致其最优值也发生改变,提出一种基于改进粒子群算法的目标函数变化分类动态优化算法。首先对动态优化问题进行定义,明确问题的研究对象,提出对目标函数随时间变化程度分类的思想,通过对变化的函数进行监测的方法将其分为剧烈变化、中等程度变化和弱变化三种类型,并针对不同的强度变化对粒子群算法采用不同的改进策略,最后将不同的策略融入计算。通过采用移动多峰问题进行测试,结果表明,提出的改进粒子群优化算法能监测目标函数变化,并能随时跟踪到最优解,平均离线误差相对于标准粒子群算法更小,性能更稳定。
关键词: 粒子群算法; 动态优化; 目标函数时变分类; 移动峰问题
中图分类号: TN911.1?34; TP301.6 文献标识码: A 文章编号: 1004?373X(2017)07?0175?04
Dynamic optimization of objective function changing classification based on improved particle swarm optimization
SU Yu, KONG Guoli
(College of Information Engineering, Zhongzhou University, Zhengzhou 450001, China)
Abstract: The objective function and constraint condition for the optimization problem are changed with time, and may change its optimal value. A dynamic optimization of the objective function changing classification based on improved particle swarm optimization is proposed. The dynamic optimization problem is defined to determine the study object of the problem. The classification thought that the objective function is changed with the time varying degree is put forward. The varying function is divided into the types of drastic change, medium grade change and weak change with the monitoring method. Different strategies are adopted for the particle swarm optimization according to the different intensity changes, and integrated for computation. The algorithm was tested with the moving multi?peak problem. The test results show that the improved particle swarm optimization can monitor the changes of the objective function, track the optimal solution momentarily, its average offline error is smaller than that of the standard particle swarm optimization algorithm, and the performance is more stable.
Keywords: particle swarm optimization; dynamic optimization; time varying classification of objective function; moving peak problem
0 引 言
由于在很多实际生产过程中遇到的优化问题都在不停变化,同时其目标函数和约束条件也会随着时间在不停的发生着变化,最终导致其问题的最优解改变[1?3]。如动态旅行商问题(DTSP)[4]中旅行城市的增加或减少;车辆路径规划问题(DVRP)[5]中的交通状况;动态背包问题(DKP)[6]中物品价值或重量会改变,顾客需求等大量不确定性,这类动态特性使得目前的优化算法面临着巨大挑战。对于这类动态优化问题,不仅需要求解最优解,并且算法能够时刻跟随最优解的变化[7]。目前已经提出了很多研究方法,包括基于遗传算法的超级变异[8]、基于粒子群算法[9]、基于种群增量学习[10]、随机重新多样性[11]等。此外,预测方法、多种群方法也被应用到该问题中。
由于动态优化问题千变万化,目标函数变化程度和变化类型也多种多样,因此应该根据具体的问题采取具体的措施加以解决。
本文首先对所研究问题进行表述,对目标函数的变化进行合理分类,针对不同的变化采取不同措施,使算法能有效跟踪最优解的变化。粒子群算法是一种优秀的智能启发式算法,已被广泛使用,为此提出一种基于改进粒子群算法的目标函数变化分类动态优化算法,在算法迭代过程中根据不同的环境变化采取不同的种群多样性方法。最后用移动峰问题测试该算法的有效性。
1 问题描述
一般来说,任何动态优化问题都可以用以下定义式来表征。
定义1: 记[V0×VF]和[W]分别为[n0]维、[nF]维和[M]维连续或离散矢量空间;[g]和[h]为定义不等式和等式约束的两个函数;[f]为从[V0×VF]映射到[W]上的一个函数,那么[M]个目标的参数化和多标准最小化问题定义为[12]:
[minfvO∈VO=f1(vO,vF), f2(vO,vF),…, fM(vO,vF)s.t. g(vO,vF)≤0, h(vO,vF)=0] (1)
上述定义问题中变量[v0]对于优化是有用的,但[vF]为强加参数,其本身与优化变量没有任何关系。而目标函数和约束条件均受其他参数的约束。如果只考虑时间参数,上述问题可以转化为如下定义。
定义2: 记时间变量为[t;][V]和[W]分别为[n]维和[M]维连续或离散的矢量空间;[g]和[h]为定义不等式和等式约束的两个函数;[f]为从[V×t]映射到[W]上的函数,那么[M]个目标的参数化和多标准最小化问题定义为 [13]:
[minfv∈V=f1(v,t),f2(v,t),…, fM(v,t)s.t. g(v,t)≤0, h(v,t)=0] (2)
若上述目标函数中仅含有单个目标,则为动态单目标优化,单目标优化只有惟一最优解。此外,优化过程中有可能添加新的目标或者删减目标,这也将导致问题的动态变化。
通常主要利用环境变化的频率、环境变化的强度、环境变化的可预测性和环境变化的周期性四个特征对动态环境进行描述,这四个特征也是人们构造和研究动态优化问题的依据。此外动态优化问题还包含变化动力学,该形式还包括:线性变化、非线性变化、连续变化/非连续变化、周期性变化和随机性变化等。
2 动态优化粒子群算法
2.1 环境变化的检测及分类
增加种群多样性方法的前提是能准确识别出环境的变化,因此一个可靠的环境变化检测算子格外重要。这里采取从种群中选择一定数量的子种群进行适应度值评价的方法。这些子种群不随算法迭代更新,若目标函数或约束函数变化了,那么就说明问题也改变了,从而得到检测环境变化的计算公式如下:
[ε(t)=1nj=1nfj(x,t)-fj(x,t-1)] (3)
式中:[n]为重新评价个体的数目,一般为种群大小的10%。当[ε(t)>ε2]时,说明多目标优化问题已经改变,这时就需要在新环境下开始搜索。通常会依据目标函数变化的大小,提前給定一个固定的常数,这个常数的范围通常为[10-3≤ε2≤10-2。]
实际上对优化问题影响较大的是环境变化的强度,当检测到环境的变化较大时,那么就说明问题的本质已改变。而如果只是高频小幅的环境变化,问题的最优解也只是在原始解附近波动。因此根据环境变化的强度进行分类,将环境变化分为三类:剧烈变化、中等程度变化和弱变化。根据环境变化检测算子的计算式(3),对计算结果[ε(t)]进行如下分类:
[ε(t)>ε1ε2<ε(t)≤ε1ε(t)≤ε2] (4)
式中:[ε1]为剧烈强度变化的分界点;[ε2]为中等程度分界点。
当环境变化检测结果超过[ε1]时,即为剧烈的环境变化,此时环境变化强度较大,最优值及其位置将会偏离原始值,可以按照一定比例随机重新初始化种群来增大种群多样性;当检测结果介于[ε2]和[ε1]之间时,认为是中等强度的环境变化,此时的最优解及其位置应该在原始值附近,并不会偏离太远,若仍然按照重新初始化的方法来增加种群多样性,则会浪费计算时间,放缓了收敛速度。可以充分利用以前的计算结果对当前最优解及次优解进行高斯分布,生成部分个体,其余个体再按照随机初始化的方法生成子种群。当检测结果小于[ε2]时,认为是低强度的环境变化,此时环境变化范围较小,对于一般研究问题可以忽略,但对于较为精确的研究问题还应该考虑。本文将此低强度环境变化忽略。
2.2 动态优化算法计算过程
经典标准粒子群算法将每个粒子均当作[D]维解空间中的一个点,而且它们均有一个速度[v,]它会根据自身和群体的飞行经验确定自身的飞行速度,并调整飞行轨迹向最优点靠近。同时,不同粒子借助自身的个体适应度值对该粒子评估[14]。速度和位置更新公式如下:
[vid(t+1)=ω*vid(t)+c1r1(pid-xid(t))+c2r2(pgd-xid(t))] (5)
[xid(t+1)=xid(t)+vid(t+1)] (6)
式中:[vid(t),][xid(t)]分别表示[t]时刻粒子[i]的飞行速度和位置;[pid]表示粒子[i]的个体历史最佳位置;[pgd]表示群体中最佳位置;[ω]表示惯性权重;[c1]和[c2]表示加速因子;[r1]和[r2]表示在[0,1]范围内的随机数。
基于标准粒子群算法设计的多种增大种群多样性机制的动态优化算法计算步骤如下:
Step1:初始化种群和最优解的存储空间。然后随机生成寻优粒子的位置、速度和一定比例的监测粒子的位置;
Step2:评估种群中所有的个体,并得到所有寻优粒子的适应度值,存储当前的全局最优解,计算监测粒子的适应度值;
Step3:得到前后时刻监测粒子适应度值的变化度[ε(t),]若[ε(t)>ε1,]转Step4;若[ε2<ε(t)≤ε1,]转Step5;若[ε(t)≤ε2,]则转Step6;
Step4: 随机重新初始化种群和最优解存储空间,生成寻优粒子的位置和速度,然后转至Step2;
Step5:对当前最优解的粒子位置按照高斯分布生成部分种群,其余按照重新初始化随机生成寻优粒子位置和速度,并转至Step2;
Step6:更新每个寻优粒子的速度和位置;
Step7:判断是否达到最大迭代次数,若否转至Step2,若是则计算结束。
3 实验验证及分析
为了验证该算法的可行性,采用移动峰问题(Moving Peaks Benchmark Problem)进行测试[15],并且用离线误差作为性能评价标准。离线误差可以表示为:
[μ=1ki=1k(hi-fi)] (7)
式中:[hi]表示第[i]次环境下最高峰的高度值;[fi]表示第[i]次环境下算法能求得的适应度最优值;[k]表示环境变化总次数;[μ]即离线误差值,反映的是算法跟踪环境变化的能力,理论上[μ=0]为最佳。
移动峰问题已经被广泛采用作为典型的动态优化测试问题[16],通过改变多个峰的高度、宽度和位置来模拟环境的变化。评价函数由多个峰构成,形式如下:
[F(x,t)=maxi=1,2,…,PHi(t)1+Wi(t)*j=1D(xj(t)-Xij(t))2] (8)
式中:[Wi(t),][Hi(t)]表示峰i在时刻t的宽度和高度;[Xij(t)]表示峰i在时刻t时第j维的位置;P表示峰的个数;[D]表示峰的位置维度。
由于在搜索过程中,峰的高度、宽度和位置均在不停的改变,那么峰的位置为:
[vi(t)=sr+vi(t-1)(1-λ)r+λvi(t-1)] (9)
式中:[vi(t)]即为峰i在t时刻的移动方向;[r]为随机向量;[λ]为相关系数,表示t时刻的移动方向与t-1时刻移动方向的相关程度;s为移动长度。
[Hi(t)=Hi(t-1)+height_severity*σ] (10)
[Wi(t)=wi(t-1)+width_severity*σ] (11)
[Xi(t)=Xi(t-1)+vi(t)] (12)
式中:height_severity表示峰的高度变化程度;[σ]表示在[0,1]范围内满足高斯分布的随机数;width_severity表示峰的宽度变化程度。
采用的移动峰问题的参数如表1所示。
将改进粒子群算法的种群规模设定为50,每迭代100次改变一次环境,一共改变100次,运行该算法得到如图1所示的结果。
从图1可以看出,小方块表示每个环境中所有峰的最高高度值,也就是真实的最优值。星号则表示得到的每个环境中的最优值。经过计算,本次运行的离线误差为0,也就是说算法在环境发生变化后能够真实跟踪到每次环境中的最优值。
由于粒子群算法是一种随机性寻优算法,为了消除偶然性因素的影响,将该改进型算法运行10次。用标准粒子群算法对同样的移动峰问题参数寻优,运行10次,得到离线误差和需要的计算时间数据记录如表2所示。
从表2中的数据可以发现:标准型粒子群算法虽然也能跟踪到动态环境中的最优解,但不稳定,甚至误差很大,這是由于此时的标准粒子群算法已经陷入了局部最优解;而改进粒子群算法的寻优结果更稳定,精度高,标准差更小,且还可在较短的时间内得出变化环境中的最优解。
4 结 语
针对动态优化问题提出将环境变化进行分类,分为高强度、中等强度和低强度的环境变化。针对高强度的环境变化,采取重新初始化部分种群的策略;针对中等强度的环境变化,采取将当前最优解进行高斯分布取随机数,将种群分布在当前最优解周围;针对低强度环境变化,不作反应。应用移动多峰的动态问题测试本算法,结果表明,该改进型粒子群算法相比标准粒子群算法平均离线误差更小,并且性能更稳定,能够跟踪到动态环境的最优值。
参考文献
[1] 许君,鲁海燕,石桂娟.限制速度粒子群优化和自适应速度粒子群优化在无约束优化问题中的应用[J].计算机应用,2015,35(3):668?674.
[2] NGUYEN T T, YANG S X, BRANKE J. Evolutionary dynamic optimization: a survey of the state of the art [J]. Swarm and evolutionary computation, 2012, 6: 1?24.
[3] 葛亮,吴承乾,吴丹,等.一种基于码率控制的无线自组织网络传输功率优化方案[J].现代电子技术,2015,38(9):9?11.
[4] 李妍峰,李军,赵达.动态搜索算法求解时间依赖型旅行商问题研究[J].控制与决策,2009,24(2):274?278.
[5] 赵冬玲,杨艳,潘正运.一种车辆路径规划的新型蚁群算法研究[J].电子器件,2014,37(3):519?523.
[6] 贺毅朝,宋建民,张敬敏,等.利用遗传算法求解静态与动态背包问题的研究[J].计算机应用研究,2015,32(4):1011?1015.
[7] 毕洪伟.一类带移民的连续状态分枝过程的非中性突变模型[J].北京师范大学学报(自然科学版),2014(4):346?349.
[8] 耿光飞,杨仁刚.基于定向变异遗传算法的地区电网无功功率优化[J].电网技术,2004,28(10):42?44.
[9] 文娟,谭阳红,雷可君,等.基于量子粒子群算法多目标优化的配电网动态重构[J].电力系统保护与控制,2015,43(16):73?78.
[10] YANG S X, RICHTER H. Hyper?learning for population incremental learning in dynamic environments [C]// Proceeding of 2009 IEEE Congress on Evolutionary Computation. Los Alamitos: IEEE, 2009: 682?689.
[11] 饶兴华,王文格,胡旭.多样性反馈与控制的粒子群优化算法[J].计算机应用,2014,34(2):506?509.
[12] 郑金华,彭舟,邹娟,等.基于引导个体的预测策略求解动态多目标优化问题[J].电子学报,2015,43(9):1816?1825.
[13] 孙东磊,韩学山,李文博.风储共存于配网的动态优化潮流分析[J].电力自动化设备,2015,35(8):110?117.
[14] 高道镠,纪志成,吴定会.基于双策略改进混沌粒子群的车间调度优化[J].计算机工程与设计,2015,36(7):1944?1947.
[15] 陈昊,黎明,陈曦.动态环境下基于预测机制的多种群进化算法[J].小型微型计算机系统,2012,33(4):795?799.
[16] 周长喜,毛力,吴滨,等.基于当前最优解的人工蜂群算法[J].计算机工程,2015,41(6):147?151.