基因与染色体
染色体为基因的组合,把染色体看作一串数值,每个位置上为1或0,1表示该位置基因存在,0表示不存在。如两条染色体:
A1: 1 0 0 1 0 1
A2: 0 0 1 1 1 0
根据每个位置上的基因的权重,把数值为1的位置上的基因各自的权重相加,能计算出该条染色体的总权重。若假设权重更高的染色体更容易生存,权重较低的染色体被淘汰。进行n轮的“进化”后,留下来的染色体就是我们想要的结果。
选择
我们需要在许多条染色体中,选择两条染色体进行“交配”,产生下一代。那么,该如何选出这两条染色体呢?
轮盘赌选择法(Roulette Wheel Selection method)
在一个圆盘上,分割出大小相同或不同的扇形区域表示各个染色体,旋转指针,指针停留的区域对应的染色体作为选择的结果,指针停留两次,选出两个染色体作为亲本。
可以指定一个或两个固定指针,在第一轮选择亲本时使用。
交叉
使用选择的两个染色体,对其每个位置上的基因进行混合,得到新的子代染色体。
单点交叉
随机选择一个交叉点,将两条染色体在交叉点后的部分进行对调。如选取上面A1和A2两条染色体作为亲本,把[2]位置后作为交叉点,将其后部分进行对调,产生两条新染色体A3和A4。