遗传算法流程结构:

遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,而一个种群则由经过基因(gene)编码的一定数目的个体(individual)组成。每个个体实际上是染色体(chromosome)带有特征的实体。

染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现,如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。因此,在一开始需要实现从表现型到基因型的映射即编码工作。由于仿照基因编码的工作很复杂,我们往往进行简化,如二进制编码。

初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代(generation)演化产生出越来越好的近似解,在每一代,根据问题域中个体的适应度(fitness)大小选择(selection)个体,并借助于自然遗传学的遗传算子(genetic operators)进行组合交叉(crossover)和变异(mutation),产生出代表新的解集的种群。

这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码(decoding),可以作为问题近似最优解。

简单的说,遗传算法的流程就是通过一定的方法进行编码,并通过随机数对种群进行初始化,并对种群的适应度进行评估,之后以一定的比例对染色体进行交叉、选择和变异,以此来生成新的种群,不断迭代,当迭代次数达到一定限制或得到的解已经超过预期时会跳出循环,并对基因进行解码,获取其所对应的信息。

遗传算法各个步骤的解释

  1. 编码与解码

在实现遗传算法时,首要遇到的关键问题就是编码(encode)。它关系到解空间中的解在遗传算法中的表示形式。从问题的解(solution)到基因型的映射称为编码,即把一个问题的可行解从其解空间转换到遗传算法的搜索空间的转换方法。编码的方法直接影响到了遗传算法的交叉算子、变异算子等遗传算子的运算,因此很大程度上决定了遗传进化的效率。

在编码与解码时,大致流程如下图所示。

在编码过程中,要注意遵循以下的编码原则:

  • 完备性(completeness):问题空间的所有解都能表示为所设计的基因型
  • 健全性(soundness):任何一个基因型都对应于一个可能解
  • 非冗余性(non-redundancy):问题空间(表现型)和表达空间(基因型)一一对应

当今常见的编码方法为二进制编码,浮点数编码。

二进制编码

即个体基因型由一个二进制编码符号串来进行表示。二进制编码符号串的长度与问题所要求的求解精度有关。

例如,如果问题的的范围是(0,1023]中的所有整数,此时可知编码的精度应为1,因为范围内的数都为整数,若用m来表示二进制编码串的长度,由于需要遵循完备性的编码原则,因此可知1023≤2m+1 ,可解得m最小应为9,因此二进制编码串的长度应为9,如:染色体0010101111就可以表示表现型为x=175的个体。如果精度要求是精确到小数点之后的一位小数,那么我们则需要将所有表现型乘以10,并将获得到的放大十倍的实数进行取整,因此,二进制编码串的长度m应该满足1023×10≤2m+1

若问题的范围不是从0开始的,例如(100,1123],那么记U1=100 ,然后将问题的的参数减少100,将范围改变为(0,1023],之后继续依照上面的方法进行编码。

二进制解码:

      假设问题范围的最小值为U1 ,那么记编码后的基因为bmbm-1b2b1b0 ,可以通过X=i=0mbi2i  来获得相应的表现型。

二进制编码优缺点:

二进制编码的优点是编解码简单;交叉和变异等操作易于实现,但它也有一定的缺点,即对于一些连续函数的优化问题,由于其随机性使其局部搜索能力差,当接近最优解时,由于变异后表现型变化很大,不连续,所以会远离最优解。如上面的例子中,若0010101111的第2位发生了变异,即从0变为1,那么表现型则会从x=175变成了x=431,变异使得表现型变化很大,很不稳定。

格雷码编码:

格雷码编码是二进制编码的一种变形,对于一些连续优化问题, 二进制编码由于遗传算法的随机特性而使其局部搜索能力较差。为改进这一特性, 人们提出用格雷码进行编码。它是这样的一种编码方法, 其连续的两个整数所对应的编码值之间仅仅只有一个码位是不相同的, 其余码位都完全相同。假设有一个二进制编码为B=bmbm-1…b2b1, 其对应的格雷码为G=gmgm-1…g2g1, 则

