【问题标题】:Time complexity of a genetic algorithm for bin packing装箱遗传算法的时间复杂度
【发布时间】:2018-03-10 06:35:29
【问题描述】:

我正在尝试探索用于装箱问题的遗传算法 (GA),并将其与经典的 Any-Fit 算法进行比较。然而,任何学术文章中从未提及 GA 的时间复杂度。这是因为时间复杂度很高吗? GA 的主要目标是在不考虑时间的情况下找到最佳解决方案?基本遗传算法的时间复杂度是多少?

【问题讨论】:

  • 遗传算法的时间复杂度是无穷大。但是,GA 的优点是您可以在任何时候停止算法,并对问题有一个近似的解决方案。这就是 GA 的主要目标:在固定的预定时间内找到一个好的近似解。
  • 我明白了,现在说得通了。谢谢:)

标签: time-complexity genetic-algorithm bin-packing


【解决方案1】:

假设终止条件是迭代次数并且它是恒定的,那么通常它看起来像这样:

O(p * Cp * O(Crossover) * Mp * O(Mutation) * O(Fitness))
p - population size
Cp - crossover probability
Mp - mutation probability

如您所见,它不仅取决于参数,例如。种群规模还取决于交叉、变异操作和适应度函数的实现。在实践中会有更多的参数,例如染色体大小等。

您在出版物中看不到太多关于时间复杂度的内容,因为研究人员大部分时间都使用收敛时间来比较 GA。

编辑收敛时间

每个 GA 都有某种终止条件,通常是收敛标准。假设我们想找到一个数学函数的最小值,所以我们的收敛标准将是函数的值。简而言之,当我们不再值得继续优化时,我们会在优化​​过程中达到收敛,因为我们最好的个体并没有显着改善。看看这张图表:

您可以看到,经过大约 10000 次迭代后,适应度并没有太大改善,而且这条线越来越平坦。 最佳情况场景在大约 9500 次迭代时达到收敛,在那之后我们没有观察到任何改进或者它微不足道。假设每行显示不同的 GA,则 Best case 具有最佳收敛时间,因为它首先达到收敛标准。

【讨论】:

  • 非常感谢您的回答。是否有学术链接可供您参考以获取此信息?
  • 我给你的是简化的时间复杂度,关于它的出版物不多,但我希望它能帮助你:link1link2
  • 谢谢。理解时间复杂度有点困难。我试图寻找收敛时间。你能用简单的英语解释一下,什么是收敛时间,它们如何比较?
  • @user1340852 在答案中添加了解释。
猜你喜欢
  • 1970-01-01
  • 2017-09-26
  • 2012-05-09
  • 1970-01-01
  • 1970-01-01
  • 2013-12-31
相关资源
最近更新 更多