优化算法--遗传算法

什么是遗传算法

优化算法大致可以分为两大类:第一类是数值最优化方法:例如我们熟悉的梯度法、牛顿法、高斯牛顿法、共轭梯度法等等,主要表现为对目标函数的数值求解。另一类为启发式搜索算法,这类算法以模拟自然或者生物活动过程,通过不断采样的求解优化问题的方法,例如蚁群算法、粒子群算法、模拟退火、遗传算法等等。在日常学习中我们接触地大多数为第一类方法。当然在某些场合中偶尔会遇到启发式搜索算法,今天来聊一聊最基础地启发式搜索算法之一–遗传算法。

遗传算法的过程

遗传算法是模拟人类染色体进化地一类方法。其过程如下:
在这里插入图片描述

简要地解释下图中的术语:
染色体:遗传算法中的运算基本单元。
编码:如何将数字转为染色体的过程,最一般的采用二进制编码,即将优化问题中的十进制数值,转为二进制编码的二进制。
种群:多个染色体构成了种群,初始化种群即随机选择生成多个染色体。
种群适应度:评价种群对优化函数的效果
选择:根据每个基因的适应度,按照一定的概率选择染色体
交叉:两个染色体的某一相同位置处DNA被切断,分别交叉组合形成两个新的染色体。也称基因重组或杂交。
突变:同一染色体,某些染色体片段进行突变。
进化(演化):重复选择、交叉、突变过程,直至完成算法过程。
结合示例代码更好地理解遗传算法。
例如求解函数 f(x) = x + 10sin(5x) + 7cos(4x) 在区间[-2, 9]的最大值,会得到如下结果:
在这里插入图片描述

总结来说:染色体表示了自变量的范围,适应度评估了染色体对优化函数的影响(评价极值的度量),选择、交叉、变异就是不断随机生成新的自变量,再通过适应度寻找极值,可以想象通过无限次的进化(不断随机选择自变量),总能达到目标函数极值。
参考:
1
2
3
4
5

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值