ホームページ >バックエンド開発 >C++ >ナップザック アルゴリズムを使用して、ナップザックに含まれる特定のアイテムを識別するにはどうすればよいでしょうか?

ナップザック アルゴリズムを使用して、ナップザックに含まれる特定のアイテムを識別するにはどうすればよいでしょうか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-26 13:51:11998ブラウズ

How Can We Identify the Specific Items Included in a Knapsack Using the Knapsack Algorithm?

ナップサック アルゴリズムを使用したナップサック内のアイテムの決定

最適化手法であるナップサック アルゴリズムは、アイテムの最適な値を決定するためによく使用されます。限られた容量のナップザックに収納できます。ただし、包括的なソリューションを得るには、最適な値だけでなく、ナップザックに含まれる特定のアイテムも特定することが望ましいことがよくあります。

提供されたコードを強化するために、追加の配列を利用して、選ばれたアイテムたち。この選択を実行するための適切なステップは、アルゴリズムの反復プロセス中にあります。

各反復の後、ナップザック内の現在の重量 (dpw) と現在のアイテムを含まない前の重量 (dp) との差があるかどうかを確認します。 [w - items[j-1].getWeight()][j-1]) は、現在のアイテムの重量と等しくなります。この条件が満たされる場合、その項目は選択されており、配列に追加する必要があります。

あるいは、最適値を決定した後に行列を逆方向にたどる簡単なアプローチもあります。ナップザック内の現在の重み (dpline) と、現在のアイテムのない前の重み (dpline -weight(i)) との差が、現在のアイテムの値 (value(i)) と正確に等しい場合、それは、アイテムはナップザックに入っているので、そのようにマークする必要があります。このプロセスは、すべての項目がチェックされるまで続きます。

以上がナップザック アルゴリズムを使用して、ナップザックに含まれる特定のアイテムを識別するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。