差分进化算法

✍ dations ◷ 2025-10-24 13:49:32 #数学最佳化,进化算法

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

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

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

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

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

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

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

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

相关

  • 乔治一世乔治一世(George I,1660年5月28日-1727年6月11日),原名格奥尔格一世·路德维希,汉诺威选帝侯、英国国王。乔治出生于汉诺威,父亲恩斯特·奥古斯都(德语:Ernst August (Hannover))是汉
  • 城市延伸城市蔓延(英语:Urban sprawl),或称郊区蔓延(Suburban sprawl),俗称摊大饼,是指郊区城市化过程中,城市人口大幅向外发展,侵占城市边缘的乡郊地区并形成低密度、单功能,且通常依赖小汽车
  • 毛石肠梗阻症候群毛石肠梗阻症候群(Rapunzel syndrome)也称为长发公主症症候群,是罕见的人类消化道疾病,是因为吃毛发所造成(食毛癖(英语:trichophagia))。其英文名称得名自格林童话中的长发姑娘Rapun
  • 东方蠊东方蠊或黑蠊(学名:),是蟑螂的一个庞大的品种。成年东方蠊身体光滑,呈深褐色或黑色,雄性体长18~29 mm(0.71~1.14英寸),雌性体长20~27 mm(0.79~1.06英寸)。乍一看,雌性东方蠊似乎没有翅膀,实
  • 美浓国诸旧记美浓国诸旧记(日语:美濃国諸旧記/みののくにしょきゅうき  ?)是记载关于美浓国的名家、豪族、战事、城池、郡、村、寺社的史书、军记。因为记载宽永年间(1624年—1645年)的事物,
  • 平贺源内平贺源内(1728年〔享保13年〕- 1780年1月24日〔安永8年12月18日〕)为日本江户时代的博物学者、兰学者、医生、作家、发明家、画家(兰画家)等。父为白石茂左卫门(良房)、母为山下氏
  • 阿列克谢·伊万诺维奇·列昂诺夫阿列克谢·伊万诺维奇·列昂诺夫(俄语:Алексей Иванович Леонов,1902年5月20日-1972年11月14日)是苏联军事人物,通信兵元帅(1961年)。1902年生于卡缅斯克。191
  • 伊格尔 (亚利桑那州)伊格尔(英文:Eagar),是美国亚利桑那州阿帕奇县下属的一座城市。 面积约为11.24平方英里(约合29.1平方公里)。根据2010年美国人口普查,该市有人口4,885人,人口密度为434.9/平方英里。
  • 裨海纪游《裨海记游》,又名《采硫日记》,为清朝官员郁永河所著,书中描绘17世纪的台湾风土民情,并在当时采矿处今北投龙凤谷有碑志之。该书分为上、中、下三卷。上卷说明来台缘由,并记录从
  • 萨贝利人萨贝利人(Sabellian)是罗马崛起之前生活在意大利中部及南部的意大利人部落中翁布里-撒贝利人中的一支,包括萨宾人在内。首先使用这个专名的人是德国历史学家尼布尔,其中包括萨宾