ナップサック問題を、自動で答えを出してくれる無料サイトツールです。荷物をクリックでおいて解答ボタンを押すだけで使えます。
上の埋め込み内でも使えますが、うまく動かない・大きなページで使いたいというときは、元のナップサック問題自動解答ツールページへ(新しいタブで開きます)。
ナップサック問題とは?
ナップサック問題とは、限られた容量のバッグ(ナップサック)に対して、複数の荷物から価値の合計を最大にするように荷物を選ぶ問題です。
この問題は計算機科学や最適化問題でよく知られており、物流、資源配分、投資計画など幅広い分野で応用されています。
このツールは、ナップサック問題を自動で解いてくれるサイトツール(ソルバー)です。
ナップサック問題自動解答ツール 使い方
1.荷物の追加
キャンバスをクリックすると、「重量」と「価値」を入力するダイアログが表示されます。
そこに数値を入力して「追加」ボタンを押すと、荷物がキャンバスに描画されます。
荷物の大きさは重量に比例して描かれます。
色は価値の平方根に基づいたグラデーション(青〜赤)で表現されます。
2.最大重量設定
画面下部にある「ナップサック最大重量」欄で
ナップサックの容量(最大重量)を設定してください。
解く(Solve)
「Solve」ボタンを押すと、全探索で最大価値の組み合わせを計算し、結果を画面下のナップサック欄に表示します。
容量に余りが出る場合は右に空白ができるので、視覚的にもわかりやすくなっています。
選ばれた荷物は左詰めで表示され、合計価値と合計重量もテキストで確認できます。
リセット
「Reset」ボタンで全ての荷物を消去し、
新しいシミュレーションを始められます。
注意点
このツールのアルゴリズムは全探索(力任せ探索)を採用しています。
そのため、荷物の数が増えると組み合わせ数が指数的に増加し、計算に時間がかかるようになります。
快適に使える目安
- 15個くらいまでは かなりサクサク動きます。
普通のPCやブラウザなら数秒以内に結果が返ってくるでしょう。 - 20個を超えると 一気に重くなります。
2^20 = 約100万通りなので、処理に数秒〜十数秒かかる可能性が高いです。 - 25個以上になると 実用的ではなくなります。
2^25 = 約3,300万通りとなり、時間が非常にかかります。
多数の荷物を扱う場合は、現実的な利用を考慮しながらご使用ください。
まとめ
- ナップサック問題は組合せ最適化の基本問題の一つ
- 本ツールは直感的に荷物を追加・編集し、最適解を視覚的に確認できるシミュレーションツール
- 全探索のため荷物数が多い場合は処理負荷が高くなるが、小〜中規模問題の理解に最適
本ツールは、ナップサック問題を直感的に理解し、手軽に最適解を探索できる便利なソルバーツールです。
最適化問題の学習やアルゴリズム理解にぜひご活用ください。