群智能优化算法:遗传算法

喜夏-厌秋 提交于 2019-12-28 09:14:37

遗传算法

基本原理

遗传算法是建立在自然选择和群众遗传学机理基础上的随机,迭代,进化,具有广泛适应性的搜索算法。

算法步骤

  1. 初始化种群
  2. 计算中群上每个个体额适应度
  3. 按由个体适应度值所决定的某个规则选择将进入下一代的个体。
  4. 按概率PcP_c进行交叉操作
  5. 按概率PmP_m进行编译操作
  6. 若没有满足某种停止条件转入2,否则进行下一步
  7. 输出种群中适应度最优的染色体作为问题的满意解或最优解

编码问题

编码是遗传算法要解决的重要问题。常用的有二进制编码,格雷编码,实数编码,符号编码等。

群体设定

遗传操作是对多个个体同时进行的,中多个个体组成了群体。群体规模,即群体中包括的个体数目如何确定。有两个要考虑的因素。a:初始群体的设定;首先根据问题固有知识,设法把握最优解所占空间在整个问题空间的分布范围,然后在分布范围内设定初始群体。然后先随机生成一定数目的个体,然后从中挑出最好的个体加到初始群体中。这种过程不断迭代,直到初始群体中数量达到了预先设定的值。b:进化过程各代的规模如何维持。

遗传操作

遗传操作包括三个基本遗传算子,交叉,变异,选择。这三个算子有一下特点:a,三个遗传算子的操作都是随机的。b,三个算子所取的概率,与编码方式,群体大小,初始群体以及适应度函数的函数的设定密切相关。c:三个算子的操作方法和个体的编码方式直接有关。

交叉运算

两个互配对的染色体按照某种方式互相交换部分基因,从而形成两个新的个体。交叉运算是遗传算法区别于其他进化算法的重要特征。它决定了遗传算法的全局搜索能力,是产生新个体的主要方法。常用的交叉算子有:a:单点交叉、b:双点交叉、c:均匀交叉

变异运算

将个体编码串中的某些基因值用其他基因值来替换,从而形成一个新的个体,遗传算法中的变异运算时产生新个体的辅助方法,但必不可少,因为它决定了遗传算法的局部搜索能力。常用的方法:a:基本为变异法,b:均匀变异法,c:二元变异法。

选择运算

适应度高的遗传到下一代的几率大,小的就小。它的任务是按照某种算法传到下一代群体。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!