格雷码有这样一个特点:任意两个整数的差是这两个整数所对应的格雷码之间的海明距离。这一特点是遗传算法中使用格雷码来进行个体编码的主要原因。格雷码除了具有二进制编码的优点外, 还能提高遗传算法的局部搜索能力。

浮点数编码(实数编码):

对于一些多维、高精度要求的连续函数优化问题, 使用二进制编码来表示个体将会带来一些不利, 例如, 二进制编码存在着连续函数离散化时的映射误差, 同时不便于反映所求问题的特定知识。为了克服这些缺点, 人们提出实数编码方法, 即个体的每个基因值用某一范围内的一个浮点数来表示,而个体的编码长度等于其决策变量的个数。在浮点数编码方法中,必须保证基因值在给定的区间限制范围内,遗传算法中所使用的交叉、变异等遗传算子也必须保证其运算结果所产生的新个体的基因值也在这个区间限制范围内。

浮点数编码方法的优点如下:①适合于遗传算法中表示范围较大的数;②便于较大空间的遗传搜索;③提高了遗传算法的精度要求;④改善了遗传算法的计算复杂性, 提高了运算效率;⑤便于算法与经典优化方法的混合作用;⑥便于设计专门问题的遗传算子。

符号编码:

符号编码方法是指染色体编码串中的基因值取自一个无数值含义、而只有代码含义的符号集。这些符号可以是字符, 也可以是数字。例如, 对于旅行商问题, 假设有n个城市分别记为C1, C2, …, Cn, 则[C1, C2, …, Cn]就可构成一个表示旅行路线的个体。

符号编码的主要优点是便于在遗传算法中利用所求问题的专门知识及相关算法。

对于符号编码, 染色体编码与问题的解之间有三个主要问题:①染色体的可行性;②染色体的合法性;③映射的唯一性。可行性是指染色体编码成为解之后是否在给定问题的可行域内。染色体的可行性概念源于约束优化问题, 无论是传统方法还是遗传算法都必须满足约束。对于许多优化问题, 可行域是用等式或不等式组来表达的。在这种情况下, 许多有效的惩罚法可用来消除不可行的染色体。在约束优化问题中, 最优点通常位于可行域的边界上, 惩罚法将迫使遗传搜索从可行域和不可行域两边同时逼近最优点。

合法性是指染色体编码是否代表给定问题的一个解。染色体的合法性概念源于编码技术。许多组合优化问题采用了问题专用的编码方法, 这些编码方法采用单断点交叉可能会获得非法的后代。由于非法的染色体不能成为解, 这样的染色体不能进行评估, 因此惩罚法就无法适用。这种情况下, 通常采用修复方法, 将非法染色体转换为合法染色体。例如, 著名的PMX算子就是为解决单断点交叉的非法性而提出的一种将替代编码和修复技术结合起来的双断点交叉方法。

