单个数字可以直观地看到和理解,但是如果将两个数字连接起来并进行操作,那么它就不是一个单独的数字,而是一个独立的组合。大家会明白是什么意思吗?相信很多人如果是第一次看到,肯定是看不懂的。就像我们编程的时候,每一次计算之间都有各种各样的算术符号,使得它们具有不同的含义。因此,系统的学习非常重要。是的,让我们来看看如何学习一个好的遗传算法。
1.
遗传算法主要流程
2.
遗传算法理论基础
l
模式(
Schema):模式指有相同特征的子集,比如二进制字符串11***\(*为通配符\)可以代表八个个体(2x2x2)。
l
阶(
Order):模式中确定位置的个数成为阶,比如1110*的阶为1
l
定义距(
Defining Length):模式中第一个确定位置和最后一个确定位置之间的距离成为定义距
3.
遗传算法与传统算法的区别
l
遗传算法中的种群总是保持一定数量的个体(每个个体就是问题的解),而传统算法中每次迭代一般只保留最优解。
l
遗传算法用个体
/基因型来代表问题的解,而传统算法的解一般都更直观。
l
遗传计算通过计算适应度来计算最优解,而传统算法一般通过导数或梯度来计算最优解。
l
遗传算法是由概率驱动的,例如杂交概率、变异概率等,而传统算法通常是确定性的。
PS:因为遗传算法的每一次迭代就朝着最优解的方向前进,即便遗传算法的过程有不确定性,但遗传算法最终的最优解一般都是确定的。
4.
什么情景使用遗传算法
l
当遇到以下类型的问题时,可以尝试遗传算法:
l
当问题的数学表达过于复杂或难以用数学表达时:遗传算法只需要定义个体、种群、选择、杂交、变异方法和适应度方程就可以找到最优解。
l
当数据嘈杂时:遗传算法受数据异常值的影响较小。
l
当外部环境不断变化时:遗传算法种群始终保持一定数量的个体(解),因此遗传算法可以适应数据的变化,为新的环境产生新的最优解。
相信大家在浏览完遗传算法系统学习的各个阶段的内容,并一一攻破之后,对遗传算法的入门就会变得更加容易。
~如果大家对这个算法感兴趣的话,可以多浏览几遍以上内容,就可以了解怎么开始学习遗传算法啦~
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在cmd中找到已安装的Python201/04
- ♥ Python numpy 中的掩码选择子集10/09
- ♥ 如何实现IDEA开发python?01/01
- ♥ python如何记录日志12/28
- ♥ 一文看懂Python中的操作12/03
- ♥ 如何包装python3的打印功能的输出09/02
内容反馈