【问题标题】:Will genetic algorithm provides different output every time?遗传算法每次都会提供不同的输出吗?
【发布时间】:2016-08-03 10:25:39
【问题描述】:

既然我们期望遗传算法有可行的解决方案,那么遗传算法是否会在每次输入相同的情况下提供不同的输出?

【问题讨论】:

标签: java genetic-algorithm genetic-programming genetic


【解决方案1】:

视情况而定。

  1. GAs 将采用不同的路径通过解空间;和
  2. GA 不能保证收敛

GAs 通常用于具有大解空间、复杂收益和局部最小值的复杂问题。在此类问题中,您不会期望在 GA 运行结束时有相同的输出。

另一方面,GA 可以应用于只有一个正确答案的大型问题。在这种情况下,人口可能会聚。

【讨论】:

    【解决方案2】:

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

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

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

    在开发过程中,重现性是金子般的重量,用于查找、诊断、调试和修复错误。

    在生产中,少数公司将其关闭(以利用诸如窃取工作等性能提升),但大多数企业仍喜欢将其保持打开状态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-02
      • 1970-01-01
      • 1970-01-01
      • 2021-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多