幾個月前,有關於一個nice question「1:N匹配問題」而且似乎沒有多時間的算法。「(1:k)樹匹配」 - 多項式時間可解?
我想補充的限制以找到1的最大匹配:N用多項式算法的匹配問題。我想說的是:「對於頂點A1,如果頂點尚未從另一個頂點取出,則選擇{B1,B2,B5}或{B2,B3}」,即我不允許所有可能的組合。如果我們每個選擇和替代的邊緣樹木引進幫手頂點^ h
這可以表達=>我們得到類似於普通的二分匹配問題。 A或B的每個頂點在匹配中只能有一條邊。 H中的頂點的邊或者全部在匹配中,或者它們中沒有一個出現在匹配中。想象以下三方圖表:
現在定義h_ij = 「樹根包含H_ij」 容易地表達匹配:
- 然後,在例如M = {H12,H22 }將是一個「最大」匹配,儘管不是所有來自B的頂點都涉及
- 集合{h12,h23}不是匹配的,因爲B3將被選擇兩次。
請問這個問題則是在多項式時間內可解?如果是,是否有加權(w(h_ij))變體的多時間解決方案?如果不是,你是否可以爲像我這樣的「簡單人」爭辯或者證明它,或者提出其他約束來解決1:n匹配問題?
E.g.該圖可以轉化爲一般圖,然後用一般圖的加權匹配來解決?或者可以在這裏幫助branchings甚至matching forests?
PS:不是功課;-)
非常感謝您的回答!根據你的建議,我糾正了'最大'的錯誤,現在我會仔細閱讀你的答案:-) – Karussell 2010-03-02 08:42:24
對於我對問題的模糊定義感到抱歉:-(嗯,我的意思是k對於A中的每個頂點都可能不同。但是,如果一個'靜態'k已經是NP完整的...我不會假設太多,我的更廣泛的範圍問題定義 你的解釋:你的意思是n(i)是樹的數量/選擇每頂點在A中?唯一的區別是1:1的匹配問題是2-Set包裝問題,對吧?你用T_ji = S_ji U {i}表示什麼意思:我們使用哪個頂點擴展S_ji以及爲什麼? – Karussell 2010-03-02 10:58:10
是n(i)是每個答案的選擇數量。是2集合是最大匹配。每個集合是{u,v},其中邊緣位於圖形中的u和v之間。假設A1被允許S_11 = {B1,B2,B5}和S_12 = {B2,B3,B7},那麼你創建的新集合是T_11 = {B1,B2,B5,A1},T_12 = {B2,B3, B7,A1}。由於在這兩組中都存在A1,所以當您找到Set-Packing時,您最多可以選擇其中之一。 – 2010-03-02 14:48:19