这个错误表示 Python 在您的计算机上找不到名为 'pymoo' 的模块。这通常是因为您没有安装该模块或安装不正确造成的。
要解决此问题,您需要执行以下步骤:
确保您已正确安装
pip install pymoo
遗传算法是一种通过模拟自然进化搜索最优的方法,其主要特点主要体现在以下三个方面:
具体的流程图如下所示:
在理解遗传算法之前我们需要了解相关的名词如下表所示:
名词 | 描述 |
---|---|
基因(gene) | 一个基因代表具体问题的一个决策变量,即自变量 |
基因型(genotype) | 性状染色体的内部表现,比如,二进制编码 |
表现型(phenotype) | 染色体决定的性状的外部表现,即根据基因型形成的个体外部表现,比如,十进制值 |
染色体(chromosome) | 在遗传算法中,问题的每个有效解被成为一个染色体,染色体的具体形式是一个使用特定编码发生生成的编码串,其中每个编码单元称为基因 |
个体(individual) | 染色体带有特征的实体,一个包含若干基因的染色体表示一个具体问题的一个解,个体包括染色体与适应度 |
种群(population) | 多个个体(染色体)构成一个种群,即一个问题的多组解构成了解的种群 |
遗传代数(generation) | 遗传代数,也可以理解为迭代的次数 |
适应度(fitness) | 衡量某个物种对于生存环境的适应程度,适应度就是确定自变量后对应的函数值 |
编码(coding) | DNA中遗传信息在一个长链上按一定的模式排列,遗传编码可看作从表现型到基因型的映射 |
解码(decoding) | 与编码相反,解码为基因型到表现型的映射 |
进化(evolution) | 种群逐渐适应生存环境,品质不断得到改良,生物的进化是以种群的形式进行的 |
选择(selection) | 以一定的概率从种群中选择若干个个体,通常情况下,选择过程是一种基于适应度的优胜略汰的过程 |
复制(reproduction) | 细胞分裂时,遗传物质DNA通过复制而转移到新产色和那个的细胞中,心细胞就继承了旧细胞的基因 |
交叉(crossover) | 两个染色体的某一相同位置处DNA被切断,前后两串分别交叉组合形成两个新的染色体,即基因重组或杂交 |
变异(mutation) | 在复制的过程中有很小概率产色和那个某些差错,产生新的染色体,表现出新的性状 |
说明:
(1)染色体作为遗传物质的主要载体,即多个基因的组合,其内部表现(基因型)是某种基因组合,它决定了个体的形状的外部表现。因此,在一开始时需要实现编码,即从表现型到基因型的映射实现。为了达到简化的目的,在遗传算法中通常采用二进制编码替代复杂的实际基因编码过程。
(2)遗传算法是从代表问题一个种群(population)开始的,一个种群则经过基因(gene)编码的一定数目的个体(individual)组成的,每个个体实际上是染色体(chromosome)带有特征的实体。
(3)产生初始种群后,逐代(generation)演化出更好的近似解。在每一代中,根据问题域中个体的适应度(fitness)大小选择(selection)个体,并借助自然遗传学的遗传算子(genetic operators)进行组合交叉(crossover)与变异(mutation),产生出代表新解集的种群。
(4)这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码(decoding),可以作为问题近似最优解。