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



我正试图用遗传算法找出浮点数的平方根
我已经初始化了随机数的总体和适应度函数。如何实现从群体和统一交叉中选择父母

SELECTION
gilad(您正在使用的函数)提供的函数似乎很好。为什么不遵循标准程序呢?你可以在维基百科上找到一些想法

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

想法是:

  • 扔硬币
  • 如果头部接管父对象
  • 如果尾巴接上了母二

从程序上讲,从两个父母创建孩子的一种有效方法是生成一个随机的32位数字r,并且给定父母ab做:

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