我正在学习http://youtu.be/gGQ-vAmdAOI?t=23m14s,在23:14时,我感觉到“扩展列表”的分支限界算法与Dijkstra算法非常相似。在后面的讲座中,当算法再次通过一个可接受的启发式扩展时,我们得到了A*算法。
这使我想到Dijkstra算法是分支限界算法的一个子类。这样对吗?
总结讲座内容如下:
探讨了搜索算法。特别是,从简单的分支和限界解决方案开始:
直到访问(扩展)目标节点为止,访问距离源节点最短的节点,并将其后继节点添加到要访问的节点的优先级队列中(按最小距离排序)。这还没有检测到循环(例如多次访问节点),由于组合爆炸而效率低下。
一个简单的扩展使算法表现得更好:记住已经访问过的节点(扩展,因此为扩展列表)。现在不会再访问任何节点两次,算法的性能大大提高。
在最后一部分中,添加了一个可接受的启发式方法来获得A*。
希望这些信息足够了解讲座内容。如果不够,请告诉我,我可以提供更多的例子!
这使我想到Dijkstra算法是分支限界算法的一个子类。这样对吗?
总结讲座内容如下:
探讨了搜索算法。特别是,从简单的分支和限界解决方案开始:
直到访问(扩展)目标节点为止,访问距离源节点最短的节点,并将其后继节点添加到要访问的节点的优先级队列中(按最小距离排序)。这还没有检测到循环(例如多次访问节点),由于组合爆炸而效率低下。
一个简单的扩展使算法表现得更好:记住已经访问过的节点(扩展,因此为扩展列表)。现在不会再访问任何节点两次,算法的性能大大提高。
在最后一部分中,添加了一个可接受的启发式方法来获得A*。
希望这些信息足够了解讲座内容。如果不够,请告诉我,我可以提供更多的例子!