单独的数字大家可以直观看到理解,但是如果两个数字之间连接运算,那它就不是单独的数字,而是一个独立的组合,那大家还会理解是什么意思吗?相信很多人如果第一次看到,那肯定不理解,就跟我们编程时候,每个算数之间都有着各种各种的运算符号,让他们的意义不同,因此,系统的学习是非常重要的,一起来看下如何学习好遗传算法。
1. 遗传算法主要流程
2. 遗传算法理论基础
l 模式(Schema):模式指有相同特征的子集,比如二进制字符串11***\(*为通配符\)可以代表八个个体(2x2x2)。
l 阶(Order):模式中确定位置的个数成为阶,比如1110*的阶为1
l 定义距(Defining Length):模式中第一个确定位置和最后一个确定位置之间的距离成为定义距
3. 遗传算法与传统算法的区别
l 遗传算法中的种群中始终维持一定数量的个体(每个个体都是问题的解),而传统算法中每次迭代都一般只保留最优解。
l 遗传算法用个体/基因型来代表问题的解,而传统算法的解一般都更直观。
l 遗传算通过计算适应度来计算最优解,而传统算法一般通过导数或梯度来计算最优解。
l 遗传算由概率驱动,比如杂交概率、突变概率等,而传统算法一般都是有确定性的。PS:因为遗传算法的每一次迭代就朝着最优解的方向前进,即便遗传算法的过程有不确定性,但遗传算法最终的最优解一般都是确定的。
4. 什么情景使用遗传算法
l 当遇到以下类型的问题时,可以尝试遗传算法:
l 当问题的数学表达过于复杂或很难用数学表达时:遗传算法只需要定义个体、种群,选择、杂交、突变方法和适应度方程就可以求最优解。
l 当数据含较多噪音时:遗传算法受数据中异常值的影响较小。
l 当外部环境在不断变化时:遗传算法的种群始终保有一定数量的个体(解),因此遗传算法可以适应数据的改变,并针对新的环境产生新的最优解。
相信大家在浏览过系统的学习遗传算法各个阶段的内容,逐一去攻破,会比较容易好上手遗传算法的哦~如果大家对这个算法感兴趣的话,可以多浏览几遍以上内容,就可以了解怎么开始学习遗传算法啦~