我必须实现以下算法:
按照MIT的this指南,我对以下四个实现有了以下理解。
假设您要尝试找到节点 S 和节点 E 之间的最短(最佳)路径。
简单分支与约束:
带有扩展列表的分支与界限
A *算法
A* = B&B + dynamic programming + admissible heuristic
(来自指南)
带有可允许的启发式的分支约束
现在这是我要解决的问题,因为在没有优先级队列的情况下添加启发式方法似乎比简单的B&B算法没有任何优势,因为我们不对具有优先级队列的节点进行优先级排序(因为如果这样做, ,那只会是A *算法)。
除非,也许,启发式算法使我们即使没有优先级队列也可以通过我不太了解的过程检查更少的节点。
很高兴能看到一个解释,为什么我们要在不添加优先级队列的情况下向B&B算法添加启发式方法。