零基础学启发式算法(5)-遗传算法 (Genetic Algorithm)

88 篇文章 7 订阅
订阅专栏

一、遗传算法 (Genetic Algorithm, GA) 

源于达尔文的进化论,将问题的一个解当作种群中的一个个体。

gene:基因

chromosome: 染色体

population:种群

crossover:交叉

mutation:变异

selection:选择

通过多轮的“选择,交叉和变异”,选择适应度最好的个体作为问题的最优解。

  1. 选择:优胜劣汰,适者生存。

  2. 交叉:丰富种群,持续优化。

  3. 变异:随机扰动,避免局部最优。

算法的整个流程如下所示:

二、流程

1.初始化种群

    在初始化种群时,首先对每一个个体进行编码,编码后的个体可以称之为一个染色体。一个染色体可以表示为:

        x=(p1,p2,…,pm)

    其中,m 为染色体的长度或编码的位数。初始化种群个体共 n 个,对于任意一个个体染色体的任意一位 i,随机生成一个随机数 rand∈U(0,1),若 rand>0.5,则 pi=1,否则 pi=0。

    

    常用的编码方式有

  • 二进制编码,

  • 实值编码,

  • 矩阵编码,

  • 树形编码等。

   

    以二进制为例,对于 p∈{0,1,…,100} 中 pi=50 可以表示为:

        xi=5010=01100102

2.计算适应度

    适应度函数( Fitness Function ) f(x)用来评价个体的优劣程度,通常为问题的目标函数,对最小化优化问题 f(x)=−min∑L(y^,y),对最大化优化问题 f(x)=max∑L(y^,y),其中 L 为损失函数。

3.选择

    对于种群中的每个个体,计算其适应度,记第 i 个个体的适应度为 Fi=f(xi)。则个体在一次选择中被选中的概率为:

    为了保证种群的数量不变,我们需要重复 n 次选择过程,单次选择采用轮盘赌的方法。利用计算得到的被选中的概率计算每个个体的累积概率:

对于如下一个示例:

指标 \ 个体x1x2x3x4x5x6
适应度 (F)1006060403020
概率 (P)0.3220.1940.1940.1290.0970.064
累积概率 (CP)0.3220.5160.710.8390.9361

    每次选择时,随机生成 rand∈U(0,1),当 CPi−1≤rand≤CPi 时,选择个体 xi。选择的过程如同在下图的轮盘上安装一个指针并随机旋转,每次指针停止的位置的即为选择的个体。

4.交叉

  • 单点交叉:在染色体中选择一个切点,然后将其中一部分同另一个染色体的对应部分进行交换得到两个新的个体。交叉过程如下图所示:

  • 多点交叉:在染色体中选择多个切点,对其任意两个切点之间部分以概率 Pc 进行交换,其中 Pc 为一个较大的值,例如 Pm=0.9。两点交叉过程如下图所示:

  • 均匀交叉:染色体任意对应的位置以一定的概率进行交换得到新的个体。交叉过程如下图所示:

5. 变异

    将个体染色体编码串中的某些基因座上的基因值用该基因座上的其它等位基因来替换,从而形成新的个体。

    变异以一定的概率 Pm 发生变化,其中 Pm 为一个较小的值,例如 Pm=0.05。

以下变异算子适用于二进制编码和浮点数编码的个体:

  • 基本位变异(Simple Mutation):对个体编码串中以变异概率、随机指定的某一位或某几位仅因座上的值做变异运算。

  • 均匀变异(Uniform Mutation):分别用符合某一范围内均匀分布的随机数,以某一较小的概率来替换个体编码串中各个基因座上的原有基因值。(特别适用于在算法的初级运行阶段)

  • 边界变异(Boundary Mutation):随机的取基因座上的两个对应边界基因值之一去替代原有基因值。特别适用于最优点位于或接近于可行解的边界时的一类问题。

  • 非均匀变异:对原有的基因值做一随机扰动,以扰动后的结果作为变异后的新基因值。对每个基因座都以相同的概率进行变异运算之后,相当于整个解向量在解空间中作了一次轻微的变动。

  • 高斯近似变异:进行变异操作时用符号均值为P的平均值,方差为P**2的正态分布的一个随机数来替换原有的基因值。

