遗传算法
( GA , Genetic Algorithm )
,也称进化算法
。
遗传算法是受达尔文的
进化论的启发,
借鉴生物进化过程而提出的一种启发式搜索算法。
因此在介绍遗
传算法前有必要简单的介绍生物进化知识。
一
.
进化论知识
作为遗传算法生物背景的介绍,下面内容了解即可:
种群
(Population)
:
生物的进化以群体的形式进行,这样的一个群体称为种
群。
个体
:组成种群的单个生物。
基因
( Gene )
:
一个遗传因子。
染色体
( Chromosome )
:包含一组的基因。
生存竞争,
适者生存
:
对环境适应度高的、
牛
B
的个体参与繁殖的机会比较
多,
后代就会越来越多。
适应度低的个体参与繁殖的机会比较少,
后代就会越来
越少。
遗传与变异
:
新个体会遗传父母双方各一部分的基因,
同时有一定的概率发
生基因变异。
简单说来就是:繁殖过程,会发生基因交叉
( Crossover )
,基因突变
( Mutation )
,适应度
( Fitness )
低的个体会被逐步淘汰,而适应度高的个体会越
来越多。那么经过
N
代的自然选择后,保存下来的个体都是适应度很高的,其
中很可能包含史上产生的适应度最高的那个个体。
二
.
遗传算法思想
借鉴生物进化论,
遗传算法将要解决的问题模拟成一个生物进化的过程,
通
过复制、
交叉、
突变等操作产生下一代的解,
并逐步淘汰掉适应度函数值低的解,
增加适应度函数值高的解。这样进化
N
代后就很有可能会进化出适应度函数值
很高的个体。
举个例子,
使用遗传算法解决
“0
-1
背包问题
”
的思路:
0-1
背包的解可以编码
为一串
0-1
字符串(
0
:不取,
1
:取)
;首先,随机产生
M
个
0-1
字符串,然
后评价这些
0-1
字符串作为
0-1
背包问题的解的优劣;然后,随机选择一些字符
串通过交叉、突变等操作产生下一代的
M
个字符串,而且较优的解被选中的概