以下是給出的輸入集。選擇代表數字拼圖的唯一集合
1009 2000
1009 2001
1002 2002
1003 2002
每行代表一個組,Number代表組中的成員的ID。問題是選擇重新呈現完整給定集合的最少人數。每個組只能選擇一名成員。二元組成員不會重複。但是,成員可以成爲不止一個組的一部分。
所以在這個例子中,答案是1009
和2002
,它表示這些集合。選擇1009
是因爲它代表兩個團隊,2002
的情況也是如此。
我在找什麼算法可以用來解決這個問題。
又如:
1009 2000
1009 2001
1002 2002
1003 2002
1004 2003
答案可以{ 1009 , 2002, 1004}
或{ 1009, 2002, 2003}
它不是最小化頂點問題嗎?他想要最小的一組ID? HTTP://en.wikipedia。org/wiki/Vertex_cover我在perl中敲了一個「嘗試每個組合」的解決方案,並花了大約16分的時間。 – Sodved
不,它不是最小頂點問題(這是btw,NP-complete)。要求每個組中只有一個成員必須與頂點覆蓋情況相沖突,在這種情況下,您不關心選擇由邊連接的頂點。 – Frank
其實不理我。它更像是一個edg問題,即使最終的結果是頂點。我是否正確地認爲這張照片展示了他之後的事情? http://i.min.us/icnaFo.png – Sodved