遗传算法中的交叉、变异与控制参数详解
1. 交叉操作
交叉操作是遗传算法中产生新个体的重要方式,下面将分别介绍二进制表示和浮点表示下的交叉操作。
1.1 二进制表示的交叉操作
大多数二进制表示的交叉算子是有性的,应用于两个选定的父代。若用 (x_1(t)) 和 (x_2(t)) 表示两个选定的父代,重组过程总结在算法 9.1 中。其中,(m(t)) 是一个掩码,用于指定父代的哪些位应该交换以生成子代 (\tilde{x}_1(t)) 和 (\tilde{x}_2(t))。以下是几种计算掩码的交叉算子:
- 单点交叉 :Holland 建议在父代之间交换基因段而不是单个基因。单点交叉算子随机选择一个交叉点,然后交换两个父代在该点之后的位串。其掩码计算使用算法 9.2。
- 两点交叉 :随机选择两个位位置,交换这两个点之间的位串。掩码计算使用算法 9.3,该算子可推广到 n 点交叉。
- 均匀交叉 :随机创建 (n_x) 维的掩码,其中 (p_x) 是位交换概率。若 (p_x = 0.5),则每个位有相等的交换机会。其掩码计算使用算法 9.4。
算法 9.1 位串交叉的通用算法
Let ˜x1(t) = x1(t) and ˜x2(t) = x2(t);
if U(0, 1) ≤ pc then
Compute the binary mask, m(t);
for j = 1, ..., nx do
if mj = 1
超级会员免费看
订阅专栏 解锁全文
23万+

被折叠的 条评论
为什么被折叠?



