100个个体,交叉概率为0.1,并不代表交叉个体数为10个.这是一个概率问题.
另外,交叉概率一般会取0.5-1这个范围内,0.1未免有点小.
自适应的遗传算法,一般在迭代初期会有较大的交叉概率,越往迭代后期,交叉概率越小.
而变异概率则相反.
标准的交叉如下: 假设六个个体的编号为从1至6,两两配对共分为3对母代个体。 第1对母代个体:随机生成一个随机数r,如果r<=0.6,则进行交叉。交叉点仍然是随机产生的。如果是单点交叉就随机产生一个点,如果是两点交叉就随机产生两个点,其他还有均匀交叉、融合交叉等。如果r>0.6,则不进行交叉,子代个体用母代个体代替。 然后继续判断第2对母代个体,照此方法依次进行。 一轮下来,进行交叉的个体数量大致是6*0.6=3.6个。但绝对不会是小数或奇数。

遗传算法中的交叉变异概率在编子函数时,应该是rand(1)产生的随机数小于交叉率Pc,或交叉率Pm才能进行交叉变异操作。
因为遗传算法中,交叉变异操作是以一定的交叉率Pc和一定的变异率Pm执行的。所以首先选择参与交叉或变异操作的个体进入到交配池,选择过程是随机选择的,即满足rand(1) <Pc或rand(1) <Pm才被选择

交叉概率太大的话,就失去意义了,就变成随机算法了;太小的话,收敛太慢.通常的做法是采用自适应的方法.
固定交叉概率:0.9-0.97之间取;

GA中的变异操作举例

# mutate

import numpy as np

MUTATION_RATE =0.003

child = [1,0,1,1,0,0,1,0,0,0]

for point in range(10):

if np.random.rand() < MUTATION_RATE:

if child[point]==0:# 也可写为 child[point] = 1 if child[point]==0 else 0

child[point] =1

else:

child[point] =0

print(child)

输出:

[1, 1, 1, 1, 0, 0, 1, 0, 0, 0]
转载链接:https://www.jianshu.com/p/66d37bc02de3

求解过程中需要评价的目标函数和约束条件,而不需要其他更复杂信息。遗传算法具有随机性特点,使其能避免陷入局部最优的优势。遗传算法第一步是产生一组可行的解,将其作为初始种群。算法收敛速度、算法的性能受初始种群影响极大,因此初始种群确定尤为重要。
定义1:随机产生一个个体,若该个体满足约束条件,则该个体称为可行个体,若该个体不满足所有约束条件,则该个体为非可行个体;
定义2:最初可行个体的全体称为初始种群,初始种群中个体的数量称为种群规模;

遗传算法的交叉变异操作杂记相关推荐

  1. 遗传算法的交叉变异详解

    转载:OMEGAXYZ 注:仅作学习笔记用,版权归OMEGAXYZ所有,侵权请删 文章目录 交叉 二进制编码交叉 单点交叉 两点交叉 多点交叉 均匀交叉 均匀两点交叉 适合浮点数编码的交叉算子 离散交 ...

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

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

  3. 遗传算法中的变异和交叉

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

  4. 遗传算法:交叉操作 Merge(12) Crossover、MOX、MIS、ULX

    遗传算法基于顺序的交叉操作的集中merge方法:Merge(1&2) Crossover 1993.Merging crossover (MOX) 2004.Merging Independe ...

  5. 遗传算法:交叉操作 Inver-over 算子

    Inver-over 算子 1998:Inver-over 算子可以看作是GA中交叉和变异的混合方法 Inver-over步骤: 随机初始化种群P 如果没达到temination,对每一个个体,,随机 ...

  6. 遗传算法:交叉操作 Order Crossover OX1, OX2, OX3, OX4, OX5

    OX11985:是最基本的Order Crossover ,执行过程如下: 首先从父代随机选择两个个体P1,P2和两个点 将P1,P2两点之间部分提取出来,放在子代O1,O2相同位置(这里与PMX是相 ...

  7. 遗传算法:交叉操作 Position-based Crossover (PBX)

    Position-based Crossover (PBX) 1990 随机选择父代P1,P2,随机选择几个基因位置,位置可以不连续 将选中的P1基因按照位置复制到O1中 删除P2中P1选中的基因,剩 ...

  8. 遗传算法:交叉操作 NWOX 2006

    Non-Wrapping Order Crossover (NWOX)[1]:NWOX是一种OX的变体,既能够保存相对位置关系,也能够保存绝对位置关系. 执行步骤如下: C1, C2 是其父本 P1, ...

  9. 遗传算法:交叉操作 UPMX

    UPMX(uniform partially-mapped crossover 1996)执行过程如下: 首先复制父代parent1的染色体到子代O1 生成一个随机数pos1(如 2) 然后在父代pa ...

最新文章

  1. Pandas中xs()函数索引复合索引数据的不同切面数据(索引复合索引中需要的数据):索引列复合索引中的一个切面、索引行复合索引中的一个切面
  2. android shape 按钮背景_flutter好用的轮子推荐十三-flutter可展开选项的浮动按钮
  3. 千里之堤毁于蚁穴------重点项目不能交付之谜(一)泥淖中的验收测试
  4. window文件过长无法删除的处理方式
  5. 8086实时时钟实验(一)——《x86汇编语言:从实模式到保护模式》05
  6. Linux rpm 命令参数使用详解[介绍和应用]
  7. 记-crontab定时任务
  8. Python 工具——Anaconda+Pycharm 的安装过程
  9. “产学合作勇创新·协同育人书新篇”贵州理工大数据学院数据科学训练营结题答辩报告会圆满举行...
  10. UVA 11478(差分约束 + 二分)
  11. python自动化测试框架开发_webUI自动化测试框架(Python+selenium)
  12. HDU 4508 湫湫系列故事——减肥记I (2013腾讯编程马拉松初赛第一场)
  13. 元宇宙价值链解读:元宇宙现实体系映射对未来的影响
  14. np.ones(),np.zeros(), np.empty(),np.full(),np.ones_like() 基本用法
  15. 极值理论(一):极大值极限分布
  16. 斐讯n1 linux连接wifi,斐讯 N1 部署 Docker 和 OpenWRT,并利用 Hostapd 开启 Wi-Fi 热点
  17. 实现公网访问树莓派4B(花生壳内网穿透)
  18. selenium 与浏览器 以及浏览器驱动版本问题
  19. jest 客户端 实现 Sliced+Scroll并行查询
  20. 有效扩展:来自预训练和微调变换器的见解、rct.ai训练出5亿参数的BERT-X模型

热门文章

  1. 《PCL从入门到精通学习》第六章点云滤波
  2. 微信php功能整合,微信公众平台开发功能整合
  3. rec卡刷root吗,卡刷需要root权限吗
  4. Android Studio——飞入文字动画演示
  5. JAVA疫情数据项目(JAVA课程设计)
  6. [渝粤教育] 宁波城市职业技术学院 Web服务器运维(从零搭建一个企业网站) 参考 资料
  7. c语言 自动计时的秒表,c语言实现的简单秒表计时器
  8. Python 制作按键触发Windows通知的脚本
  9. 如何将PDF删除水印?PDF删除水印的方法
  10. 【CSDN英雄会】囯炬CEO张代浩:做写架构的人,做制定游戏规则的人