0-1ナップザック問題を解決するための動的プログラミング

このごろアルゴリズムの先生は、ジョブを配置し溶液プロセスに関する記録ナップザック問題、についてです:

:ナップザック問題を説明

そこN1、N2、N3 ...より多くの項目、各項目の重みをW1で、W2、W3 ...、各項目の値はV1、V2、V3 ...、今はベアリングを持っていますCは最大値を作るためにアイテムのバックパックに入れアイテムの合計値を取得する方法を、バックパックの重量です。
つのみ各アイテムのため、および選択または残すことができ、バックパックに0とは物体が存在しないので、対象物1へのバックパックが表します

II:プロセス分析(特定の例を分析します)

説明タイトル:従来の軸受は、ナップザックバッグであってもよい、3物品の6重量は、2,3,4-、1,2,5-値です。最高の組み合わせ得ることは、この問題を解決するための動的なプログラミングでナップザック
思考の利便性のためには、我々は徐々に0から6までのバックパックの重量を増加させ、そして項目の0の重みがあると仮定すると、私たちは4つの項目を与えた0の番号が付けられています、1,2,3。そして、あなたはアイテムの重量を表しwは、vは、商品の価値を表し、このフォームを取得します。データテーブルは、現在の容量を示すデータが得られる方法を配置することができる最大値は、後ろに分析される
0-1ナップザック問題を解決するための動的プログラミング
問題の分析:
バックパックにアイテムを選択した場合、2つの可能性がある:現在のアイテムの数がnであると仮定します

おすすめ

転載: blog.51cto.com/14234228/2444019