遗传算法的基本原理与方法(转)
遗传算法的实现有6个主要因素:参数的编码、初始种群的设定、适应度函数的设计、遗传操作、算法控制参数的设定、约束条件的处理。
基因gene 染色体 chromosome 群体population 复制reproducation 交叉 crossover 变异mutation 适应性 fitness
SGA 基本遗传算法(Simple Genetic Algorithm) 遗传算子 Genetic Operator
SGA基本步骤
1、染色体编码与解码 2、个体适应度的检测评估 3、遗传算子(选择运算使用比例选择算子、交叉运算使用单点交叉算子、变异运算使用基本位变异算子或者均匀变异算子) 4、运行的主要参数 M群体规模 T终止条件 Pc交叉概率 Pm变异概率。
优化问题的基本遗传算法构造过程:
1、确定决策变量和约束条件 2、建立优化模型 3、确定编码方法 4、确定解码方法 5、确定个体评价方法 6、设计遗传算子和确定遗传算法的运行参数。
一、编码 (Coding and Decoding)
编码:把一个问题的可行解从其解空间转换到遗传算法所能处理的搜索空间的转换方法。
解码:由遗传算法解空间向问题空间的转换。
二进制编码的缺点之一是Hamming Cliff 海明悬崖:某些相邻整数的二进制代码间有很大的海明距离,使得交叉和突变都难以跨越。
De Jong依据模式定理,提出的编码准则:
1、积木块规则:编码应当易于生成与所求问题相关的短距和低阶的积木块。
2、最小字符集规则:编码应采用最小字符集以使问题得到自然的表示和描述。
主要的编码方法有:二进制编码、格雷码、浮点数编码、多参数级联编码、多参数交叉编码。
编码的评估策略:完备性、健全性、非冗余性
二、选择
选择是在群体中选择生命力强的个体产生新的群体的过程。
根据每个个体的适应度值大小选择,适应度较高的个体被遗传到下一代群体的概率较大。这样使得群体中个体的适应度值接近最优解。
常用的选择算子:轮盘赌选择(Roulette Wheel Selection)、随机竞争选择(Stochastic Tournament)、最佳保留选择、无回放随机选择、确定式选择、无回放余数随机选择、均匀选择、最优保存策略、随机联赛选择、排挤选择(小生境常用)。
三、交叉
交叉:是按较大的概率从群体中选择两个个体,交换两个个体的某个或某些位。
交叉运算产生子代,子代继承了父代的基本特征。
交叉算子的设计包括两个主要内容:确定交叉点位置、如何进行部分基因的交换。
几种适合二进制编码和浮点数编码个体的交叉算子:单点交叉、两点交叉与多点交叉、均匀交叉、算术交叉。
交叉算法是产生新个体的主要算法,它决定了遗传算法的全局搜索能力。
四、变异
变异:是以较小概率对个体编码串上的某个或某些位值进行改变。
变异运算,是指将个体染色体编码串中的某些基因座上的基因值用该基因座的其他等位基因来替换,从而形成新的个体。
变异本身是一种随机算法,只是产生新个体的辅助算法,它决定了遗传算法的局部搜索能力。
适合于二进制编码和浮点数编码个体的几种变异算子:基本位变异、均匀变异、边界变异、非均匀变异、高斯近似变异
五、适应度函数
适应度函数也称评价函数,是根据目标函数确定的用于区分群体中个体好坏的标准,总是非负的,任何情况下都希望其值越大越好。
在选择操作中,会出现两个成为遗传算法欺骗的问题:
(1、)在遗传算法初期,通常会产生一些超常个体,按照比例选择法,这些超常个体会因竞争力突出,而控制选择过程,影响到算法的全局优化性能。
(2、)遗传算法后期,当算法趋于收敛时,由于种群中个体适应度差异较小,继续优化的潜能降低,可能获得某个局部最优解。
适应度函数的设计主要满足以下条件:
(1)单值、连续、非负、最大化。
(2)合理、一致性。
(3)计算量小
(4)通用性强。
在遗传算法的不同阶段,还需要对个体适应度进行适当的扩大或缩小,成为适应度的尺度变换,主要有三种:线性尺度变换、乘幂尺度变换、指数尺度变换。
六、控制参数的选择。
交叉概率Pc始终控制着遗传运算中起主导地位的交叉算子,一般建议取值范围是0.4~0.99。
变异概率Pm一般建议取值范围是0.0001~0.1
群体规模一般可以根据实际情况在10~200之间选定。
七、约束条件的处理
根据具体问题一般可选择三种方法:搜索空间限定法、可行解变换法、罚函数法
原文链接遗传算法的基本原理与方法--笔记<转> - yi ming - 博客园
遗传算法的基本原理与方法(转)相关推荐
- 遗传算法的基本原理和方法(转)
遗传算法的基本原理和方法 一.编码 编码:把一个问题的可行解从其解空间转换到遗传算法的搜索空间的转换方法. 解码(译码):遗传算法解空间向问题空间的转换. 二进制编码的缺点是汉明悬崖(Hamming ...
- 软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
文章目录 软件危机 软件的定义 软件危机典型表现 产生软件危机的原因 消除软件危机的方法 软件工程 什么是软件工程 软件工程的本质特征 软件工程的基本原理 软件工程方法学 传统方法学 面向对象方法学 ...
- 3DGIS第二章 大数据量场景加速绘制基本原理与方法
对于仅有几百个多边形和几十兆的低分辨率纹理简单场景,在现阶段一般配置的计算机上也很容易达到实时仿真的目标.然而,随着场景规模的增大,大规模虚拟场景中往往包含上万个多边形,甚至多达几百万个多边形和几百兆 ...
- 大数据量场景加速绘制基本原理与方法
对于仅有几百个多边形和几十兆的低分辨率纹理简单场景,在现阶段一般配置的计算机上也很容易达到实时仿真的目标.然而,随着场景规模的增大,大规模虚拟场景中往往包含上万个多边形,甚至多达几百万个多边形和几百兆 ...
- 第二章 大数据量场景加速绘制基本原理与方法
对于仅有几百个多边形和几十兆的低分辨率纹理简单场景,在现阶段一般配置的计算机上也很容易达到实时仿真的目标.然而,随着场景规模的增大,大规模虚拟场景中往往包含上万个多边形,甚至多达几百万个多边形和几百兆 ...
- 遗传算法在计算机视觉上的应用,基于LTS Hausdorff距离与遗传算法的图像配准方法...
摘 要: 提出了一种基于LTS Hausdorff距离与遗传算法" title="遗传算法">遗传算法的图像配准" title="图像配准&qu ...
- 聚类分析--基本原理、方法(Kmeans,层次聚类)
文章目录 聚类分析的定义 基本原理 商业应用场景 聚类分析步骤 聚类分析方法 层次分析法/系统聚类法(小样本) 提问:如何选择合适的分类结果 K-means 疑问: 聚类分析的定义 聚类分析就是将研究 ...
- 个人理财有哪些基本原理和方法?
现金为王:不超额消费,不使用信用卡,不负债(房贷除外) 信贷消费已经成为主流的今天,强调使用现金似乎与时代格格不入.而对于信贷消费的依赖,常常来自于下面几个看起来十分有力的观点: 1.信贷消费可以积累 ...
- 冒泡法(基本原理和方法)(c语言篇)
学习冒泡排序法 一.引入数组概念 二.掌握循环嵌套 三.思考排序方法 四.编译程序 五.调试运用(检错优化) 一. *数组是一组具有相同数据类型的数据的有序集合. *数组中的每一个元素都属于同一个数据 ...
- matlab遗传算法中的变异操作,遗传算法流程图?遗传算法的基本原理?遗传算法 交叉和变异?简单遗传算法MATLAB实现(4)...
对上一节中的函数进行优化,设置遗传算法相关参数,程序如下 function run_ga() elitism = true;%选择精英操作 pop_size = 20;%种群大小 chromo_siz ...
最新文章
- linux如何生成javacore文件,如何产生javacore和heapdump文件》
- shell----bash
- Spark3.1.1 Docker镜像中修改/etc/hosts
- Lucene学习之——停用词
- 如何在SAP UI5应用里添加使用摄像头拍照的功能
- java channel源码_java nio ServerSocketChannel源码分析
- DCMTK3.5.4与3.6.0版本的区别
- javaSE学习 访问控制
- python def和lambda的应用
- Java面试题及答案整理(2021最新版)
- Java中如何保证线程安全
- ssm基于微信平台的牙科就诊信息管理系统的设计与实现 毕业设计源码211157
- es - elasticsearch - aggs - metrics - percentile_ranks
- 【react】---redux-actions的基本使用---【巷子】
- 如何用Python爬取网易云歌曲?秘诀在这~
- SMO组织的现状与发展
- 微生物所东秀珠组与北大深圳研究生院余珂组联合招聘启事
- 【计量经济学导论】03. 矩阵形式的线性回归模型
- Android 客户端起HttpServer NanoHttpd
- Offic2019与VISIO2016安装出现即点即用问题解决方案
热门文章
- Qt优秀开源项目之十四:SortFilterProxyModel
- R语言绘制列线图nomogram分步骤从头到尾实战
- 总谐波失真计算公式_知识学习:谐波的危害
- 基于聚合数据的移动联通基站API接口的php完整代码实例
- 项目实战:十种方法实现图像数据集降维
- 简易天线增益测量系统
- 算一串数字的entropy_【一点资讯】数字的作用,远比我们想的多得多 www.yidianzixun.com...
- 傅里叶变换(二维离散傅里叶变换)
- 余世维《成功经理人讲座》之重要又紧急的事情
- java 工作流 详解