差异进化是一种全局优化算法。
它是一种进化算法,与其他进化算法(例如遗传算法)有关。与遗传算法不同,它是专门设计用于对实值向量(而不是位串)进行运算的。此外,与遗传算法不同的是,它使用向量减法和加法等向量运算来导航搜索空间,而不是遗传学启发的变换。
在本教程中,您将发现差异演化全局优化算法。完成本教程后,您将知道:
差分进化优化是一种进化算法,旨在与实值候选解一起使用。
如何在python中使用差异进化优化算法API。
使用差异演化解决具有多个最优解的全局优化问题的示例。
教程概述
本教程分为三个部分:他们是:
差异进化
差分进化API
差分进化的工作实例
差异进化
差分进化,简称DE,是一种随机的全局搜索优化算法。它是一种进化算法,与其他进化算法(例如遗传算法)有关。与使用位序列表示候选解决方案的遗传算法不同,差分演化被设计为与用于连续目标函数的多维实值候选解决方案一起使用。
该算法在搜索中不使用梯度信息,因此非常适合于非微分非线性目标函数。该算法通过维护代表实值向量的候选解的总体来工作。通过制作现有解决方案的修改版本来创建新的候选解决方案,然后在算法的每次迭代中替换大部分人口。使用“策略”来创建新的候选解决方案,该策略涉及选择要添加突变的基本解决方案,以及从总体中计算出突变的数量和类型的其他候选解决方案,称为差异向量。例如,一种策略可以选择最佳候选解决方案作为突变中差异矢量的基础和随机解决方案。
如果子级具有更好的目标函数评估,则将基础解决方案替换为其子级。
变异计算为候选解决方案对之间的差异,从而产生差异矢量,然后将差异矢量添加到基本解决方案中,并通过设置在[0,2]范围内的变异因子超参数进行加权。
并非基本解决方案的所有元素都发生了突变。这是通过重组超参数控制的,通常将其设置为较大的值(例如80%),这意味着基本解决方案中的大多数(但不是全部)变量都将被替换。通过对概率分布(例如二项式或指数式)进行采样,分别为每个位置确定保留或替换基本解中的值的决策。
使用标准术语来描述以下形式的差异策略: DE / x / y / z
DE代表“差分进化”,x定义了要变异的基本解,例如“ rand”代表随机,“ best”代表总体中的最佳解。y代表添加到基本解中的差异向量的数量,例如1&#