IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 《遗传算法原理及应用》笔记—遗传算法的高级实现技术 -> 正文阅读

[数据结构与算法]《遗传算法原理及应用》笔记—遗传算法的高级实现技术

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

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


4.1 倒位算子

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

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

4.2 二倍体与显性操作因子

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

4.2.1 二倍体结构的生物基础

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

Hollstien 提出了二倍体与显性操作的双基因座显性映射方法。在该方法中,每个二进制基因用两个基因来描述,一个称为函数基因,一个称为修饰基因,取通常含义的0或1值;另一个称为修饰基因,取值为M或m,其中M表示显性基因,m表示隐性基因。对函数基因取值为0的基因,当两个同源染色体中至少有一个修饰基因是M时,则该基因呈显性,否则该基因呈隐性。这种映射关系入图所示。
在这里插入图片描述
随后,Hollstien将这种映射关系简化为单基因座显性映射方法。Holland对这种单基因座的显性映射描述方法进行了改进,使其表述更加清楚,在这个单基因座显性映射方法中,描述基因字符集为 0 , 1 , 1 0 {0,1,1_0} 0,1,10?,其中 1 0 1_0 10?为隐性的1,1为显性的1,其映射关系如下所示:
在这里插入图片描述

4.3 变长度染色体遗传算法

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

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

将常规遗传算法的染色体编码串中各基因座位置及相应基因值组成一个二元组,把这个二元组按一定顺序排列起来,就组成了变长度染色体的一种通用的编码方式。一般可以表示为:
X m : ( i 1 , v 1 ) ( i 2 , v 2 ) . . . ( i k , v k ) . . . ( i n , v n ) 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?)
上述变长度染色体的描述形式中, i k i_k ik?是所描述的基因在原常规染色体中的基因座编号, v k v_k vk?为对应的基因值。

  • 过剩指定
  • 缺省指定

4.3.2 切断算子与拼接算子

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

4.4 小生境遗传算法

4.4.1 小生境与遗传算法

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

总结

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

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-09-19 08:13:59  更:2021-09-19 08:15:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:49:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码