(元)启发式方法的含义


10
  1. 为了优化,请参阅Wikipedia

    在计算机科学中,元启发法指的是一种计算方法,该方法通过反复尝试针对给定的质量度量来改进候选解决方案来优化问题。元启发法很少或根本没有假设要优化的问题,并且可以搜索很大范围的候选解。但是,元启发法不能保证找到最佳解决方案。许多元启发法实现某种形式的随机优化。

    其他与元启发式具有相似含义的术语是:无导数,直接搜索,黑盒或实际上只是启发式优化器。关于该主题已经出版了几本书和调查论文。

    • 我想知道如何判断优化方法是否是元启发式的?例如,

      (1)线性规划元启发式的单纯形法吗?

      (2)是否存在大多数非线性编程方法,例如梯度下降,拉格朗日乘数方法,罚分方法,内点方法(屏障方法),元启发式方法?

      (3)是否所有无梯度方法(例如Nelder–Mead方法或下坡单纯形方法)都属于启发式方法?

    • 什么不是元启发式优化方法?

  2. Wikipedia上更一般地(超越优化)解决问题的技术:

    启发式是指用于解决问题,学习和发现的基于经验的技术。如果无法进行详尽的搜索,则可以使用启发式方法来加快找到令人满意的解决方案的过程。此方法的示例包括使用经验法则,有根据的猜测,直观的判断或常识。

    准确地说,启发法是使用易于访问但宽松的信息来控制人类和机器中问题解决的策略。

    我想知道如何理解“启发式”的含义吗?

    • 如何判断“解决问题,学习和发现”技术是否具有启发性?

    • 什么是非启发式的“解决问题,学习和发现”技术?

谢谢并恭祝安康!

Answers:


7

启发式方法在很多情况下都可以在实践中起作用,尽管对于为什么它应该很好起作用尚无详细的论据。

元启发式算法不是一种算法,而是可以在特定算法中使用的通用启发式方案或思想。

例如,线性规划的单纯形算法既不是启发式算法也不是元启发式算法,因为它具有完善的收敛理论。sqame适用于顺序二次方编程或内部点方法。(内点方法是一种通用方案,但不是启发式的,因此也不是元启发式的,因为与此相关的理论很强。)

用于使函数最小化的Nelder-Mead =下坡单纯形算法是启发式的(实际上,它可能在较高维上的相当简单的问题上会失败),禁忌搜索是元启发式的(因为可以编写很多使用禁忌搜索的多种算法,但是否则质量会大不相同。


谢谢!(1)因此,要判断一种方法是否是元启发式方法,就是看它是否有关于何时收敛到真正的优化器的理论?如果一种方法还没有这样的理论,那么它是启发式的吗?如果有一天有它的理论,它会从元启发式变为非元调式吗?(2)“其他与元启发式具有相似含义的术语是:无导数,直接搜索,黑盒或实际上只是启发式优化器。” 我想知道元启发法是否仅利用函数值并且是否没有导数?您回答我的另一个问题是“搜索”方法吗?
蒂姆(Tim)

@Tim:元启发法的意思是:(i)没有收敛理论,并且(ii)没有明确的程序处方,而是一般性原则。-无导数(=直接搜索=黑匣子;来自不同历史根源的相同名称的不同名称)可以是启发式的,也可以是启发式的;它只是告诉用户必须提供的输入。
阿诺德·纽迈耶

谢谢!我想知道元启发法是否仅利用函数值并且是否没有导数?
蒂姆(Tim)

@Tim:可能是的;我不知道实际上有什么使用梯度的所谓的元启发法。
阿诺德·纽迈耶

7

因为@ArnoldNeumaier已经给出了很好的解释,但是我想加2美分,所以我不会遍历单纯形和Nelder-Mead。

我前段时间听到的最好的报价之一,是描述启发式和元启发式的区别:启发式是一个很好的规则。元启发法是找到很好规则的很好规则。

您应该将其视为找到针对特定问题的良好启发式方法的一种方法。基本上,如果您问自己以下问题之一,则是在谈论元启发式方法:

  • 我应该如何调整此启发式方法的参数以提高该问题的性能?
  • 这种启发式方法是否比那种启发式方法更好?

您可以使用许多元启发法来解决问题,学习和发现,即:

我发现大多数元启发式方法在某种程度上是受自然现象启发的,这些自然现象很难严格解释,但具有良好的收敛性。

如果您想阅读更多有关其他一些启发式技术的信息,这是一个很好的链接


谢谢!我不确定我是否理解“启发式算法是一个很好的规则。元启发式算法是找到非常好的规则的很好的规则。” 例如,模拟退火,粒子群,蚁群和禁忌搜索是启发式还是超启发式?如果它们是两者之一,那么它们的对应物又是什么?
蒂姆(Tim)

您应该从该引用中理解的是,启发式和元启发式都是不精确也不证明的,因此是“相当好的规则”。元启发式方法比启发式方法处于更高的级别,并且通过几次连续的迭代,您可以找到一组可以正确解决问题的参数。如果您从一开始就知道这组参数是什么,则只需要编写启发式方法即可解决该问题。但是由于您不知道,您必须使用一种算法来为您的启发式算法找到这些参数:元启发式算法。希望能澄清。
Charles Menguy 2012年

我在这里给出的算法都是元启发式的,您可以在我给出的链接上找到更多详细信息。我不确定您对同行的确切含义。
Charles Menguy

对应者,我的意思是,例如,如果算法全部是元启发式算法,那么它们所基于的启发式算法必须本身加上可调整参数的特定值?
蒂姆(Tim)

以模拟退火为例。最后,它要做的是在马尔可夫链上进行搜索。启发式的“规则”是假设马尔可夫链中的一个状态是解决方案。元启发法的作用是寻找马尔可夫链中的收敛点,以找到描述解决方案的最佳状态。总的来说,我认为您不应该为区分这个问题而努力:当存在一个可以轻松计算的“相对”简单解决方案时,使用启发式方法;而当解决方案空间太大而您需要更聪明时,则使用元启发式方法。解决问题。
Charles Menguy 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.