遗传算法中的变异和交叉

一、交叉方法

1.部分匹配交叉(PMX)
由于一次只能去一个城市,所以一条染色体中的编码是不能重复的
比如我们随机产生两个父代:A=762150483,B=416307582,

我们假设选中的交叉位为第四位和第七位,我们如果让交叉位里面的编码直接换,那对A来说,交叉位里面的3、7和交叉位外面的3、7重复了,则让交叉位外面的3和4去换,让交叉位外面的7和5去换,则成功产生两个子代A’=562307841,B’=436150782,可以看出,第一个子代的交叉位基因来自于第二个父代,第二个子代的交叉位基因来自于第一个父代。
2.顺序交叉(OX)
假设两个父代:A=764235801,B=073684152
查找交换基因,(交叉位同样选第四位和第七位)比如A当中235要用684去换,B中的684要用235换,那么将A中的684和B中的235都换成,得到A’=7HH235H01,B’=07H6841HH,然后将H都移到交叉位里面,将原来交叉位里面的数字都左移到最左边。再将H替换,上面的H用684换,下面的H用235换。最后顺序交叉的结果为A’’’=135|684|017,B’’’=684|235|107

二、变异方法

1.两点互换
假设染色体为:02134567,随机选择两个变异位,这里假设为第二位和第三位
这里将2和3互换一下,针对TSP(旅行商)问题互换以后城市的访问次序就变了,即旅行商问题的解就发生了变化

2.相邻互换:选择相邻的两个基因进行互换
初始染色体01234576
这里将12换成21

3.区间逆转
初始染色体:01234576
这里假设区间开始位为0,结束位为7,那么逆转之后得到
75432106(其实就是将区间翻一下)。

4.单点移动
初始染色体:02316745
选择移动的基因和移动的目的地,这里选择移动的基因为3,移动到第四位,移动之后为23416750

遗传算法中的变异和交叉相关推荐

  1. matlab——遗传算法中的选择,交叉,变异等一系列问题解析(一)

    遗传算法作为一种古老的进化优化算法,现在一直还在使用和优化,也间接证明了其本身所具有的价值.虽然从原理上讲,很容易理解,主要包括:(1)三个基因操作:选择,变异,交叉:(2)适应度函数对个体优劣的评估 ...

  2. matlab遗传算法中的变异操作,遗传算法流程图?遗传算法的基本原理?遗传算法 交叉和变异?简单遗传算法MATLAB实现(4)...

    对上一节中的函数进行优化,设置遗传算法相关参数,程序如下 function run_ga() elitism = true;%选择精英操作 pop_size = 20;%种群大小 chromo_siz ...

  3. 遗传算法中常见遗传算子

    遗传算法中常见遗传算子 常见选择算子 轮盘选择(roulette wheel selection) 随机遍历抽样(Stochastic universal sampling,SUS) 排序选择(ran ...

  4. 遗传算法(进化类算法)中的选择,交叉,变异等一系列问题解析(二)

    问题1--遗传算法中适应度函数如何确定 一般来说,遗传算法中的适应度函数是根据你想要得到的优化结果进行确定的.有的优化目的是要更小的适应度函数值,相反有的优化目的是要更大的适应度函数值. 这样说吧,例 ...

  5. 遗传算法中适值函数的标定与大变异算法

    前言 本文尝试对遗传算法中不同适值函数的标定(Scaling)方法进行下总结,并针对常用的线性标定和动态线性标定进行了Python实现,以装饰器的形式添加到遗传算法框架GAFT中,这样在使用GAFT运 ...

  6. nsga 的java实现_Java – Scala遗传算法(GA)库中的模拟二进制交叉(SBX)交叉运算符

    我在一个很小的研究团队工作,在 Scala中创建/改编遗传算法库,用于使用Scientific Worklow System进行分布式计算,在我们的例子中,我们使用开源OpenMole软件( http ...

  7. 遗传算法中交叉方法简介及基于适应度的启发式多点交叉

    作者注:本文写于三年前,今天才转到这里来. 在生物的自然进化过程中,两个同源染色体通过交配而重组,生成新的染色体,从而产生新的个体或物种.交配重组是生物遗传和进化过程中的一个主要环节.遗传算法中的交叉 ...

  8. 遗传算法二进制编码c语言,遗传算法,实数编码的交叉操作之SBX(模拟二进制交叉)...

    本文主要介绍遗传算法(实数编码)的交叉操作中的SBX,模拟二进制交叉. 首先,给出个人用python2.7实现的代码,具体模块已上传到: https://github.com/guojun007/sb ...

  9. 在遗传算法中出现等式约束_排序算法中的稳定性-等式的处理

    在遗传算法中出现等式约束 by Onel Harrison 通过Onel Harrison 排序算法中的稳定性-等式的处理 (Stability in Sorting Algorithms - A T ...

最新文章

  1. 推荐系统技术演进趋势:召回-排序-重排
  2. eltable刷新整个表格方法_Word表格函数计算怎么做?都在这篇!
  3. 目标检测旋转增强源码
  4. javaweb-服务器输出字符数据到浏览器
  5. c++内存管理-内存顺序
  6. Java读取多层级xml文件
  7. 实现一个简单的模板引擎,输入模板和数据,输出html
  8. Hadoop入门(十四)Mapreduce的数据去重程序
  9. 搭建PC架构的ISCSI存储系统
  10. IDEA如何添加本地项目到git上
  11. 办公 自动化 录制行为_我们可以自动化开放行为吗?
  12. python函数降低编程复杂度_Python重构此函数,将其认知复杂度从19降低到允许的15...
  13. 怎样查看本机到一个网站经过多少路由节点?
  14. C# Maximum request length exceeded. 产生错误的原因,以及解决方法.
  15. N卡和A卡各型号参数对比收集
  16. 微信小程序幻灯片效果实现
  17. 华硕z170-p+英特尔i7-6700k+16GB黑苹果EFI引导文件
  18. Log4cplus编译
  19. 51单片机c语言直流电机廷迟启停,51单片机控制直流电机不会加定时器延时程序...
  20. MATLAB在动态经济学中的应用,MATLAB在动态经济学中的应用

热门文章

  1. 世界主要货币英文缩写
  2. [2016 T-EDGE]王坚对话无人机教父:创新就要享受走在悬崖边的刺激
  3. 基尔霍夫电流定律KCL和基尔霍夫电压定律KVL
  4. Unity最简单的消息中心
  5. 数据结构-二叉树的顺序存储
  6. 什么是长连接?长连接、短连接、三次握手
  7. 9 Kong LVS 均衡负载
  8. 代码表征预训练语言模型学习指南:原理、分析和代码
  9. 云的基本概念(公有云、私有云、 IaaS、PaaS、SaaS)
  10. 大数据与机器学习-大数据预测