द्विसंबद्ध घटक

आलेख सिद्धांत में, एक द्विसंबद्ध घटक (कभी-कभी 2-संबद्ध घटक के रूप में जाना जाता है) एक अधिकतम द्विसंबद्ध उपआलेख होता है। कोई भी संबद्ध (आलेख सिद्धांत) द्विसंबद्ध घटकों के एक ट्री (आलेख सिद्धांत) में विघटित हो जाता है जिसे आलेख़ का कक्ष-कट ट्री कहा जाता है। कक्ष एक दूसरे से साझा शीर्ष ( आलेख सिद्धांत ) से जुड़े होते हैं जिन्हें कट कोने या अलग-अलग कोने या संधि बिन्दु कहा जाता है। विशेष रूप से, एक कट शीर्ष कोई भी शीर्ष होता है जिसके हटाने से संबद्ध घटक (आलेख सिद्धांत) की संख्या बढ़ जाती है।

रैखिक समय डेप्थ-प्रथम सर्च
जॉन हॉपक्रॉफ्ट और रॉबर्ट टार्जन (1973) के कारण एक संबद्ध अप्रत्यक्ष आलेख में द्विसंबद्ध घटकों की गणना के लिए उत्कृष्ट अनुक्रमिक एल्गोरिदम है। यह रैखिक समय में चलता है, और डेप्थ प्रथम सर्च पर आधारित है। इस एल्गोरिदम को एल्गोरिदम के परिचय की समस्या 22-2 (दोनों 2 और 3 संस्करण) के रूप में भी रेखांकित किया गया है।

निम्नलिखित जानकारी को बनाए रखते हुए डेप्थ-प्रथम सर्च चलाने का विचार है: डेप्थ प्रथम सर्च के समय बनाए रखने के लिए डेप्थ मानक है। $v$ के निम्न बिंदु की गणना $v$ के सभी वंशजों को (अर्थात, डेप्थ-प्रथम-सर्च स्टैक से $v$ के पॉप अप होने से ठीक पहले) $v$ की न्यूनतम डेप्थ, $v$ के सभी निकटवर्तियों की डेप्थ (डेप्थ-प्रथम-सर्च ट्री में $v$ के जनक के अतिरिक्त) और डेप्थ-प्रथम-सर्च वृक्ष में $v$ के सभी बच्चों के निम्न बिंदु के रूप में जाने के बाद की जा सकती है।
 * 1) डेप्थ-प्रथम-सर्च ट्री में प्रत्येक शीर्ष की डेप्थ (एक बार देखने के बाद), और
 * 2) प्रत्येक शीर्ष $v$ के लिए, डेप्थ-प्रथम-सर्च ट्री में $v$ के सभी वंशजों के निकटवर्तियों की सबसे कम डेप्थ ($v$ सहित), जिसे $lowpoint$ कहा जाता है।

मुख्य तथ्य यह है कि एक गैर रूट शीर्ष $v$ एक कट शीर्ष (या संधि बिन्दु) है जो दो द्विसंबद्ध घटकों को अलग करता है यदि और मात्र यदि $v$ का कोई बच्चा $y$ है जैसे कि $lowpoint(y) ≥ depth(v)$। इस गुण का परीक्षण तब किया जा सकता है जब $v$ के प्रत्येक बच्चे से डेप्थ-प्रथम सर्च वापस कर दी जाती है (अर्थात, $v$ डेप्थ-फर्स्ट-सर्च स्टैक से पॉप अप होने से ठीक पहले), और यदि सत्य है, तो $v$ आलेख़ को अलग-अलग द्विसंबद्ध घटकों में अलग कर देता है। इसे प्रत्येक ऐसे $y$ में से एक द्विसंबद्ध घटक की गणना करके (एक घटक जिसमें $y$ सम्मिलित है, में $y$, प्लस $v$ का उपट्री सम्मिलित होगा), और फिर ट्री से $y$ के उपट्री को मिटाकर प्रदर्शित किया जा सकता है।

रूट शीर्ष को अलग से हैंडल किया जाना चाहिए: यह एक कट शीर्ष है यदि और मात्र यदि इसके डीएफएस ट्री में कम से कम दो बच्चे हैं। इस प्रकार, रूट के प्रत्येक बच्चा उपट्री (रूट सहित) में से मात्र एक घटक बनाना पर्याप्त है।

स्यूडोकोड
GetArticulationPoints(i, d)    visited[i] := true depth[i] := d    low[i] := d     childCount := 0

isArticulation := false for each ni in adj[i] do

if not visited[ni] then parent[ni] := i            GetArticulationPoints(ni, d + 1) childCount := childCount + 1 if low[ni] ≥ depth[i] then isArticulation := true low[i] := Min (low[i], low[ni]) else if ni ≠ parent[i] then low[i] := Min (low[i], depth[ni]) if (parent[i] ≠ null and isArticulation) or (parent[i] = null and childCount > 1) then Output i as articulation point ध्यान दें कि बच्चे और माता-पिता डीएफएस ट्री में संबंधों को दर्शाते हैं, मूल आलेख नहीं।

