【问题标题】:Genetic Algorithm with numbers带数字的遗传算法
【发布时间】:2013-12-19 21:58:48
【问题描述】:

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

我有编码,一组 8 位 [0,0,0,0,0,0,0,0] 和质量函数(X 中 1 的数量与 0 的数量相似)。

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

还有一件事:这就够了,还是我需要更多的东西?

我是否针对我的问题好吗?或者我必须更改我定义的其他函数?

感谢您的宝贵时间!

【问题讨论】:

  • 请注意,这只是00001111 的所有排列的列表。
  • 我知道,但我需要用遗传算法来做 :)

标签: genetic-algorithm


【解决方案1】:

如果遗传算子是指交叉函数,我认为从 a 开始没有错 非常基本的交叉。

首先,带两个父母:

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 的第一部分和最后一个 parent2 的一部分(等等...):

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

【讨论】:

    猜你喜欢
    • 2011-01-11
    • 2011-08-03
    • 1970-01-01
    • 2012-07-07
    • 2011-07-22
    • 1970-01-01
    • 2018-05-10
    • 2017-04-16
    • 2015-05-08
    相关资源
    最近更新 更多