私は以下の問題を解決する方法を探しています。最良の組み合わせを見つける
私はこの製品グリッドを持っているとします。
table = [{'Products': 'Prod1', 'Unit1': 32, 'Unit2': 32, 'Unit3': 27, 'Unit4': 15 },
{'Products': 'Prod2', 'Unit1': 35, 'Unit2': 12, 'Unit3': 19, 'Unit4': 29 },
{'Products': 'Prod3', 'Unit1': 37, 'Unit2': 36, 'Unit3': 36, 'Unit4': 19 },
{'Products': 'Prod4', 'Unit1': 16, 'Unit2': 15, 'Unit3': 18, 'Unit4': 31 },
{'Products': 'Prod5', 'Unit1': 14, 'Unit2': 32, 'Unit3': 20, 'Unit4': 33 },
{'Products': 'Prod6', 'Unit1': 10, 'Unit2': 33, 'Unit3': 28, 'Unit4': 36 },
{'Products': 'Prod7', 'Unit1': 18, 'Unit2': 22, 'Unit3': 27, 'Unit4': 30 },
{'Products': 'Prod8', 'Unit1': 11, 'Unit2': 13, 'Unit3': 20, 'Unit4': 26 }]
df = pd.DataFrame(table)
この値は、この製品を販売して得られる最大の収入を反映しています。例えば。 prod1
の2単位を売ると、私は$ 32を得るでしょう。各製品について、最大4台まで販売することができます。合計で最大16台(4 * 4)を売ることができます。私の目的は総収益を最大化することです。上の例では、収益を最大化するために次の組み合わせを販売します:
{prod1: 2 units (32),
prod2: 1 unit (35),
prod3: 1 unit (37),
prod4: 4 units (31),
prod5: 4 units (33),
prod6: 4 units (36)}
私はそれをアルゴリズム的にどのように定式化できますか?
これは、[ナップザック問題](https://en.wikipedia.org/wiki/Knapsack_problem)のように聞こえます – smcd
あなたは明らかにすることができます:prod1の2つのユニットを販売すると、32または32 + 32ユニット1 +ユニット2)同様に3:27または27 + 32 + 32を売るために? – MSeifert
@MSeifert:質問を更新しました。製品1の2つのユニットについては、それはちょうど32であり、3ユニットでは27である。 – arijit