一 基本概念
遗传算法(Genetic Algorithm):
遗传算法(简称GA)是一种优化算法,通过模拟大自然中生物进化的自然选择和遗传学机理来进行搜寻最优解。
核心思想是物竞天择,适者生存。随着逐代进化,适合“环境”的,被保留下来越来越多,不适应的则被淘汰,最后留下的则是最适合的环境的,即最优的或者是接近最优的解。
染色体:代表解决方案。
遗传算子:一般指选择(复制)、交叉、变异。交叉目的使原来的两个解决方案进行重组,形成新的解决方案(希望能有更好染色体结构生成)。变异的目的是产生新的解决方案,扩大解的搜索空间。
注:最优解含义——所需要的即为最优的,例如可能为最高山峰,也可能为最低山峰。
算子——就是映射,就是关系,就是变化。
GA优点:1.没有关于优化问题的许多数学要求,根据进化特征(实际问题中所要达到的目的),不进行逐代淘汰进化即可。
2.遗传算子操作使全局搜索更有效。
(以后了解更深入后,再补充)
二 实现思路
先概括的叙述一下,GA的大概思想:把解决方案编码成染色体,带有染色体的个体集合构成种群,以随机的方式生成初始化种群。(根据问题的实际需要,制定合适的适应度函数,以适应度函数制定选择函数。)根据适应度函数判断种群中每个个体的适应情况,|然后进行遗传算子的操作,形成新的种群,然后循环迭代,直到适应度函数收敛或者达到要求的进化代数,最后的这一代种群(里面适应度最大的个体)为最优的,所对应的染色体进行解码后就得到最优解。
遗传算法步骤:
- 编码成染色体(二进制编码、浮点数编码)
- 初始化种群
- 评估(求解适应度,选择)
- 进行遗传操作(遗传算子:复制、交叉、变异),形成新的种群。
对3、4进行循环迭代,末代种群的最优解个体经过解码,得到最优解或近似最优解。
GA的Flowchart:
三 扩展
人们对遗传算法做了许多的改进算法。
在此记录一下目前了解到的自适应遗传算法,和相对应的改进的自适应遗传算法。在遗传算法里面交叉和变异的概率非常重要,不能太大也不能太小。
自适应遗传算法里面提出的自适应概率公式为:
其中f为适应度,fmax为当前种群中最大的适应度,f'为两个交叉个体中适应度值较大的那一个的适应度,k1,k2,k3,k4为(0,1)之间的值。
这个自适应遗传函数比较适合进化后期,否则容易陷入局部最优解。
个人理解,结合模拟退火的思想和考虑遗传进化的代数,对该自适应概率公式进行改进,改进后的概率公式如下:
其中n代表进化的代数。