सबसे अच्छी पहली खोज एक ट्रैवर्सल तकनीक है जो यह तय करती है कि कौन सा नोड सबसे अधिक आशाजनक है और फिर इसकी जांच करके कौन सा नोड जाना है। इसके लिए यह ट्रैवर्सल तय करने के लिए एक मूल्यांकन फ़ंक्शन का उपयोग करता है।
ट्री ट्रैवर्सल की यह सबसे अच्छी पहली खोज तकनीक अनुमानी खोज या सूचित खोज तकनीक की श्रेणी में आती है।
नोड्स की लागत प्राथमिकता कतार में संग्रहीत की जाती है। यह सबसे अच्छी-पहली खोज का कार्यान्वयन चौड़ाई पहली खोज के समान है। हम प्राथमिकता कतार का उपयोग वैसे ही करेंगे जैसे हम 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) . लेता है समय।