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

एम-रंग समस्या


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

शीर्ष 0 से शुरू करते हुए, हम अलग-अलग नोड्स को एक-एक करके रंग निर्दिष्ट करने का प्रयास करेंगे। लेकिन असाइन करने से पहले, हमें यह जांचना होगा कि रंग सुरक्षित है या नहीं। एक रंग सुरक्षित नहीं है चाहे आसन्न कोने में एक ही रंग हो।

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

Input:
The adjacency matrix of a graph G(V, E) and an integer m, which indicates the maximum number of colors that can be used.

एम-रंग समस्या 
Let the maximum color m = 3.
Output:
This algorithm will return which node will be assigned with which color. If the solution is not possible, it will return false.
For this input the assigned colors are:
Node 0 -> color 1
Node 1 -> color 2
Node 2 -> color 3
Node 3 -> color 2

एम-रंग समस्या 

एल्गोरिदम

isValid(vertex, colorList, col)

इनपुट - वर्टेक्स, कलरलिस्ट टू चेक, और कलर, जो असाइन करने की कोशिश कर रहा है।

आउटपुट - सही है अगर रंग निर्दिष्ट करना मान्य है, अन्यथा गलत है।

Begin
   for all vertices v of the graph, do
      if there is an edge between v and i, and col = colorList[i], then
         return false
   done
   return true
End

ग्राफकलरिंग (रंग, रंगसूची, शीर्ष)

इनपुट - सबसे संभावित रंग, सूची जिसके लिए कोने किस रंग से रंगे हैं, और प्रारंभिक शीर्ष।

आउटपुट - सच है, जब रंग असाइन किए जाते हैं, अन्यथा गलत।

Begin
   if all vertices are checked, then
      return true
   for all colors col from available colors, do
      if isValid(vertex, color, col), then
         add col to the colorList for vertex
         if graphColoring(colors, colorList, vertex+1) = true, then
            return true
         remove color for vertex
   done
   return false
End

उदाहरण

#include<iostream>
#define V 4
using namespace std;

bool graph[V][V] = {
   {0, 1, 1, 1},
   {1, 0, 1, 0},
   {1, 1, 0, 1},
   {1, 0, 1, 0},
};

void showColors(int color[]) {
   cout << "Assigned Colors are: " <<endl;
   for (int i = 0; i < V; i++)
      cout << color[i] << " ";
   cout << endl;
}

bool isValid(int v,int color[], int c) {    //check whether putting a color valid for v
   for (int i = 0; i < V; i++)
      if (graph[v][i] && c == color[i])
         return false;
   return true;
}

bool graphColoring(int colors, int color[], int vertex) {
   if (vertex == V)    //when all vertices are considered
      return true;

   for (int col = 1; col <= colors; col++) {
      if (isValid(vertex,color, col)) {     //check whether color col is valid or not
         color[vertex] = col;
         if (graphColoring (colors, color, vertex+1) == true)    //go for additional vertices
            return true;
                   
         color[vertex] = 0;
      }
   }
   return false; //when no colors can be assigned
}

bool checkSolution(int m) {
   int *color = new int[V];    //make color matrix for each vertex

   for (int i = 0; i < V; i++)
      color[i] = 0;      //initially set to 0

   if (graphColoring(m, color, 0) == false) {    //for vertex 0 check graph coloring
      cout << "Solution does not exist.";
      return false;
   }
   showColors(color);
   return true;
}

int main() {
   int colors = 3;      // Number of colors
   checkSolution (colors);
}

आउटपुट

Assigned Colors are:
1 2 3 2

  1. कलर फिल्टर्स और मैग्नीफाइंग एप का उपयोग करके विंडोज 10 पर कलर इनवर्ट करना

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

  1. PuTTy को अनुकूलित करें:PuTTy में पृष्ठभूमि और फ़ॉन्ट रंग बदलें

    PuTTy ओपन-सोर्स SSH और टेलनेट क्लाइंट का उपयोग करने के लिए एक स्वतंत्र है जिसका उपयोग रिमोट सर्वर से कनेक्ट करने के लिए किया जाता है। PuTTy के माध्यम से, आप दूरस्थ Linux/Unix सर्वर पर कमांड को कनेक्ट और निष्पादित कर सकते हैं। हालाँकि, कुछ नए उपयोगकर्ता पुटी में पृष्ठभूमि और फ़ॉन्ट रंग बदलने के लिए स

  1. प्रेस स्टॉप:CMYK प्रिंट में प्रयुक्त

    हम सभी अपनी डिजिटल छवियों को जीवंत बनाने के लिए कलर प्रिंटर का उपयोग करते हैं। लेकिन बहुत से लोग नहीं जानते कि वास्तव में रंगीन तस्वीरें कैसे छपती हैं। रंगीन छवियां 2 प्रकार के रंग संयोजन RGB और CMYK से बनाई जाती हैं, लेकिन छवि को प्रिंट करने के लिए केवल एक का उपयोग किया जाता है। क्या आप जानते हैं क