最佳优先搜索(知情搜索)

最佳优先搜索是一种遍历技术,该技术通过检查哪个节点是最有前途的节点,然后对其进行检查,来确定下一个要访问的节点。为此,它使用评估函数来确定遍历。

最好的树遍历优先搜索技术属于启发式搜索或知情搜索技术。

节点的成本存储在优先级队列中。这使得最佳优先搜索的实现与广度优先搜索的实现相同。就像使用BFS队列一样,我们将使用优先级队列。

实现最佳优先搜索的算法

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)时间。