मिश्रित ग्राफ एसाइक्विटी परीक्षण एल्गोरिथ्म के लिए संदर्भ?


16

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

यह सब मानक है और कई प्रकाशित कागजात हैं जिनमें एसाइक्लिक मिश्रित ग्राफ़ का उल्लेख है। तो मिश्रित रेखांकन की अम्लीयता के परीक्षण के लिए निम्नलिखित एल्गोरिथ्म को जाना जाना चाहिए:

निम्नलिखित चरणों को दोहराएं:

  • ऐसे किसी भी शीर्ष को निकालें, जिसमें कोई आवक न हो और कोई घटना न हो, जो अप्रत्यक्ष किनारों पर हो, क्योंकि यह किसी भी चक्र का हिस्सा नहीं हो सकता है।
  • यदि किसी भी शीर्ष पर कोई आवक नहीं है, लेकिन इसके पास एक घटना है जो अप्रत्यक्ष रूप से किनारे है, तो अप्रत्यक्ष किनारे का उपयोग करने वाला कोई भी चक्र उस किनारे पर आना चाहिए। अप्रत्यक्ष किनारे को एक आने वाले निर्देशित किनारे से बदलें।

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

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


क्या होता है जब एक शीर्ष पर दो घटनाएँ होती हैं अप्रत्यक्ष किनारे, और कोई दूसरा किनारा नहीं? उदाहरण के लिए एक अप्रत्यक्ष त्रिकोण में। मेरा मतलब है कि ऊपर दिए गए नियम इस मामले को कवर करते हैं?
मेटुस डी ओलिवेरा ओलिवेरा

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

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

यदि आपने देखा है तो निश्चित नहीं है: cs.stackexchange पर एक पोस्ट है जो एक समान प्रश्न रेफ पूछता है । उत्तरदाता अप्रत्यक्ष किनारों को उन्मुख करके एक मिश्रित ग्राफ में एक चक्र खोजने के लिए एक एल्गोरिथ्म देता है, यदि यह मौजूद नहीं है तो ग्राफ को अस्वीकार कर सकता है। यह निर्धारित करने पर भी कागज है कि क्या मिश्रित ग्राफ़ दृढ़ता से उन्मुख रेफरी है, लेकिन अजीब बात है, वास्तव में मिश्रित ग्राफ़ में जुड़े घटकों को खोजने पर कुछ भी नहीं मिल सकता है।
क्वांक्वान लियू

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

जवाबों:


1

मिश्रित ग्राफ़ में मिश्रित चक्रों को खोजना, संबंधित निर्देशित ग्राफ़ में प्राथमिक निर्देशित चक्रों (लंबाई> = 3) को खोजने के बराबर है। विपरीत दिशाओं में इंगित दो निर्देशित किनारों द्वारा प्रत्येक अप्रत्यक्ष किनारे को बदलकर संबंधित निर्देशित ग्राफ को मिश्रित ग्राफ से प्राप्त किया जाता है। प्रमाण: (1) डिग्राफ में प्रत्येक प्रारंभिक निर्देशित चक्र (लंबाई> = 3) मिश्रित ग्राफ में एक सीधे चक्र से मेल खाता है। (2) मिश्रित ग्राफ में प्रत्येक मिश्रित चक्र में लंबाई = = 3 का प्राथमिक मिश्रित चक्र होता है, और प्रत्येक ऐसा चक्र प्रत्यक्ष ग्राफ में एक प्राथमिक निर्देशित चक्र (लंबाई> = 3) से मेल खाता है। (1) और (2) एक साथ बयान की दोनों दिशाओं साबित, QED। इसलिए हम एक निर्देशित ग्राफ में (सभी?) प्राथमिक चक्रों (लंबाई> = 3) की गणना करने के संदर्भों की तलाश कर रहे हैं।

टिप्पणियों से संकेत मिलता है कि cs.stackexchange में इस प्रश्न के कुछ उत्तर हैं , लेकिन यह स्पष्ट नहीं है कि परिणामों को एक संक्षिप्त उत्तर में कैसे व्यवस्थित किया जाए। यह ब्लॉग पोस्ट अच्छी तरह से (सबसे?) महत्वपूर्ण संदर्भों को संक्षेप में प्रस्तुत करता है:

आर। टार्जन द्वारा एल्गोरिदम

सबसे पहला एल्गोरिथ्म जो मैंने शामिल किया था, आर। टार्जन द्वारा 1973 में प्रकाशित किया गया था।

Enumeration of the elementary circuits of a directed graph
R. Tarjan, SIAM Journal on Computing, 2 (1973), pp. 211-216
http://dx.doi.org/10.1137/0202017

