0
,我需要選擇設置的產品,我的車在這樣的方式,我的車值應爲最大就可以了。 限制就像,購物車的尺寸爲l*w*h
。選擇的產品應單獨和完全裝入購物車,爲購物車提供最大可能的價值。每個產品可以選擇1個項目。選擇產品才能獲得鑑於在商店提供的產品列表最大車價值
我有product id
,price
,l
,w
,ht
,每個產品的weight
我。這怎麼能完成?
我想出瞭如下邏輯。車的
- 計算容積 使用它的價格
- 排序基於價值/ CUCM的產品列表中的產品和每立方厘米產品的價值
- 計算容積
- 開始將產品從排序列表像第一,第二,第三等,直到購物車被裝滿。
- 如果產品無法放入購物車,請跳過它並從排序列表中選擇下一個可能的產品。
- 獲得列表後,檢查選定列表中的任何產品是否可以使用體積較小的其他產品替換,但會產生更多購物車價值。
但是,這並不讓我以最大的車值正確的產品清單。上述邏輯中的問題是什麼?
這聽起來像一個揹包問題,你可以解決使用動態編程技術:https://en.wikipedia.org/wiki/Knapsack_problem。請記住,揹包問題是NP完全的,所以對於大型產品列表,算法將花費很長時間。 – Jeremy
您的邏輯問題是,「我應該將產品放入購物車」的決定不一定取決於價值/成本比率,而是取決於其他因素,例如「替代產品A和B是否具有更高)價值/成本比率,如果我把它們放進我的購物車而不是產品C「。 – Jeremy