启发式和元启发式有什么区别?

Nic*_*Liu 28 computer-science heuristics

在对算法进行一些研究之后,我发现了两个令我困惑的术语.我已经阅读了至少20篇论文,然而,两者都没有明确的定义.我希望有人可以帮助我区分启发式算法和元启发式算法.如果可能,添加它的来源.

ps:我已经知道这些词的含义是什么,但我不知道它们在计算机科学中究竟有什么区别.

提前致谢

Ale*_*iad 38

您可以将启发式视为问题的近似(非近似)解决方案.近似和近似之间的区别在于,第一个是关于对问题解决方案的一个很好的猜测,但是你真的不知道它有多好.第二个是关于获得一个解决方案,您可以证明它与最佳解决方案的接近程度.

因此,启发式算法通常依赖于问题,即您为给定问题定义启发式算法.Metaheuristics是与问题无关的技术,可应用于广泛的问题.例如,一种启发式方法是在Quicksort中选择一个随机元素进行旋转.元启发式对它将要应用的问题一无所知,它可以将函数视为黑盒子.

你可以说启发式利用依赖于问题的信息来找到特定问题的"足够好"的解决方案,而元启发式则像设计模式一样,可以应用于广泛的问题的一般算法思想.

  • 你也有这方面的消息来源吗? (2认同)
  • [El-Ghazali Talbi](http://books.google.com/books/about/Metaheuristics.html?id=SIsa6zi5XV8C)有一本关于元启发式的精彩入门书.它在引言中或多或少地表达了同样的观点.看看这个. (2认同)

Tou*_*uki 7

为了给出正确的引用,相对于亚历杭德罗回答:

«元启发式是一种高级别的独立于算法的算法框架,它提供了一套指导或策略来开发启发式优化算法[...]根据元启发式框架中表达的指南,启发式优化算法的特定问题实现也被称为元启发式»(Sörensen,Glover on http://scholarpedia.org/article/Metaheuristics)

完全完成.我们应该区分精确算法,近似算法和启发式算法.精确的算法找到了精确的解决方案.近似算法应在可接受的时间内找到近似解,并用假设的最优解指示其差异范围.启发式算法在可接受的时间内找到了一个足够好的解决方案.

顺便说一下,Alejandro quicksort的例子似乎并不完全适合两三个不同的原因.

  1. 事实上,启发式和元启发式是优化领域的一部分.他们试图解决的问题是搜索最佳,而不是排序.
  2. 当你想解决的问题在计算意义上太复杂时,通常会使用启发式方法 - 这不是排序问题的情况.
  3. 通过quicksort示例指出的内容,如果我理解得很好,则是随机元素.原则上,你可以有确定性的启发式方法 - 我从未遇到过确定性的元启发式,但可能有人可以对其进行编码.它可能有点"玩文字"但是,随机元素更恰当地表征"随机搜索"而不是(元)启发式.


dor*_*ien 6

详细解释请参见:

\n\n

S\xc3\xb6rensen,K.(2015)。元启发式\xe2\x80\x94暴露的隐喻。国际运筹学汇刊,22(1), 3-18。

\n\n
\n

元启发式是一种与问题无关的高级算法框架,它提供了一组用于开发启发式优化算法的指南或策略。该术语还用于指根据此类框架中表达的指导方针\n 启发式优化算法的针对特定问题的实现(S\xc3\xb6rensen,\n 2​​015)。

\n
\n\n

启发式是指导方针,元启发式是使用这些指导方针的框架。

\n