差分进化算法 (differential evolution,DE)与离散差分进化算法(discrete DE, DDE)
目录
- 概述
- 初始化
- 变异操作
- 交叉操作
- 选择操作
- 参数分析
- 优点
- 缺点
- 离散差分进化算法
概述
差分进化算法是一种用于解决全局优化问题的随机搜索算法。与遗传算法、
粒子群优化算法、蚁群算法、人工蜂群算法等智能算法相比较,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种非线性计算交叉概率因子递增策略
优点
结构简单,容易实现
自适应强,能够对参数进行自适应调整
算法内部存在并行性,能够进行协同搜索
缺点
采用贪婪准则,丢弃了部分可行的非最优解
算法容易陷入局部最优,缺少跳出局部最优的机制
离散差分进化算法
参考: 基于群智能优化的车间调度方法 清华大学出版社 一书
差分进化算法 (differential evolution,DE)与离散差分进化算法(discrete DE, DDE)相关推荐
- 关于差分进化算法(Differential Evolution)
关于差分进化算法(Differential Evolution) 觉得有用的话,欢迎一起讨论相互学习~ 最近因为论文和审稿等综合因素的影响,决定对DE进行多一些研究,发现原先自己的了解太肤浅了发现了不 ...
- 差分进化算法(Differential Evolution,DE)实例详解
差分进化算法是(differential evolution,DE)是基于群体智能理论的优化算法,是通过群体内个体间的合作与竞争而产生的智能优化搜索算法.对比进化计算,它保留了基于种群的全局搜索策略, ...
- 差分进化算法(Differential Evolution)
一.差分进化算法的由来 差分进化算法(Differential Evolution,DE)于1997年由Rainer Storn和Kenneth Price在遗传算法等进化思想的基础上提出的,本质是一 ...
- SBX(Simulated binary crossover)模拟二进制交叉算子和DE(differential evolution)差分进化算子
一起来学演化计算-SBX(Simulated binary crossover)模拟二进制交叉算子和DE(differential evolution)差分进化算子 觉得有用的话,欢迎一起讨论相互学习 ...
- SBX(Simulated binary crossover)模拟二进制交叉算子和DE(differential evolution)差分进化算子...
一起来学演化计算-SBX(Simulated binary crossover)模拟二进制交叉算子和DE(differential evolution)差分进化算子 觉得有用的话,欢迎一起讨论相互学习 ...
- Making a Difference to Differential Evolution
0.论文背景 差分进化(Differential Evolution)和进化规划(Evolutionary Programming)是进化计算中的两种主要算法.它们已成功地应用于许多真实世界的数值优化 ...
- JADE: Adaptive Differential Evolution withOptional External Archive
0.论文背景 本文在DE的基础上,提出了一种新的差分进化(DE)算法JADE,通过实现一种新的突变策略DE/current-to-pbest,采用可选的外部存档和参数的自适应更新,来提高优化性能.上述 ...
- Self-adaptive Differential Evolution Algorithm for Numerical Optimization
0.论文背景 本文在DE算法的基础上,提出了一种自适应的差分进化算法(SaDE).其中学习策略的选择和两个控制参数F和CR不需要预先指定. Qin A K, Suganthan P N. Self-a ...
- 【学习笔记】Multi-Objective Differential Evolution Algorithm --MODEA
[学习笔记]Multi-Objective Differential Evolution Algorithm --MODEA 正文 (一)算法关键点 (二).概念定义 算法流程 算法伪代码.算法流程图 ...
最新文章
- CentOS7配置ntp服务
- 基本概念_复杂网络基本概念
- SpringSecurity-短信验证码接口开发
- 数据库mysql_row_MYSQL数据库mysql found_row()使用详解
- 合格网络管理员需了解的主要职责
- 二分查找/折半查找算法
- Oracle 常用伎俩和剧本
- 作者:高丰(1986-),英国南安普敦大学计算机博士,现为开放数据与创新独立咨询顾问,兼复旦大学数字与移动治理实验室特邀研究员。...
- Docker网络代理配置
- 学习Android之SharedPreferences使用
- 第二百五十八天 how can I 坚持
- AI 秒杀人类!OpenAI 击败 DOTA2 世界冠军 OG
- 让LinqToSQL使用Web.Config中的链接字符串(修改Settings.Designer.cs)
- DT大数据梦工厂 第72,73讲
- windows11鼠标滚轮反向
- i.MX6ULL 开发板在Ubuntu系统下实现串口通信
- 从写方案到见投资人,一步步教你如何拿投资
- 数据标注工具下载中遇到的各种问题
- 设计师需要什么证书及学历
- html5获取当前位置的api腾讯地图,腾讯地图JavaScript API调用