algorithm - 启发式算法和算法之间有什么区别?

标签 algorithm definition heuristics nomenclature

启发式算法和算法之间有什么区别?

最佳答案

算法是对问题的自动解决方案的描述。算法的作用是精确定义的。该解决方案可能是也可能不是最好的解决方案,但您从一开始就知道您会得到什么样的结果。您使用某种编程语言实现算法以获得(一部分)程序

现在,有些问题很难,您可能无法在可接受的时间内获得可接受的解决方案。在这种情况下,您通常可以通过应用一些任意选择(有根据的猜测)更快地获得一个不太糟糕的解决方案:这是一种启发式

启发式算法仍然是一种算法,但它不会探索问题的所有可能状态,或者将从探索最有可能的状态开始。

典型的例子来自游戏。在编写国际象棋游戏程序时,您可以想象在某个深度层次上尝试每一步可能的走法,并对棋盘应用某种评估函数。启发式方法会排除以明显错误的 Action 开始的完整分支。

在某些情况下,您不是在寻找最佳解决方案,而是在寻找符合某些约束条件的任何解决方案。一个好的启发式方法有助于在短时间内找到解决方案,但如果唯一的解决方案处于它选择不尝试的状态,也可能找不到任何解决方案。

关于algorithm - 启发式算法和算法之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2334225/

相关文章:

scheme - 程序什么时候出现 "intertwine definition and use"?

algorithm - 使用 A 星查找路径的启发式函数

performance - 偶长路径算法

c# - 如何计算带有 sin、cos 和其他函数的表达式?

c - 质数校验码中的怪异情况

algorithm - 找到基本单词并估计它们的难度

algorithm - 如何判断 A* 算法何时是一个好的选择,以及如何选择一个好的启发式算法?

php - 在PHP中查找总和的最接近值的算法

c - 只返回空格和字母的函数

Haskell primPutChar 定义