差分进化算法

✍ dations ◷ 2025-11-30 04:58:29 #数学最佳化,进化算法

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

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

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

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

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

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

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

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

相关

  • 少数寡关节炎(英语:oligoarthritis,源自希腊语oligos,即“少”或“寡”)是指在发病的前六个月内,关节炎影响到 2 到 4 个关节。若一次同时有五个或五个以上的关节发炎,则称为多关节炎;若
  • 硝基呋喃呋喃(英语:furan)是一种含有一个由四个碳原子和一个氧原子的五元芳环的杂环有机物。含有呋喃环的化合物即为呋喃的同系物。呋喃是一种无色、可燃、易挥发液体,沸点接近于室温。
  • 兽亚纲后兽下纲 Metatheria 真兽下纲 Eutheria兽亚纲(学名:Theria,源自希腊语θηρίον,野兽之意)是分类学上的一群哺乳类动物。这些动物从出生到幼年时期,不须经历在蛋中的生活。而
  • 苦艾酒苦艾酒(法语:Absinthe: .mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","Gentium","Gentiu
  • 噪声污染噪声污染指人类在工业生产、建筑施工、交通运输和社会生活等活动中,产生的噪声干扰周围动物(动物包括人类)生活环境。目前世界上环境噪声最主要的来源是交通噪声,包括汽车、船
  • 新邱区新邱区是辽宁省阜新市下辖的一个市辖区。位于辽宁省西北部,地理坐标为东经121°1′-122°56′、北纬41°41′-42°56′。下辖4个街道、1个镇:新邱在春秋时期,属东胡地。战国属
  • 里海西鲱里海西鲱为辐鳍鱼纲鲱形目鲱科的其中一种,分布于黑海、亚速海及里海海域,体长可达32公分,栖息在沿海海域,为洄游性鱼类,属肉食性,以浮游生物为食,为高经济价值的食用鱼。 维基物种
  • 卡梅伦 (南卡罗来纳州)卡梅伦(英文:Cameron),是美国南卡罗来纳州下属的一座城市。城市类型是“Town”。其面积大约为3.13平方英里(8.09平方公里)。根据2010年美国人口普查,该市有人口424人,人口密度约为每
  • 穆龙贝区穆龙贝区(马达加斯加语:Morombe),是马达加斯加的行政区,位于该国南部,由阿齐莫-安德列发那区负责管辖,首府设于穆龙贝,面积7,634平方公里,2011年人口111,027,人口密度每平方公里15人。
  • 唐锦唐锦(1475年-1554年),字士綗,直隶松江府上海县(今上海市)人,民籍,明朝政治人物,官至江西按察使司提学副使。弘治八年(1495年)乙卯科应天府乡试第十一名。弘治九年(1496年)丙辰科三甲第一百