遗传算法每次都会提供不同的输出吗?

时间:2016-04-12 16:52:48

标签: java genetic-algorithm genetic-programming genetic

由于我们期望遗传算法可行的解决方案,遗传算法每次使用相同的输入集会提供不同的输出吗?

2 个答案:

答案 0 :(得分:2)

取决于。

  1. GA将通过解决方案空间采取不同的路线;和
  2. GAs无法保证收敛
  3. GA通常用于具有大量解决方案空间的复杂问题,具有复杂的收益和局部最小值。在这些问题中,您不会期望在GA运行结束时输出相同的输出。

    另一方面,GA可能适用于具有单一正确答案的大问题。在这种情况下,人口可以收敛。

答案 1 :(得分:1)

良好的GA实施将支持可重现的结果。这适用于所有元启发式(不仅仅是GA' s)。可重复意味着相同的运行将产生相同的一组新的最佳解决方案事件的相同顺序。根据给予流程的实际CPU时间,迭代次数可能不同,因此它们可能不会以相同的最佳解决方案结束。

在内部,可重现的结果意味着:

  • 一切都使用1 seeded Random instance
  • 即使是并行实现也会产生可重现的结果(=>无工作窃取)
  • ...

在开发过程中,重现性非常值得用黄金来查找,诊断,调试和修复错误。

在生产中,一些公司将其关闭(利用工作窃取等性能提升),但大多数企业仍然希望将其保留下来。