Java程式查詢環圖的色指數


圖的色指數是一個引數,它指示為圖的所有邊著色所需的最少顏色數量,使得沒有兩條共享公共頂點的邊具有相同顏色的邊。在本文中,我們將討論如何使用Java程式語言查詢環圖的色指數。

什麼是環圖?

環圖是一個至少包含一條環路的圖。環路是從特定節點開始並在同一節點結束的路徑。

什麼是圖著色?

用於為圖的邊或圖的頂點著色的過程稱為“圖著色”。

圖的色指數是圖論中最重要的話題之一,因為它在現實生活中的許多場景中都有許多實際應用,例如任務排程、無線通訊網路中的頻率分配、暫存器分配等等。在本文中,我們將討論Vizing理論來檢測環圖的色指數,並使用Java程式語言實現。

什麼是頂點的度?

連線頂點的邊的數量稱為“頂點的度”

Vizing定理

Vizing定理指出,如果一個簡單圖“G”的最大度為“d”,則圖“G”的色指數可以是“d”或“d+1”。您可以詳細瞭解Vizing定理中的演算法。

演算法

步驟1 - 初始化一個表示圖的二維陣列。

步驟2 - 初始化一個值為零的變數,表示圖的色指數。

步驟3 - 查詢圖“G”的每個頂點的度。

步驟4 - 計算圖“G”的最大度。

步驟5 - 如果圖“G”的最大度是偶數,則圖的色指數是最大度。

步驟6 - 否則,如果圖“G”的最大度是奇數,則圖的色指數是最大度 + 1。

示例

在下面的示例中,Vizing演算法在Java程式語言中實現,以查詢圖的色指數。

我們初始化一個二維陣列來表示一個圖,並將該圖傳遞給函式“chromaticIndexOfGraph”。此函式返回圖的色指數。該函式使用Vizing定理計算圖的色指數,該定理通常計算圖的每個頂點的度。在找到每個頂點的度之後,它從degree[]陣列中找到maxDegree。如果maxDegree是偶數,則函式返回maxDegree;否則,如果maxDegree是奇數,則返回maxDegree + 1。

import java.util.*;
public class Main {
   // returns the chromatic index of the graph
   public static int chromaticIndexOfGraph(int[][] graph, int n) {
      int maxDegree = 0;
      int degree[] = new int[n];
      for (int i = 0; i < graph.length; i++) {
         for (int j = 0; j < graph[i].length; j++) {
            if (graph[i][j] == 1) {
               degree[j]++;
            }
         }
      }
      for(int i=0 ; i<degree.length; i++) {
         if(degree[i] > maxDegree) {
            maxDegree = degree[i];
         }
      }
      System.out.println("Max Degree:" + maxDegree);
      if (maxDegree % 2 == 0) {

         return maxDegree; //if maxDegree is even then chromaticIndex is maxDegree
      } else {

         return maxDegree + 1; //if maxDegree is odd then chromaticIndex is maxDegree+1
      }
   }
   public static void main(String[] args) {
      int n = 4; // defines the number of vertices in Graph
      int[][] graph = {
         {0, 1, 1, 1},{1, 0, 1, 0},{1, 1, 0, 1},{1, 0, 1, 0}
      };
      int chromatic_index = chromaticIndexOfGraph(graph, n);
      System.out.println("Chromatic index: " + chromatic_index);
    }
}

輸出

Max Degree:3
Chromatic index: 4

時間複雜度:O(N2) 輔助空間:O(N)

在本文中,我們學習瞭如何使用Java程式語言查詢環圖的色指數。

更新於:2023年4月10日

130 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.