智能算法——遗传算法原理应用汇总

Posted 墨叔叔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能算法——遗传算法原理应用汇总相关的知识,希望对你有一定的参考价值。

一、遗传算法原理

        遗传算法(GA)是一种基于生物界规律和自然遗传机制的并行搜索算法。1975 年,J. Holland 教授首次在书中提出“自然组合人工智能系统的适应性”。它是一种多参数,多组合同时优化方法,模拟自然进化过程中“自然选择,适者生存”的原则。其主要特征是群体间的搜索方法以及群体中个体信息的交换。GA 非常适合解决传统搜索方法难以解决的非线性问题[1]。与其他启发式算法相比,遗传算法具有以下特征:
        (1)遗传算法从多个初始点而不是单个初始点开始搜索,因此可以有效地跳出局部极值 ;
        (2)利用目标函数的评价信息而不是传统导数的目标函数,形式对目标函数没有要求,因而有良好的适应性和可规模化 ;
        (3)具有良好的寻找全局最优解的能力,能够在非连续,多峰和嘈杂的环境中以较大的概率收敛到全局最优或满意的解 ;
        (4)将每个过程划分作为决策变量,优化生产过程,解决最优作业调度问题 ;
        (5)具有天生的并行性,即在对群体进行运算的同时,对多个结果 进行信息搜索;它具有一定的概率,这增加了其搜索最优解决过程的灵活性。

        GA 从种群的初始解决方案开始其搜索过程。群体中的每个个体被称为染色体。在迭代过程中染色体的不断更新称为遗传。GA 主要通过交叉、变异、选择算子来实现。染色体的优点和缺点通常通过适应性来评估。根据适合度值的大小,从父母和后代中选择一定比例的个体作为后代的群体,然后继续迭代计算直到它收敛到全局最佳染色体。适应度是遗传算法用来评价种群在进化的过程中所能达到的最优值的一个概念。为了证明染色体的适应性,引入了测量每条染色体的功能函数,称为适应度函数。

    遗传算法的流程主要组成部分包括:
  (1)编码方式。遗传算法通常根据问题本身进行编码,并将问题的有效解决方案转化为遗传算法的搜索空间。工业中常用的编码方法包括实数编码,二进制编码,整数编码和数据结构编码。
  (2)适应度函数。适应度函数,也称为目标函数,是对整个个体与其适应度之间的对应关系的描述。具有高适应性的个体中包含的高质量基因具有较高的传递给后代的概率,而具有低适应性的个体的遗传概率较低。
  (3)遗传操作。基本的遗传操作包括:选择、交叉、变异。
         a)选择。选择操作基于个体适应度评估,选择群体中具有较高适应度的个体,并且消除具有较低适应度的个体。当然不同的选择操作也会带来不同的结果,有效的选择操作可以显著的提高搜索的效率
和速度,减少无用的计算量。
                常见的选择方法有:基于比例的适应度分配方法,期望值选择方法,基于排名的适应度分配方法,轮盘赌选择方法等。
         b)交叉。在自然界生物进化过程中,两条染色体通过基因重组形成新的染色体,因此交叉操作是遗传算法的核心环节。交叉算子的设计需要根据具体的问题具体分析,编码操作和交叉操作互相辅助,交叉产生的新的个体必须满足染色体的编码规律。父代染色体的优良性状最大程度上的遗传给下一代染色体,在此期间也能能够产生一些较好的性状。
               常见的交叉算子包括实质重组,中间重组,离散重组,线性重组,二进制交叉,单点交叉,均匀交叉,多点交叉和减少代理交叉。
         c) 变异。通过随机选择的方法改变染色体上的遗传基因。变异本身可以被视为随机算法,严格来说,是用于生成新个体的辅助算法。

                几个与浮点数编码和二进制编码个体匹配的交叉运算:单点交叉,均匀交叉,算术交叉,两点交叉和多点交叉。

          算法终止条件。算法终止一般指适应度函数值的变化趋于稳定或者满足迭代终止的公式要求,也可以是迭代到指定代数后停止进化。

流程图:

二、应用

2.1 遗传算法求解函数最值问题(最大值/最小值):https://blog.csdn.net/qq_44152192/article/details/117334618

 

[1]李岩,袁弘宇,于佳乔,张更伟,刘克平.遗传算法在优化问题中的应用综述[J].山东工业技术,2019(12):242-243+180.

以上是关于智能算法——遗传算法原理应用汇总的主要内容,如果未能解决你的问题,请参考以下文章

常见智能算法实现

《常用算法之智能计算 》:遗传算法

遗传算法原理及案例解析

CI:模拟进化与遗传算法

c语言实现*/遗传算法改进BP神经网络原理和算法实现怎么弄

基于遗传算法优化SVM参数的热负荷预测,GA-SVM回归分析