[英]Partially coloring a graph with 1 color
我剛剛開始閱讀圖論,並正在閱讀有關圖着色的信息。 這個問題浮現在我腦海:
我們必須僅用一種顏色為無向圖着色(不完全着色),以使有色節點的數量最大化。 我們需要找到這個最大數量。 我能夠為非循環圖制定一種方法:
我的方法:首先,我們將圖划分為孤立的組件,然后對每個組件執行此操作。 我們創建一個dfs樹,並遍歷它時制作2個dp數組,以使根最后出現:
dp[0][u]=sum(dp[1][visited children])
dp[1][u]=sum(dp[0][visited children])
ans=max(dp[1][root],dp[0][root])
dp[0][i] , dp[1][i] are initialized to 0,1 respectively.
此處0表示未着色,而1表示已着色。
但這對循環圖不起作用,因為我假設沒有訪問過的子級連接。
有人可以指導我正確解決循環圖問題的方法(不是蠻力)嗎? 是否可以修改我的方法,還是我們需要提出其他方法? 像為邊緣最少的節點着色這樣的貪婪方法是否可行?
這個問題也是NP-Hard,也稱為最大獨立集問題 。
如果對於S
每兩個頂點u,v
沒有邊(u,v)
,則在圖中稱集合S<=V
是獨立集合 。
S
的最大大小(即您要尋找的數字)稱為圖形的獨立數 ,不幸的是發現它是NP-Hard。
因此,除非P = NP,否則對於通用圖形,您的算法將失敗。
證明它非常簡單,給定一個圖G=(V,E)
,當且僅當(u,v)
創建互補圖G'=(V,E')
,其中(u,v)
在E'
中。不在E
。
現在,給定圖G
,有大小的集團k
當且僅當有一個獨立的集大小的k
在G'
,使用相同的頂點(因為如果(U,V)是兩個頂點的獨立集,有在E'
沒有邊(u,v)
,並且根據定義在E
有邊。對獨立集合中的所有頂點重復,則在G
有一個派系。
由於派系問題是NP-Hard,因此也是如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.