Table of Contents

ग्राफ़ थ्योरी में एलेरियन सर्किट को समझना

एक Eulerian सर्किट एक बंद चलना है जो एक ग्राफ के हर किनारे को बिल्कुल एक बार पीछे छोड़ देता है और प्रारंभिक वर्टेक्स में वापस आता है। अवधारणा 1736 में लियोनहार्ड यूलर द्वारा प्रस्तुत Königsberg समस्या के प्रसिद्ध सात ब्रिजों से उत्पन्न होती है। यूलर ने साबित किया कि ऐसा सर्किट केवल तभी मौजूद है जब ग्राफ में हर भंवर की डिग्री भी है और ग्राफ कनेक्ट हो गया है (अलग vertices की अनदेखी)। इस मौलिक परिणाम ने ग्राफ सिद्धांत की नींव रखी और नेटवर्क विश्लेषण, सर्किट डिजाइन और combinatorial अनुकूलन में महत्वपूर्ण है।

इसे औपचारिक रूप से बताने के लिए: Let G = (]V]], E]]]) एक अनुप्रयुक्त ग्राफ है। एक यूलेरियन सर्किट मौजूद है अगर और केवल अगर हर vertex v]]]] lev lev V] में एक समान डिग्री है, और ग्राफ को गैर-zero डिग्री के साथ केवल vertices पर विचार करते समय जुड़ा हुआ है।

हिरोहोजर के अल्गोरिथम क्या है?

हिरहोल्जर का अल्गोरिथम, जिसे 1873 में जर्मन गणितज्ञ कार्ल हिरहोल्जर द्वारा प्रकाशित किया गया था, एक यूलेरियन सर्किट बनाने का एक कुशल तरीका है जब आवश्यक स्थितियां संतुष्ट होती हैं। यह चक्रों की एक श्रृंखला ढूंढकर सर्किट बनाता है और उन्हें विलय करता है। एल्गोरिदम रैखिक समय O]O]E]]] में चलाता है, जिससे यह घने और ग्राफ के लिए इष्टतम बनाता है।

मुख्य अवधारणा

  • Cycle का पता लगाना: एक भंवर से शुरू होकर शुरू होकर शुरू होकर शुरू होकर शुरू होकर शुरू होकर शुरू होकर शुरू होकर शुरू होकर शुरू होकर बाहर निकले।
  • Merging चक्र: जब वर्तमान सर्किट पर एक कछुए अभी भी अप्रयुक्त किनारों है, एक नया चक्र उस कछुओं से बना है और सर्किट में डाला गया है।
  • Edge हटाने: चूंकि किनारों का उपयोग किया जाता है, उन्हें संशोधित करने से बचने के लिए उन्हें चिह्नित या हटाया जाता है।

चरण-दर-चरण हिरोहोजर के अल्गोरिथम का विवरण

एल्गोरिथ्म को बार-बार उप-परिचय का विस्तार करके एक सर्किट का निर्माण करना है। नीचे एक विस्तृत ब्रेकडाउन है।

चरण 1: एक प्रारंभिक वर्टेक्स चुनें

किसी भी प्रकार के अंतर को कम से कम एक किनारे के साथ चुनें। चूंकि ग्राफ जुड़ा हुआ है और सभी डिग्री भी हैं, इसलिए कोई भी वर्टेक्स काम करेगा। आमतौर पर एल्गोरिदम वर्टेक्स v] पर शुरू होता है।

स्टेप 2: एक साइकिल को ट्रैक करें

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

चरण 3: अप्रयुक्त किनारों के साथ वर्टिज़ का पता लगाएं

