59.2. 遗传算法

遗传算法(GA)是一种启发式优化方法,通过随机搜索进行操作。优化问题的可能解决方案的集合被视为“个体”的“人口”。个体对环境的适应程度由其* fitness *决定。

搜索空间中个体的坐标由* chromosomes *表示,本质上是一组字符串。 * gene 是染色体的一个小节,它编码要优化的单个参数的值。基因的典型编码可以是 binary integer *。

通过仿真进化操作* recombination mutation select *,发现了新一代搜索点,它们的平均适应度高于其祖先。

根据 comp.ai.genetic 常见问题解答,不能过分强调 GA 不是纯随机搜索问题的解决方案。遗传算法使用随机过程,但结果显然是非随机的(优于随机的)。

图 59.1. 遗传算法的结构图

P(t)在时间 t 产生祖先
P''(t)在时间 t 产生后代
+=========================================+
|>>>>>>>>>>>  Algorithm GA  <<<<<<<<<<<<<<|
+=========================================+
| INITIALIZE t := 0                       |
+=========================================+
| INITIALIZE P(t)                         |
+=========================================+
| evaluate 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)}  |
|   +-------------------------------------+
|   | evaluate FITNESS of P''(t)          |
|   +-------------------------------------+
|   | t := t + 1                          |
+===+=====================================+