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 1--2 2--3 3--1 1--4 4--5 5--6 6--4 4--7 7--5 5- -2 2--0