如何在遗传算法中将数字表示为染色体?

Zac*_*ach 2 genetic-algorithm

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

一切看起来都很简单,但我不确定如何在染色体中编码可能的解决方案来解决这个问题.

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

我不太确定这是怎么回事.如果选择两个亲本进行育种,如何从二进制字符串中随机选择基因会产生更好的解决方案?这就是为什么我不认为二进制字符串可以工作,所以任何答案都将非常感谢!

And*_*eas 6

为什么不将数字用作数字?您不必在GA中使用二进制编码.有突变和交叉运算符适用于实值编码.正如你所说这是一个学习的例子..我建议你尝试两种方法,实值编码应该更快收敛.

对于二进制编码,我会使用单点交叉和位翻转变异.对于实值编码,我会使用Blend-Alpha-Beta Crossover(BLX-ab)或Simulated Binary Crossover(SBX)和Normal Distributed Mutation.您可以在HeuristicLab中的SingleObjectiveTestFunctions上尝试其中一些和更多运算符.