किसी भी वर्टेक्स के लिए वर्तमान सर्किट को स्कैन करें u] कि अभी भी घटना अप्रयुक्त किनारों है। यदि कोई अस्तित्व नहीं है, तो एल्गोरिदम पूरा हो गया है। अन्यथा, u]]] u]]]]]u]u]]]]]]]]u]]]]]]]]] ]]]]]]U]]]]]]]][[FLT[[[[[[FLT[[[[[FLT[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]][FLT[F

चरण 4: u] से एक नया साइकिल बनाएं

u] से शुरू होकर, अप्रयुक्त किनारों के बीच चक्र-परिष्कृत प्रक्रिया को दोहराएं। यह एक नया चक्र बनाता है C'] जो शुरू होता है और u]]]]]] पर समाप्त होता है।

स्टेप 5: न्यू साइकिल को मेन सर्किट में मर्ज करें

C' को u]] की स्थिति में मुख्य सर्किट में डालें। परिणामस्वरूप चलना अभी भी एक सर्किट (बंद) है और सभी किनारों को अब तक का दौरा किया। चरण 3 पर लौटें।

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

उदाहरण: एक यूलेरियन सर्किट का निर्माण

सरल ग्राफ को vertices A, B, C, D, और E. Edges के साथ पर विचार करें: AB, AC, AD, BC, BD, CE, DE. (यह एक छोटा ग्राफ है जहां प्रत्येक vertex में भी डिग्री है: deg(A) =3, deg(B) =3, deg(C) =2, deg(D) =3, deg(E) =1, a deg(D) =3, a deg (D)) = 3, a deg (D) = 3, a s) = 3, a s, a s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s

रन हिरोहोजर के अल्गोरिथम:

  • 1 में शुरू करें: 1-1 (उपयोग), 2-3 (उपयोग), अब 3 पर 3। अप्रयुक्त किनारे 3-4 (उपयोग), 4-5 (उपयोग), 5-3 (उपयोग) चुनें। 3 पर लौटें, लेकिन प्रारंभिक प्रारंभिक प्रारंभिक बिंदु 1 था। हमने अभी तक 1-1 तक वापस नहीं किया है। वास्तव में एल्गोरिदम को एक चक्र बनाने की आवश्यकता है जो प्रारंभिक वर्टेक्स में वापस आती है। आइए ठीक से पता लगाएं: 1 पर शुरू करें, 1-1, 2-3, 3 से 3 तक जा सकते हैं - 1 (अप्रयुक्त) - जो चक्र 1-1-3-3-1 देता है। इसके बाद, 5 किनारों को छोड़ दिया: 3-3, 4-5, 5-3, 5-3, 5-3, 5-3, 4-5, 4, 4, 4-5, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 4, 4, 5, 5, 3, 5, 5, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6
  • स्कैन C1: वर्टेक्स 3 ने किनारों का इस्तेमाल नहीं किया है। 3: 3-4, 4-5, 5-3, 5-3, 5-6, 5-6, 5-6, 5-6, 5-6, 5-6, 5-6, 5-6, 5-6, 6, 6, 6, 8, 8, 8, 9, 10, 8, 9, 10, 9, 10, 12, 9, 10, 12, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
  • C2 को C1 में मेर्ज 3: परिणामी सर्किट: 1-2-3-4-5-3-3-1. सभी किनारों का इस्तेमाल किया जाता है, सर्किट यूलेरियन है।

यह उदाहरण एल्गोरिथ्म की लालित्य को दिखाता है: चक्रों की खोज की जाती है और सहज रूप से संयुक्त होती है।

जटिलता और कार्यान्वयन विचार

हिरहोल्जर का अल्गोरिथम O](]V]+ E]]) समय जब किनारे हटाने के लिए एक अस्थाई सूची प्रतिनिधित्व और कुशल डेटा संरचनाओं का उपयोग करते हुए (जैसे, iterators या लिंक सूचियों का उपयोग करते हुए) एल्गोरिथ्म इष्टतम है क्योंकि प्रत्येक किनारे को एक बार ठीक संसाधित किया जाता है। मेमोरी ओवरहेड O(]V[FLT सर्किट] + [Flang]]

निर्देशित ग्राफ के लिए, समान दृष्टिकोण कार्य करता है बशर्ते ग्राफ यूलेरियन (in-डिग्री प्रत्येक वर्टेक्स में डिग्री के बराबर होती है)। एल्गोरिथ्म की डिग्री की आवश्यकता भी निर्देशित मामले में अनुवादित होती है।

फ्लोरी के एल्गोरिथ्म के साथ तुलना

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

हिरोहोजर के अल्गोरिथम के अनुप्रयोग

एक Eulerian सर्किट कुशलतापूर्वक कई वास्तविक दुनिया का उपयोग करता है खोजने की क्षमता है।

चीनी पोस्टमैन समस्या

चीनी पोस्टमैन समस्या (रूट निरीक्षण) में, लक्ष्य को कम से कम एक बार हर किनारे को कवर करने वाली सबसे कम बंद चलने वाली यात्राओं को ढूंढना है। पहले से ही Eulerian हैं, उन ग्राफों के लिए, समाधान केवल Eulerian सर्किट है। Hierholzer का एल्गोरिदम उस सर्किट को प्रदान करता है। गैर-यूलेरियन ग्राफ के लिए, समस्या किनारों को डुप्लिकेट करने के लिए भी सभी डिग्री बनाने में कम हो जाती है, और फिर Hierholzer के आवेदन करने के लिए।

नेटवर्क रूटिंग और सर्किट डिजाइन

यूलेरियन सर्किट का उपयोग सड़क स्वीपर, कचरा संग्रह और नेटवर्क पैकेट ट्रांसमिशन के लिए कुशल मार्गों को डिजाइन करने में किया जाता है जहां प्रत्येक लिंक को एक बार ठीक से पार किया जाना चाहिए। एल्गोरिथ्म अनावश्यक यात्रा को कम करने में मदद करता है।

डीएनए फ्रैगमेंट असेंबली

कम्प्यूटेशनल बायोलॉजी में, डी ब्रुइजन ग्राफ़ दृष्टिकोण जीनोम असेंबली के लिए, क्यू-मर ग्राफ़ के माध्यम से यूलेरियन पथ या सर्किट खोजने पर निर्भर करता है। हिरोहोज़र का एल्गोरिदम कई असेंबलरों का एक मुख्य घटक है, जो लघु रीडिंग से लगातार अनुक्रमों के पुनर्निर्माण को सक्षम बनाता है।

कंप्यूटर ग्राफिक्स और भूलभुलैया जनरेशन

यूलेरियन ट्रेल्स का उपयोग भूलभुलैया पैदा करने में किया जाता है और कुछ ग्राफ ड्राइंग एल्गोरिदम में जहां किनारों को पेन उठाने के बिना खींचा जाना चाहिए। एल्गोरिथ्म एक इष्टतम निर्माण प्रदान करता है।

एकीकृत परिपथ परीक्षण

बहुत बड़े पैमाने पर स्केल इंटीग्रेशन (VLSI) डिजाइन में, सभी कनेक्शनों का परीक्षण एक यूलेरियन सर्किट समस्या के रूप में किया जा सकता है, परीक्षक आंदोलन को कम किया जा सकता है।

आगे पढ़ना और बाहरी संसाधन

Eulerian सर्किट और Hierholzer के एल्गोरिथ्म की अपनी समझ को गहरा करने के लिए, निम्नलिखित संसाधनों की सिफारिश की जाती है:

निष्कर्ष

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