Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> प्रोग्रामिंग

फ्लेरी का एल्गोरिथम


Fleury's Algorithm का उपयोग दिए गए ग्राफ से यूलर पथ या यूलर सर्किट को प्रदर्शित करने के लिए किया जाता है। इस एल्गोरिथम में, एक किनारे से शुरू होकर, यह पिछले कोने को हटाकर अन्य आसन्न कोने को स्थानांतरित करने का प्रयास करता है। इस ट्रिक का उपयोग करके, प्रत्येक चरण में यूलर पथ या सर्किट को खोजने के लिए ग्राफ सरल हो जाता है।

पथ या परिपथ प्राप्त करने के लिए हमें कुछ नियमों की जाँच करनी होगी -

  • ग्राफ़ एक यूलर ग्राफ़ होना चाहिए।

  • जब दो किनारे होते हैं, एक ब्रिज होता है, दूसरा नॉन ब्रिज होता है, हमें पहले नॉन ब्रिज को चुनना होता है।

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

एल्गोरिदम

findStartVert(graph) इनपुट:दिया गया ग्राफ। आउटपुट:एल्गोरिदम शुरू करने के लिए शुरुआती वर्टेक्स खोजें। ग्राफ में सभी वर्टेक्स i के लिए शुरू करें, सभी वर्टेक्स जे के लिए डिग्री करें:=0, जो i के साथ आसन्न हैं, करते हैं deg :=deg + 1 किया जाता है यदि deg विषम है, तो मैंने किया है जब सभी डिग्री समान है 0Enddfs (पिछला, प्रारंभ, विज़िट किया गया) इनपुट:DFS प्रदर्शन करने के लिए विकृत और प्रारंभ शीर्ष, और विज़िट की गई सूची। आउटपुट:संख्या की गणना करें डीएफएस के बाद नोड्स की। गिनती शुरू करें:=1 का दौरा किया [शुरू]:=ग्राफ में सभी शीर्ष बी के लिए सच है, अगर पिछला यू नहीं है, तो अगर यू का दौरा नहीं किया गया है, तो अगर शुरू और आप जुड़े हुए हैं, तो गिनती करें :=काउंट + dfs (स्टार्ट, यू, विजिट किया गया) एंड इफ एंड इफ एंड इफ एंड इफ रिटर्न काउंटएंडिसब्रिज (यू, वी) इनपुट:स्टार्ट एंड एंड नोड। आउटपुट:सच है जब यू और वी एक ब्रिज बना रहे हैं। डेग शुरू करें:=0 सभी शीर्ष i के लिए जो v से सटे हुए हैं, deg करें:=deg + 1 किया गया है यदि deg> 1 है, तो झूठी वापसी करें वापसी trueEndfleuryAlgorithm (प्रारंभ) इनपुट:प्रारंभिक शीर्ष। आउटपुट:यूलर पथ या सर्किट प्रदर्शित करें। किनारे शुरू करें:=ग्राफ़ में किनारों की संख्या प्राप्त करें//यह अगले रिकर्सन कॉल में प्रारंभ नहीं होगा v_count =नोड्स की संख्या // यह सभी वर्टेक्स वी के लिए अगले रिकर्सन कॉल में प्रारंभ नहीं होगा, जो प्रारंभ के निकट हैं, विज़िट किए गए सरणी बनाते हैं और यदि ब्रिज (प्रारंभ, वी) है तो झूठे मान के साथ होगा, फिर v_count घटाएं 1 cnt =dfs (प्रारंभ, वी, विज़िट किया गया) यदि cnt और v_count <=2 के बीच का अंतर है, तो किनारे को प्रिंट करें (प्रारंभ →‡ v) यदि ब्रिज (v, प्रारंभ) है, तो v_count को 1 से घटाएं किनारे को प्रारंभ से हटा दें और v किनारे को 1 fleury से घटाएंएल्गोरिदम(v) समाप्त होने पर समाप्त करें 

उदाहरण

<पूर्व>#शामिल करें#शामिल करें 0}, {1,0,1,1,1,0,0,0}, {1,1,0,1,0,1,0,0}, {0,1,1,0,0, 0,0,0}, {0,1,0,0,0,1,1,1}, {0,0,1,0,1,0,1,1}, {0,0,0, 0,1,1,0,0}, {0,0,0,0,1,1,0,0}}; int tempGraph[NODE][NODE];int findStartVert() { for(int i =0; मैं 1) {झूठी वापसी; // किनारे से पुल नहीं बन रहा है} सही लौटें; // एक पुल बनाने वाला किनारा} इंट एजकाउंट () {इंट काउंट =0; for(int i =0; i

आउटपुट

यूलर पथ या सर्किट:0--1 1--2 2--3 3--1 1--4 4--5 5--6 6--4 4--7 7--5 5- -2 2--0

  1. फोर्ड फुलकर्सन एल्गोरिथम

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

  1. फ्लोयड वारशाल एल्गोरिथम

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

  1. सी ++ में यूलरियन पथ या सर्किट को प्रिंट करने के लिए फ्लेरी का एल्गोरिदम

    फ्लेरी के एल्गोरिथम का उपयोग दिए गए ग्राफ से यूलर पथ या यूलर सर्किट को प्रदर्शित करने के लिए किया जाता है। इस एल्गोरिथ्म में, एक किनारे से शुरू होकर, यह पिछले कोने को हटाकर अन्य आसन्न कोने को स्थानांतरित करने का प्रयास करता है। इस ट्रिक का उपयोग करके, यूलर पथ या सर्किट को खोजने के लिए प्रत्येक चरण म