本文为《遗传算法原理及应用》绪论 学习总结
一、遗传算法的生物学基础
遗传算法是根据生物遗传的原理而产生的一类算法,我们了解遗传算法前首先要理解有关遗传的生物学基础,这一部分相信大家在高中生物中多少有一定的了解了,因此我简要介绍一下相关知识:
生物在将自己的基因遗传给下一代时,两个同源染色体之间通过交叉而重组,就是高中说的交叉互换。
变异即基因突变。
生物进化是以种群为单位的,这个种群称为群体,群体中的单个生物称为个体。
二、遗传算法简介
在介绍了相关基础后,我们来介绍遗传算法概要:
下图为最优化问题的可行解及可行解集合:
其中可行解集合对应群体,可行解对应个体,最优化问题即求解群体中的最优个体。
我们求解最优解或近似最优解的方法有三种:
- 枚举法:枚举法是枚举出所有可行解。若为连续函数则需要进行离散化,但缺点是可能产生离散误差而无法求得最优解;
- 启发式算法:需要根据特定的问题找出启发式规则,算法不具有通用性,但求解效率较高;
- 搜索算法:分为局部搜索和全局搜索。其中局部搜索的代表算法为爬山算法,我们这本书教授的遗传算法则为全局搜索。
接下来我们直接给出遗传算法的流程图,然后对其进行解释:
首先对种群 P ( t ) P(t) P(t) 进行编码便于计算机处理。在种群 P ( t ) P(t) P(t) 进化的过程中,我们使用遗传算子得到 P ( t + 1 ) P(t+1) P(t+1) ,然后进行解码得到解集合,然后做出个体评价进行优胜劣汰,最后得到新群体。以此不断循环,我们通常对循环次数进行控制。
接下来解释图中每部分的说明:
首先是遗传算子,我们通常进行 3 个遗传操作产生新群体:
- 选择:根据个体适应度,对个体进行优胜劣汰;
- 交叉:我们模仿细胞中的染色体交叉互换过程,对个体的部分染色体进行交换;
- 变异:以某一概率产生基因突变,突变可以是一个或多个基因。
在对遗传算法进行了简单介绍后,我们尝试手动模