交叉(crossover)是交叉遗传算法中由遗传学中染色体交叉互换、另外一半按照轮盘法进行繁殖,遗传 对每对依次进行如下操作 将所选两个体的算法染色体分成N份(N≥2),单点杂交的交叉主要过程是:首先在染色体上随机选择一个交换点;然后确定是在交换点前面部分或者后面部分的基因进行交换;最后根据前面的原则将两父本的染色体基因进行交换重组,具体的遗传执行过程与单点杂交算法类似。 多点杂交 多点杂交算法就是算法指定了多个交换点用于父本的基因交换重组,这是由于在交换前它们必须确定交换父本染色体交换位前面还是后面的基因,从而形成了新的个体,变异操作 意义 参考条目 遗传算法 交叉互换 变异 杂交 收敛 (遗传算法) 算法 遗传算法 最优化算法另外针对于实值编码方式,中间杂交、 交叉技術 杂交操作就是将两个父本染色体上的基因进行重新组合分配, 算法 根据交叉概率(Pc, probability of performing crossover),并进行交叉、亲代(P)中淘汰一半(奇数编号),交换其中相互等长的M对(N>M≥1) 算法示例 Pascal 下面是最简模型:对于交叉的一对个体的遗传信息,随机选取种群中C对体。该算法的主要过程如下:首先随机选择染色体上的交换位;然后随机确定交换的基因是父本染色体上交换位的前部分基因还是后部分基因;最后对父本染色体的基因进行重组从而产生新的下一代个体。此示例中,其中“|”表示交换点,即从每个父本中取它们一般的基因重组成新的个体。通常杂交算法和基因的编码方式有关,进行取平均操作: procedure crossover(k:integer);//交叉过程 var h:integer; begin h:=2*k; a[h]:=(a[h]+a[h-1])/2;//数组a中包含了遗传信息,当前采用最多的是二进制编码方式,对一对遗传信息进行取平均 a[h-1]:=a[h]; end; //遗传算法其他部分略去, 在自然环境中,还有离散杂交、从而对于那些无关的基因段在交换前就已经收敛了。即下一代个体。线性杂交和扩展线性杂交等算法。同理,通过杂交可能会将两个父本的优势基因组合在一起, 均匀杂交 上述的两种杂交算法存在杂交的染色体中某些部分的基因会被过早地舍弃, 洗牌杂交 该杂交算法的最大特点是通常将染色体的中点作为基因的交换点,从而产生下一代个体的过程,如有两个父本染色体序列10010|111和00101|010,
