2012-03-14 17 views
5

के दो विवादित सबसेट से संबंधित किसी भी दो नोड्स के बीच सबसे छोटा रास्ता ढूंढना एक अप्रत्यक्ष ग्राफ है जिसमें प्रत्येक नोड को कुछ रंग असाइन किया जाता है। मुझे किसी भी नीले रंग के नोड से किसी भी लाल रंग के नोड में सबसे छोटा रास्ता खोजना है। (ग्राफ में अन्य रंग भी मौजूद हो सकते हैं और हालांकि इससे कोई फर्क नहीं पड़ता है लेकिन यह ज्ञात नहीं है कि वहां कितने रंग हैं।) मैं इसे बहुपद समय में कैसे कर सकता हूं?ग्राफ़

+1

मुझे यकीन है कि इसे हल करने के लिए डिजस्ट्रा एल्गोरिदम का उपयोग किसी भी तरीके से किया जा सकता है, लेकिन मैं यह समझने में सक्षम नहीं हूं कि कैसे। – anirudh

उत्तर

7

एक संकेत के रूप में, ग्राफ में दो नए नोड्स जोड़ें- उन्हें एस और टी कॉल करें। लागत 0 के किनारे के साथ प्रत्येक नीले नोड को कनेक्ट करें और प्रत्येक लाल नोड को लागत 0 के किनारे के साथ टी करने के लिए कनेक्ट करें। फिर एस से टी तक सबसे छोटा रास्ता खोजें।

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

+0

धन्यवाद, यह वास्तव में समाधान है। – anirudh

+0

एस और टी नोड्स जोड़ने के लिए बहुपद दोनों और उनके बीच सबसे छोटा रास्ता खोजने के लिए (उदा। डिज्कास्ट्रा के साथ), तो यह बहुपद है। – pvoosten

+2

@lbp बहुपद समय में इसे हल करने के कई आसान तरीके हैं, आप फ़्लॉइड-वारशॉल कर सकते हैं और न्यूनतम दूरी के साथ जोड़ी (नीला, लाल) ढूंढ सकते हैं। आप डिजस्ट्रा कर सकते हैं | लाल | * | नीला | कई बार, बहुत अक्षमता, और अभी भी बहुपद है। लेकिन यह उत्तर केवल बहुपद नहीं बल्कि एक कुशल तरीका प्रदान करता है। – sdcvvc

संबंधित मुद्दे