四、遗传算法的高级实现技术

笔者最近在学习遗传算法,希望可以通过笔记对遗传算法做一个简要的介绍与记录。也欢迎小伙伴们一起学习交流。

文章目录

  • 四、遗传算法的高级实现技术
  • 4.1 倒位算子
  • 4.2 二倍体与显性操作因子
    • 4.2.1 二倍体结构的生物基础
    • 4.2.2 二倍体结构在遗传算法中的实现方案
  • 4.3 变长度染色体遗传算法
    • 4.3.1 变长度染色体遗传算法的编码与解码
    • 4.3.2 切断算子与拼接算子
  • 4.4 小生境遗传算法
    • 4.4.1 小生境与遗传算法
  • 4.5 混合遗传算法
    • 4.5.1 混合遗传算法的思想
    • 4.5.2 混合遗传算法的基本构成原则
    • 4.5.3模拟退火算法
    • 4.5.4 遗传模拟退火算法
    • 4.5.5 混合遗传算法在求解背包问题中的应用
  • 总结

4.1 倒位算子

所谓倒位操作就是指颠倒个体编码串中随机指定的二个基因座之间的基因排列顺序,从而形成一个新的染色体。

  1. 在个体编码串中随机指定两个基因座之后的位置为倒位点
  2. 以倒位概率pip_ipi​颠倒这二个倒位点之间的基因排列顺序。

4.2 二倍体与显性操作因子

二倍体的定义生物已经学过了,用遗传算法进行解释:
二倍体提供了一种机制,它记忆以前有用的基因以及基因的组合;而显性提供了一种算子,它保护所记忆的基因免受有害选择运算所破坏。

4.2.1 二倍体结构的生物基础

4.2.2 二倍体结构在遗传算法中的实现方案

Hollstien 提出了二倍体与显性操作的双基因座显性映射方法。在该方法中,每个二进制基因用两个基因来描述,一个称为函数基因,一个称为修饰基因,取通常含义的0或1值;另一个称为修饰基因,取值为M或m,其中M表示显性基因,m表示隐性基因。对函数基因取值为0的基因,当两个同源染色体中至少有一个修饰基因是M时,则该基因呈显性,否则该基因呈隐性。这种映射关系入图所示。

随后,Hollstien将这种映射关系简化为单基因座显性映射方法。Holland对这种单基因座的显性映射描述方法进行了改进,使其表述更加清楚,在这个单基因座显性映射方法中,描述基因字符集为0,1,10{0,1,1_0}0,1,10​,其中101_010​为隐性的1,1为显性的1,其映射关系如下所示:

4.3 变长度染色体遗传算法

Goldberg等提出的Messy GA(MGA)是一种典型的变长度染色体遗传算法。现将其基本思想介绍如下:

4.3.1 变长度染色体遗传算法的编码与解码

将常规遗传算法的染色体编码串中各基因座位置及相应基因值组成一个二元组,把这个二元组按一定顺序排列起来,就组成了变长度染色体的一种通用的编码方式。一般可以表示为:
Xm:(i1,v1)(i2,v2)...(ik,vk)...(in,vn)X^m:(i_1,v_1)(i_2,v_2)...(i_k,v_k)...(i_n,v_n)Xm:(i1​,v1​)(i2​,v2​)...(ik​,vk​)...(in​,vn​)
上述变长度染色体的描述形式中,iki_kik​是所描述的基因在原常规染色体中的基因座编号,vkv_kvk​为对应的基因值。

  • 过剩指定
  • 缺省指定

4.3.2 切断算子与拼接算子

  1. 切断算子
    切断算子以某一预先指定的概率,在变长度染色体中随机选择一个基因座,在该处将个体的基因型切断,使之称为二个个体的基因型。
  2. 拼接算子
    拼接算子以某一预先指定的概率,将二个个体的基因型连接在一起,使它们合并为一个个体的基因型。

4.4 小生境遗传算法