遗传算法综述(三、 流程结构与编码解码(二进制编码,格雷码编码浮点数编码、符号编码))相关推荐

  1. 4位格雷码的顺序编码_格雷码编码 解码 实现(Python)

    作者:曹博 01 二值码 02 格雷码编码 2.1 编码优点 2.2 编码生成 2.3 递归生成 2.4 二值码转换 2.5 编码图 03 格雷码投影 3.1 投影图案生成 3.2 DLP投影图像 0 ...

  2. 4位格雷码的顺序编码_一种基于格雷码的方形QAM星座图编码方法和系统与流程...

    本发明属于测试技术领域,尤其涉及一种基于格雷码的方形QAM星座图编码方法和系统. 背景技术: 矢量信号分析中通常采用星座图来表征调制信号质量,星座图中星座点的编码方法直接影响信号解调后的BER(即比特 ...

  3. 3位格雷码的顺序编码_一种优化格雷码编码方式实现跨时钟域的装置的制作方法...

    本发明属于信号处理技术领域,尤其是涉及一种优化格雷码编码方式实现跨时钟域的装置. 背景技术: 随着时间的推移,集成电路行业发展至今,已有类似如intel这样先进的foundry,提出迈入10nm制程的 ...

  4. 4位格雷码的顺序编码_格雷码编码规则_格雷码有什么规律

    格雷码 典型的二进制格雷码简称格雷码,因1953年公开的弗兰克·格雷专利"Pulse Code Communication"而得名,当初是为了通信,现在则常用于模拟-数字转换和位置 ...

  5. 3位格雷码的顺序编码_绝对值编码器当中的格雷码

    格雷码:又叫循环二进制码或反射二进制码.格雷码是我们在旋转编码器中常会遇到的一种编码方式. 格雷码的特点: 任意两个相邻的代码只有一位二进制数不同: 循环码,0和最大数(2^n-1)之间只有一位不同: ...

  6. 4位格雷码的顺序编码_八位格雷码转换器.doc

    八位格雷码转换器 物理与信息技术系本科学年论文 题 目八位格雷码转换器设计 学生姓名 专业名称 测控技术与仪器 指导教师 2009年 9月30日 八位格雷码转换器设计 摘要8 Gray code co ...

  7. 基于结构光投影三维重建:格雷码编码与解码

    一 单目结构光编码目的 类似于双目,如果把投影仪看成一个逆相机,直到空间中的一点成像平面的位置,就可以知道空间中一点的坐标. 编码的目的:知道打在物体物体表面的光是从投影仪的那个像素发出来的,就知道在 ...

  8. 4位格雷码的顺序编码_格雷码那点事——递归非递归实现

    简介 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即"首尾相连",因此又称循环 ...

  9. 【结构光三维重建】基于格雷码的相位展开方法(含代码)

    之前一直在做关于格雷码+相移的相位展开方法,根据一些相应的论文,能够对该法进行一些较为详细的阐述,并融合一些自己的理解,文章中如有不妥之处,敬请指教. 整个文章分为以下几部分: 1.格雷码+相移法基本 ...

  10. 4位格雷码的顺序编码_整理丨一文掌握编码器的工作原理!

    编码器的定义与功能 在数字系统里,常常需要将某一信息(输入)变换为某一特定的代码(输出).把二进制码按一定的规律编排,例如8421码.格雷码等,使每组代码具有一特定的含义(代表某个数字或控制信号)称为 ...

最新文章

  1. python socket tcp_python socket 模拟tcp通讯
  2. 【OS】操作系统体系结构
  3. 洛谷 P3750 [六省联考2017]分手是祝愿
  4. linux 安装redis_Linux安装redis及安装php-redis扩展
  5. System V与Posix
  6. 小程序登录本地服务器,微信小程序实现用户登录模块服务器搭建
  7. 【晨读】热爱 ▪ 英语 @ 热爱 ▪ 晨读
  8. fedora30删除 gnome自带的Videos软件
  9. java对象的序列化和反序列化_Java对对象的序列化和反序列化详解
  10. coolfire文章之一
  11. Mac | 关于MacBook教育优惠注意事项
  12. InternetDownloadManager(6.30.8)下载利器IDM破解版
  13. 如何选用GPU云服务器?
  14. 怎样建立产品体系?(六)- 主流产品开发流程
  15. 常用计算机辅助审计技术,常用的计算机辅助审计技术
  16. UE4之添加开场动画
  17. 跳汰机的实操经验总结
  18. centos7防火墙开放端口,附开放samba特定端口实例
  19. HCIE(M-LAG)
  20. web兼容性面试题及答案

热门文章

  1. c4d怎么做成html,C4D场景导出到HTMl插件Heyne C.X. v1.00.2 R12-R16 WINONLY MUS3
  2. url链接打开本地应用(测试通过)
  3. 不就是个短信登录API嘛,有这么复杂吗?(转载)
  4. 用工单位使用劳动派遣时需注意这几点
  5. 一键自动生成幻灯片的AI PPT软件,让你轻松制作PPT
  6. 老百姓买房的十大死穴 别被一套房拴住一辈子
  7. 卷毛机器人抢大龙_之前职业赛场上哪个选手的机器人让你印象最深刻?卷毛、Madlife还是ignar...
  8. 新安学校计算机考证,深圳法考首次实行计算机化考试,即日起可打印准考证
  9. GME散户的炮灰史:GME跌超80%,WSB论坛内斗,带头大哥被查,终极赢家浮出水面...
  10. python股票交易策略_Python:股票演算法交易實務 145個關鍵技巧詳解