算法学习报告-02 遗传算法
遗传算法(Genetic Algorithms)
目录
遗传算法(Genetic Algorithms)
简介:
原理:
步骤:
1.初始参数:
2.染色体编码:
3.适应度函数:
4.约束条件的处理:
5.遗传算子:
6.搜索终止条件:
简介:
遗传算法(Genetic Algorithms, GA)是一种基于自然选择和基因遗传学原理,借鉴了生物进化优胜劣汰的自然选择机理和生物界繁衍进化的基因重组、突变的遗传机制的全局自适应概率搜索算法。
原理:
遗传算法是从一组随机产生的初始解(种群)开始的,这个种群由经过基因编码的一定数量的个体组成。每个个体是染色体(遗传物质的主要载体)带有特征的实体,个体的外观由其内部表现即基因型决定。
因此,从一开始就需要实现从表现型到基因型的映射,即编码工作。初始种群产生后,根据优胜劣汰的原理会逐代演化出越来越好的近似解。最终,末代种群的最优个体经过解码可作为问题近似最优解。
下图可以较为直观地理解遗传算法的原理:
步骤:
1.初始参数:
参数 | 作用 |
---|---|
种群规模 |
种群数目影响遗传算法的有效性,一般种群数目设定在20-160之间比较合适。 |
交叉概率 |
|
变异概率 |
|
进化代数 |
|
2.染色体编码:
利用遗传算法解决问题时,必须在目标问题实际表示与染色体位串结构之间建立一个联系。
对于给定的优化问题有以下四个概念:
概念 | 含义 |
---|---|
问题空间 | 由种群个体的表现型集合组成的空间。 |
编码空间 | 由种群基因型个体集合组成的空间。 |
编码 | 由问题空间向编码空间的映射。 |
解码 | 由编码空间向问题空间的映射。 |
编码原理:
- 有意义积木块编码规则:编码应当易于生成与所求问题相关的且具有低阶、短定义长度模式的编码方案。
- 最小字符集编码规则:编码应使用能使问题得到自然表示或描述的具有最小编码字符集的编码方案。
常用的编码方式:
- 二进制编码
- 浮点数(实数编码)
3.适应度函数:
适应度函数是用来衡量个体优劣,度量个体适应度的函数。适应度函数值越大的个体越好,反之亦然。
在遗传算法中根据适应值来选择个体,以保证适应性能好的个体有更多的机会繁殖后代,使得优良特性得以遗传。
通常情况下,适应度函数是由目标函数变换而成的,并根据适应度排序的情况来选择概率,因此适应度函数计算出的函数值(适应度)不能小于零。
在某些情况下,将目标函数转换成最大化问题形式而且函数值非负的适应度函数是必要的,并且在任何情况下函数值越大越好。
4.约束条件的处理:
在遗传算法中必须对约束条件进行处理,可根据实际问题选择以下三种方法:
罚函数法:
基本思想:对于在解空间中无对应可行解的个体,计算其适应度时除以一个罚函数来降低其个体的适应度,从而使得该个体被选择遗传到下一代群体中的概率减小。
搜索空间限定法:
基本思想:对遗传算法的搜索空间的大小加以限制,使得搜索空间中表示一个个体的点与解空间中表示一个可行解的点有一一对应的关系。
可行解变换法:
基本思想:在由个体基因型到个体表现型的变换中,增加使其满足约束条件的处理过程,其寻找个体基因型与个体表现型的多对一变换关系扩大了搜索空间,使进化过程中所产生的个体总能通过这个变换而转化成解空间中满足约束条件的一个可行解。
5.遗传算子:
遗传算法中包含了3个模拟生物基因遗传操作的遗传算子:选择(复制)、交叉(重组)和变异(突变)。其作用是产生新一代群体来实现群体进化。
- 选择操作:用来确定如何从父代群体中按某种方法选取哪些个体遗传到下一代群体的一种算法。选择算子对个体进行优胜劣汰操作,即被遗传到下一代的概率与适应度成正比。
- 交叉操作:通过对两个个体之间进行某部分基因的呼唤来实现产生新个体的目的。
- 变异操作:将个体染色体编码串中的某些基因座的基因值用该基因座的其他等位基因来替代,从而形成一个新的个体。
6.搜索终止条件:
搜索终止条件有两个,满足其中之一搜索就结束:
- 遗传操作中连续多次前后两代中最优个体的适应度相差在某个任意小的正数
所确定的范围内,即满足:
。其中,
为新产生的群体中最优个体的适应度;
为前代群体中最优个体的适应度;
- 达到遗传操作的最大进化代数。
算法学习报告-02 遗传算法相关推荐
- DAY1 贪心算法学习报告
集训DAY1:贪心算法 学习报告 这天的题还有一道未解决,暂时不会代码实现,由于时间有限(精力是相对无限的),所以留待明天补档. /(课堂笔记) 贪心算法的核心:局部最优得整体最优 证明:数学归纳 微 ...
- 漫画算法-学习笔记(02)
漫画算法-小灰的算法之旅(02) 文章目录 漫画算法-小灰的算法之旅(02) @[toc] 1. 什么是数组 2. 数组的基本操作 读取元素 更新元素 插入元素 删除元素 3. 数组的优势和劣势 1. ...
- 算法学习入门书籍 -- 2022.02.13
1.我的第一本算法书(2018年11月) 2.啊哈!算法(C语言版) 3.啊哈!算法(大字版)-2021.04 -- C语言 4.哇,编程!--跟小明一起学算法(2020.05) -- C++语言 5 ...
- [算法学习]模拟退火算法(SA)、遗传算法(GA)、布谷鸟算法(CS)、人工蜂群算法(ABC)学习笔记---附MATLAB注释代码
目录 1.模拟退火算法(Simulated Annealing,SA) 1.1 本质: 1.2 算法思想 1.3 SA流程图 1.4 模拟退火过程 1.5 SA解决TSP问题 1.6 SA改进方向 1 ...
- 重磅!人工智能与算法学习年终总结报告(珍藏版)
各位读者大家好!今天向大家推荐一个非常优秀的公众号"人工智能与算法学习",这里是AI领域学习交流的平台!专注人工智能.机器学习.深度学习.计算机视觉.自然语言处理.算法原理.科技前 ...
- AI: 2021 年人工智能前沿科技报告02(更新中……)daiding
AI: 2021 年人工智能前沿科技报告02(更新中--) 2021 年对于人工智能技术和产业,依旧是不平凡的一年.随着算力.数据.算法等要素逐渐齐备,先进的算法结构不断涌现,各个研究方向研究成果不断 ...
- 算法学习:后缀数组(SA)
[参考博客] https://xminh.github.io/2018/02/27/%E5%90%8E%E7%BC%80%E6%95%B0%E7%BB%84-%E6%9C%80%E8%AF%A6%E7 ...
- 计算机图形学学习报告,计算机图形学学习报告.pdf
精选公文范文 计算机图形学学习 报告 篇一:计算机图形学学习心得体会 计算机图形学学习心得体会 计算机科学与技术与技术 班 学号: 1.计算机图形学 计算机图形学(Computer Graphics, ...
- 计算机组成与架构综述学习报告
计算机组成与架构综述学习报告 计算机系统的指令集ISA的演进过程是怎样的? 第一阶段关键词:集成电路.CISC.432.8086.IBM PC 集成电路在摩尔定律的预言下快速发展,使得CPU的控制单元 ...
最新文章
- django model filter_Django框架使用流程(四)
- 检测缓存文件是否超时
- HDU 4638 Group(莫队)题解
- 计算机视觉工具包Luminoth
- 多媒体技术创新与难点探索(内附讲师资料下载)
- ice 服务java连接,“先进的互联互通技术”–使用ice联通php和java [part 1 server]
- mysql中的lgwr_MySQL Replication和Oracle logical standby的原理对比
- 开发函数计算的正确姿势 —— 排查超时问题
- filter笔记(主要看到黑马教程的ppt)
- Spring Boot 默认数据源 HikariDataSource 与 JdbcTemplate 初遇
- 进销存软件哪个简单好用?商户必看
- java导出建表语句_由 Java Entity 类自动生成 SQL建表语句
- 机器学习算法对比分析
- gif怎么分解成图片呢?
- IIC总线协议详解与总结
- 华为云计算认证为什么这么火,网络工程师必看云计算怎么学
- javascript的apply理解
- ologit模型与logit_Logit模型与logistic模型的联系与区别?
- 数学笔记:集合及其运算
- 读者投稿:阿里 P6 面试体验
热门文章
- html5 超链接标签,详解HTML的a标签(超链接标签)
- 河北省职称计算机考试什么时候,河北省2010年职称计算机考试报名时间通知
- python菜单翻译成中文_一个把网站全英文转成中文的方法,让你轻松看懂python官网...
- 不同开源图像库的resize及上下采样
- [基因遗传算法]进阶之二:最优规划问题--多种编码方式+多变量
- 京东软件开发工程师面试总结
- 求解Wiener过程中随机参数分布的EM算法
- 每日英语[Daily English]
- 【阿里二面】面试官问为什么新生代不用标记清除算法
- 鲍大爷打肿了空头的脸