0

最近我得到了一個問題,這兩個問題在下面提到的約束條件下如何優化?

  1. 選擇從這些34,32,43,46,36,21,28幾個數字,使得它們的總和應最接近於112,但應小於。給定幾個子集A1,A2,A3 ............找出最優情況:最優情況定義爲最小重疊和最大元素在聯合和交叉的幫助下覆蓋超集S.

我已經做了第一個手動,但我怎麼可以編碼的解決方案 - 我的意思是我想知道在哪裏可以找到這些類型的算法/方法編碼。

+0

第一個是[二元揹包問題](http://en.wikipedia.org/wiki/Knapsack_problem#0.2F1_knapsack_problem),其中每個項目的利潤與其重量相同。第二個是不健康的。任何集合'S'都可以被分割成非重疊集合'A1,...,An',其中一些Ai可能等於空集合。因此,分區是最小重疊/最大覆蓋率解決方案。有什麼限制? – Ioannis 2014-10-07 15:37:21

+0

感謝您的幫助,這些子集不是非重疊的。我編輯了第二部分 - 請看看! – Emin 2014-10-10 17:44:17

回答

1

(1)是所謂的零歸屬問題。查找x1, x2, x3, ...,它們是0或1,因此34*x1 + 32*x2 + 43*x3 + ...小於112.零一分配是整數線性編程的特例。搜索這些條款應該會出現很多點擊。

不確定(2)。我想這是一個組合的問題,但我不知道現有的類別來分類它。

+0

非常感謝您的幫助,我編輯了第二部分,請看看! – Emin 2014-10-10 17:47:17