ホーム / 計算機 / オンラインナップサック問題ソルバー
無料オンラインツール

オンラインナップサック問題ソルバー

0/1ナップサック問題を動的計画法で解くオンラインツール。品物の重さと価値を入力し、容量を指定すると最大価値と選択品を表示します. 処理はブラウザ内でローカルに行われます。

使ってみる

0/1ナップサック問題とは

容量が限られたバッグに、各品物を最大1個まで入れるとき、価値の合計が最大になる組み合わせを求める問題です。このツールは動的計画法を用いて厳密な最適解を計算します。

入力形式と制約

各品物は「名前,整数の重さ,数値の価値」の形式で1行に1つずつ入力します。名前は空でなく、重さは正の整数で容量以下、価値は0から1000000000の整数です。品物は1個から200個まで指定できます。

計算例

例えば、以下の3品物を考えます。

A,2,6
B,3,10
C,4,12

容量を5とすると、最大価値は16で、選択される品物はAとBです。

出力と注意点

出力には最大価値と、その価値を達成する1つの最適な組み合わせが表示されます。同点の組み合わせが複数ある場合でも、すべてを列挙するわけではなく、重さが軽いなどの副次的な基準で最適化することもありません。また、このツールは分数や複数個の選択、多次元、通貨換算には対応していません。価値は抽象的なスコアとして扱ってください。

よくある質問

品物の数に制限はありますか?

1個から200個まで入力できます。

重さや価値に小数は使えますか?

いいえ、重さは整数、価値は整数で指定してください。

同点の組み合わせが複数ある場合、どれが選ばれますか?

このツールは特定の1つの最適解を返しますが、どの組み合わせが選ばれるかは保証されません。

チェックリスト

  • 各品物を1行に「名前,重さ,価値」の形式で入力しましたか?
  • 容量は1から5000の整数ですか?
  • 品物の名前は一意で空ではありませんか?
  • 重さは容量以下ですか?

処理はブラウザ内でローカルに行われます。