簡體   English   中英

將圖划分為具有必須在同一子圖中的一組頂點的連通子圖

[英]Partitioning a graph into connected subgraphs with sets of vertices that must be in the same subgraph

我有一個連通的無向圖,G =(V,E),一個集合S = {S_1,S_2,...,S_n},其中每個S_i是V的子集,並且ak>1。如何將V划分為k個子集,可以保證:

  1. 對於每個i,S_i中的每個節點都在同一子集中
  2. 每個子集代表G?的連通子圖。

在給定加權圖G =(V,E)和成對的頂點(s 1 ,t 1 ),…,(s m ,t m )的情況下,施泰納森林問題找到了G的最輕的邊子圖H ,對於所有的i,頂點的I和T I屬於H的相同連接分量

問題的決策版本實質上是具有單位權重的Steiner森林的決策版本。 不幸的是,這種特殊情況仍然很難解決。

從Steiner森林的特殊情況到您的問題的減少是,給定Steiner森林的未加權實例,並給出確定最多存在成本的解決方案的指令c,使用相同的圖k = |創建問題的實例。 V | -c,對於所有i,令S i = {s i ,t i }。 如果存在一個成本最高為c的Steiner森林,則該森林的連接組成部分是您的子集,其數量至少為| V |。 -c = k。 相反,如果您的問題實例有解決方案,那么我們可以在您的每個子集中找到一個生成樹,並且總成本最多為| V |。 -k = c。

已知的最佳近似比是2,如果k小,則不會有太大幫助。 您可能必須使用分支和綁定。

一些隨機觀察。 您可能無法加入兩個S_i,S_j,因為它們沒有形成連接的子圖。 由於該圖已連接,因此,只要添加足夠的其他S_k,您就可以始終將它們連接-最終,您將得到按定義連接的完整圖。 因此,連通性要求使您趨向於合並。 但是,對k個子集的需求使您難以分開。 基本上,您有一個^ k搜索空間,如果您跟蹤這些條件,則可以從根本上進行修剪。 當然,如果沒有S的“免費”節點,那將完全改變游戲。

是的,不是一個真正的答案,而是一個開始。 無論如何都會發布;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM