算法 - GA中的交叉算子

本文深入探讨了基因交叉的概念,包括实数编码重组、二进制编码交叉、单点交叉、洗牌交叉等算法,并介绍了多种交叉算子,如模拟二进制交叉(SBX)、Partial-Mapped Crossover(PMX)等,以及群体交叉算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基因交叉,或者基因重组,就是把两个父体部分结构加以替换,生成新的个体的操作,习惯上对实数编码的操作叫做重组(Recombination),对二进制编码的操作称为交叉(crossover)1

  1. 重组算法(Recombination)
    实值重组产生子个体一般是用下边这个算法:
    子个体=父个体1 + a × ( 父个体2 - 父个体1 )
    这里a是一个比例因子,可以由[ -d, 1+d] 上边服从均匀分布的随机数产生。
    不同的重组算法,a的取值是不同的,一般来讲,d=0.25是一个比较好的选择。

  2. 交叉算子
    如上文遗传算法中的数据结构中所讲,基因的二进制编码有直接编码(Normal)和Gray编码之分,以下所说算法,均适用于这两种算法。

假设基因的二进制编码长度为N,那么这些编码之间有N-1个空隙,可供交叉使用。二进制交叉算法就是如何选择空隙,选择多少个空隙。
以下将各走极端的选择一个空隙交叉的单点交叉算法,和选择N-1个空隙进行交叉的洗牌交叉算子大致说一下。

(1) 单点交叉
在二进制编码中,随机选择一个点,以这个点为界限,相互交换变量。

父个体1 011111110000000000
父个体2 000000001111111111
如粗体前边位置为所选择的交叉点,那么生成的子个体为:
子个体1 011111111111111111
子个体2 000000000000000000

(2)洗牌交叉
洗牌交叉就是,将一个父基因取一半,再上来自另外一个父基因的一半,构成一个新的子基因。

(3)模拟二进制交叉(SBX)2
在这里插入图片描述

(4)Partial-Mapped Crossover (PMX)

(5)Order Crossover (OX)

(6)Position-based Crossover (PBX)

(7)Order-Based Crossover (OBX)

(8)Cycle Crossover (CX)

(9)Subtour Exchange Crossover

(10)轮盘赌

(11)DE
在这里插入图片描述

  1. 另外的
    (1)群体中的交叉算法
    将经过选择考验的个体放入一个群体,当放入的个体数量达到要求后,对里边的个体进行两两交叉。

(2) 交叉函数定义
种群的交叉只涉及一个交叉主体,而基因/个体的交叉涉及两个交叉主体。


参考:


  1. https://blog.csdn.net/u012750702/article/details/54563515 ↩︎

  2. https://blog.csdn.net/u013555719/article/details/97395038 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值