用简单的话说,“启发式方法只是为空间,时间或对象分配值以从问题陈述中寻求解决方案的假设。”
例子1
考虑下图,我们需要找到从节点A到节点B的最佳路径。 有3种可能的解决方案-
- 第一条路径:A-> C-> D-> B
- 第二条路径:A-> E-> B
- 第三条路径:A-> F-> H-> B
如何找出其中的最佳途径?
我们只需要计算每条路径的距离并在其中选择最佳路径即可。
- 第一条路径:10 + 6 + 8 = 24
- 第二条路径:5+ 5 = 10
- 第三条路径:12 + 8 + 10 = 30
因此,我们选择A-> E-> B作为最佳路径。如果我们从逻辑上考虑,仅当为每个顶点假设了一些预定义的值时,我们才能够确定第二条路径是最佳路径。
如果关于顶点值的初始假设是这样的,该怎么办? 在这种情况下,我们可能会得出这样的答案:第一个路径是最佳路径。因此,最初的假设在找到解决方案中起着关键作用。任何旨在解决问题的值的初始假设都可以视为启发式方法。在这里,每个顶点的值都是试探法。这些启发式值使我们能够快速找到解决方案。
例子2
找出半径为3 cm的圆的面积,并假定pi的值为3.14。
在这里,我们假设pi = 3.14的值也是一种启发式方法。
Pi可以具有许多值,例如3.14、3.142、3.1428等,但是我们选择pi = 3.14来解决这个特定问题,从而可以快速找到答案。如果我们手动将pi的值计算为许多小数点并将其替换为方程式,则可能会获得最佳结果,但问题不会很快得到解决。现在,借助这一初始假设,我们可以很快达到最佳解决方案之一。
例子3
在这里,为了找到总和,在问题开始时将本金假定为INR 100。该假设背后的原因是,它可以帮助学生非常快速地解决问题。此初始假设也是一种启发式方法。
总结
启发式方法在解决计算机科学中的复杂问题方面发挥着巨大作用。特别是在人工智能中,当要求机器从初始状态达到目标状态时,会对它们进行一些启发式编程,以便它们能够最快速地解决问题。
研究人员发现,使用一些启发式函数可以在多项式时间内解决许多np和np-hard问题。但这不一定是最佳解决方案,而是在大多数情况下,启发式方法可以帮助找到给定问题的最佳解决方案之一。
业界已经使用各种启发式功能实现了许多实时应用算法,例如-
- 假设旅行商问题中的初始距离
- 假设工作分配问题(匈牙利算法)等中的初始成本
转载自:https://www.quora.com/What-does-heuristics-mean-in-artificial-intelligence