最佳优先搜索(知情搜索)
最佳优先搜索是一种遍历技术,该技术通过检查哪个节点是最有前途的节点,然后对其进行检查,来确定下一个要访问的节点。为此,它使用评估函数来确定遍历。
最好的树遍历优先搜索技术属于启发式搜索或知情搜索技术。
节点的成本存储在优先级队列中。这使得最佳优先搜索的实现与广度优先搜索的实现相同。就像使用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)时间。