(二)遗传算法(Genetic Algorithm, GA)流程
(二)遗传算法(Genetic Algorithm, GA)流程
- 1. 遗传算法流程
- 2. 关键参数说明
1. 遗传算法流程
一点说明:
在遗传算法中,将nnn维决策向量X\bf{X}X=[x1,x2,...,xn]T=[x_1,x_2,...,x_n]^T=[x1,x2,...,xn]T用nnn个记号Xi(i=1,2,...,n)X_i(i=1,2,...,n)Xi(i=1,2,...,n)所组成的符号串XXX来表示:
X=X1X2...Xn⇒X=[x1,x2,...,xn]T\boldsymbol{X}=X_1X_2...X_n\Rightarrow\boldsymbol{X}=[x_1,x_2,...,x_n]^TX=X1X2...Xn⇒X=[x1,x2,...,xn]T
把每一个XiX_iXi看作一个遗传基因,它的所有可能取值就称为等位基因,这样X\boldsymbol{X}X就可看作由nnn个遗传基因所组成的一个染色体。
遗传算法流程图如下所示:
具体步骤如下:
(1)初始化。设置进化迭代计数器g=0g=0g=0,设置最大进化代数GGG,随机生成NpN_pNp个个体作为初始群体P(0)P(0)P(0)。
(2)个体评价。计算群体P(t)P(t)P(t)中各个个体的适应度。
(3)选择运算。将选择算子作用于群体,根据个体的适应度,按照一定的规则或方法,选择一些优良个体遗传到下一代群体。
(4)交叉运算。将交叉算子作用于群体,对选中的成对个体,以某一概率交换它们之间的部分染色体,产生新的染色体。
(5)变异运算。将变异算子作用于群体,对选中的个体,以某一概率改变某一个或一些基因值为其他的等位基因。
(6)循环操作。群体P(t)P(t)P(t)经过选择、交叉和变异运算之后得到下一代群体P(t+1)P(t+1)P(t+1).计算其适应度值,并根据适应度值进行排序,准备进行下一次遗传操作。
(7)终止条件判断:若g≤Gg\leq Gg≤G,则g=g+1g=g+1g=g+1,转到步骤(2);若g>Gg>Gg>G,则此进化过程中所得到的具有最大适应度的个体作为最优解输出,终止计算。
2. 关键参数说明
- 群体规模NpN_pNp;
群体规模将影响遗传优化的最终结果以及遗传算法的执行效率。当群体规模NpN_pNp太小时,遗传优化性能一般不会太好。采用较大的群体规模可以减小遗传算法陷入局部最优解的机会,但较大的群体意味着计算复杂度较高。一般NpN_pNp取10−200.10-200.10−200. - 交叉概率PcP_cPc;
交叉概率PcP_cPc控制着交叉操作被使用的频度。较大的交叉概率可以增强遗传算法开辟新的搜索区域的能力,但高性能的模式遭到破坏的可能性增大;若交叉概率太低,遗传算法搜索可能陷入迟钝状态。一般PcP_cPc取0.25−1.00.0.25-1.00.0.25−1.00. - 变异概率PmP_mPm;
变异在遗传算法中属于辅助性的搜索操作,它的主要目的是保持群体的多样性。一般低频度的变异可防止群体中重要基因的可能丢失,高频度的变异将使遗传算法趋于纯粹的随机搜索。通常PmP_mPm取0.001−0.1.0.001-0.1.0.001−0.1. - 遗传运算的终止进化代数GGG;
终止进化代数GGG是表示遗传算法运行结束条件的一个参数,它表示遗传算法运行到指定的进化代数之后就停止运行,并将当前群体中的最佳个体作为所求问题的最优解输出。一般视具体问题而定,GGG的取值可在100−1000100-1000100−1000之间。
(二)遗传算法(Genetic Algorithm, GA)流程相关推荐
- 遗传算法 python 简书_遗传算法(Genetic Algorithm ,GA)学习笔记
1 遗传算法的概念 1.1 遗传算法的科学定义 遗传算法(Genetic Algorithm, GA) 是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程 ...
- 路径算法:遗传算法 (Genetic Algorithm, GA)
遗传算法简介 遗传算法是受自然进化理论启发的一系列搜索算法.通过模仿自然选择和繁殖的过程,遗传算法可以为涉及搜索,优化和学习的各种问题提供高质量的解决方案.同时,它们类似于自然进化,因此可以克服传统搜 ...
- 遗传算法(Genetic Algorithm,GA)实现数据排序,python
遗传算法(Genetic Algorithm,GA)实现数据排序,python 遗传算法是一种比较广泛.通用的算法体系,为了说明遗传算法的原理和实现,现在用GA解决一个计算机科学最基本.最古老的问题: ...
- uniform crossover(均匀交叉),遗传算法(Genetic Algorithm,GA),python
uniform crossover(均匀交叉),遗传算法(Genetic Algorithm,GA),python 假设有双亲p1和p2的二进制基因染色体表达,子代的基因以等概率(50%)来自双亲中之 ...
- 优化算法之遗传算法(Genetic Algorithm, GA)
目录 概述 相关术语 遗传算法的实现过程 遗传算法的一般步骤 代码描述 解码 相关问题 适应度函数 选择函数 小问题: 交叉.变异 相关问题 完整代码 疑惑点(感谢大佬解答) 个人修改代码(类形式) ...
- 遗传算法 python 简书_【算法】超详细的遗传算法(Genetic Algorithm)解析
00 目录 遗传算法定义 生物学术语 问题导入 大体实现 具体细节 代码实现 01 什么是遗传算法? 1.1 遗传算法的科学定义 遗传算法(Genetic Algorithm, GA)是模拟达尔文生物 ...
- 遗传算法(Genetic Algorithm)从了解到实例运用(上)(python)
前言 本文主要介绍了数学建模常用模型遗传算法,从原理出发到编程实现再到实例运用.笔者参与过大大小小五次数学建模,个人觉得该优化算法值得一学. 提示:以下是本篇文章正文内容 一.遗传算法由来 遗传算法的 ...
- 遗传算法Genetic Algorithm
文章目录 遗传算法Genetic Algorithm 1. 简介 1.1 简介 1.2 相关概念介绍 1.2.1 选择(复制) 1) 轮盘赌选择法 2) 随机遍历抽样法 3) 锦标赛选择法 4) 比例 ...
- 【深度学习入门到精通系列】遗传算法 (Genetic Algorithm)
文章目录 1 遗传算法概述 2 遗传算法 2.1 找一个好的fitness方程 2.2 DNA 编码 2.3 代码实现 3 配对句子 4 旅行商问题 5 Microbial Genetic Algor ...
最新文章
- oracle定时服务器,服务器oracle数据库定时备份
- 五款好评如潮的手机APP分享 用起来绝对好用!
- .NET Core容器化开发系列(一)——Docker里面跑个.NET Core
- 01背包问题--动规
- 国际运营版Java区块链交易所源码币币+法币+永续+期权+机器人
- 5动态显示图片_单片机入门 数码管的静态显示和动态显示 壁纸
- 喝酒、吸烟和喝茶三者相对而言,哪个对身体有益?哪个对身体有害?
- pytorch: MaxUnpool2d 与 Upsampling
- ERP之什么是物料编码?
- 编译原理考试知识点总结
- 计算机是怎么运行的?为什么它可以自动化的工作?这和时钟信号又有什么关系?
- CCNA实验前准备(转)
- 笔记本选购指南2020双十一
- Android 13 Camera ITS 环境搭建(从Python安装到环境配置详解)
- 动画 (Animation) 资源类型详述 (1)
- Linux之git用法
- 主成分回归之后预测_主成分回归解析.ppt
- linux的掩码长度,Bash 实现子网掩码与前缀长度互转
- IPM模块短路及对地短路剖析
- iPhone微信语音导出