文案:段克邪
排版:随心390
hello,大家好。各位可点击此处,访问公众号官方店铺。谨防上当受骗,感谢各位支持!
今天我们有幸请到创新奇智运筹优化算法工程师朱小龙博士为大家科普差分进化算法,本次推文内容主要来源于作者博士论文《缩放因子自适应差分进化算法及其在航天器轨道优化中的应用》, 中国科学院大学, 2020。
文末有创新奇智公司的招聘信息,励志成为一名运筹优化算法工程师或想在创新奇智公司实习的同学千万不要错过!!!
差分进化算法(differential evolution,以下简称DE)由Storn等人于1995年提出,其最初的设想是用于解决切比雪夫多项式问题,后来发现它也可用于求解复杂优化问题。当前,它已经成为求解连续变量和无约束类型的全局优化问题的最有效方法之一。与遗传算法类似,DE为一种基于种群进化的元启发式算法。
本篇推文主要从以下几个方面展开:
01优化能力
02 流程概述
03 算法特点
04 发展历史
01 |优化能力
1.1 IEEE CEC标准测试算例
元启发式算法由于缺乏严密的数学证明,因此难以从理论上确定哪一种元启发式算法是最佳的元启发式算法。为了详细评测各类元启发式方法的全局优化能力,一般采用数值优化的方式进行对比验证。自2005年以来,相关主办方每年都会举办一次IEEE 进化计算大会(Congress on Evolutionary Computation,CEC)单目标参数优化竞赛。竞赛中一般会提供大约30个标准测试算例,作为各类元启发式算法的测试对象。这些算例的全局最优解均为已知,特点也基本明确,表1给出了IEEE CEC 2014的前16个算例的问题特点。表中,参数可分离(Separable)指的是优化变量可以分别独立优化;参数不可分离(Non-separable)指的是优化变量不能独立优化。“N/A”表示无其他特点。IEEE CEC 2014的后14个算例是由前16个算例中的某几个函数组合而成,因此更加复杂。此外,对于每个算例,优化变量的个数从少到多共包含10、30、50和100共4种。在测评时,通常设定最大目标函数计算次数为优化变量个数的10,000倍,并将此时的优化结果,作为元启发式算法的最终结果。最终结果与全局最优解之间的差距越小,则认为该方法的全局寻优性能越好。
1.2 DE的优化结果排名
表2列举了2005-2020年IEEE CEC 单目标参数优化竞赛的前三名优化算法。其中,2005年和2016年未针对算法进行总排名,不参与统计(用N/A表示);2007年为多目标优化问题,不参与统计(用N/A表示);2009年和2014 年的第二名和第三名算法,未在网站上公布,表中也未列出(用N/A表示)。
表2中的DE算法和改进DE算法用黑体标注。从表中可以看出,DE在求解标准测试算例时,具有较为明显的优势。图1汇总了DE算法在各届IEEE CEC竞赛中的最优排名及其对应的改进DE。除了2013年排名第4外(图1中未标出),DE在其他所有年份的排名都位列前三。在2006和2009等7个年份中,DE取得了第一名的成绩。在最近三年的竞赛中,即2018年、2019年和2020年,DE依然保持着领先的地位。
02 | 流程概述
设定优化问题如下:优化变量为
目标函数为最小化某一性能指标
针对以上的最小化问题,经典DE在求解过程中,一般包含4个步骤:初始化(initialization)、变异(Mutation)、交叉(Crossover)和选择(Selection)。
2.1 初始化
DE的种群可以表示为
其中,
其中,
2.2 变异
定义
其中,下标
2.3 交叉交叉算子
如(7)所示,其作用是通过组合
其中,
生成
03 | 算法特点
相比其他元启发式算法,DE的主要特点在于它使用差分向量来指导当前种群的进化方向,即式(6)。为了直观地展示差分向量(变异向量)的变化特点,本节结合经典DE求解2维Schwefel函数的优化实例,进行详细描述。
图3为2维Schwefel函数的3-D曲面图和等高线图,其中x和y的范围均为[-500,500] 。从图上可知,该函数中除了全局最优解外,还包含数量众多的局部最优解。
使用刚刚介绍的经典DE进行求解。设置种群大小
在初始化种群后,虽然种群大小
12代时,优化过程逐渐摒弃中心位置,向边界附近搜索;
19代时,搜索范围聚集到4个角落;
23代时,优化区间已经减至2个小范围;
25代时,只剩下一个搜索区域。此时,个体间差异也变小,局部开发能力更强;
在40代时,基本收敛。
因此,在优化过程中,差分向量可以利用个体差异的变化,自适应地调整DE的全局探索和局部开发能力,从而保证DE具有非常好的综合优化性能。
04 | 发展历史
经典DE虽然为求解全局优化问题提供了一种可行的途径,但是它还存在一些不足,比如易陷入局部最优、出现早熟收敛或搜索停滞等现象。为了提升DE的全局优化性能,许多学者致力于改进DE的相关工作。总的来说,改进DE的方法可以分别或同时从以下4个方面入手,包括:变异算子、种群大小
4.1 变异算子
为了区分不同类型的变异算子,一般使用“DE/x/y”对其简述。其中,x表示基向量,y表示差分向量。式(6)中的变异算子通常被标记为DE/rand/1。此后,学者们又提出了DE/best/1、DE/rand/2、DE/best/2和DE/current-to-pbest/1等变异算子。当前,DE/current-to-pbest/1变异算子是各种改进DE的最常用算子之一,其表达式如下
式中,
4.2 种群大小
种群设置的方式主要包含2种,固定值和自适应方式。在固定值中,通常认为种群数
4.3 缩放因子
设计缩放因子
历史自适应缩放因子
交叉概率
4.4 改进DE性能排名
图7依据全局寻优能力的的区别,绘制了25种不同DE算法之间的相互关系。各类改进DE从下到上,全局寻优能力逐渐提升。每两条红色虚线区间内的DE认为其全局寻优性能类似。DE之间的箭头指向表示来源关系,例如EsDEr-NR是JADEw的改进版。
05 | 参考文献
[1] Al-Dabbagh R D, Neri F, Idris N, et al. Algorithmic design issues in adaptive differential evolution schemes: review and taxonomy [J]. Swarm and Evolutionary Computation. 2018, 43:284 – 311
创新奇智招聘信息
运筹优化算法工程师 & 实习生
地点:北京、青岛
01 工作职责
1、负责运筹优化方向的算法研究和开发,包括组合和连续优化、在线和离线优化、无约束和约束优化等;
2、负责新零售和制造业务场景的优化算法设计和实现,包括问题建模、算法选择、结果验证和分析等。
02 任职资格
1、硕士及以上学历,计算机,应用数学,运筹学,工业工程,统计学或相关专业;
2、精通运筹学领域的算法理论和应用,包括线性规划、启发式和元启发式算法;
3、有大型优化项目经验或数学建模竞赛获奖经历优先;
4、较强的编程能力,掌握C,C++,JAVA,Python至少一种语言;
5、有零售和制造从业经历或项目经历优先,有系统开发经验优先;
6、具有较强的团队合作精神,良好的沟通能力,出色的执行力。
03 简历投递邮箱
jiaziyu@ainnovation.com
更多精彩尽在公众号:优化算法交流地
往期推荐
遗传算法(GA)求解带时间窗的车辆路径(VRPTW)问题MATLAB代码
蚁群算法(ACO)求解带时间窗的车辆路径(VRPTW)问题(附MATLAB代码)
知乎 | bilibili:随心390