4.4.1 小生境与遗传算法

  1. 基于预选择的小生境实现方法
    仅当新产生的子代个体的适应度超过其父代个体的适应度时,其产生出的子代个体才能替换其父代个体而遗传到下一代群体中
  2. 基于排挤的小生境实现方法
    设置一排挤因子CF,由群体中随机选取的1/CF个个体组成排挤成员,然后依据新产生的个体与排挤成员的相似性来排挤掉一些与排挤成员相类似的个体。
  3. 基于共享函数的小生境实现方法
    通过反应个体之间相似程度的共享函数来调整群体中各个个体的适应度,从而在这以后的群体进化过程中,算法可以依据这个调整后的的新的适应度来进行选择运算,以维护群体的多样性。   共享函数是表示群体中两个个体之间密切关系程度的一个函数,可记为S(dij)S(d_{ij})S(dij​),其中dijd_{ij}dij​ 表示个体i和个体j之间的某种关系。在这里表示为个体基因型或表现型的相似度上。二者呈正相关。
    共享度是某个个体在群体中共享程度的一种度量,它定义为该个体与群体内其它各个个体之间的共享函数值之和,用Si{S_i}Si​表示:
    Si=∑j=1MS(dij)(i=1,2,...M)S_i=\sum_{j=1}^MS(d_{ij}) \quad (i=1,2,...M) Si​=j=1∑M​S(dij​)(i=1,2,...M)
    在计算了群体中各个个体的共享度之后,依据下式来调整各个个体的适应度:
    Fi′(X)=Fi(X)/Si(i=1,2,...M)F'_i(X)=F_i(X)/S_i \quad (i=1,2,...M) Fi′​(X)=Fi​(X)/Si​(i=1,2,...M)

4.5 混合遗传算法

4.5.1 混合遗传算法的思想

因为梯度法、爬山法、模拟退火法、列表寻优法等一些优化算法却具有很强的局部搜索能力,而另外一些含有问题与相关知识的启发式算法的运行效率也比较高,所以我们尽量将二者融合。

由上图可以看出,我们混合遗传算法特点有

  1. 引入了局部搜索过程
  2. 增加了编码变换操作过程

4.5.2 混合遗传算法的基本构成原则

  1. 尽量采用原有算法的编码
  2. 利用原有算法的优点
  3. 改进遗传算子

4.5.3模拟退火算法

模拟退火算法就是基于金属退火的机理而建立起的一种全局最优化方法,它能够以随机搜索技术从概率的意义上找出目标函数的全局最小点。模拟退火算法的够成要素如下:

  1. 搜索空间Ω\OmegaΩ
  2. 能量函数E(x)
  3. 状态转移规则P
  4. 冷却进度表T(t)

4.5.4 遗传模拟退火算法

即,在遗传算法的运行过程中也应该允许产生个别适应度不高的个体。
遗传算法适合于全局搜索,而退火算法适合于局部搜索。

  1. 遗传模拟退火算法
  2. 并行组合模拟退火算法

4.5.5 混合遗传算法在求解背包问题中的应用

总结

这就是遗传算法的高级实现技术的大概总结了~

