经过一些关于算法的研究后,我发现了两个令我困惑的术语。 我已经阅读了至少20篇论文,然而,两者都没有明确的定义。 我希望有人可以帮助我区分启发式算法和元启发式算法。 如果可能的话,添加它的来源。
ps:我已经知道这些词的含义是什么,但我不知道它们在计算机科学中究竟有什么区别。提前致谢
答案 0 :(得分:35)
您可以将启发式视为问题的近似(非近似)解决方案。近似和近似之间的区别在于,第一个是关于对问题解决方案的一个很好的猜测,但是你真的不知道它有多好。第二个是关于获得一个解决方案,您可以证明它与最佳解决方案的接近程度。
因此,启发式算法通常依赖于问题,即您为给定问题定义启发式算法。 Metaheuristics是与问题无关的技术,可应用于广泛的问题。例如,一种启发式方法是在Quicksort中选择一个随机元素进行旋转。元启发式对它将要应用的问题一无所知,它可以将函数视为黑盒子。
你可以说启发式利用依赖于问题的信息来找到特定问题的“足够好”的解决方案,而元启发式则像设计模式一样,可以应用于广泛的问题的一般算法思想。 / p>
答案 1 :(得分:7)
为了给出正确的引用,相对于亚历杭德罗回答:
«元启发式算法是一种高级别的独立于算法的算法框架,它提供了一套指导或策略来开发启发式优化算法[...]根据表达的指南,启发式优化算法的特定问题实现元启发式框架也被称为元启发式»(Sörensen,Glover on http://scholarpedia.org/article/Metaheuristics)
完全完成。我们应该区分精确算法,近似算法和启发式算法。精确的算法找到了精确的解决方案。近似算法应在可接受的时间内找到近似解,并用假设的最优解指示其差异范围。启发式算法只是在可接受的时间内找到了一个足够好的解决方案。
顺便说一句,Alejandro quicksort的例子似乎并不完全适合两三个不同的原因。
答案 2 :(得分:2)
有关详细说明,请参阅:
元启发式是一种高级别的独立于算法的算法 提供一套指导方针或战略的框架 启发式优化算法。该术语也用于指代 特定于问题的启发式优化算法的实现 根据这样一个框架中表达的指导方针(Sörensen, 2015年)。
启发式是指导方针,metaheurstics是使用这些指南的框架。