差分进化算法 差分进化算法英語differential evolution又称微分进化算法是一种求解最佳化问题的进化算法因為进化算法對於最佳化问题的要求極少所以被視為一種後設启发式算法英语metaheuristic雖然後設启发式算法適用於多種最佳化问题但是並不保證可以找到全局最優解 差分进化算法被使用在多維度實數編碼的最佳化问题因為此算法不使用問題的梯度資訊故可解不可微分的最佳化问题也因此差分进化算法可用於不連續的雜訊的隨著時間改變的最佳化问题 差分进化算法類似遗传算法包含变异交叉操作淘汰机制本质上说它是一种基于实数编码的具有保优思想的贪婪遗传算法而差分进化算法与遗传算法不同之處在於变异的部分是隨選兩個解成員變數的差異經過伸縮後加入當前解成員的變數上因此差分进化算法無須使用機率分佈產生下一代解成員  算法的原理采用对个体进行方向扰动以达到对个体的函数值进行下降的目的同其他进化算法一样差分进化算法不利用函数的梯度信息因此对函数的可导性甚至连续性没有要求适用性很强同时算法与粒子群优化有相通之处但因为差分进化算法在一定程度上考虑了多变量间的相关性因此相较于粒子群优化在变量耦合问题上有很大的优势由于差分进化算法在连续域优化问题的优势已获得广泛应用并引发进化算法研究领域的热潮算法的实现参考实现代码部分