遗传算法原理(遗传算法原理及应用)

遗传算法原理(遗传算法原理及应用)

今天和大家分享一个关于遗传算法原理的问题(遗传算法原理及应用)。以下是这个问题的总结。让我们来看看。

遗传算法原理(遗传算法原理及应用)

   

一、遗传算法的基本原理

遗传算法的基本原理是:

遗传算法是一种基于自然选择和群体遗传机制的搜索算法,模拟了自然选择和自然遗传过程中的繁殖、杂交和变异现象。用遗传算法解决问题时,问题的每一个可能的解都被编码成一个“染色体”,即一个个体,几个个体构成一个群体(所有可能的解)。在遗传算法开始时,一些个体(初始解)总是随机产生的。根据预定的目标函数对每个个体进行评估,并给出适合度值。基于这个适应值,选择一些个体来产生下一代。选择操作体现了优胜劣汰的原则,用“好”的个体产生下一代,而淘汰“坏”的个体。然后被选中的个体进行交叉和变异,算子重新组合产生新一代。由于这一代个体继承了上一代的一些优秀性状,在性能上优于上一代,因此逐渐向最优解进化。因此,遗传算法可以看作是一个由可行解组成的种群的初始进化过程。

二、遗传算法的基本原理

遗传算法的基本原理和方法

一。编码

编码:将问题的可行解从其解空转化为遗传算法空搜索的转换方法。

解码(Decoding):遗传算法求解空与空之间的转换。

二进制编码的缺点是汉明悬崖,即某些相邻整数的二进制代码之间存在很大的汉明距离,这使得遗传算法的交叉和变异难以跨越。

格雷码:相邻整数之间的汉明距离为1。

(更好)有意义的积木块编码规则:编码应易于生成与问题相关的短距离和低阶积木块;最小字符集编码规则,应采用最小字符集进行编码,以便能够自然地表达或描述问题。

二进制编码比十进制编码具有更好的搜索能力,但它不能保持群体的稳定性。

动态参数编码:为了获得高精度,让遗传算法从一个非常粗略的精度收敛。当遗传算法找到一个区域时,它将在该区域中搜索,重新编码,重新开始并重复这一过程,直到达到所需的精度。

编码方法:

1.二进制编码方法

缺点:连续函数离散化时存在映射误差。它不能直接反映问题的结构特征,不便于开发针对该问题的具有专门知识的遗传算子,并且难以满足积木块编码原则。

2.格雷码编码:两个连续整数对应的代码之间只有一个代码位不同,其他代码位相同。

3.浮点编码法:个体的每个基因值用一定范围内的浮点数表示,个体的编码长度等于其决策变量的位数。

4.参数级联编码:一种用多个变量对个体进行编码的方法。通常,每个参数都以一定的编码方法进行编码,然后将它们的代码按照一定的顺序连接在一起,形成代表所有参数的单独代码。

5.多参数交叉编码:在每个参数中起主要作用的编码位集中在一起,这样它们就不容易被遗传算子破坏。

评估编码的三个规范:完整性、可靠性和无冗余性。

第二,选择

遗传算法中的选择操作是一种遗传操作,用于确定如何从父代群体中选择那些个体并以某种方式将其遗传给下一代群体,并确定重组或杂交的个体以及被选择的个体将产生多少后代。

常用的选择运算符:

1.轮盘选择:它是一种回放随机抽样方法。每个个体进入下一代的概率等于其适应值与整个种群中个体适应值之和的比值。选择误差很大。

2.随机锦标赛:每次在轮盘选择中按下一对个体,然后让这两个个体竞争。选择适应性高的那个,以此类推,直到满为止。

3.最优选择:首先按照轮盘赌选择法进行遗传算法的选择操作,然后将当前种群中适应度最高的个体结构完全复制到下一代种群中。

4.无回放随机选择(也称为期望值选择):根据每个个体在下一代中的生存期望进行随机选择操作。该方法如下

(1)计算下一代种群中每个个体的生存期望数n。

(2)如果选择一个个体参与交叉操作,其在下一代中的生存期望数减少0.5;如果个体没有被选择参与交叉操作,其在下一代中的生存期望数将减少1.0。

(3)在选择过程中,如果个体的生存期望数小于0,那么该个体将不再有机会被选择。

5.确定性选择:以某种方式选择。具体操作流程如下:

(1)计算下一代种群中每个个体的期望存活数n。

(2)用n的整数部分确定下一代种群中每个对应个体的存活数。

(3)个体按n的小数部分降序排列,取前m个个体以便加入下一代种群。至此,下一代种群中的m个个体可以完全确定。

