差分进化算法

✍ dations ◷ 2024-12-22 20:26:03 #数学最佳化,进化算法

差分进化算法(英语:Differential Evolution)又称微分进化算法,是一种求解最优化问题的进化算法。因为进化算法对于最优化问题的要求极少,所以被视为一种后设启发式算法(英语:metaheuristic)。虽然后设启发式算法适用于多种最优化问题,但是并不保证可以找到全局最优解。

差分进化算法被使用在多维度实数编码的最优化问题。因为此算法不使用问题的梯度信息,故可解不可微分的最优化问题。也因此,差分进化算法可用于不连续的,噪声的,随着时间改变的最优化问题。

差分进化算法类似遗传算法,包含变异,交叉操作,淘汰机制。本质上说,它是一种基于实数编码的具有保优思想的贪婪遗传算法。而差分进化算法与遗传算法不同之处,在于变异的部分是随选两个解成员变量的差异,经过伸缩后加入当前解成员的变量上,因此差分进化算法无须使用几率分布产生下一代解成员。

算法的原理采用对个体进行方向扰动,以达到对个体的函数值进行下降的目的,同其他进化算法一样,差分进化算法不利用函数的梯度信息,因此对函数的可导性甚至连续性没有要求,适用性很强。同时,算法与粒子群优化有相通之处,但因为差分进化算法在一定程度上考虑了多变量间的相关性,因此相较于粒子群优化在变量耦合问题上有很大的优势。由于差分进化算法在连续域优化问题的优势已获得广泛应用,并引发进化算法研究领域的热潮。算法的实现参考实现代码部分

差分进化算法之目的为求解最优化问题,使用突变、交叉、选择计算以演化多个可能的解。首先,产生足量的随机变量,做为初始的可能解。接着,依序进行突变、交叉、选择计算,做完一轮后,检查某个终止条件。若终止条件尚未满足,则回到突变、交叉、选择计算,否则终止差分进化算法,输出最后一轮的最佳解。

在进化计算中,突变是用于产生随机解的计算方法。

在突变之后,差分进化算法使用交叉计算以增强随机解的多样性。

在交叉之后,差分进化算法对随机解做选择,移除演化失败的解,留下演化成功的解。选择之后,进行突变计算,直到满足某个终止条件。

相关

  • 腹肌腹直肌(简称腹肌)是指躯干下半部(或称腹部)的器官,由若干片状的肌肉保护着,并固定在适当的位置。他们包括两块腹直肌,沿着身体前面,从胸廓延伸到骨盆。当腹直肌收缩时,腹部被往内拉。
  • 芦笋芦笋(学名:Asparagus officinalis)又名石刁柏,为天门冬科天门冬属 多年生开花草本植物。像它的表兄弟韭、葱、蒜,它一度被归入百合科。芦笋原产于欧洲大部分地区,以及北非和西亚,是
  • 后百济君主 · 首都 · 文学史 · 教育史电影史 · 韩医史陶瓷史 · 戏剧史韩国国宝 · 朝鲜国宝后百济(900年—936年),朝鲜半岛后三国之一。892年,新罗西南军阀甄萱起兵,攻占武
  • 第四机械工业部中华人民共和国第四机械工业部(1963年-1982年)。1963年,第四机械工业部由第三机械工业部分出。1982年,第四机械工业部、国家广播电视工业总局、国家电子计算机工业总局(1979年3月
  • 黄岩区黄岩区,别称“橘乡”,是中华人民共和国浙江省台州市的一个区,位于中国东南沿海黄金海岸线中部、台州市西南部,东靠椒江区、路桥区,南接温岭市、乐清市,西邻仙居县、温州市永嘉县,北
  • 郑西高铁.mw-parser-output .RMbox{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2)}.mw-parser-output .RMinline{float:none
  • 博斯普鲁斯王国博斯普鲁斯王国(希腊语:Βασίλειο του Βοσπόρου),又称辛梅里安博斯普鲁斯王国,是一个位于辛梅里安博斯普鲁斯地区的希腊化国家,存在于公元前5世纪至公元后4世纪
  • 迈克·沃格尔迈克·沃格尔(英语:Mike Vogel,本名Michael James Vogel,1979年7月17日-)是美国的一位演员,之前也曾是模特儿。他从2001年开始从事演艺事业。他出演过多部电影和电视剧,包括《海神号
  • 鹰峰 (北小岛)鹰峰是位在钓鱼台列屿北小岛的一个山峰,位置在岛上的中部偏北,同时也是岛上的第二高峰。鹰峰南边正对岛上的第一高峰狮峰,北边有莲花石,西边有孔明石。鹰峰的名称由中国在2012年
  • 克拉斯拉瓦自治市克拉斯拉瓦自治市 (拉脱维亚语:Krāslavas novads),是拉脱维亚的一个自治市,设立于2001年。位于该国东南部,人口20217人,面积1078.4平方公里,人口密度约19人/km2。