Mukai Systems

Knapsack problem

Program



Items:
indexitemweight[kg]value[$]



Description

これはKnapsack problemを動的計画法を用いて解くプログラムである。

ナップサック問題(ナップサックもんだい、Knapsack problem)は、計算複雑性理論における計算の難しさの議論の対象となる問題の一つで、n 種類の品物(各々、価値 vi、重量 wi)が与えられたとき、重量の合計が W を超えない範囲で品物のいくつかをナップサックに入れて、その入れた品物の価値の合計を最大化するには入れる品物の組み合わせをどのように選べばよいか」という整数計画問題である。

-- Wikipedia: ナップサック問題

この問題はいくつかの点で非常に興味深い。

Source code

Notes

山登りをはじめたばかりのあなたは、「ひょっとして、ザックのcapacityを40Lとして、寝袋は10Lで…、このプログラムを使えばわたしのザックの中身の価値を最大化できるじゃないか!!!」と思ってしまったかもしれない。

残念ながらそれは間違っている。

必要なものはすべて持っていくべきだが、不要なものは一切持っていくべきではない。

これが登山の大原則なのである。

More info