对于基本的遗传算法还有多种优化方法,例如:精英主义,即将每一代中的最优解原封不动的复制到下一代中,这保证了最优解可以存活到整个算法结束。

三、例子

寻找多峰函数的最大值这个问题为例:

将(x, y)这一可能的解作为一个个体;将多峰函数的函数值f(x, y)作为个体的适应度;对(x, y)进行编码作为个体的基因;以适应度为标准不断筛选生物个体;

https://leovan.me/cn/2019/04/heuristic-algorithms/

https://learnwithpanda.com/2020/09/20/what-is-genetic-algorithm/

https://towardsdatascience.com/introduction-to-genetic-algorithms-including-example-code-e396e98d8bf3?gi=8c025ac095e1

https://www.jianshu.com/p/ae5157c26af9

https://blog.csdn.net/gzxb1995/article/details/89060839

近代天线理论课程设计-等副瓣天线
qq_43529482的博客
03-17 744
遗传算法(GA)是模拟达尔文生物进化论的自然选择和遗传机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,不需要确定的规则就能自动获取和知道优化的搜索空间,自适应地调整搜索方向。遗传算法以一种群体中的所有个体为对象,并利用随机化技术指导对一个被编码的参数空间进行高效搜索。其中,选择、交叉和变异构成了遗传算法遗传操作;
遗传算法简单实例
The Coding World
03-06 3万+
遗传算法的手工模拟计算示例 为更好地理解遗传算法的运算过程,下面用手工计算来简单地模拟遗传算法的各     个主要执行步骤。         例:求下述二元函数的最大值:     (1) 个体编码            遗传算法的运算对象是表示个体的符号串,所以必须把变量 x1, x2 编码为一种        符号串。本题中,用无符号二进制整数来表示。
遗传算法 定义+特性+原理+公式+Python示例代码(带详细注释)
最新发布
qq_51929160的博客
04-16 4482
遗传算法是一种模拟生物进化过程的优化算法,通过模拟自然选择、交叉和变异等操作,以找到最优解决方案。其简单易懂的特性使其广泛应用于工程优化、金融领域、机器习等多个领域。遗传算法通过不断迭代,从初始群体中筛选出适应度较高的个体,并通过交叉和变异等操作生成新的个体,最终找到最佳解。其全局搜索特性使其能够避免陷入局部最优解,适用于解决各种复杂的优化问题。
遗传算法综述(四、 种群的初始化、个体适应度评估、适应度函数尺度变换)
a2476100824的博客
08-16 4920
一般情况下,遗传算法在群体初始化阶段采用的是随机数初始化方法。采 用生成随机数的方法,对染色体的每一维变量进行初始化赋值。初始化染色体 时必须注意染色体是否满足优化问题对有效解的定义。如果在进化开始时保证初始群体已经是一定程度上的优良群体的话,将能 够有效提高算法找到全局最优解的能力。
matlab实现遗传算法实例
sakura
03-28 1881
二进制编码为基础 %目标函数 function y = fobj(x) if x <= 0 y = sin(x); elseif x <= 2 y = x^2/2; else y = 3-x/2; end end %主程序 %清楚窗口内容和变量 clear clc pc = 0.8 ;%交叉率 pm = 0.05 ;%变异率 Iter_N =100; %迭代最大代数 popsize = 10; %种群规模,个体的集合 LB = -10; UB =
遗传算法不求人】MATLAB轻代码玩转GA:0-1背包问题+混合整数规划
安安讲代码的博客
04-10 2541
今天我们正式开启《优化问题系列教程》, 优化类问题大量出现在科研习以及建模比赛中,但是我发现既往课程都太关注在理论讲解部分,而忽视了实践应用, 很多代码小白基础较弱,很难入门优化类算法 因此,本人以轻代码为基础,开发了此系列课程
遗传算法原理及应用二(交叉算子、变异算子与运行参数选择)
qq_44849479的博客
04-29 1万+
遗传算法
遗传算法(四)——交叉、变异与替换
热门推荐
SamYu
09-29 7万+
交叉(Crossover) 在上一篇文章所描述的选择过后,我们在一个population中选出了一部分可以用作交配的父母个体,而染色体交叉操作,就是指我们在这些父母个体中,选择两个进行相互交配,将他们的染色体按照某种方式相互交换部分基因,形成两个新的个体的过程。 实际上交叉操作还分为无性、有性、多亲重组三种: 无性:子代由一个父个体产生 有性:子代由两个父个体产生一个/两个子个体 多亲重组:多余...
自适应遗传算法_优化设计之遗传算法中的变异算子和种群密度
weixin_39554434的博客
12-19 1455
在使用遗传算法进行优化设计时,染色体中基因的变异和保持合理的种群密度都是为了保持群体的多样性,使算法能够跳出局部极值。但是不能让每个染色体都参与变异,这样会导致优秀的染色体无法保存下来。本文介绍一种决定染色体是否变异的算法,并介绍一种种群密度的计算和筛选方法。1、自适应变异算子自适应变异算子通过设置变异率与适应度值成反比,以判定不同个体对算法进化的不同贡献,保证优胜劣汰,优良的个体可以遗...
建模(二):遗传算法(GA)
既然选择远方,便只顾风雨兼程!
03-31 2868
神经网络(Neural Network,NN);模糊逻辑(Fuzzy Logic,FL);遗传算法蚁群优化算法(Ant Colony Optimization,ACO);粒子群优化算法(Particle Swarm Op);免疫算法(Immune Algorithm,IA);分布估计算法(Estimation of Distribution Algorithm,EDA);Memetic算法(Memetic Algorithm,MA);
变异测试变异算子构思路
Criss@陈磊
03-31 1096
变异测试:是一种通过将错误注入代码并查看测试是否检测到错误来评估测试质量的方法。 常用的变异算子的构造方法: if条件修改成相反的 def checkout(cart): if cart.items: throw Error("cart empty") return checkout_internal(cart) 变异测试,修改成如下: def checkout(cart): if not cart.items: throw Error("cart empty") re
Memetic Algorithm.zip_MA算法.zip_memetic algorithm_启发式算法_文化基因算法_遗传
07-15
基于启发式算法(Heuristic Algorithm, HA)与修复遗传算法(Repairing Genetic Algorithm, RGA)相结合的文化基因算法(Memetic Algorithm, MA)是一种较为迅速的最优算法
A-quantum-inspired-genetic-algorithm-for-k-means-clustering:量子启发遗传算法在k均值聚类中提出的量子启发遗传算法的实现
05-01
量子启发式遗传算法遗传算法在k均值聚类中的比较抽象的在本文中,我们想比较两种不同的k均值聚类算法,首先是《量子启发遗传算法》,我们将根据《量子启发》遗传文章来实现它,其次是另一篇文章中的一种简单遗传...
实数编码遗传算法(Real-coded Genetic Algorithm
12-27
实数编码遗传算法(Real-coded Genetic Algorithm)是一种启发式搜索算法,用于解决优化问题。与二进制遗传算法不同,实数编码遗传算法适用于解决决策变量为实数的优化问题。以下是实数编码遗传算法的基本描述: ...
基于遗传算法启发式算法退火算法的车间调度研究(代码+案例+说明)
04-09
进阶生产规划及排程系统 便是利用先进的信息科技及规划技术,例如基因算法Genetic Algorithm﹞、限制理论﹝Theory of Constraints﹞、作业分析 ﹝Operations Research﹞、 生产仿真﹝Simulation﹞及限制条件满足...
二进制遗传算法(Binary Genetic Algorithm
12-27
二进制遗传算法(Binary Genetic Algorithm)是一种启发式搜索算法,用于解决优化问题。与传统的遗传算法相比,二进制遗传算法适用于解决决策变量为二进制编码的优化问题。以下是二进制遗传算法的基本描述: 初始化...
经典算法研究系列:七、深入浅出遗传算法,透析GA本质
dinongxu8804的博客
01-12 1142
经典算法研究系列:七、遗传算法初探 ---深入浅出、透析GA本质 作者:July二零一一年一月十二日。 本文参考:维基百科华南理工大电子讲义互联网 ------------------------------------------------------------------------------- 一、初探遗传算...
遗传算法-变异算法
java、c++、机器学习方向King
10-27 1万+
遗传算法系列 (4) 变异算法 在基因交叉之后产生的子代个体,其变量可能以很小的概率或者步长发生转变,这个过程称为变异(Mutation)。 如果进化的目标函数极值是单峰值的,那么,将变异概率p设置为种群数量n的倒数是一个比较好的选择。 如果变异概率很大,那么整个搜索过程就退化为一个随机搜索过程。所以,比较稳妥的做法是,进化过程刚刚开始的时候,取p为一个比较大的概率,随着搜索过程的进行,p逐
【邢不行|量化小讲堂系列24-Python量化入门】股票自动程序化下单交易 | 视频教程
xingbuxing_py的博客
10-14 1万+
引言: 邢不行的系列帖子“量化小讲堂”,通过实际案例教初者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助。 【历史文章汇总】请点击此处 【必读文章】EOS期现套利,一周时间,15%无风险收益 10年400倍策略分享(附视频逐行代码讲解) 个人微信:xingbx007,有问题欢迎交流。 股票自动程序化下单交易| 视频...
jssp-genetic-algorithm
12-30
jssp-genetic-algorithm是一种用于解决作业调度问题的遗传算法。作业调度问题是指如何合理地安排一系列作业的顺序和时间,以最大程度地提高生产效率和减少成本。遗传算法是一种模拟生物进化过程的优化算法,通过模拟自然选择、交叉和变异的操作来寻找问题的最优解。 在使用jssp-genetic-algorithm时,首先需要将作业调度问题转化为遗传算法的优化问题形式,然后确定适合问题特征的编码方式、选择适当的适应度函数和优化目标。接着,利用遗传算法的交叉和变异操作生成初始种群,并通过不断迭代和进化找到问题的最优解。 与传统的作业调度算法相比,jssp-genetic-algorithm具有以下优势:一是能够在较短的时间内找到较好的解决方案;二是能够处理复杂的作业调度问题,包括大规模和多目标优化问题;三是能够灵活地调整参数和使用各种启发式方法来提高求解效率。 但是,jssp-genetic-algorithm也存在一些局限性,例如对于某些问题可能无法找到全局最优解,需要根据具体问题特征进行调整和优化。总之,jssp-genetic-algorithm是一种有效的解决作业调度问题的方法,能够在实际生产中发挥重要作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • matlab求最值(极值) 98920
  • K-Means聚类算法 60117
  • 如何查看Ubuntu的内核是AMD、ARM、x86、x86_64 35233
  • mac IDEA java 没有javap 安装 The operation couldn’t be completed. Unable to locate a Java Runtime. 30318
  • linux 实时查看日志 最新最后100行 tail 29398

分类专栏

  • 区块链论文录用资讯 9篇
  • 强化学习 12篇
  • 华为机试机考 36篇
  • 论文期刊会议投稿 83篇
  • 区块链会议 18篇
  • GNN 2篇
  • DevOps 32篇
  • 测试 1篇
  • 报告 13篇
  • 数据管理 17篇
  • 英语 6篇
  • 性能监控 10篇
  • chainmaker 14篇
  • xuperchain 13篇
  • 并发编程 31篇
  • 区块链论文 1篇
  • 人工智能 14篇
  • 比赛 1篇
  • 笔记
  • 数字孪生
  • 云计算 3篇
  • 论文阅读记录
  • Golang 4篇
  • 分布式 12篇
  • go
  • 漏洞检测 6篇
  • kubernetes 117篇
  • 微信小程序 70篇
  • 区块链HyperLeger Fabric 60篇
  • 以太坊 79篇
  • 区块链 123篇
  • FISCO BCOS 87篇
  • 操作系统 4篇
  • docker容器 42篇
  • 区块链IPFS 3篇
  • 会计 2篇
  • 爬虫 5篇
  • JavaScript 21篇
  • Mysql 3篇
  • PHP 85篇
  • C++ 159篇
  • 数据库 25篇
  • CCF
  • 前端 28篇
  • Java 53篇
  • Python 90篇
  • Linux 68篇
  • 数学 4篇
  • QT
  • 大数据 3篇
  • 算法 88篇
  • 其它 14篇
  • 学习笔记 5篇
  • 软件工程 14篇
  • 应用软件 22篇
  • Matlab 2篇
  • Bootstrap 3篇
  • 面试 1篇
  • 计算机网络 10篇
  • 架构 1篇
  • oracle
  • 机器学习 2篇
  • ajax 1篇
  • 服务器 39篇

最新评论

  • Hyperledger fabric 并发控制机制 MVCC

    未寻得的旧梦: “出块前背书节点会对接收到的交易进行验证”,博主这个是不是应该在排序出块后通道内所有peer节点都对区块交易验证

  • layui中input、select、date日历的onchange事件无效 解决方法总结

    张茂盛797: 依托答辩 表情包

  • 百度翻译API 错误码: 52003,错误信息: UNAUTHORIZED USER

    鱼小旭: 为什么是泰罗

  • 区块链论文总结速读--CCF B会议 ICDCS 2023 共8篇

    普通网友: 学到了,细节很到位!【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • 区块链论文总结速读--CCF会议 NDSS 2024 共7篇

    普通网友: 学到了,细节很到位!【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

大家在看

  • (算法)双指针——盛水最多的容器 <对撞指针>
  • 扎克伯格引领AI开源革命:Meta在AI领域的开源策略赢得开发者青睐
  • 位置信息包
  • 渗透测试工具Cobalt strike-2.CS基础使用
  • 「网络编程」基于 UDP 协议实现回显服务器 727

最新文章

  • 最新区块链论文录用资讯CCF B—DASFAA 2024 共3篇
  • 神经网络 设计层数和神经元数量的考虑
  • module ‘plotting‘ has no attribute ‘EpisodeStats‘
2024
05月 35篇
04月 22篇
03月 2篇
02月 23篇
01月 17篇
2023年62篇
2022年317篇
2021年694篇
2020年306篇
2019年65篇
2018年26篇
2017年23篇
2016年35篇
2015年3篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件工程小施同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司龙华网站优化按天扣费价格黄南网络广告推广推荐蚌埠百搜标王多少钱宝鸡网站排名优化报价长葛建设网站价格天门如何制作网站哪家好成都seo推荐临夏外贸网站制作多少钱马鞍山网站建设报价铜川推广网站报价爱联SEO按天计费多少钱濮阳百度关键词包年推广多少钱松原百搜标王多少钱潍坊设计公司网站多少钱黑河关键词排名包年推广哪家好大丰SEO按天计费推荐佛山百度标王多少钱十堰至尊标王哪家好木棉湾阿里店铺托管梧州关键词按天扣费威海网站推广方案报价和田企业网站设计海西百搜标王公司白山网站建设价格海南阿里店铺托管价格焦作网络营销推荐深圳外贸网站建设公司白山seo网站优化哪家好平凉模板网站建设多少钱伊犁网站推广方案报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化