ナップサック問題

ナップサック問題

執筆済 最適化組合せ最適化

容量の限られた袋に、価値の合計が最大になるよう品物を詰める問題。

maxivixis.t.iwixiW,xi{0,1}

弱 NP 困難#

NP 困難だが、動的計画法で 𝒪(nW) 時間で解ける。

f(i,c)=max(f(i1,c),f(i1,cwi)+vi)

W が入力のであって桁数ではないので、これは多項式時間ではない (W の桁数に対しては指数)。この種の問題を弱 NP 困難と呼び、 TSP のような強 NP 困難と区別する。

実用上は W が小さければ厳密に解けるということで、 数分割問題も同じ性質を持つ。

貪欲法との関係#

価値密度 vi/wi の大きい順に詰める貪欲法は、 分割可能なナップサック(品物を切ってよい)では最適。 0-1 版では最適にならないが、良い初期解になる。

制約の QUBO 化#

iwixiW という不等式制約は、 そのままではQUBOに載らない。 スラック変数をビットで表して等式に直し、 ペナルティ項として足すのが定石。 このためビット数が増え、量子ハードウェアでは実装上の負担になる。

参考文献#

ノート一覧を閉じる