主要内容

什么是遗传算法?

遗传算法是一种基于自然选择(即推动生物进化的过程)的方法,该方法用于求解有约束和无约束优化问题。该遗传算法会反复修改单个解的种群。在每个步骤中,遗传算法从当前种群中选择个体作为父代,并用它们产生下一代子代。经过连续几代,种群逐渐向最优解“进化”。您可以应用遗传算法来求解各种不太适合标准优化算法的优化问题,包括目标函数不连续、不可微分、随机或高度非线性的问题。遗传算法可以解决混合整数规划的问题,其中一些分量限制为整数值。

此流程图概述主要的算法步骤。有关详细信息,请参阅遗传算法的工作原理

Flow chart: create initial population, score and scale population, retain elite, select parents, produce crossover and mutation children, return to score and scale

遗传算法在每个步骤中使用三种主要类型的规则来从当前种群创建下一代:

  • 选择规则选择对下一代种群有贡献的个体,称为父代。这种选择通常是随机的,可能取决于个体的分数。

  • 交叉规则将两个父代结合以生成下一代的子代。

  • 变异规则将随机更改应用于单个父代以形成子代。

An elite child is identical to its parent. A crossover child gets some of each parent. A mutation child comes from one parent, and includes a change.

遗传算法与基于导数的经典优化算法的区别主要有两方面,如下表所概述:

经典算法遗传算法

在每次迭代中生成一个单点。点的序列逼近最优解。

在每次迭代中生成点的一个种群。种群中的最佳点逼近最优解。

通过确定性计算选择序列中的下一个点。

通过使用随机数生成器的计算选择下一个种群。

通常迅速收敛于局部解。

通常需要多次函数计算才能收敛。不一定会收敛于局部或全局最小值。

另请参阅

主题