🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 53.2\. 基因算法 基因算法(GA)是一种启发式的优化法,它是通过不确定的随机搜索进行操作。 优化问题的可能解的集合被认为是_个体_组成的_种群_。 一个个体对它的环境的适应程度由它的_适应性_表示。 一个个体在搜索空间里的参照物用_染色体_表示(实际上是一套字符串)。 一个_基因_是染色体的一个片段,基因是被优化的单个参数的编码。 对一个基因的典型的编码可以是_二进制_或_整数_。 通过仿真进化过程的_重组_、_变异_ 、_选择_找到新一代的搜索点,它们的平均适应性要比它们的祖先好。 根据comp.ai.genetic FAQ ,不论怎么强调GA在解决一个问题时不是纯随机搜索都不过份。 GA使用随机处理,但是结果明显不是随机的(比随机更好)。 **Figure 53-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 | +===+=====================================+ ```