我對標題感到抱歉;坦率地說,我甚至不知道我的問題是否與揹包問題有關。正在讀一些關於遺傳算法的東西,並發現這個「揹包問題」。Python中的揹包(什麼?)
我需要有人踢我在正確的方向:
我開發了一個工廠一個python Web應用程序。所以在一家工廠裏,他們有一種叫做訂單的東西。訂單包含一個或多個產品。有一種不匹配的概念,它實際上是一個負數,用來表示特定產品在訂單中出現的數量(以數量表示)。
想象一下矩陣的列是產品,行是訂單。假設所有訂單(行)都包含所有產品(列)。再次,有8個訂單訂單1到訂單8和5個產品,產品1到產品5.
假設,現在我有一個產品1的6不匹配。我需要在所有8個訂單,隨機。所以顯然2個訂單不會有不匹配的數量。然後我對產品2有9的不匹配。我儘可能均勻地分配8個訂單的不匹配數量,隨機。這對每個產品都是如此。現在來了踢球者,雖然我正在將所有Orders中的不匹配項分開,但我需要確保每個訂單(對該行的意義)的總失配保持在最小值。這意味着整個訂單的總不匹配需要儘可能低的數量。
|-----|-----|-----|-----|-----|
| P1 | P2 | P3 | P4 | P5 |
-------------------------------
O1 | 2 | 1 | 1 | 0 | 2 | 6
-------------------------------
O2 | 1 | 2 | 1 | 1 | 1 | 6
-------------------------------
O3 | 2 | 2 | 1 | 0 | 1 | 6
-------------------------------
O4 | 1 | 2 | 0 | 1 | 1 | 5
-------------------------------
6 7 3 2 5
你明白嗎?我需要用Python編寫這個代碼,我不知道從哪裏開始。
我不明白這一點。如果你有一個零矩陣,並且你給每列添加了一個給定數量的矩陣,那麼矩陣內的總數就是所有列的總和。你不能保持最小數量。 (或寫入一些示例代碼與輸入和可能的輸出) – eumiro 2012-07-17 13:38:39
問題是,我不知道從哪裏開始寫任何代碼。 那麼,每列可能有不同的數字,9,5,13。然而,當以隨機方式儘可能均等地劃分行數時,我還需要考慮該行的總和(不是列)保持在最低限度。如果一行的總和是13,而其餘的行是3或者什麼的,那意味着行間不匹配的初始劃分不會被同等分割。 – Mark 2012-07-17 13:50:38
使用等寬字體可將矩陣寫爲僞碼。只需將這些行縮進四個空格,它就像代碼一樣。看看其他問題/答案。 – eumiro 2012-07-17 13:53:22