遗传算法(Genetic Algorithm,GA)
模仿生物的遗传进化原理,通过选择(Selection)、交叉(Crossover)与变异(Mutation)等操作机制,使种群中个体的适应度(Fitness)不断提高。
核心思想:物竞天择,适者生存(“天”——适应度函数,Fitness Function)

个体:个体空间的元素称为个体,它是染色体带有特征的实体。
种群:称个体空间 S 中 N 个个体组成的一个子集(个体允许重复)称为一个种群,记为:
A = (A1,A2,…,An),其中Aj ( j=1,2,…,N ) ∈ S,N称为种群规模。
适应度:在研究自然界中生物的遗传和进化现象时,生物学家使用适应度这个术语来度量某个物种对于生存环境的适应程度。对生存环境适应程度较高的物种将获得更多的繁殖机会,而对生存环境适应程度较低的物种,其繁殖机会就会相对较少,甚至逐渐灭绝。在遗传算法中,一般通过适应度函数来衡量某一个体的适应度高低。目标函数。
编码:将一个待求解的问题的实际可行解从其解空间转换到遗传算法所能处理的搜索空间(即个体空间)的过程,就称为编码。
解码:解码是将遗传算法所搜索到的最优个体的染色体转换成待求解问题的实际最优解的过程,即编码的逆过程。
选择操作:根据各个个体的适应度,按照一定的规则,从第t代群体P(t)中选择出一些优良的个体遗传到下一代群体P(t+1)中。一般地,选择操作通过选择算子进行。
交叉操作:将群体P(t)内的各个个体随机搭配成对,对每一对个体,以某个概率(称为交叉概率,Crossover Rate)遵循某一种规则交换它们之间的部分染色体。
变异操作:对群体P(t)中的每一个个体,以某一概率(称为变异概率,Mutation Rate)改变某一个或某一些基因座上的基因值为其他的等位基因。

基本遗传算法的组成
1.编解码
2.适应度函数
3.遗传运算(选择、交叉和变异)

应用步骤

(1)确定决策变量及各种约束条件,即确定出个体的表现型X和问题的解空间。
(2)建立优化模型,确定出目标函数的类型及其数学描述形式或量化方法。
(3)确定表示可行解的染色体编码方法,即确定出个体的基因型X*,也是遗传算法的搜索空间。

编码是遗传算法解决问题的先决条件和关键步骤:
①不仅决定个体基因的排列形式(从而决定选择与繁殖等操作的作用方式),而且也决定从搜索空间的基因型到解空间的表现型的解码方式(从而决定对GA所获解的翻译与理解);
②决定GA搜索的困难度与复杂性;
③决定对问题的求解精度。
常用的遗传算法编码方法主要有:二进制编码、浮点数编码等。可以证明,二进制编码比浮点数编码搜索能力强,但浮点数编码比二进制编码在变异操作上能够保持更好的种群多样性。

标准遗传算法多采用二进制编码方法,将决策变量用二进制字符串表示,二进制编码串的长度由所求精度决定。然后将各决策变量的二进制编码串连接在一起,构成一个染色体。

例如:变量x的定义域为[-2,3],要求其精度为10-5,则需要将[-2, 3]分成至少500000个等长小区域,而每个小区域用一个二进制串表示。于是有,2 L = 500 000,即 log2 500000 = 18.93
向上取整,可得到 L = 19。即可用19位二进制串 a18a17…a0来表示。
(4)确定解码方法,即确定出由个体基因型X*,到个体表现型X的对应关系和转换方法。
(5)确定个体适应度的量化评价方法,就是确定出由目标函数值到个体适应度的转换规则。标准遗传算法的适应度函数常用一下三种:
1)直接以待求解的目标函数为适应度函数
若目标函数为最大值问题,则Fit(f(X)) = f(X)
若目标函数为最小值问题,则Fit(f(X)) = -f(X)
优点:简单直观;
缺点:其一,可能不满足非负的要求;其二,某些代求解的函数值分布相差很大,由此得到的平均适应度可能不利于体现种群的平均性能。
2)界限构造法
3)倒数法

遗传算法具体步骤

1、选择编码策略,把参数集合(可行解集合)转换染色体结构空间;
2、定义适应度函数,便于计算适应值;
3、确定遗传策略,包括选择群体大小,选择、交叉、变异方法以及确定交叉概率、变异概率等遗传参数;
4、随机产生初始化群体;
5、计算群体中的个体或染色体解码后的适应值;
6、按照遗传策略,运用选择、交叉和变异算子作用于群体,形成下一代群体;
7、判断群体性能是否满足某一指标,或者已完成预定的迭代次数,不满足则返回第五步,或者修改遗传策略再返回第六步。

待更新!

