启发式的具体例子有哪些(例如Alpha-beta修剪,example:tic-tac-toe以及如何在其中应用)。我已经看到了关于什么是启发式的答案,但是我仍然不明白它在使用估计的地方。您能给我一个启发式方法及其运作方式的具体例子吗?
最佳答案
Warnsdorff's rule是一种启发式方法,但A*
搜索算法不是。顾名思义,它是一种不依赖于问题的搜索算法。启发式的是。例如:您可以使用A*
(如果正确实现)来解决“十五”难题,并找到摆脱迷宫的最短方法,但是所使用的启发式方法将有所不同。使用“十五”难题,您的启发式方法可能是错位了几块:解决难题所需的移动次数将始终大于或等于启发式方法。
要摆脱迷宫,您可以使用“曼哈顿距离”(Manhattan Distance)到您知道的启发式迷宫之外的一点。曼哈顿距离广泛用于类游戏问题,因为它是达到目标所需的水平和垂直“步数”。
Manhattan distance = abs(x2-x1) + abs(y2-y1)
很容易看出,在最佳情况下(没有墙),这将是到目标的精确距离,在其他情况下,您将需要更多。这很重要:您的试探法必须是乐观的(admissible heuristic),以便您的搜索算法是最佳的。它也必须是consistent。但是,在某些应用程序(例如具有很大 map 的游戏)中,您将使用不允许的试探法,因为次优解决方案就足够了。
试探法只是实际成本的近似值(如果允许,总是低于实际成本)。近似值越好,搜索算法必须探索的状态就越少。但是更好的近似值通常意味着更多的计算时间,因此您必须找到一个折衷的解决方案。
关于algorithm - 启发式的具体例子,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8445638/