所以我在想,形成背景問題變化的動態規劃算法
我想對揹包問題做一個變化。
想象一下原來的問題,具有不同重量/價值的物品。
我的版本將與正常的權重/值一起包含「組」值。
例如。 項目1 [5KG,$ 600電子] 項目2 [1KG,$ 50食品]
現在,有一組這樣的項目,我將如何編寫了揹包問題,以確保從最多1項選擇每個「組」。
注:
- 你並不需要從該組中選擇一個項目
- 有各組
- 你還在重量最小化在多個項目,實現價值最大化
- 的預定義的組的數量以及它們的值。
我只是在這個階段寫了一個代碼草稿,而且我選擇了使用動態方法。我理解常規揹包問題的動態解決方案背後的想法,我如何改變這個解決方案以合併這些「組」?
KnapSackVariation(v,w,g,n,W)
{
for (w = 0 to W)
V[0,w] = 0;
for(i = 1 to n)
for(w = 0 to W)
if(w[i] <= w)
V[i,w] = max{V[i-1, w], v[i] + V[i-1, w-w[i]]};
else
V[i,w] = V[i-1, w];
return V[n,W];
}
這是我到目前爲止,需要補充它,這樣它會刪除它是每一個它解決了這次在組中的所有相關項目。
將羣組項添加到狀態! – quasiverse
解決它作爲一個組合優化問題呢?對於每件商品,您可以選擇一件商品或者不選擇商品。您可能想使用分支和界限搜索來解決它。 – ysdx