遗传算法-附代码注释相关推荐

  1. 数据结构-----凹入表形式横向打印二叉树结构 (附代码+注释)

    数据结构的学习中最最基本的实验之--打印二叉树结构 代码生成效果如下: (一)需求分析 1.打印二叉树的程序中,输入数据的类型限定为字符型,并且以"回车符"为结束标志.用户默认以中 ...

  2. GraphDTA论文阅读小白笔记(附代码注释和复现流程)

    目录 摘要 背景 数据和方法 GraphDTA概述 药物表征 蛋白表征 分子图的深度学习 GCN GAT GIN GAT-GCN 基准 模型解释 结果讨论 图模型的表现超过了其它模型 图模型发现已知药 ...

  3. Matlab 基本知识(附代码注释详解)

    Matlab 基本知识 第1部分:变量定义和基本运算 %% % 建议有C语言或其他编程基础,了解线性代数和矩阵相关知识 % https://ww2.mathworks.cn/help/matlab/ ...

  4. RTFM:Weakly-supervised Video Anomaly Detection with Robust Temporal Feature【ICCV 2021】附代码注释

    论文解读 [摘要]具有弱监督视频级别标签的异常检测通常被表述为多实例学习(MIL)问题,其中我们旨在识别包含异常事件的片段,每个视频被表示为一个视频片段包(Bag).尽管当前的方法显示出有效的检测性能 ...

  5. 应用8255A控制LED小灯开闭(附代码注释)

    设8255A的A口和B口都工作在方式0,A口作为输出口,接有8个开关;B口为输出口,接有8个发光二极管.系统硬件电路中不断扫描开关Ki,当K0闭合时,点亮LED0,LED2,LED4,LED6,其他L ...

  6. 有树形依赖的背包问题(附代码注释)

    有 NN 个物品和一个容量是 VV 的背包. 物品之间具有依赖关系,且依赖关系组成一棵树的形状.如果选择一个物品,则必须选择它的父节点. 如下图所示: 如果选择物品5,则必须选择物品1和2.这是因为2 ...

  7. yolov3网络结构图_目标检测——YOLO V3简介及代码注释(附github代码——已跑通)...

    GitHub: liuyuemaicha/PyTorch-YOLOv3​github.com 注:该代码fork自eriklindernoren/PyTorch-YOLOv3,该代码相比master分 ...

  8. 遗传算法_粒子群算法优化支持向量机分类预测-附代码

    遗传算法/粒子群算法优化支持向量机分类预测-附代码 文章目录 遗传算法/粒子群算法优化支持向量机分类预测-附代码 1. 支持向量机简介与参数优化的原理 1.1 支持向量机SVM简介 1.2 优化参数的 ...

  9. 基于遗传算法优化的Elman神经网络数据预测-附代码

    基于遗传算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于遗传算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

  10. [原创]jQuery推箱子小游戏(100关且可扩展可选关),休闲,对战,娱乐,小游戏,下载即用,兼容iPad移动端,代码注释全(附源码)

    Sokoban 介绍 [原创]jQuery推箱子小游戏(100关且可扩展可选关),休闲,对战,娱乐,小游戏,下载即用,兼容iPad移动端,代码注释全(附源码) 游戏说明 经典的推箱子是一个来自日本的古 ...

最新文章

  1. Oracle数据库设计规范
  2. flutter listview 滚动到底部_Flutter常用Widget详解(三)
  3. mysql范式与反范式_给女同事讲解MySQL数据库设计范式与反范式,她夸我“技术好”...
  4. php curl 库参数,PHP 关于curl库参数问题的求助!!!
  5. Java读取文件时第一行出现乱码“?”问号
  6. Android 动态权限申请 BaseActivity 封装 拨打电话
  7. 完美解决banner图片适应分辨率不同的问题
  8. 2021牛客暑期多校训练营2,签到题CDFKI
  9. Web Client Software Factory系列(1):初识与预备知识
  10. 安装Selenium+Firefox+Firepath+Firebug
  11. 开源微信共享记账小程序
  12. Transparent Tribe行动
  13. 第二章 爬取案例-链家租房数据获取 2021-09-16
  14. 【Faiss】indexes 前(后)处理(五)
  15. B站学习云开见明:Python数据分析入门到精通学习笔记
  16. matlab函数——meshgrid、mesh、surf函数
  17. Ubuntu远程SSH连接与远程桌面连接
  18. 游戏‘微信打飞机’ 第三课
  19. 南极圈、百老汇、前橙会、离异、毕浪、盛斗士…… 抱团突围的“离职帮”
  20. DRE Viewset(视图集)的使用

热门文章

  1. mysql 处理json_mysql存储过程处理json格式内容
  2. 史上最全Java项目实战课程(含项目实战+源码)
  3. 小型网站项目完整部署流程(Windows操作系统)
  4. mser python车牌识别_HyperLPR车牌识别
  5. AM5728 IPC机制解析
  6. WinForm TabControl美化
  7. 为什么新建文本文档没有.txt后缀
  8. Android优秀参考APP源码
  9. Iocomp .NET WinForms OPC Crack
  10. 【C语言】双人格斗小游戏(源码)