gpt4 book ai didi

encoding - 遗传算法中使用值编码方法时如何交叉 parent ?

转载 作者:行者123 更新时间:2023-11-30 08:49:55 24 4
gpt4 key购买 nike

遗传算法中有一个阶段,我们应该选择将染色体从 parent 交叉到后代。

通过二进制形式很容易做到。

但是如果我们使用值编码对染色体进行编码怎么办?

假设我的染色体中有一位是 DOUBLE 类型值,假设是 0.99,它的范围是 (0-1),因为它代表一个概率。

如何交叉这个 DOUBLE 数字?

转换为二进制以交叉然后再转换回来...?

最佳答案

您可以使用混合交叉运算符(α = 0 的变体):

p1    first parent
p2 second parent
u random number in [0, 1]

offspring = (1 - u) * p1 + u * p2

假设p1 < p2 ,此交叉算子在 [p1, p2] 范围内创建一个随机解。 .

混合交叉算子有一个有趣的特性,即如果父解之间的差异很小,则子解和父解之间的差异也很小。因此,当前种群的传播决定了最终种群中解决方案的传播(这是 adaptation 的一种形式)。

混合交叉算子 (BLX-α) 的更高级版本和另一个众所周知的算子(模拟二元交叉)在 Self-Adaptive Genetic Algorithms with Simulated Binary Crossover 中进行了描述。作者:Kalyanmoy Deb 和 Hans-Georg Beyer(简短摘要 here)。

<小时/>

Differential Evolution是另一种可能性。

关于encoding - 遗传算法中使用值编码方法时如何交叉 parent ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37021934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com