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

ग्राफ रंगाई


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

ग्राफ रंगाई

इस समस्या को हल करने के लिए, हमें लालची एल्गोरिदम का उपयोग करने की आवश्यकता है, लेकिन यह न्यूनतम रंग के उपयोग की गारंटी नहीं देता।

इनपुट और आउटपुट

इनपुट: ग्राफ का आसन्नता मैट्रिक्स। 0 0 1 0 1 0 0 1 1 1 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 आउटपुट: नोड: 0, रंग: 0 के साथ असाइन किया गया नोड: 1, रंग: 0 के साथ असाइन किया गया नोड: 2, रंग: 1 के साथ असाइन किया गया नोड: 3, रंग: 2 के साथ असाइन किया गया नोड: 4, रंग: 1 के साथ असाइन किया गया

एल्गोरिदम

graphColoring(graph)

इनपुट: दिया गया ग्राफ।

आउटपुट: प्रत्येक नोड को कुछ रंग असाइन किया गया।

शुरू     रंगों की एक सूची घोषित करें     प्रारंभ में पहले नोड के लिए रंग 0 सेट करें     एक सरणी colorUsed परिभाषित करें जो ट्रैक करे कि कौन सा रंग उपयोग किया गया है, और किन रंगों का कभी उपयोग नहीं किया गया।     पहले को छोड़कर ग्राफ में सभी शीर्षों i के लिए, करें       i को किसी भी रंग के लिए अनअसाइन के रूप में चिह्नित करें     किया     सभी शीर्षों के लिए colorUsed को गलत चिह्नित करें     पहले शीर्ष को छोड़कर ग्राफ में सभी शीर्षों u के लिए, करें       u के साथ आसन्न सभी शीर्ष v के लिए, करें         यदि color[v] अनअसाइन है, तो           colorUsed[color[v]] := सच       किया       रंग सूची में सभी रंगों col के लिए, करें         यदि रंग उपयोग नहीं किया गया है, तो           लूप रोकें       किया       color[u] := col       u के साथ आसन्न प्रत्येक शीर्ष v के लिए, करें         यदि color[v] अनअसाइन है, तो           colorUsed[color[v]] := गलत       किया     किया     ग्राफ में सभी शीर्षों u के लिए, करें       नोड और उसका रंग प्रदर्शित करें     किया अंत

उदाहरण

#include<iostream> #define NODE 6 using namespace std; int graph[NODE][NODE] = {     {0, 1, 1, 1, 0, 0},     {1, 0, 0, 1, 1, 0},     {1, 0, 0, 1, 0, 1},     {1, 1, 1, 0, 1, 1},     {0, 1, 0, 1, 0, 1},     {0, 0, 1, 1, 1, 0} }; void graphColoring() {     int color[NODE];     color[0] = 0;       //पहले नोड के लिए पहला रंग असाइन करें     bool colorUsed[NODE];       //जांचने के लिए उपयोग किया जाता है कि रंग उपयोग किया गया है या नहीं     for(int i = 1; i

आउटपुट

Node: 0, Assigned with Color: 0 Node: 1, Assigned with Color: 0 Node: 2, Assigned with Color: 1 Node: 3, Assigned with Color: 2 Node: 4, Assigned with Color: 1

  1. वयस्कों के लिए Android पर 5 सर्वश्रेष्ठ कलरिंग बुक ऐप्स वयस्कों के लिए Android पर 5 सर्वश्रेष्ठ कलरिंग बुक ऐप्स

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

  1. Python में निर्देशित ग्राफ में सबसे बड़ा रंग मान ज्ञात करें Python में निर्देशित ग्राफ में सबसे बड़ा रंग मान ज्ञात करें

    एक निर्देशित ग्राफ दिया गया है जिसमें n रंगीन नोड्स और m एज हैं। प्रत्येक नोड का एक रंग (लोअरकेस अक्षर) है। एक वैध पथ नोड्स का अनुक्रम है जहां प्रत्येक नोड से अगले में निर्देशित एज है। पथ का रंग उस पथ में सबसे अधिक बार आने वाला नोड रंग है। सबसे बड़े रंग मान वाले वैध पथ को खोजें। यदि ग्राफ में साइकिल

  1. पायथन में ग्राफ प्लॉटिंग पायथन में ग्राफ प्लॉटिंग

    पायथन में matplotlib लाइब्रेरी का उपयोग करके ग्राफ बनाने की क्षमता होती है। इसमें कई पैकेज और फ़ंक्शन होते हैं जो विभिन्न प्रकार के ग्राफ और प्लॉट उत्पन्न करते हैं। यह उपयोग करने में भी बहुत सरल है। यह numpy और अन्य पायथन बिल्ट-इन फ़ंक्शन्स के साथ मिलकर लक्ष्य प्राप्त करता है। इस लेख में हम देखेंगे