繁体   English   中英

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

[英]What is the difference between heuristics and metaheuristics?

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

ps:我已经知道这些词的意思,但我不知道它们在计算机科学中的确切区别是什么。

提前致谢

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

因此,启发式通常取决于问题,也就是说,您可以为给定的问题定义启发式。 元启发式是与问题无关的技术,可以应用于广泛的问题。 例如,启发式方法是选择一个随机元素以在快速排序中旋转。 元启发式算法对将要应用的问题一无所知,它可以将函数视为黑匣子。

您可以说启发式利用依赖于问题的信息来为特定问题找到“足够好”的解决方案,而元启发式与设计模式一样,是可应用于广泛问题的通用算法思想。

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

« 元启发式是一种与问题无关的高级算法框架,它提供一组指导方针或策略来开发启发式优化算法[...] 根据元启发式框架中表达的指导方针,启发式优化算法的特定问题实现也称为元启发式»(Sörensen, Glover on http://scholarpedia.org/article/Metaheuristics

要完全完成。 我们应该区分精确算法、近似算法和启发式算法。 精确算法找到精确解。 近似算法应在可接受的时间内找到近似解,并指出其与假定最优解的差异范围。 启发式只是在可接受的时间内找到足够好的解决方案。

顺便说一下,由于两三个不同的原因,Alejandro quicksort 的示例似乎并不完全足够。

  1. 事实上,启发式和元启发式是优化领域的一部分。 因此,他们试图解决的问题是寻找最优解,而不是排序。
  2. 当您要解决的问题在计算意义上太复杂时,通常会使用启发式方法 - 这不是排序问题的情况。
  3. 如果我理解得很好,通过快速排序示例所指出的是随机元素。 原则上,您可以使用确定性启发式方法 - 我从未遇到过确定性元启发式方法,但可能有人可以对其进行编码。 这可能有点“玩弄文字”,但是,随机元素比(元)启发式更恰当地描述了“随机搜索”的特征。

详细解释见:

Sörensen, K. (2015)。 元启发式——隐喻暴露。 国际运筹学交易,22(1),3-18。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM