Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

जावास्क्रिप्ट में सबसे छोटा पथ एल्गोरिदम


ग्राफ सिद्धांत में, सबसे छोटी पथ समस्या एक ग्राफ में दो शीर्षों (या नोड्स) के बीच पथ खोजने की समस्या है जैसे कि इसके घटक किनारों के भार का योग कम से कम हो। यहां हमें अपने ऐड एज को संशोधित करने और किनारों पर वज़न जोड़ने की अनुमति देने के लिए निर्देशित विधियों को जोड़ने की आवश्यकता है।

आइए देखें कि हम इसे कैसे जोड़ सकते हैं -

उदाहरण

/**
   * Adds 2 edges with the same weight in either direction
   *
   *             weight
   * node1 <================> node2
   *             weight
   *
*/
addEdge(node1, node2, weight = 1) {
   this.edges[node1].push({ node: node2, weight: weight });
   this.edges[node2].push({ node: node1, weight: weight });
}

/**
   *  Add the following edge:
   *
   *             weight
   * node1 ----------------> node2
   *
*/

addDirectedEdge(node1, node2, weight = 1) {
   this.edges[node1].push({ node: node2, weight: weight });
}

display() {
   let graph = "";
   this.nodes.forEach(node => {
      graph += node + "->" + this.edges[node].map(n => n.node) .join(", ")+ "\n";
   });
   console.log(graph);
}

अब हमारे ग्राफ़ में एक किनारा जोड़ते समय, यदि हम कोई वज़न निर्दिष्ट नहीं करते हैं, तो उस किनारे को 1 का डिफ़ॉल्ट वज़न दिया जाता है। अब हम इसका उपयोग सबसे छोटे पथ एल्गोरिदम को लागू करने के लिए कर सकते हैं।


  1. बिल्कुल k किनारों वाला सबसे छोटा रास्ता

    एक निर्देशित ग्राफ प्रत्येक जोड़े के शीर्षों के बीच भार के साथ प्रदान किया जाता है, और दो शीर्ष u और v भी प्रदान किए जाते हैं। हमारा कार्य शीर्ष u से शीर्ष v तक की न्यूनतम दूरी ज्ञात करना है, जिसमें किनारों की संख्या k है। इस समस्या को हल करने के लिए, हम शीर्ष u से शुरू करेंगे और सभी आसन्न शीर्ष

  1. 0-1 बीएफएस (बाइनरी वेट ग्राफ में सबसे छोटा पथ) सी प्रोग्राम में?

    मान लीजिए कि हमारे पास कुछ नोड्स और जुड़े किनारों के साथ एक ग्राफ है। प्रत्येक किनारे में द्विआधारी भार होता है। तो भार या तो 0 या 1 होगा। एक स्रोत शीर्ष दिया गया है। हमें स्रोत से किसी अन्य शीर्ष तक सबसे छोटा रास्ता खोजना है। मान लीजिए कि ग्राफ नीचे जैसा है - सामान्य बीएफएस एल्गोरिथम में सभी एज

  1. बाढ़ बनाम फिक्स्ड रूटिंग एल्गोरिदम

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