2012-06-03 45 views
0

我給出3組A,B和C,每組有n個元素。這些集合可以包含重複項(如果Set是正確的話,則不確定)。最小化產品

現在我試圖形成具有n個元素的一組d(說D1至Dn),含3個元素,一個來自A,一個從B和一個從C.

我的目標是每個元素狄找到使Di中元素的乘積之和最小的集合D.

蠻力似乎是一個非常糟糕的主意,因爲即使n> 5,算法的速度變得非常糟糕。任何人都可以提出更好的方法?線性規劃是否適合這個問題?

+0

包含重複項的集合是[bag or multiset](http://en.wikipedia.org/wiki/Multiset) – amit

+1

爲什麼此問題有三個關鍵詞?!不明原因,我可能會添加?無禮和不明智的。 –

+0

我想找到一個反例,但到目前爲止,以下方法似乎工作:排序A,B和C,並迭代匹配所有3個數組中的最大元素與其他2個數組中的最小元素。爲什麼這會起作用的直覺是,在每一個步驟中,最大限度地減少剩餘最大元素的「倍增損害」。會喜歡反例! – Mathias

回答

0

所以你想要形成兩個二部圖,它們可以創建A-B和B-C元素的匹配,從而使平均產品(a_i * b_j * c_k)最小化。

不幸的是我相信這是一個NP難題。 (如果你把匹配數的n個3的數量=作爲變量)

我不認爲這兩個匹配數可需單獨製成:

考慮A = {1,10},B = {1, 10}

A的匹配,B在隔離爲1×10 = 10和1×10 = 10(總共20個)

然而考慮C = {1,10000}

如果我們將A,B與C進行貪婪匹配,我們得到10 x 1 = 10和10 x 10000 = 100000(總計100010)

然而,如果我們有采取的非最佳匹配A的,B爲1×1 = 1和10×10 = 100(總共101)

然後我們可以使用C匹配它爲1 x 10000 = 10000和100 x 10 = 1000(總共11000)

所以我們可以看到有必要考慮所有可能的組合。

這不是證明它是NP難的,但我希望它傳達一種直覺。

+0

該問題明顯標記爲「線性規劃」,其整數版本通常用於優化NP-Hard問題。另外:什麼是建議的減少? – amit

+0

如果我們把它翻譯成對數空間並添加一個有(小,大,大,...,大)的行,我相信一個解決方案可以用來解決TSP。 (但我不確定)。我很確定這個問題出現在我的概率圖形模型類中。 –

+0

不管它被標記了什麼,我認爲任何精確的解決方案必須至少是O(n^m),其中匹配是m個n個元素(這裏m = 3)。 –