我想使用遗传算法来解决具有两个变量的两个线性方程的简单系统。这主要是为了帮助我更好地理解它们的工作原理。
一切看起来都很简单,但我不确定如何在染色体中编码可能的解决方案来解决这个问题。
我将有两个变量,我想在染色体中编码来代表一个解决方案。如果每个变量都可以表示为8位数,那么我是否会制作一个16位二进制编码的染色体(1和0的字符串)。
我不太确定这是怎么回事。如果选择两个亲本进行育种,如何从二进制字符串中随机选择基因会产生更好的解决方案?这就是为什么我不认为二进制字符串可以工作,所以任何答案都将非常感谢!
答案 0 :(得分:6)
为什么不将数字用作数字?您不必在GA中使用二进制编码。有突变和交叉运算符可以很好地用于实值编码。正如你所说这是一个学习的例子..我建议你尝试两种方法,实值编码应该更快收敛。
对于二进制编码,我会使用单点交叉和位翻转变异。对于实值编码,我会使用Blend-Alpha-Beta Crossover(BLX-a-b)或Simulated Binary Crossover(SBX)和Normal Distributed Mutation。您可以在HeuristicLab中的SingleObjectiveTestFunctions上尝试其中一些和更多运算符。