《遗传算法原理及应用》笔记—遗传算法的高级实现技术相关推荐

  1. 量子遗传算法原理与MATLAB仿真程序

    写在前面: 1.其实这些智能算法的思想都差不多,只不过是各自搜寻方式.编码方式.种群更新方式等不一样而已. 量子遗传算法是在遗传算法的基础上使用了一种新的编码方式. 2.直接看前面介绍可能会觉得较难, ...

  2. 遗传算法原理简介及其MATLAB实践

    目录 遗传算法简介 遗传算法的深入理解: 遗传算法的MATLAB实现 [例]BP神经网络初始权值和阈值优化 遗传算法简介 遗传算法(Genetic Algorithm,GA)是一种进化算法,其基本原理 ...

  3. 遗传算法 python 简书_遗传算法(Genetic Algorithm ,GA)学习笔记

    1 遗传算法的概念 1.1 遗传算法的科学定义 遗传算法(Genetic Algorithm, GA) 是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程 ...

  4. Pymoo:遗传算法原理简介及Pymoo中遗传算子的实现示例

    Pymoo:遗传算法原理简介及Pymoo中遗传算子的实现示例 一.遗传算法原理简介 二.Pymoo中的遗传算子(Genetic Operators)及其实现 2.1 抽样算子(Sampling Ope ...

  5. 智能信息处理笔记 遗传算法

    概述 进化计算的一般步骤. 与普通搜索算法相比 1.初始解的个数:进化计算从一组初始解出发 2.编码:原问题与生物个体相对应 3.搜索策略:确定性,随机性 进化计算的共同特点 枚举搜索:把所有的解算出 ...

  6. python遗传算法_基于Python的遗传算法特征约简(附代码)

    导言 在某些情况下,使用原始数据训练机器学习算法可能不是合适的选择.该算法在接受原始数据训练时,必须进行特征挖掘,以检测不同组之间的差异.但这需要大量的数据来自动执行特征挖掘.对于小数据集,数据科学家 ...

  7. 遗传算法 python 简书_遗传算法入门

    遗传算法简介: 遗传算法(Genetic algorithm)属于演化计算( evolutionary computing),是随着人工智能领域发展而来的一种智能算法.正如它的名字所示,遗传算法是受达 ...

  8. 遗传算法(三)——基本遗传算法

    目录 2.基本遗传算法 2.1基本遗传算法描述 2.1.1基本遗传算法的构成要素 2.1.2基本遗传算法描述 2.1.3基本遗传算法的形式化定义 2.2基本遗传算法的实现 2.2.1个体适应度评价 2 ...

  9. 货物配送问题的matlab,遗传算法matlab程序【基于遗传算法的无时限多配送中心车辆调度问题研究】...

    [摘 要] 针对多配送中心车辆调度问题的复杂性特点,提出用最近距离分配法和遗传算法分两步求解多配送中心车辆调度问题,并进行了试验计算. [关键词] 多配送中心 车辆调度 最近距离分配法 遗传算法 一. ...

最新文章

  1. 不需要懂得编程,但却可以使用ggplot2画出论文级别的图?
  2. java垃圾回收system_java应用性能调优之详解System的gc垃圾回收方法
  3. Vue 全家桶 + Express 实现的博客
  4. Android程序员一年工作经验能重复用十年?高效学习很重要!
  5. ElasticSearch 5.5 离线环境的完整安装及配置详情,附kibana、ik插件配置及安装包下载路径...
  6. ntu课程笔记7454 期中复习
  7. linux学习总结--linux100day(day1)
  8. ASP.NET Core 1.0中的管道-中间件模式
  9. vscode + angular
  10. topcoder srm 661 div1
  11. 两个结构体变量可以直接赋值吗_Gox语言中的结构类型-GX6
  12. CCCC-GPLT L1-037. A除以B 团体程序设计天梯赛
  13. 计算机网络体系结构作业题整理-第一章答案
  14. labview csv文件处理_Labview搭建Web服务器
  15. PHP PDF转图片:设置图像的色彩空间 RGBCMYK互转
  16. MySQL 5.7 + Navicat 下载安装教程(附安装包)
  17. WinRAR制作单文件(便携版)
  18. 【训练记录】2013-2014 Petrozavodsk Winter Training Camp, Moscow SU Trinity Contest @homework-7
  19. 简谈FIR滤波器和IIR滤波器的区别
  20. win8连接wifi成功但受限制_连接wifi成功但受限制如何解决 连接wifi成功但受限制解决【步骤】...

热门文章

  1. GBase8s 唯一索引与非唯一索引
  2. 高级驱动——(驱动所有按键)
  3. 【HNOI2004】【BZOJ1213】高精度开根
  4. 干货丨excel单元格如何添加下拉选项?
  5. stm32 电机库生成代码出错原因 stm32 cuble生成代码出错原因
  6. 基于Python的在线音乐推荐系统的设计与实现
  7. android虚拟按键挤压布局和硬件加速
  8. mac备忘录html,mac备忘录怎么备份与恢复|mac备忘录的使用方法
  9. 079-mxd-冒险岛-自主学习搭建-单机联机都可以,详细教程
  10. 查看Linux镜像的版本