一起养成写作习惯!这是我参与「日新计划 4 月更文挑战」的第12天,点击查看活动详情。
1. 遗传算法
此处简单概括一下遗传算法大体思想:遗传算法首先需要把初始解集以某种手段编译二进制八进制十进制十六进制转换成遗传基因序列(染算法的五个特性色体),如下图所示就是一个编译完成的染色体,这个染色体代表(对应)着一个初始解。算法是指什么当算法的特征然,为了涵盖所有种群基因,需要先编译产生很多很多类似的染色体。 然后,很多很多这样的染色体就组成一个初始种群。指针万用表读数图解接下来就开始繁衍,计算出该种群内的每个染色体的优劣程度(适应度)进行比较,淘汰一指针是什么部分比较差的个体。
对于剩下的个体进行基因重组,两两染色体进行基因序列交换(交叉),组成新的子代染色体序列。对于新的子代染色体序列,有一定几率出现变异(染色体二进制的运算规则基因序列某几个基因发生改变)。
接算法是指什么下来,这些子代作为父代,再重复以上所有操作二进制八进制十进制十六进制转换,实现了优胜劣汰,经过多代的繁衍,最终省下来的染色体就是找到的最优解。
遗传算法基本思想算法分析的目的是解释以及相关专业术语请参考智能算法-遗传算法(1) – ()。
遗传算法实例详解请参考智能算法-遗传算法(2) – ()
2. 关键要素选取
2.1 编码方式指针数组和数组指针的区别
常用的编码方式主要有以下几种,其中前三种更为常用。总之编码方式就是一个翻译过程,把问题的一个解(一种方案),翻译成一串代号。
- 二进制编码: 本方法使用于一些0-1问题,每个要素有两种选择,要么为0,要么为1。例如,111算法的特征1001100111011111100
- 整数编码: 每个基因片段都由整数表示,例如3 4 1 2 5
- 实数编码:指针式万用表 例如,3.1 5.2 4.3 6.0 8.2
- 格雷码编码
- 符号编码
- DNA编码
2.2 适应度函数的选取
适应度主要反应个体的“好坏”程度(一致性)。适应度函数的选取直接影响遗传算法的收敛速度以及能否找到最优解。通算法分析的目的是常情况下,适应度函数都是由问题的目标函数直接或间接转换而来。例如,最大化问题可以直接由目标函数充当适应度函数,目标值=适应二进制计算器度值也就说明目标值越大二进制转化为十进制,适应度值也越大,也就代表这个个体越好。
最小化问题,可以选择目标函数的相反数作为算法的五个特性适应度函数,目标值越小(例如1<1指针万用表读数图解0),二进制换成十进制算法此个体越好,适应度值越大(-1>-10),适应度值反映了该个体的好坏程度,即此个体越“好”,适应指针万用表怎么读数度值算法的特征越大。
还有很多其他的构造方法,也可以采取一些非线性(曲线变化)的函数来表示,总之需要遵循“一致性”原则。
适应度函数的选择二进制八进制十进制十六进制转换会导致一些问题:
- 进化二进制换成十进制算法初期,个别超常个体(某个体适应值太大了,能力超群)控制选择过程
- 进化末期,个体差异太小(大家适应值都差的微乎其微)导致陷入局部极值
2.3 选取方式
- 轮盘赌选择法:把每个个体适应度,依照该个体适应度占总体适应度的概率,做成一个圆盘,如下所示。转动 nn(根算法分析的目的是据题意自行二进制怎么算设定)次圆盘,被转到的个体留下,其余淘汰掉。
- 锦标赛选择法:每算法的时间复杂度取决于次从所有二进制个体中抽取随机抽取nn个个体,保留下其中最好的,重复此过程抽取mm次,所有保留下来的个体放一起算法设计与分析就是选出来的个体。
- 随机遍历抽样法:设定n为需要选择的个体数目,等距离选择个体,选择指针的距离为1/n1/n。第一个指针的位置由[0,l/n][0,l/n]区间的均匀随机数决定。如下图所示,首先,按照个体适应度占总体适应度的概率给每个个体划分线段,图中划分出10个线段(代表1010个个体)。二进制亡者列车然后,我们等间距使用指针来指向此线段,被指到的个体就是被选择出的个体,图中选出的个体为1,2,3,4,6,81,2,3,4,6,8。