品易云推流 关闭
文章详情页
文章 > Python基础教程 > 如何学习python遗传算法?

如何学习python遗传算法?

头像

2020-11-12 14:34:582629浏览 · 0收藏 · 0评论

单独的数字大家可以直观看到理解,但是如果两个数字之间连接运算,那它就不是单独的数字,而是一个独立的组合,那大家还会理解是什么意思吗?相信很多人如果第一次看到,那肯定不理解,就跟我们编程时候,每个算数之间都有着各种各种的运算符号,让他们的意义不同,因此,系统的学习是非常重要的,一起来看下如何学习好遗传算法。

1. 遗传算法主要流程

 2. 遗传算法理论基础

模式(Schema):模式指有相同特征的子集,比如二进制字符串11***\(*为通配符\)可以代表八个个体(2x2x2)。

阶(Order):模式中确定位置的个数成为阶,比如1110*的阶为1

定义距(Defining Length):模式中第一个确定位置和最后一个确定位置之间的距离成为定义距

3. 遗传算法与传统算法的区别

遗传算法中的种群中始终维持一定数量的个体(每个个体都是问题的解),而传统算法中每次迭代都一般只保留最优解。

遗传算法用个体/基因型来代表问题的解,而传统算法的解一般都更直观。

遗传算通过计算适应度来计算最优解,而传统算法一般通过导数或梯度来计算最优解。

遗传算由概率驱动,比如杂交概率、突变概率等,而传统算法一般都是有确定性的。PS:因为遗传算法的每一次迭代就朝着最优解的方向前进,即便遗传算法的过程有不确定性,但遗传算法最终的最优解一般都是确定的。

4. 什么情景使用遗传算法

当遇到以下类型的问题时,可以尝试遗传算法:

当问题的数学表达过于复杂或很难用数学表达时:遗传算法只需要定义个体、种群,选择、杂交、突变方法和适应度方程就可以求最优解。

当数据含较多噪音时:遗传算法受数据中异常值的影响较小。

当外部环境在不断变化时:遗传算法的种群始终保有一定数量的个体(解),因此遗传算法可以适应数据的改变,并针对新的环境产生新的最优解。

相信大家在浏览过系统的学习遗传算法各个阶段的内容,逐一去攻破,会比较容易好上手遗传算法的哦~如果大家对这个算法感兴趣的话,可以多浏览几遍以上内容,就可以了解怎么开始学习遗传算法啦~

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

底部广告图