डीबी जॉनसन द्वारा एल्गोरिदम

1975 से डीबी जॉनसन द्वारा एल्गोरिथ्म टार्जन के एल्गोरिथ्म में इसकी जटिलता से सुधार करता है।

Finding all the elementary circuits of a directed graph.
D. B. Johnson, SIAM Journal on Computing 4, no. 1, 77-84, 1975.
http://dx.doi.org/10.1137/0204007

सबसे खराब स्थिति में, टारजन के एल्गोरिथ्म में O (n (e (c + 1)) का एक समय जटिलता है, जबकि जॉनसन का एल्गोरिथ्म माना जाता है कि O ((n + e) ​​(c + 1) में रहना है जहाँ n की संख्या है vertices, e किनारों की संख्या है और c ग्राफ में चक्रों की संख्या है।

केए हिकिक और एचए जेम्स द्वारा एल्गोरिदम

2008 से केए हॉक और एचए जेम्स द्वारा एल्गोरिथ्म जॉनसन के एल्गोरिथ्म पर और सुधार करता है और अपनी सीमाओं के साथ दूर करता है।

Enumerating Circuits and Loops in Graphs with Self-Arcs and Multiple-Arcs.
Hawick and H.A. James, In Proceedings of FCS. 2008, 14-20
www.massey.ac.nz/~kahawick/cstn/013/cstn-013.pdf
http://complexity.massey.ac.nz/cstn/013/cstn-013.pdf

जॉनसन के एल्गोरिथ्म के विपरीत, केए हिकिक और एचए जेम्स द्वारा एल्गोरिथ्म उन ग्राफों को संभालने में सक्षम है जो एक ही शीर्ष पर शुरू होने और समाप्त होने के साथ-साथ दो किनारों को जोड़ने वाले कई किनारों को समेटते हैं।

Acyclicity का परीक्षण खुद को आसान लगता है: ग्राफ के दृढ़ता से जुड़े घटकों की गणना करें । कोई भी (प्रारंभिक) चक्र पूरी तरह से एक दृढ़ता से जुड़े घटक में निहित है। एक दृढ़ता से जुड़े घटक में एक प्राथमिक चक्र होता है यदि यह एक अप्रत्यक्ष पेड़ नहीं है।

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


क्या उनमें से कोई संदर्भ मिश्रित रेखांकन का भी उल्लेख करता है? मैं निर्देशित रेखांकन में चक्र खोजने के बारे में जानता हूं। मेरा प्रश्न मिश्रित एल्गोरिदम के लिए उन एल्गोरिदम के विस्तार के बारे में था।
डेविड एपपस्टीन

@DavidEppstein एक मिश्रित ग्राफ़ में मिश्रित चक्रों को ढूँढना इसी निर्देशित ग्राफ में प्राथमिक चक्रों (लंबाई> = 3) को खोजने के बराबर है। उस कथन के लिए एक संदर्भ खोजना चुनौतीपूर्ण हो सकता है, लेकिन इस कथन को साबित करना सीधा है। मैंने अब कथन और उसके प्रमाण को उत्तर में जोड़ दिया। (सबूत के बिना एक टिप्पणी भी जोड़ दी कि ब्लॉक-कट ट्री की गणना करने से प्राथमिक चक्र को प्रभावित किए बिना हर संभव शीर्ष को हटाने की अनुमति मिलती है।)
थॉमस क्लिम्पेल

ठीक है, लेकिन वे अभी भी रैखिक नहीं हैं।
डेविड एप्स्टीन

@DavidEppstein Acyclicity का परीक्षण स्वयं रैखिक समय में किया जाता है। लेकिन आप सही हैं, उन एल्गोरिदमों में से किसी को भी पहले प्राथमिक सर्किट (लंबाई> = 3) को खोजने की जरूरत है, रैखिक नहीं है (सबसे खराब स्थिति में)। इससे भी बदतर, जॉनसन के एल्गोरिथ्म के अधिकांश उपलब्ध कार्यान्वयन ओ ((n + e) ​​(c + 1) से अधिक समय का उपयोग करते प्रतीत होते हैं, जब एक एकल निर्देशित सर्कल (n कोने, e = n किनारों और c = 1 प्राथमिक के साथ लागू होता है) चक्र)। फिर भी, यह एक सही उत्तर होने का इरादा था, क्योंकि जॉनसन का पेपर "प्राथमिक सर्किट खोजने" के लिए सबसे उद्धृत संदर्भ लगता है।
थॉमस क्लिम्पेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.