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

Python में अनिर्देशित ग्राफ में दिए गए आकार का स्वतंत्र सेट है या नहीं जांचना


मान लीजिए हमारे पास एक दिया गया अनिर्देशित ग्राफ है; हमें जांचना है कि क्या इसमें आकार l का एक स्वतंत्र सेट है। यदि आकार l का कोई स्वतंत्र सेट है तो Yes वापस करें अन्यथा No।

हमें इस बात का ध्यान रखना है कि एक ग्राफ में स्वतंत्र सेट को उन शीर्षों के समूह के रूप में परिभाषित किया गया है जो सीधे एक-दूसरे से जुड़े नहीं हैं।

तो, यदि इनपुट L = 4 है,

Python में अनिर्देशित ग्राफ में दिए गए आकार का स्वतंत्र सेट है या नहीं जांचना

तो आउटपुट yes होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • एक फ़ंक्शन is_valid() परिभाषित करें। यह ग्राफ, arr लेगा

  • i के लिए 0 से arr के आकार की सीमा में, करें

    • j के लिए i + 1 से arr के आकार की सीमा में, करें

      • यदि graph[arr[i], arr[j]], 1 के समान है, तो

        • False वापस करें

  • True वापस करें

  • एक फ़ंक्शन solve() परिभाषित करें। यह ग्राफ, arr, k, index, sol लेगा

  • यदि k, 0 के समान है, तो

    • यदि is_valid(ग्राफ, arr) True के समान है, तो

      • sol[0] := True

      • वापस करें

    • अन्यथा,

      • यदि index >= k, तो

        • वापस करें (solve(ग्राफ, arr[इंडेक्स 0 से अंत तक] concatenate [index] के साथ सूची, k-1, index-1, sol) या solve(ग्राफ, arr[इंडेक्स 0 से अंत तक], k, index-1, sol))

      • अन्यथा,

        • वापस करें solve(ग्राफ, arr[इंडेक्स 0 से अंत तक] concatenate [index] के साथ सूची, k-1, index-1, sol)

उदाहरण

बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

def is_valid(graph, arr):     for i in range(len(arr)):         for j in range(i + 1, len(arr)):             if graph[arr[i]][arr[j]] == 1:                 return False     return True def solve(graph, arr, k, index, sol):     if k == 0:         if is_valid(graph, arr) == True:             sol[0] = True             return         else:             if index >= k:                 return (solve(graph, arr[:] + [index], k-1, index-1, sol) or solve(graph, arr[:], k, index-1, sol))             else:                 return solve(graph, arr[:] + [index], k-1, index-1, sol) graph = [     [1, 1, 0, 0, 0],     [1, 1, 1, 1, 1],     [0, 1, 1, 0, 0],     [0, 1, 0, 1, 0],     [0, 1, 0, 0, 1]] k = 4 arr = [] sol = [False] solve(graph, arr[:], k, len(graph)-1, sol) if sol[0]:     print("Yes") else:     print("No")

इनपुट

[[1, 1, 0, 0, 0], [1, 1, 1, 1, 1], [0, 1, 1, 0, 0], [0, 1, 0, 1, 0], [0, 1, 0, 0, 1]], 4

आउटपुट

Yes

  1. पायथन में एक भारित अविकल्पित ग्राफ में एक शीर्ष के लिए कम लागत वाला पथ खोजने का प्रोग्राम पायथन में एक भारित अविकल्पित ग्राफ में एक शीर्ष के लिए कम लागत वाला पथ खोजने का प्रोग्राम

    मान लीजिए हमें एक भारित, अविकल्पित ग्राफ दिया गया है। हमें एक फ़ंक्शन query लागू करना है जो दो शीर्षों और एक लागत limit को इनपुट के रूप में लेता है और जांचता है कि क्या दी गई लागत से कम लागत वाला पथ मौजूद है। यदि ऐसा पथ मौजूद है तो हम true लौटाते हैं, अन्यथा false।उदाहरण के लिए, यदि इनपुट ग्राफ है:औ

  1. पायथन में दिए गए ग्राफ में विशेष प्रकार के उपग्राफ ज्ञात करने का प्रोग्राम पायथन में दिए गए ग्राफ में विशेष प्रकार के उपग्राफ ज्ञात करने का प्रोग्राम

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

  1. पायथन में ग्राफ में सबसे बड़े क्लिक का न्यूनतम आकार ज्ञात करने का प्रोग्राम पायथन में ग्राफ में सबसे बड़े क्लिक का न्यूनतम आकार ज्ञात करने का प्रोग्राम

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