差分进化算法

✍ dations ◷ 2025-05-19 18:14:21 #数学最佳化,进化算法

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

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

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

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

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

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

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

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

相关

  • 水杨酸甲酯水杨酸甲酯(Methyl salicylate)是一种由甲醇的羟基和水杨酸的羧基结合而生成的有机化合物,又名冬青油(Oil of wintergreen,由冬青树提炼)。有药草的特殊气味,味甜而辣。药用方面主
  • 檀香檀香树(学名:Santalum album),又名檀树(《毛诗》、《本草》)、真檀(《本草纲目》)、白旃檀(《楞严经》)、白檀、檀香,是檀香科檀香属的一种半寄生性植物。原产地为印度,后随佛教来到中国
  • 高雄市议会坐标:22°37′16″N 120°20′50″E / 22.6212210°N 120.3473535°E / 22.6212210; 120.3473535高雄市议会是高雄市的最高立法机关,位于凤山区国泰路上。现行高雄市议会系于2
  • 舌形动物门舌形动物类(学名:Pentastomida),又称五口动物类,是动物界的一个分类。属于无脊椎动物,介乎于环节动物和节肢动物之间,均为寄生性动物。其特征是体软、扁而长,无色,透明,无足。身长从数
  • 宿雾水牛宿雾水牛(学名:Bubalus cebuensis)是在菲律宾发现的化石倭水牛,于2006年首次被描述。宿雾水牛最大的特征是其细小的体型。其他同期的水牛肩高约6呎及重2000磅,但宿雾水牛只有2.5
  • 马里 (叙利亚)马里(英语:Mari,即现在叙利亚境内的特尔·哈利利(Tell Hariri))是古代苏美尔亚摩利人建立的城邦,位于幼发拉底河中流的西岸。位于现在叙利亚的阿布·卡马尔西北部11km处,代尔祖尔东
  • ViolaWWWViolaWWW是万维网(WWW)第一个流行的浏览器,目前已停止开发。其首次在1991/1992年的UNIX操作系统上发布,并成为受万维网发源组织CERN所推荐的浏览器,但其最常用浏览器的地位最终被M
  • 卜象乾卜象乾(?-?),字坤仪,南直隶常州府武进县(今属常州市)人。明朝政治人物。崇祯四年(1631年) 辛未科第三甲第四十一名同进士出身。任江西新建县知县。崇尚仁德教化,不轻易用刑。历迁刑部郎
  • 阿拉德·皮尔逊阿拉德·皮尔逊(荷兰语:Allard Pierson,1831年4月8日-1896年5月27日), 荷兰神学家和历史学家,荷兰激进批评的主要倡导者。1831年出生在荷兰首都阿姆斯特丹,父亲是一名阿姆斯特丹的
  • 六月雪别名:满天星、喷雪六月雪(学名:)是茜草科六月雪属()的唯一种,为常绿灌木植物,中国盆景常用的树木之一。此树种原产于亚热带地区,它在每年夏天都会盛开星状的白色花朵,如同在积在树上的