अन्य एल्गोरिदम
उपरोक्त एल्गोरिदम का एक सरल विकल्प श्रृंखला अपघटन का उपयोग करता है, जो डेप्थ-पहले सर्च-ट्रीों के आधार पर विशेष कान अपघटन हैं। इस ब्रिज (आलेख थ्योरी) #Bridge-Finding with Chain Decompositions द्वारा चेन डीकंपोज़िशन की गणना रैखिक समय में की जा सकती है। होने देना $C$ की एक श्रृंखला अपघटन हो $G$। तब $G$ 2-शीर्ष -संबद्ध है यदि और मात्र यदि $G$ न्यूनतम डिग्री (आलेख सिद्धांत) 2 और है $C1$ में एकमात्र चक्र (आलेख सिद्धांत) है $C$। यह तुरंत एक रैखिक-समय 2-संबद्ध परीक्षण देता है और सभी कटे हुए शीर्षों को सूचीबद्ध करने के लिए बढ़ाया जा सकता है $G$ निम्न कथन का उपयोग करते हुए रैखिक समय में: एक शीर्ष $v$ एक जुड़े आलेख में $G$ (न्यूनतम डिग्री 2 के साथ) एक कट शीर्ष है यदि और मात्र यदि $v$ एक पुल (आलेख सिद्धांत) या के लिए घटना है $v$ चक्र का पहला शीर्ष है $C – C1$। कटे हुए शीर्षों की सूची का उपयोग द्विसंबद्ध घटक#कक्ष-कट ट्री|का कक्ष-कट ट्री बनाने के लिए किया जा सकता है $G$ रैखिक समय में।

समस्या के ऑनलाइन एल्गोरिदम संस्करण में, कोने और किनारों को गतिशील रूप से जोड़ा जाता है (लेकिन हटाया नहीं जाता है), और एक डेटा संरचना को द्विसंबद्ध घटकों को बनाए रखना चाहिए। जेफरी वेस्टब्रुक और रॉबर्ट टार्जन (1992) असंयुक्त-सेट डेटा संरचनाओं के आधार पर इस समस्या के लिए एक कुशल डेटा संरचना विकसित की। विशेष रूप से, यह प्रक्रिया करता है $n$ शीर्ष जोड़ और $m$ बढ़त में जोड़ $O(m α(m, n))$ कुल समय, कहाँ $α$ प्रतिलोम एकरमैन फलन है। यह समय सीमा उत्तम सिद्ध होती है।

उजी विस्किन और रॉबर्ट टार्जन (1985) CRCW समानांतर रैंडम-एक्सेस मशीन पर एक समानांतर एल्गोरिदम डिज़ाइन किया गया है जो अंदर चलता है $O(log n)$ इसके साथ समय $n + m$ प्रोसेसर।

तुल्यता संबंध
एक मनमाने ढंग से अप्रत्यक्ष आलेख के किनारों पर एक द्विआधारी संबंध को परिभाषित कर सकता है, जिसके अनुसार दो किनारे $e$ और $f$ संबंधित हैं यदि और मात्र यदि या तो $e = f$ या आलेख़ में दोनों के माध्यम से एक साधारण चक्र होता है $e$ और $f$। प्रत्येक किनारा स्वयं से संबंधित है, और एक किनारा है $e$ दूसरे किनारे से संबंधित है $f$ यदि और मात्र यदि $f$ से इसी प्रकार संबंधित है $e$। कम स्पष्ट रूप से, यह एक सकर्मक संबंध है: यदि किनारों से युक्त एक साधारण चक्र मौजूद है $e$ और $f$, और किनारों से युक्त एक अन्य सरल चक्र $f$ और $g$, तो कोई इन दोनों चक्रों को जोड़कर एक सरल चक्र सर्च सकता है $e$ और $g$। इसलिए, यह एक तुल्यता संबंध है, और इसका उपयोग किनारों को तुल्यता वर्गों में विभाजित करने के लिए किया जा सकता है, किनारों के सबसेट गुण के साथ कि दो किनारे एक दूसरे से संबंधित हैं यदि और मात्र यदि वे समान तुल्यता वर्ग से संबंधित हैं। प्रत्येक तुल्यता वर्ग में किनारों द्वारा गठित सबआलेख दिए गए आलेख के द्विसंबद्ध घटक हैं। इस प्रकार, द्विसंबद्ध घटक आलेख के किनारों को विभाजित करते हैं; हालाँकि, वे एक दूसरे के साथ शीर्ष साझा कर सकते हैं।

कक्ष आलेख
किसी दिए गए आलेख का कक्ष आलेख $G$ इसके कक्षों का प्रतिच्छेदन आलेख है। इस प्रकार, इसके प्रत्येक कक्ष के लिए एक शीर्ष है $G$, और दो शीर्षों के बीच एक किनारा जब भी संबंधित दो कक्ष एक शीर्ष साझा करते हैं। एक आलेख $H$ दूसरे आलेख का कक्ष आलेख है $G$ बिल्कुल जब के सभी कक्ष $H$ पूर्ण सबआलेख हैं। रेखांकन $H$ इस गुण के साथ कक्ष आलेख के रूप में जाने जाते हैं।

कक्ष-कट ट्री
एक आलेख का कटपॉइंट, कट शीर्ष या संधि बिन्दु $G$ एक शीर्ष है जिसे दो या दो से अधिक कक्षों द्वारा साझा किया जाता है। संबद्ध आलेख़ के कक्ष और कटप्वाइंट की संरचना को एक ट्री (आलेख सिद्धांत) द्वारा वर्णित किया जा सकता है जिसे कक्ष-कट ट्री या बीसी-ट्री कहा जाता है। इस ट्री में प्रत्येक कक्ष के लिए और दिए गए आलेख के प्रत्येक अभिव्यक्ति बिंदु के लिए एक शीर्ष है। कक्ष के प्रत्येक जोड़े के लिए कक्ष-कट ट्री में एक किनारा होता है और उस कक्ष से संबंधित एक संधि बिन्दु होता है।



यह भी देखें

 * त्रिकोणीय घटक
 * ब्रिज (आलेख सिद्धांत)
 * निर्देशित रेखांकन में द्वि-जुड़े घटकों का एकल-प्रविष्टि एकल-निकास काउंटर भाग

बाहरी संबंध

 * C++ implementation of Biconnected Components