我想使用一种遗传算法来求解具有两个变量的两个线性方程组的简单系统。这主要是为了帮助我更好地了解它们的工作方式。

一切似乎都很简单,但是我不确定如何在染色体上为这个问题编码可能的解决方案。

我将有两个要在染色体中编码的变量,以表示解决方案。如果每个变量都可以表示一个8位数字,那么我会制作一个16位二进制编码的染色体(1和0的字符串)。

我只是不太确定那将如何工作。如果选择两个亲本进行育种,那么如何从二进制字符串中随机选择基因会带来更好的解决方案?这就是为什么我认为二进制字符串不起作用的原因,所以任何答复将不胜感激!

最佳答案

为什么不将数字用作数字?您无需在GA中使用二进制编码。有一些变异和交叉运算符可用于实值编码。正如您所说的,这是一个学习示例。.我建议您尝试两种方法,以更快地收敛实值编码。

对于二进制编码,我将使用单点交叉和位翻转突变。对于实值编码,我将使用Blend-Alpha-Beta交叉(BLX-a-b)或模拟二进制交叉(SBX)和正态分布变异。您可以在HeuristicLab的SingleObjectiveTestFunctions上尝试其中的一些操作符以及更多操作符。

关于genetic-algorithm - 如何在遗传算法中将数字表示为染色体?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16756263/

10-13 06:04