我想解決最小生成樹問題的一個較難的版本。兩條邊相連的最小生成樹
還有N
頂點。還有2M
邊編號爲1,2,..,2M
。該圖連接,無向和加權。我想選擇一些邊緣來使圖形保持連接並使總成本儘可能小。有一個限制:編號爲2k
的邊緣和編號爲2k-1
的邊緣是並列爲,因此應該選擇兩者或者不應該選擇兩者。所以,如果我想選擇邊緣3,我也必須選擇邊緣4。
那麼,連接圖形的最低總成本是多少?
我的想法:
- 我們叫兩個邊
2k
和2k+1
一個邊緣設置。 - 如果合併兩個不同的組件,我們稱它爲有效的。
如果兩條邊都是有效的,我們稱之爲邊集好。
首先準確地加上
m
邊緣集合,這些邊集合在成本的增加順序上是好的。然後以成本遞增的順序迭代所有邊集,並且如果至少一個邊有效,則添加集。應該從0到M
迭代m
。運行一個克魯斯卡爾算法,其中有一些變化:邊緣
e
的成本各不相同。- 如果其中包含
e
邊集是良好,成本:(邊集的成本)/ 2。 - 否則,費用是:(邊集的成本)。
- 即使成本發生變化,我也無法證明kruskal算法是否正確。
- 如果其中包含
對不起,我英文不好,但我想解決這個問題。是NP-hard還是某種東西,還是有很好的解決方案? :D感謝你提前!
聽起來像是一個流動問題,但對其複雜性並不完全確定 –
@The Brofessor,請您詳細說明您的解決方案嗎? – miheyan