Wednesday 15 June 2011

algorithm - How to find all nodes in a graph equidistant from a given set of nodes? -


यदि आपके पास एक साधारण अप्रकाशित आलेख जी (वी, ई) और F < / कोड> जो V का एक सबसेट है आप कुछ नोड v को कैसे खोज सकते हैं कि F से v में प्रत्येक नोड से दूरी समान होती है और दूरी कम हो जाती है? और अगर कोई v नहीं है तो कोई भी वापस नहीं लौटें। मुझे बताया गया था कि यह ओ (| वी | | | ई |) में किया जा सकता है जटिलता।

मान लें कि सभी किनारों दूरी 1 हैं।

कोई भी यह समझाता है कि यह कैसे किया जा सकता है? एक छद्म कोड भी मददगार होगा।

समाधान बीएफएस के समान है, लेकिन थोड़ा बदलाव के साथ:

  1. एफ नोड्स के साथ एस = एफ चिह्नित करें।

  2. ढूंढें | एस | एस में प्रत्येक तत्व से दूरी 1 के साथ सेट करता है (इन सभी सेटों में अचिह्नित नोड होने चाहिए) यदि इन सेटों का अंतराल गैर-खाली है, तो उम्मीदवार पाया जाता है।

  3. एस | एस में ऊपर सेट और इन नोड्स को चिह्नित करें। यदि 'एस खाली है, तो' कोई नहीं 'लौटें

  4. चरण 2 पर लौटें।

    मान लीजिए कि सभी सेट ऑपरेशन लगातार समय लेते हैं, तो एल्गोरिथ्म की जटिलता है बीएफएस के समान है जो ओ (| वी | + | ई |) है

    अब सेट ऑपरेशन की जटिलता के बारे में सोचने के लिए। मेरा तर्क यह है कि सेट ऑपरेशन जटिलता को बढ़ाते नहीं हैं क्योंकि चरण 2 और 3 में यूनियन और चौराहे के संचालन के लिए समय ले लिया जा सकता है ओ (| एस |), और प्रत्येक चरण एस से पिछले एस पुनरावृत्तियों में एस से अलग है। , सेट परिचालन की समग्र जटिलता ओ (| वी |) होगी

No comments:

Post a Comment