带数字的遗传算法

时间:2013-12-18 19:21:36

标签: genetic-algorithm

我必须解决这个问题:找到0到25​​5之间的所有数字,这些数字具有相同数量的0和1的二进制表示。例如,240是11110000,153是10011001.我需要使用遗传算法。

我有一个8位[0,0,0,0,0,0,0,0]的集合中的编码和质量函数(X中的1的数量类似于0的数量)。

我的问题是,我应该将哪些功能用作遗传算子?我一直在考虑这个,但我找不到适合这个问题的功能。

另一件事:这还不够,还是我还需要更多东西?

我的目标是针对我的问题吗?或者我必须更改我定义的其他功能?

谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

如果通过遗传算子你的意思是交叉功能,我认为从一开始就没有错 非常基本的交叉。

首先,请两个父母:

parent1 = [0 0 0 1 1 1 1 1]
parent2 = [1 1 1 0 0 0 0 0]

然后得到一个随机的切点,比如说3.此时切断父母:

parent1 = [0 0 0]  [1 1 1 1 1]
parent2 = [1 1 1]  [0 0 0 0 0]

现在重新组合两个父母以获得两个新孩子。 parent1的第一部分与last parent2的一部分(依此类推......):

child1 = [0 0 0 0 0 0 0 0]
child2 = [1 1 1 1 1 1 1 1]