遗传算法介绍

天翼云开发者社区
• 阅读 83

本文分享自天翼云开发者社区《遗传算法介绍》,作者:朱****洲

遗传算法(Genetic Algorithm, GA)起源于对生物系统所进行的计算机模拟研究。它是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,借鉴了达尔文的进化论和孟德尔的遗传学说。 由于遗传算法是模拟自然规律的一种算法,它常用术语也都是用自然科学的名词来代替,主要有以下部分: 1.个体:问题的一个解(无论可行) 2.种群:问题的一个解的集合,包含多个个体 3.染色体:个体以编码形式的存在方式 4.基因:标识染色体的信息最小存在 5.遗传:产生新个体的方式 6.适应度:个体对应问题的解决能力

遗传算法简单来说分为以下几个阶段:编码、生成初始种群、遗传操作、筛选。

遗传算法介绍

图为遗传算法运用的流程图,其分为以下步骤: 1.编码 编码是体现遗传算法借鉴生物学遗传学说的重要环节,具体表现为将信息以特殊编码的形式保存,称之为染色体,是后续遗传操作的最小单位。优秀的编码方式能够将个体的信息详尽保存,提升算法的效率。 常见的编码方式有二进制编码、格雷编码、浮点数编码、符号编码等

2.初始种群生成 初始种群是在遗传算法刚开始的时候随机生成的多个初始解。初始种群不能确定遗传算法的优劣,但优秀的初始种群的设计可以保证遗传算法的迭代次数较少,种群多样性大,能够更快地达到最终的最优解。 初始种群是随机生产的个体的集合,根据遗传算法的使用方式,初始种群生成的方式也不同。

3.遗传操作 遗传操作主要分为交叉和变异两种,其主要目的是为了产生新的个体,提高种群中个体的多样性。在一次次的遗传过程中,总会留下优秀的个体,才能产生最终理想的结果。 交叉是将两个个体的染色体中的基因进行互换,或者直接将部分染色体进行互换,从而得到新的个体。交叉是主要的遗传手段。 变异是将一个个体中的基因进行随机变化,从而获得新的染色体,因而新的个体诞生。在种群中,变异的概率一般设置得并不高。

4.筛选 在每次的遗传后,对于新种群要去进行适应度的评估以及淘汰。适应度函数的选取直接影响到遗传算法的收敛速度以及能否找到最优解。适应度函数设计有很多种,可以通过罚函数对冲突进行惩罚。 常见的筛选方法有轮盘赌选择法、随机便利抽样法、锦标赛选择法

总结: 遗传算法普遍用于数值优化、组合优化、机器学习等问题领域,由于其不需要借助额外的梯度信息或辅助知识,只需要搜索方向的目标函数和适应度函数,因而提供了一种解决问题的通用框架。

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
Linux应急响应(四):盖茨木马
0x00前言Linux盖茨木马是一类有着丰富历史,隐藏手法巧妙,网络攻击行为显著的DDoS木马,主要恶意特点是具备了后门程序,DDoS攻击的能力,并且会替换常用的系统文件进行伪装。木马得名于其在变量函数的命名中,大量使用Gates这个单词。分析和清除盖茨木马的过程,可以发现有很多值得去学习和借鉴的地方。0x01应急场景
Wesley13 Wesley13
3年前
MySQL数据库InnoDB存储引擎Log漫游(1)
作者:宋利兵来源:MySQL代码研究(mysqlcode)0、导读本文介绍了InnoDB引擎如何利用UndoLog和RedoLog来保证事务的原子性、持久性原理,以及InnoDB引擎实现UndoLog和RedoLog的基本思路。00–UndoLogUndoLog是为了实现事务的原子性,
Stella981 Stella981
3年前
Python遗传算法工具箱DEAP框架分析
  本文主要介绍python遗传算法工具箱DEAP的实现。先介绍deap的如何使用,再深入介绍deap的框架实现,以及遗传算法的各种实现算法。  代码可以参考https://github.com/sumatrae/deap  下面是使用deap求解TSP的实现:1importarray2importrandom
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
计算机视觉与信息取证技术讲解
今晚20:0022:00人工智能技术与自信计算机视觉就是用各种成像系统代替视觉器官作为输入敏感手段,由计算机来代替大脑完成处理和解释。计算机视觉的最终研究目标就是使计算机能象人那样通过视觉观察和理解世界,具有自主适应环境的能力。要经过长期的努力才能达到的目标。因此,在实现最终目标以前,人们努力的中期目标是建立一种视觉系统,这个系统能依据视觉敏感和反馈的某
无人系统群体智能及其研究进展
无人系统群体智能及其研究进展关键词:无人系统;群体智能;理论方法;核心技术;系统构建群体智能研究起源于对蚁群、蜂群等简单社会性生物群体行为的观察与模拟.该概念自20世纪80年代一经提出,便引起了各相关领域研究人员的高度关注。近年来,人们在模拟、延伸和扩展简单社会性生物群体智能的同时,也有研究者从人类社会的群体智能等其它视角探索着集体的伟大力量。经过在不同应
大数据与人工智能初了解
人工智能的核心是机器学习,其他人工智能技术基本上都在它的基础上发展和进化。简单来说,机器学习就是计算机模仿人类的学习过程和学习行为,从以往的数据或经验中获取新的知识或技能,优化自身性能,并对未来进行预测。
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
727
粉丝
15
获赞
40