6.无回放余数的随机选择:它可以确保一些适应度大于平均适应度的个体可以遗传到下一代种群中,因此选择误差相对较小。

7.平均排名:按计划对群体中所有个体的适应度进行排名,并根据该排名分配每个个体被选中的概率。

8.最优保存策略:当前种群中适应度最高的个体不参与交叉和变异操作,而是用它来替换当前种群中交叉和变异操作后适应度最低的个体。

9.随机联赛选择:每次在几个个体中选择适应性最高的个体,并将其传递给下一代。

10.排除选择:新产生的后代将取代或排挤相似的老父母,从而提高种群的多样性。

第三,交叉

遗传算法的交叉操作是指两个配对染色体之间以某种方式交换某些基因,从而形成两个新个体。

二进制编码个体或浮点编码个体的交叉算子;

1.一点交叉:是指在个体编码串中随机设置一个交叉点,然后在该点交换两个配对个体的部分染色体。

2.两点相交和多点相交:

(1)两点交叉:在个体编码串中随机设置两个交叉点,然后交换一些基因。

②多点交叉

3.均匀交叉(也称为均匀交叉):两个配对个体的每个基因座的基因以相同的交叉概率交换,从而形成两个新个体。

4.算术交叉:两个新个体由两个个体的线性组合产生。操作对象一般是用浮点代码表示的个体。

第四,变异

遗传算法中的变异操作是指将个体染色体编码串中某些位点的基因值替换为该位点的其他等位基因,从而形成一个新个体。

以下变异运算符适用于二进制编码和浮点编码的个体:

1.简单变异:变异操作是在单个代码串中随机指定的一位或多位上执行的,变异概率仅取决于该位的值。

2.均匀突变:用在一定范围内以一定小概率均匀分布的随机数替换个体编码串中每个基因位点的原始基因值。(特别适合算法的初级运算阶段)

3.边界突变:在基因位点上随机取两个对应的边界基因值中的一个来替换原来的基因值。它特别适用于当最优点位于或接近可行解边界时的一类问题。

4.非均匀变异:随机扰动原始基因值,并将扰动后的结果作为变异后的新基因值。以相同的概率对每个位点进行突变操作后,相当于对解空中的整个解向量进行了轻微的更改。

5.高斯近似变异:在进行变异操作时,用一个正态分布的随机数代替原始基因值,该随机数的符号均值为p的平均值,方差为P2。

三、遗传算法的基本原理

自然界是一个自适应的大系统【53,56 ~ 60】。自然系统中的大多数生物通过自然选择和有性繁殖这两个基本过程进行自身进化,从而逐渐达到完美以适应自然。遗传算法受生物进化和遗传的启发,形成了一种独特的优化方法。遗传算法的运算原理往往与生物进化和遗传理论一致,其术语往往仿照生物术语。遗传算法的运算基础是字符串。首先,将搜索对象编码成字符串形式。字符串相当于生物学中的染色体,由一系列字符组成;每个字符都有特定的含义,反映所解决问题的某个特征,相当于一个基因,即染色体DNA的一个片段。每个字符串结构称为一个个体,每个个体可以通过问题本身的适应度值度量来计算反映其适应性的适应度值,然后循环一组字符串结构(称为组)。每个循环操作称为一代,操作包括:将字符串组中适应性好的那些字符串保存到下一代(对应于遗传学中的复制),使上一代中的优秀个体得以生存,这类似于生物进化论中的自然选择。通过字符串之间有组织但随机的信息交换,那些适应良好的字符串被重新组合(对应于遗传学中的交叉),并且在每一代中,通过使用上一代字符串结构中适应良好的位和段来生成新的字符串群体;作为额外的补充,偶尔尝试在字符串结构中用新的位和段替换原始部分(对应于遗传变异),等等。在遗传算法中,这些操作只涉及字符串的一些片段,这类似于只涉及某些基因而不是整个染色体的遗传过程。遗传算法是一种随机算法,但它不是简单的随机行走。它可以有效地使用现有信息来搜索那些有望提高解决方案质量的字符串。与自然进化类似,遗传算法对染色体上的基因进行操作,以找到好的染色体来解决问题。与自然相似,遗传算法对解决问题本身一无所知。它只需要评估算法生成的每条染色体,并根据适应度值选择染色体,从而使适应性好的染色体有更多的繁殖机会。

4.遗传算法原理简介

以上是边肖对遗传算法原理(《遗传算法的原理与应用》)及相关问题的回答。希望关于遗传算法原理(《遗传算法原理及应用》)的问题对你有用!

以上就是由优质生活领域创作者 嘉文社百科网小编 整理编辑的,如果觉得有帮助欢迎收藏转发~