ナップザックを最適に満たす動的計画法アルゴリズムは、ナップザックが 1 つの場合にうまく機能します。しかし、2 つのナップザックを最適に満たす効率的な既知のアルゴリズムはありますか (容量は等しくなくてもかまいません)。
次の 2 つの方法を試しましたが、どちらも正しくありません。
- まず、元の DP アルゴリズムを使用して最初のナップザックを満たし、1 つのナップザックを満たし、次に他のナップザックを満たします。
- 最初にサイズ W1 + W2 のナップザックに水を入れ、次に溶液を 2 つの溶液に分割します (ここで、W1 と W2 は 2 つのナップザックの容量です)。
問題文 (ウィキペディアのナップザック問題も参照):
総重量がナップザックのサイズ以下でありながら、アイテムから得られる価値を最大化するために、ナップザックに一連のアイテム (各アイテムには重量と値があります) を入れる必要があります。
アイテムを複数回使用することはできません。
- アイテムの一部を使用することはできません。アイテムの端数を取ることはできません。(すべての項目が完全に含まれているかどうかのいずれかである必要があります)。