我要解决包含使用遗传算法n个变量n个线性方程的系统。
我有在限定所述交叉操作作为溶液可以由浮点值的难度。 我该如何继续? 似乎有可能,但是这是我与遗传算法的第一次相遇。
假设我们有解决
x + 2y = 1
2x + 8y = 3
答案是X = 1/2并且y = 1/4。
我们如何模型的问题?
更新 :看看你能破译从纸张任何http://www.masaumnet.com/archives/mjbas/volume1/issue2/mjbas010205.pdf 。
我要解决包含使用遗传算法n个变量n个线性方程的系统。
我有在限定所述交叉操作作为溶液可以由浮点值的难度。 我该如何继续? 似乎有可能,但是这是我与遗传算法的第一次相遇。
假设我们有解决
x + 2y = 1
2x + 8y = 3
答案是X = 1/2并且y = 1/4。
我们如何模型的问题?
更新 :看看你能破译从纸张任何http://www.masaumnet.com/archives/mjbas/volume1/issue2/mjbas010205.pdf 。
一条路径是在选择自己的浮点表示,只要你想这将释放你有多少价值。 当然,这会让你负责执行算术运算。 也许你可以找到一个BIGNUM库,你可以改变。
你也可以使用如分解平台的本地浮点frexp
在交叉步,然后剔除期间重组它。
你可以染色体是n浮点数(双打),或者你可以通过使用一个联合重新解释为位串:
const int n = 100;
union Chromosome {
double val[n];
unsigned char bits[n * sizeof(double)];
};
...那么你可以使用该解决方案/健身价值的诠释了双重价值,以及位繁殖/交叉/变异。
祝好运!
你根本就没有。 有很多的可以适用于解决线性系统不同的方法。 但“遗传算法”是不是想到的。 你会使用遗传算法来解决问题combinatorical(挑选一个元件的有限集合)。
您通常使用解决因式分解(QR,LU)或迭代算法线性系统(高斯 - 赛德尔,CG,...)
您将需要考虑使用一个真正的编码遗传算法,而不是二进制编码的遗传算法在你提到的文件建议。 事实上,如果您使用的是二进制编码的遗传算法,那么你将无法找到解决的方程式,如果你的“X”,“Y”可以取负值。
因此,你需要使用一个真正的编码遗传算法。 要么你可以自己编写整个遗传算法,或者你可以使用一个很好的现有RGA代码来解决你的问题。 你只需要自定义适应度函数为您的需要。 在这里,您可以使用建议的文件之一。 这是很容易!
您可以考虑使用从RGA实施http://www.iitk.ac.in/kangal/codes.shtml 。