【问题标题】:Is there any way of predicting local optimums in the search space?有什么方法可以预测搜索空间中的局部最优值吗?
【发布时间】:2014-09-10 21:26:33
【问题描述】:

我知道大多数现实世界的优化问题都会在搜索空间中出现局部最优,但是有没有办法知道是否确定?

如果我可以确定没有任何需要担心的局部最优,我可以安全地应用简单的爬山算法来解决问题,而不是使用更复杂的搜索算法(例如 GA)。

对不起,如果这有点简单

【问题讨论】:

  • 我认为这高度依赖于问题。对于简单的问题,我敢打赌有办法找到局部最优值。
  • 根据问题的类型,您可以根据您知道的全局最优值肯定具有的独特性来构建预测

标签: algorithm optimization artificial-intelligence genetic-algorithm


【解决方案1】:

没有。

大多数现实世界的优化问题都是 NP-hard 问题的特定实例。 “NP-hard”意味着在最坏情况下(“NP”)可以快速验证解决方案的每个问题都可以编码为特殊情况(“-hard”)。

我认为没有人知道任何 NP-hard 问题的爬山启发式算法,其中每个步骤都可以在最坏情况下有效地实现,并且最终总是返回最佳解决方案。 (我可能弄错了;这是一个比“我们不知道任何 NP 难题的任何多项式时间算法”更强有力的陈述,我更确定。)

顺便说一句,如果您有兴趣为大型难题找到全局最优解决方案,我不建议您过分依赖爬山法、遗传算法、模拟退火等。如果您有兴趣为简单问题的大型实例找到全局最优解决方案,我根本不建议您使用它们。研究和利用问题的结构几乎总是值得的,或者至少使用像混合整数规划或约束规划这样的框架可以利用它可以找到的东西。

【讨论】:

    【解决方案2】:

    您可以检查一些事项。如果你能证明你有一个http://en.wikipedia.org/wiki/Convex_function,那么“凸函数的任何局部最小值也是全局最小值。严格凸函数最多有一个全局最小值”。

    您通常可以证明 x 处的局部最小值意味着 f(x) 处的局部最小值,其中 f() 可能会置换 x 的坐标/重命名 x 中的变量。例如,旅行商问题的解决方案是按顺序访问的点列表,并且对此类解决方案的任何循环旋转都具有相同的分数。这是一个相当大的暗示,至少,您试图最小化的函数不是严格凸的,也可能不是凸的。

    如果你写一个爬山求解器,你当然可以从多个随机开始运行它,看看它是否一直收敛到同一个地方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-22
      • 2012-01-12
      • 1970-01-01
      • 1970-01-01
      • 2013-12-24
      相关资源
      最近更新 更多