我对理解遗传算法的过程有一个问题。我发现了一个函数在区间上最大化的例子,我想我理解了它们,但是如何用遗传算法来求解,例如,一个二次方程?
假设我们想找到一个高达4位数的解决方案,那么对数字进行编码的正确表示是什么什么可以作为适应度函数来评估每个数字?
如有任何帮助,我们将不胜感激

最佳答案

如果你想解一个二次方程

a * x^2 + b * x + c = 0

那么您只需要一个变量x作为表示你可以用
f(x) = abs(a * x^2 + b * x + c)

作为适应度函数,其精度与当时相同,所以需要最小化。
但是由于只有一个变量,很难进行交叉,你可以使用10个数字,然后取平均值得到x,或者只取交叉时两个数字的平均值。同样,对于变异,而不是完全覆盖x,你可以用0.5到2之间的随机数乘以它。

关于algorithm - 遗传算法求解二次方程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41047229/

10-11 12:57