首页 >> 大全

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

2023-06-06 大全 55 作者:考证青年

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

一、遗传算法的基本原理

遗传算法的基本原理是:

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

二、遗传算法的基本原理

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

一.编码

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

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

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

格雷码:相邻整数之间的汉明距离为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.一点交叉(One-point ):是指在个体编码串中随机设置一个交叉点,然后在该点交换两个配对个体的部分染色体。

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

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

(2)多点交叉

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

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

第四,变异

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

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

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

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

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

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

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

三、遗传算法的基本原理

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

四。遗传算法原理简介

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

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了