2013-02-06 42 views
7

मैंने सीखा है कि ये एल्गोरिदम कैसे काम करते हैं, लेकिन उनके लिए क्या उपयोग किया जाता है? एक ग्राफ में एक निश्चित नोड या बीएफएस और डीएफएस का उद्देश्य क्या है?

  • एक कम से कम पथ या
  • एक ग्राफ
  • में एक चक्र को खोजने के लिए आसानी से खोज

    • :

      हम उनका उपयोग करते हैं?

      उनमें से

      दोनों सिर्फ सभी नोड्स पर जाएँ और उन्हें दौरा चिह्नित करें, और मुझे लगता है कि ऐसा करने का बिंदु दिखाई नहीं देता।

      मैं यहां जो खो रहा हूं, वह खो गया हूं।

    +6

    खोज एल्गोरिदम केवल एक उपकरण है जिसका उपयोग आप अन्य समस्याओं को हल करने के लिए कर सकते हैं। यह पूछना है कि किस अतिरिक्त के लिए उपयोग किया जाता है। –

    उत्तर

    10

    BFS और डीएफएस ग्राफ खोज एल्गोरिदम कि विभिन्न विभिन्न प्रयोजनों के लिए इस्तेमाल किया जा सकता है। दो खोज तकनीकों का

    एक आम आवेदन सभी नोड्स कि किसी दिए गए मूल्य उस नोड से पहुंचा जा सकता है की पहचान है। उदाहरण के लिए, मान लीजिए कि आपके पास कंप्यूटर का संग्रह है जो प्रत्येक को कुछ अन्य कंप्यूटरों के लिए नेटवर्क किया जाता है। किसी दिए गए नोड से बीएफएस या डीएफएस चलाकर, आप नेटवर्क के सभी अन्य कंप्यूटरों को खोज लेंगे कि मूल कंप्यूटर सीधे या अप्रत्यक्ष रूप से बात करने में सक्षम है। ये वे कंप्यूटर हैं जो वापस चिह्नित होते हैं।

    BFS विशेष रूप से एक अनिर्धारित ग्राफ में दो नोड्स के बीच कम से कम पथ को खोजने के लिए इस्तेमाल किया जा सकता। मान लीजिए, उदाहरण के लिए, कि आप एक कंप्यूटर से दूसरे कंप्यूटर में एक पैकेट भेजना चाहते हैं, और कंप्यूटर सीधे एक दूसरे से जुड़े नहीं हैं। जितनी जल्दी हो सके गंतव्य पर पहुंचने के लिए आपको किस मार्ग को पैकेट भेजना चाहिए? यदि आप बीएफएस चलाते हैं और प्रत्येक पुनरावृत्ति पर प्रत्येक नोड अपने पॉइंटर को अपने "पैरेंट" नोड में संग्रहीत करता है, तो आप ग्राफ में एक दूसरे नोड से प्रारंभ नोड से मार्ग ढूंढने को समाप्त कर देंगे जो कि लिंक किए जाने वाले लिंक की संख्या को कम करता है गंतव्य कंप्यूटर तक पहुंचने के लिए।

    डीएफएस अक्सर अधिक जटिल एल्गोरिदम में एक सबरूटीन के रूप में प्रयोग किया जाता है। उदाहरण के लिए, मजबूती से जुड़े घटकों की गणना के लिए तारजन का एल्गोरिदम गहराई-पहली खोज पर आधारित है। कई ऑप्टिमाइज़िंग कंपाइलर तकनीकें एक उचित तरीके से निर्मित ग्राफ पर एक डीएफएस चलाती हैं ताकि यह निर्धारित किया जा सके कि कौन सी ऑर्डर ऑपरेशन की एक विशिष्ट श्रृंखला लागू करने के लिए है। गहराई की पहली खोज का उपयोग भूलभुलैया पीढ़ी में भी किया जा सकता है: नोड्स का ग्रिड लेकर और प्रत्येक नोड को अपने पड़ोसियों से जोड़कर, आप एक ग्रिड का प्रतिनिधित्व करने वाले ग्राफ का निर्माण कर सकते हैं। इस ग्राफ पर एक यादृच्छिक गहराई-पहली खोज चलाना तब एक भूलभुलैया उत्पन्न करता है जिसमें बिल्कुल एक समाधान होता है।

    यह कोई एक विस्तृत सूची भी तरह से है। इन एल्गोरिदम में सभी प्रकार के अनुप्रयोग होते हैं, और जैसे ही आप अधिक उन्नत एल्गोरिदम का पता लगाना शुरू करते हैं, आप अक्सर बिल्डिंग ब्लॉक के रूप में डीएफएस और बीएफएस पर भरोसा करते हैं। यह सॉर्टिंग के समान है - स्वयं को सॉर्ट करना वह दिलचस्प नहीं है, लेकिन मूल्यों की सूची को सॉर्ट करने में सक्षम होने से अधिक जटिल एल्गोरिदम में सबराउटिन के रूप में बहुत उपयोगी होता है।

    आशा है कि इससे मदद मिलती है!