遗传算法初识

遗传起源

它起源于达尔文的进化论,是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型。

主要特点

其主要特点是群体搜索策略和群体中个体之间的信息交换,搜索不以梯度信息为基础

用途

它尤其适用于处理传统搜索方法难于解决的复杂和非线性问题,可广泛应用于组合优化、机器学习、自适应控制、
规划设计和人工生命等领域

算法原理

1.基本术语
1)初始种群:原始个体的集合。
2)编码:问题参数按某种形式编制的代码。
3)染色体:编码后的串,也叫个体。
4)基因:染色体编码中的位。
5)适应度:个体适应环境的能力,常用适应度函数值表示,是区分群体中个体优
劣的标准。
6)遗传算子:产生新一代群体的方法,主要包括选择算子、交叉算子和变异算子。
7)复制:通过遗传算子,选择适应度高的染色体作为下一代

2.编码

编码机制是遗传算法的基础。遗传算法不是对研究对象直接进行讨论,而是通过某种编码机制把对象统一赋予由特定符号(字母)按一定顺序排成的串。遗传算法从代表问题可能潜在解集的一个种群开始的,而一个种群则由经过基因(Gene)编码(Coding)的一定数目的个体(Individual)组成,每个个体实际上是染色体(Chromosome)带有特征的实体。染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状和外部表现。因此,在一开始需要实现从表现型到基因型的映射即编码工作。由于仿照基因编码的工作很复杂,我们往往进行简化,如二进制形式,实值编码和知识编

3.适应度函数

GA 淘汰个体的原则是适应能力的强弱。个体的适应能力以适应度函数 f ( x )的值来判别的,这个值称为适应度值(Fitness)。
f ( x )的构成与目标函数有关,往往是目标函数的变种。适应度函数的处理有:目标函数的确定、目标函数到适应度函数的映射、适应度值
调整等。目标函数与具体问题紧密相关。

4.遗传算子

选择算子的作用就是依据“适者生存”的原则,按照种群中各个个体的适应度从种群中挑选一部分个体复制给下一代。选择操作要考虑到选择的个体数量和选择哪些个体
的问题。主要运用的方法有:轮盘赌选择、随机遍历抽样、局部选择、截断选择、锦标赛选择等。

交叉算子又称重组(Recombination)算子或配对(Breeding)算子。当许多染色体相同或后代的染色体与上代差别不大时,可通过染色体交叉产生新一代染色体。
交叉操作分两步进行:首先,按交叉概率cP (0.6~0.9)选取两个染色体,每个染色体由多个位(基因)组成。然后,沿着两个染色体的基因按照一定策略进行互换,得到两
个新的染色体。交叉策略包括位交叉、段交叉和部分匹配交叉等。

位交叉:随机选择一对个体的一个或多个位进行基因互换。
段交叉:将一个个体中的一段与另一个体中的相应段互换。
部分匹配交叉:两个染色体互换一个基因段,并将染色体其他段中与交换段中相同的基因反交换为被交换段中相应位的基因。

变异操作增加了 GA 寻找到最优解的能力,与选择、交叉算子结合在一起,避免了选择算子和交叉算子引起的某些信息永久性丢失,保证了 GA 的有效性。变异发生的概
率mP 极低,一般在 0.01 到 0.2 之间。

变异操作一般方法是:根据mP 确定要变异的个体,选择一个个体,随机地选择一个变异基因。若为二进制编码,将变异位上 0 换为 1 或 1 换为 0;若是实值编码,将变异
位换为一个随机数。重复上述步骤,直到所有要变异的个体完成变异。

遗传算法是模拟生物在自然环境中的遗传和进化过程而形成的一种并行全局搜索
算法。算法描述如下:
步骤 1:随机产生种群,个体数目一定,每个个体表示为染色体的基因编码;
步骤 2:计算个体的适应度,并判断是否符合优化准则,若符合,输出最佳个体及
其代表的最优解,并结束计算;否则转向第三步;
步骤 3:依据适应度选择再生个体,适应度高的个体被选中的概率高,适应度低的
个体可能被淘汰;
步骤 4:按照一定的交叉概率和交叉方法,生成新的个体;
步骤 5:按照一定的变异概率和变异方法,生成新的个体;
步骤 6:由交叉和变异产生新一代种群,返回第二步。
遗传算法中的优化准则,一般依据问题的不同有不同的确定方式。例如:可以采用
以下准则之一作为判断条件:
1.种群中个体的最大适应度超过预先设定值;
2.种群中个体的平均适应度超过预先设定值;
3.世代数超过预先设定值;

    原文作者:遗传算法
    原文地址: https://blog.csdn.net/cao812755156/article/details/51111743
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