保留成本不高的个体。因而,适应度函数被定义为该方案下总体成本平方的倒数。
3.2.3 自然选择的模拟
选择的过程就是上帝依据适应度函数来决定个体去留的过程。显然,适应度越高,对应
的基因型就越符合我们的要求,被选中存活的概率就越大。为此,笔者首先将单个个体的适
应度除以总的适应度,确定为个体被选中的概率。
其中, 为第 个个体的适应度, 为适应度之和。显然,
每个概率唯一对应 0~1 上的一段范围。通过轮盘赌法,可以在从 0 至 1 的范围内产生一个随
机数,被选中的个体即表示未被淘汰,可以在下一轮中充当父母,产生子代,实现了使得优
秀基因尽可能代代相传的目的。
3.2.3 精英个体的保留
为防止适应度高的基因因为后期的繁育过程而丢失,笔者采取了精英保护机制,即在选
择之前,把适应度最高的 8 个个体直接复制到了下一代。之所以仅仅选择 8 个最优个体作为
父本、母本直接参与下一代,是因为倘若精英个体数目选择过多,将会导致之后个体可能产
生的新优势难以凸显出来。
3.2.4 交叉互换
交叉互换是指父本、母本进行繁殖活动,亲本的染色体之间出现交叉从而产生具有新
基因型个体的过程。
为了尽可能真实地模拟真实环境,笔者将交叉概率设置为1。与此同时,为了简化操作,
笔者采取单点交叉法,即在随机产生的交换位点前,两个染色体的基因不发生改变,而之后
部分整体交换,希望借此来不断产生具有新基因型的新种群个体。
3.2.5 基因突变
生物体的基因型在某些时刻偶尔也会发生改变,但异变率往往并不高,且往往都是有
害变异。在本案例中,笔者将变异率设置为0.001。当随机数矩阵中格子的数值低于该概率,
那么该格子对应的基因将会发生翻转,由于采用二进制编码,相关基因的数值将会从0变1,
或者1变0。