概述
差分进化算法是一种用于解决全局优化问题的随机搜索算法。与遗传算法、
粒子群优化算法、蚁群算法、人工蜂群算法等智能算法相比较,DE 算法的参数少、优化能力较强。
DE 算法是进化算法中的一种,它具有进化算法所有的优点。该算法受自然界中物种“优胜劣汰,适者生存”的准则启发,通过对种群进行初始化、个体适应值评价、差分变异操作、杂交操作、选择操作等过程选择更优秀的下一代,算法流程图如图所示。
由图可知,DE 算法中种群初始化后,通过适应值函数对种群个体进行评价计算,再将种群中的个体放入循环中进行各项操作,当循环不满足终止条件时,跳出循环体,输出最优个体。其中,常被使用的终止条件是:适应值评价次数是否超过最大评价次数,种群迭代次数是否超过最大种群迭代次数。
初始化
初始化种群中的每一个个体都是搜索范围内的一个解,种群中的个体需要尽可能的分布在搜索范围内的所有区域,以便算法可以进行大范围的寻优,增加找到最优值的概率。
第t代种群如下式所示,Np表示种群中的个体数目,
变异操作
变异个体主要由基向量和差分向量生成,最广泛使用的6个DE突变策略在下式中给出
xr1’-xr2’为差分向量,F为(0, 1)内的缩放因子,用于控制差分扰动的程度。六种变异策略在收敛精度、鲁棒性、收敛速度三个指标上的表现可以参考论文 改进差分进化算法在电力系统经济调度中的应用研究。
单变异策略往往难以有效地解决复杂优化问题,为此,研究人员提出了许多基于组合变异策略的 DE 算法变体。
变量的边界约束:
当变异个体分量不在变量约束范围内,重新以随机生成的方法产生
交叉操作
二项式交叉差产生的个体在每一维分量上都是离散地来自父代个体或者变异个体,而指数杂交产生的个体分量是连续地来自父个体或者变异个体,所以种群个体差异对指数杂交的影响比对二项杂交的影响大。
(1)二项式交叉
在杂交操作中,利用差分变异操作产生的变异个体与父个体进行二项杂交,产生试验个体
(2)指数交叉
l为[1, D]之间的一个随机整数,为指数交叉的起点,在起点处,试验向量取自变异向量,然后按照随机数与变异率的比较情况选择一个小于D的长度L作为替换的变量数目。
选择操作
DE使用贪婪选择方法来执行选择操作,体现了大自然界物竞天择,优胜劣汰的思想。根据适应值从父个体和试验个体中一对一地贪婪选择出更好的个体成为下一代父个体。
参数分析
(1)种群规模
在设置种群规模使经常需要考虑求解问题的维度,小规模问题一般取维度的2-3倍,大规模问题一般取6-10倍。
(2)最大进化次数
(3)缩放因子F
缩放因子代表个体的变异率,大小通常在[0, 2]中选择。缩放因子越大,个体的搜索步长就越大,可以使个体在比较广的可行域内搜索,过大的搜索域步长可能会越过最优值,导致中青年搜索不到最优解,从而影响求解精度;缩放因子过小可以帮助种群稳定的搜索,加速种群的收敛,但是缩放因子过小会导致算法陷入局部最优值内无法跳出。缩放因子过大过小都不利于求解,可采用动态自适应缩放因子方案。
动态调整F方法 参考 张晓丽.基于改进差分进化算法的二维最大熵图像分割
参考文献 一种基于DE算法和NSGA-Ⅱ的多目标混合进化算法 张晓丽
(4)交叉率CR
交叉率对种群的多样性有很大的帮助,取值一般在[0, 1]。如果交叉率设置较大,种群的多样性好,过大会导致算法早熟。如果交叉率较小,有利于算法稳定的再可行域中寻优,过小会导致搜索停滞不前,不利于种群收敛。根据不同问题的需求,选取合适的取值。
动态调整CR方法参考 张晓丽.基于改进差分进化算法的二维最大熵图像分割,差分进化算法的交叉概率因子递增策略 研究比较了3种非线性计算交叉概率因子递增策略
优点
结构简单,容易实现
自适应强,能够对参数进行自适应调整
算法内部存在并行性,能够进行协同搜索
缺点
采用贪婪准则,丢弃了部分可行的非最优解
算法容易陷入局部最优,缺少跳出局部最优的机制
离散差分进化算法
参考: 基于群智能优化的车间调度方法 清华大学出版社 一书