【问题标题】:Efficient genetic algorithm高效的遗传算法
【发布时间】:2017-02-10 21:13:56
【问题描述】:

考虑这个问题:有一个包含 1000 个实数正数的向量,找到 7 个部分的 1000 个元素的最佳划分,使得部分的总和具有近似(接近)值。

您将如何制作染色体表示、运算符(突变、交叉)、适应度函数、选择..以便您以最有效和优化的方式解决问题?

我的想法是给每个数字一个索引(例如,最小的数字有索引 1,最高的有索引 1000)......但我认为这不是最有效的方式吗?欢迎任何建议!

【问题讨论】:

    标签: genetic-algorithm


    【解决方案1】:

    由于这是一个分区问题,我认为您需要将整个集合放在一个染色体中。假设您有一个长度为 1000 的数组,其值可以从 1 到 7。适应度函数可以计算每个分区之和的差异(越少越好)。交叉可以用单点或双点完成。然后突变可以将单个基因从其值随机更改为随机值,例如位置 102 为 4,然后突变为 1。使用此解决方案,您可以保证每个染色体都是有效的解决方案,尽管可能是一个坏的解决方案,所以您不要不必在每次迭代后检查不遵循问题规则的染色体(如果您选择每个分区有一个染色体,则会遇到问题)。像往常一样,交叉标准和突变的可能性需要在达到最佳性能之前进行探索和调整。

    【讨论】:

      猜你喜欢
      • 2011-06-08
      • 1970-01-01
      • 1970-01-01
      • 2011-10-11
      • 2011-01-11
      • 1970-01-01
      • 2012-07-07
      • 2011-07-22
      • 1970-01-01
      相关资源
      最近更新 更多