algorithm - Find whether a minimum spanning tree contains an edge in linear time? -
मेरे होमवर्क पर मुझे निम्न समस्या है:
एक ओ (एन + मी ) एल्गोरिथ्म यह पता लगाने के लिए कि किनारे और ग्राफ का एमएसटी का हिस्सा होगा
(हमें इस असाइनमेंट पर दूसरों से सहायता प्राप्त करने की अनुमति है, इसलिए यह धोखा नहीं है। )
मुझे लगता है कि मैं एक बीएफएस कर सकता हूं और पता लगा सकता हूं कि यह किनारे दो परतों के बीच का किनारा है और यदि ये किनार उन परतों में सबसे छोटी है तो क्या। लेकिन मैं कह सकता हूं कि जब यह किनारे बीएफएस ट्री के पेड़ के किनारे पर नहीं हैं?
एक संकेत के रूप में , यदि किसी भी चक्र में किनारे सबसे भारी बढ़त नहीं है, तो इसमें कुछ एमएसटी है जो उस किनारे पर है यह देखने के लिए, किसी भी एमएसटी पर विचार करें। यदि एमएसटी पहले से बढ़त में है, तो महान! हो गया था। यदि नहीं, तो किनारे को एमएसटी में जोड़ें। यह ग्राफ में एक चक्र बनाता है अब, उस चक्र में भारी बढ़त पाएं और ग्राफ़ से इसे हटा दें। अब सब कुछ अब भी जुड़ा हुआ है (क्योंकि अगर दो नोड्स उस किनारे से जुड़े हुए रास्ते से जुड़े हुए थे, अब वे चक्र को दूसरी तरफ से अलग कर सकते हैं)। इसके अलावा, चूंकि किनारे की लागत को नष्ट कर दिया गया था, उसमें किनारे की लागत की तुलना में कोई छोटा नहीं था (क्योंकि किनारे चक्र में सबसे ज्यादा बढ़त नहीं है), इस पेड़ की लागत से अधिक नहीं हो सकता पहले। चूंकि हमने एमएसटी से शुरुआत की है, इसलिए हमें एक एमएसटी के साथ समाप्त करना होगा।
इस संपत्ति का उपयोग करना, देखें कि क्या आप पाते हैं कि रैखिक समय में किसी भी चक्र पर बढ़त सबसे बढ़त है। < / div>
Comments
Post a Comment