遗传算法
基本原理
遗传算法是建立在自然选择和群众遗传学机理基础上的随机,迭代,进化,具有广泛适应性的搜索算法。
算法步骤
- 初始化种群
- 计算中群上每个个体额适应度
- 按由个体适应度值所决定的某个规则选择将进入下一代的个体。
- 按概率进行交叉操作
- 按概率进行编译操作
- 若没有满足某种停止条件转入2,否则进行下一步
- 输出种群中适应度最优的染色体作为问题的满意解或最优解
编码问题
编码是遗传算法要解决的重要问题。常用的有二进制编码,格雷编码,实数编码,符号编码等。
群体设定
遗传操作是对多个个体同时进行的,中多个个体组成了群体。群体规模,即群体中包括的个体数目如何确定。有两个要考虑的因素。a:初始群体的设定;首先根据问题固有知识,设法把握最优解所占空间在整个问题空间的分布范围,然后在分布范围内设定初始群体。然后先随机生成一定数目的个体,然后从中挑出最好的个体加到初始群体中。这种过程不断迭代,直到初始群体中数量达到了预先设定的值。b:进化过程各代的规模如何维持。
遗传操作
遗传操作包括三个基本遗传算子,交叉,变异,选择。这三个算子有一下特点:a,三个遗传算子的操作都是随机的。b,三个算子所取的概率,与编码方式,群体大小,初始群体以及适应度函数的函数的设定密切相关。c:三个算子的操作方法和个体的编码方式直接有关。
交叉运算
两个互配对的染色体按照某种方式互相交换部分基因,从而形成两个新的个体。交叉运算是遗传算法区别于其他进化算法的重要特征。它决定了遗传算法的全局搜索能力,是产生新个体的主要方法。常用的交叉算子有:a:单点交叉、b:双点交叉、c:均匀交叉
变异运算
将个体编码串中的某些基因值用其他基因值来替换,从而形成一个新的个体,遗传算法中的变异运算时产生新个体的辅助方法,但必不可少,因为它决定了遗传算法的局部搜索能力。常用的方法:a:基本为变异法,b:均匀变异法,c:二元变异法。
选择运算
适应度高的遗传到下一代的几率大,小的就小。它的任务是按照某种算法传到下一代群体。
来源:CSDN
作者:十二个番茄
链接:https://blog.csdn.net/qq_39323734/article/details/103735576