一个个体在搜索空间里的参照物是用染色体(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 |
+===+=====================================+