经过一些关于算法的研究,我发现了两个术语让我很困惑。我至少阅读了20篇论文,然而,没有一个清晰的定义可以说明它们之间的差异。我希望有人能帮助我解释启发式算法和元启发式算法之间的区别。如果可能的话,请附上信息来源。
注:我已经知道这些词的意思,但我不知道它们在计算机科学中的确切区别。
提前感谢您。
经过一些关于算法的研究,我发现了两个术语让我很困惑。我至少阅读了20篇论文,然而,没有一个清晰的定义可以说明它们之间的差异。我希望有人能帮助我解释启发式算法和元启发式算法之间的区别。如果可能的话,请附上信息来源。
注:我已经知道这些词的意思,但我不知道它们在计算机科学中的确切区别。
提前感谢您。
启发式方法是指解决问题的近似(不是精确)解决方案。"近似"和"近似度"的区别在于前者是为了得到一个问题的良好猜测解,但你并不真正知道它有多好。而后者则是为了得到一个解决方案,你可以证明它与最优解有多接近。
因此,启发式方法通常是与特定问题相关的,也就是说,你需要针对给定问题定义一种启发式方法。元启发式方法是一种独立于问题的技术,可应用于广泛的问题范围内。例如,在快速排序中选择随机元素作为枢轴点就是一种启发式方法。而元启发式方法对它将要应用的问题一无所知,它能够将函数视为黑盒子来处理。
可以说,启发式方法利用问题相关信息来找到特定问题的“合适”的解决方案,而类似设计模式的元启发式方法是可应用于广泛问题集合的通用算法思想。
详细说明请参见:
元启发式是一种高级的问题无关的算法框架,它提供一组指导方针或策略来开发启发式优化算法。这个术语也用来指代一个根据这样一个框架所表达的指南实现启发式优化算法的特定问题的实现(Sörensen,2015)。
启发式是指南,元启发式是使用这些指南的框架。