1. 遗传算法简介
遗传算法是用于解决最优化问题的一种搜索算法,算法的整体思路是建立在达尔文生物进化论“优胜劣汰”规律的基础上。它将生物学中的基因编码、染色体交叉、基因变异以及自然选择等概念引入最优化问题的求解过程中,通过不断的“种群进化”,最终得到问题的最优解。
2. 遗传算法实现步骤
在讲下面几个基于生物学提出的概念之前,首先我们需要理解为什么需要在最优化问题的求解中引入生物学中的各种概念。
假设我们需要求一个函数的最大值,但这个函数异常复杂以至于无法套用一般化的公式,那么就会想到:如果可以将所有可能的解代入方程,那么函数最大值所对应的那个解就是问题的最优解。但是,对于较复杂的函数来说,其可能的解的个数的数量级是我们所无法想象的。因此,我们只好退而求其次,只代入部分解并在其中找到最优解。那么这样做的核心就在于如何设定算法确定部分解并去逼近函数的最优解或者较好的局部最优解。
遗传算法就是为了解决上述问题而诞生的。假设函数值所对应的所有解是一个容量超级大的种群,而种群中的个体就是一个个解,接下去遗传算法的工作就是让这个种群中的部分个体去不断繁衍,在繁衍的过程中一方面会发生染色体交叉而产生新的个体。另一方面,基因变异也会有概率会发生并产生新的个体。接下去,只需要通过自然选择的方式,淘汰质量差的个体,保留质量好的个体,并且让这个繁衍的过程持续下去,那么最后就有可能进化出最优或者较优的个体。这么看来原来最优化问题居然和遗传变异是相通的,而且大自然早已掌握了这样的机制,这着实令人兴奋。为了将这种机制引入最优化问题并利用计算机求解&#x