0.25 的交叉指数在真实编码的遗传算法中意味着什么?

What does crossover index of 0.25 means in Genetic algorithm for real encoding?

我熟悉二进制表示中的交叉和变异索引,但在实际编码中,我遇到了几篇文章,其中 交叉索引 变异索引 用作参数值。

例如,我们有 300 的人口规模和 30 个决策变量,那么交叉指数 = 0.25 意味着什么?

也对100+current generation number的突变指数感到困惑。

跨界指数

已经开发了一些 real-coded 交叉运算符,可以从两个 parent 解创建两个 children 解。

也许您正在阅读的论文使用了模拟二进制交叉 (SBX)。

对于此运算符,交叉指数 (η) 是一个 non-negative 实参。 η 的大值给出了创建附近 parent 解决方案的更高概率,而 η 的小值允许选择较远的解决方案作为 children 解决方案。


SBX 算法的分步过程是:

  1. 选择一个随机数 u ∈ [0; 1[
  2. 计算βq:

  3. 使用这些方程计算 children 解:

    这里Xi(1, t+1)Xi(2, t+1)是从两个parentXi(1, t)Xi(2, t).

    得到的children

C 中可能的实现是 here (also take a look at Simulated Binary Crossover (SBX) crossover operator in Scala genetic algorithm (GA) library and Simulated Binary Crossover (SBX) crossover operator example)。

因此当 η=2 / η=5 时,创建 children 连续变量解的概率分布是:

Parents 标记为 o,您可以看到值越大,创建 near-parent 个解决方案的概率就越高。


SBX 的参考论文是:

Simulated Binary Crossover for Continuous Search Space

Kalyanmoy Deb, Ram Bhushan Agrawal

1995 (PDF here)

突变指数

变异指数 (ηₘ)(可能)是 Deb 和 Agrawal (1999) 建议的多项式变异算子的一个参数。

ηₘ 在变量中引起 O((b – a) / ηₘ) 的扰动效应,其中 ab 是变量的下限和上限。

那么后代使用更大的ηₘ是合理的。