如何实现选择和交叉使用遗传算法求C中数的平方根

时间:2012-10-11 07:33:28

标签: c++ c algorithm genetic-algorithm

我试图用遗传算法找出一个浮点数的平方根。
我初始化了随机数和健身函数。如何从人口和统一交叉中实施父母的选择?

1 个答案:

答案 0 :(得分:2)

选择
吉拉德(你正在使用的那个)给出的功能似乎很好。为什么不遵循标准程序?您可以在wikipedia

上找到一些想法

CROSSOVER
如果您将候选者视为32位向量(实际上是31),则进行均匀交叉包括选择具有半概率的父对象的位。

这个想法将是:

  • 掷硬币
  • 如果头像是父母,
  • 如果尾巴采取父母两个

以编程方式从2个父母创建子女的有效方法是生成随机32位数r,并且父母ab执行:

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