基因算法(GA

GA 是一种启发式的优化法(heuristic optimization method),它是通过既定的随机搜索进行操作.优化问题的可能的解的集合被认为是个体 (individuals) 组成的的 人群(population) .一个个体对它的环境的适应程度由它的健康度(fitness)表示.

一个个体在搜索空间里的参照物是用染色体chromosomes)表示的,实际上那是一套字符串.一个基因 gene)是染色体的一个片段,基因对被优化的单个参数进行编码.对一个基因的典型的编码可以是 二进制 binary)或整数integer)。

通过仿真进化过程的重组recombination)。突变mutation),和选择selection)找到新一代的搜索点,它们的平均健康度要比它们的祖先好.

根据 "comp.ai.genetic" FAQ,我们不论怎么强调 GA 在解决一个问题时不是纯随机搜索都不过份.GA 使用随机处理,但是结果明显不是随机的(比随机更好).

GA 结构化框图:
---------------------------

P(t)    generation of ancestors at a time t
P''(t)  generation of descendants at a time t

+=========================================+
|>>>>>>>>>>>  Algorithm GA  <<<<<<<<<<<<<<|
+=========================================+
| INITIALIZE t := 0                       |
+=========================================+
| INITIALIZE P(t)                         |
+=========================================+
| evalute FITNESS of P(t)                 |
+=========================================+
| while not STOPPING CRITERION do         |
|   +-------------------------------------+
|   | P'(t)  := RECOMBINATION{P(t)}       |
|   +-------------------------------------+
|   | P''(t) := MUTATION{P'(t)}           |
|   +-------------------------------------+
|   | P(t+1) := SELECTION{P''(t) + P(t)}  |
|   +-------------------------------------+
|   | evalute FITNESS of P''(t)           |
|   +-------------------------------------+
|   | t := t + 1                          |
+===+=====================================+