gpt4 book ai didi

c++ - 在C语言中使用遗传算法求一个数的平方根时如何实现选择和交叉

转载 作者:可可西里 更新时间:2023-11-01 18:39:14 25 4
gpt4 key购买 nike

我正在尝试使用遗传算法找出 float 的平方根。
我已经初始化了随机数和适应度函数。如何实现从种群和统一交叉中选择 parent ?

最佳答案

选择
gilad(您正在使用的)提供的功能似乎不错。为什么不遵循标准程序呢?您可以在 wikipedia 上找到一些想法。

交叉
如果您将候选对象视为 32 位 vector (实际上是 31 位),那么进行均匀交叉就是以一半的概率选择父代的位。

这个想法是:

  • 抛硬币
  • 如果 head 接替 parent ,
  • 如果尾部接受 parent 二

从程序上讲,从 2 个 parent 创建 child 的有效方法是生成一个随机的 32 位数字 r,并给定 parent ab做:

 child = (r & a) | (~r & b);

关于c++ - 在C语言中使用遗传算法求一个数的平方根时如何实现选择和交叉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12834434/

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