一、遗传算法原理

遗传算法(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.

智能算法——遗传算法原理、应用汇总相关推荐

  1. 智能算法--遗传算法(1-1)

    智能算法–遗传算法(1-1) 一.标准遗传算法基本概念 标准遗传算法(Standard Genetic Algorithm, SGA)是由美国J.H. Holland教授与他的同事和学生于1975年研 ...

  2. 精通matlab智能算法pdf下载 温正,精通MATLAB智能算法

    精通MATLAB智能算法 编辑 锁定 讨论 上传视频 <精通MATLAB智能算法>是2015年4月清华大学出版社出版的图书,作者是温正. 书    名 精通MATLAB智能算法 作     ...

  3. java寻优算法_模拟退火算法SA原理及python、java、php、c++语言代码实现TSP旅行商问题,智能优化算法,随机寻优算法,全局最短路径...

    模拟退火算法SA原理及python.java.php.c++语言代码实现TSP旅行商问题,智能优化算法,随机寻优算法,全局最短路径 模拟退火算法(Simulated Annealing,SA)最早的思 ...

  4. 2018-3-14(论文-优化问题的智能算法及其哲学内涵)笔记二(智能算法与人类智能以及遗传算法与生物进化对比)

    随机优化技术: 20世纪60年代人们开始尝试在计算机上模仿生物进进化过程而发展处随机优化技术,解决传统的优化算法难以解决的复杂问题.我们将学习自然界各类生物进化的特点,创造和构建的求解优化问题的方法称 ...

  5. matlab bs2rv.m,Matlab智能算法之遗传算法(一)

    Matlab智能算法之遗传算法(1) 以往写过的一篇文章了,旧了 1)Sheffield遗传算法工具箱的安装 我共享了下修改过文件名和后缀名的原版工具箱,地址为:http://pan.baidu.co ...

  6. 分级加权评分算法 java_荐书|智能风控:原理、算法与工程实践

    图书简介 风控领域是新兴的机器学习应用场景之一,其特点包括了负样本占比极少.业务对模型解释性要求偏高.业务模型多样.风控数据源丰富等. <智能风控:原理.算法与工程实践>一书共 8 章,包 ...

  7. 智能算法浅介----模拟退火,遗传算法,禁忌搜索,神经网络等

    本文讲的过于笼统,如果想真正理解,请参考: 1模拟退火 2遗传算法 3禁忌搜索 智能算法浅介----By cooler 一个比方 在工程实践中,经常会接触到一些比较"新颖的算法"如 ...

  8. 遗传算法-python版(计算机智能算法)

    这个系列还有两篇: 计算机智能专题-遗传算法(1不带约束的)_两只蜡笔的小新的博客-CSDN博客 计算机智能专题-遗传算法(2带约束的实数编码)_两只蜡笔的小新的博客-CSDN博客 前言: 遗传算法的 ...

  9. 《MATLAB智能算法30个案例》:第1章 谢菲尔德大学的MATLAB遗传算法工具箱

    <MATLAB智能算法30个案例>:第1章 谢菲尔德大学的MATLAB遗传算法工具箱 1. 前言 2. MATLAB 仿真示例一 3. MATLAB 仿真示例二 4. 小结 1. 前言 & ...

  10. 《MATLAB智能算法30个案例》:第4章 基于遗传算法的TSP算法

    <MATLAB智能算法30个案例>:第4章 基于遗传算法的TSP算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析>是 ...

最新文章

  1. CSS设置文字的划线
  2. 【译】Beyond Snarks: Some Blockchain Privacy Protocols You Need to Know About
  3. 如何获取高精度CV模型?快来试试百度EasyDL超大规模视觉预训练模型
  4. H.264软件解码器在PXA270平台上的优化
  5. 基础知识—条件判断语句-switch语句
  6. 华为云企业级Redis讲解第16期:超越开源Redis的ACID“真“事务
  7. 力扣908.最小差值Ⅰ
  8. linux以长格式显示当前目录的详细信息,Linux常用命令系列——文件和目录操作命令(ls)...
  9. JavaScript 是如何成为一门严肃的编程语言的
  10. Redis实践操作之—— keyspace notification(键空间通知)
  11. 前端改变div排序_前端面试经常问到的问题
  12. mvn 错误: @param 未找到
  13. hightopo学习之旅一 -- 节点动画
  14. 寻宝游戏(DFS+动态规划)
  15. 晚还款没事,各行信用卡容时容差服务大汇总!
  16. 运动无线蓝牙耳机哪款好、运动无线蓝牙耳机推荐
  17. 专访丨互联网安全城市巡回赛冠军肖策:“大满贯”背后的秘密
  18. Java Swing界面设计UI(全)
  19. 本题要求实现一个用递归计算1+2+3+…+n的和的简单函数。
  20. linux下的挂载点和分区是什么关系(详解挂载点)

热门文章

  1. VSCode下载与安装
  2. dataTransfer.getData()在dragover,dragenter,dragleave中无法获取数据的问题
  3. 通信尾纤常用尾纤简介
  4. 关于MCNS/DOCSIS兼容RF接口的RF接口MIB
  5. 小米路由器 linux挂载,Linux下访问小米路由器文件
  6. python无限弹窗代码_python弹窗程序教程(附源码解析)
  7. python下载微信公众号文章_Python 抓取微信公众号文章
  8. 中国食品安全检测市场专项调研及投资前景预测报告2022-2027年
  9. 中文文本校对源码java_文字校对应该怎么校对?
  10. 利用Hownet进行语义相似度计算的类(