最佳优先搜索(知情搜索)
最佳优先搜索是一种遍历技术,通过检查哪个结点最具希望然后对其进行检查,来确定接下来要访问哪个结点。出于此目的,它使用评估函数来判定遍历。
树遍历的这种最佳优先搜索技术属于启发式搜索或知情搜索技术。
结点的成本存储在一个优先级队列中。这使得最佳优先搜索的实现与广度优先搜索的实现相同。我们会使用优先级队列,就像我们在广度优先搜索中使用队列一样。
实现最佳优先搜索的算法
Step 1 : Create a priorityQueue pqueue. Step 2 : insert ‘start’ in pqueue : pqueue.insert(start) Step 3 : delete all elements of pqueue one by one. Step 3.1 : if, the element is goal . Exit. Step 3.2 : else, traverse neighbours and mark the node examined. Step 4 : End.
此算法将首先遍历队列中最短路径。在最坏的情况下,算法需要 O(n*logn) 时间。
广告