ナップザック問題はよく知られた最適化問題です。たとえば、輸送用コンテナの梱包時に発生します。輸送用コンテナには、それが保持できる重量があります。出荷する品目のコレクションがあり、各品目に価値と重量がある場合、問題は、出荷用コンテナに梱包する最適な品目を選択することです。この最適化問題は、制約のある目的として定義できます。
この例では、このようなナップザック問題を制約付き 2 次モデル (CQM) として再定式化して Leap ハイブリッド CQM ソルバーに送信することで解決します。
デフォルトのデモを実行するには、次のコマンドを入力します。
python knapsack.py
利用可能なオプションを表示するには、次のコマンドを入力します。
python knapsack.py --help
コマンドライン引数を使用すると、複数のデータ セット ( /data
フォルダーの下) から 1 つを選択し、貨物輸送量を設定できます。データ ファイルは項目の行として形式化され、それぞれが重量と値のペアとして定義されます。
knapsack.py
のコードには、次の 3 つの主要な関数が含まれています。
build_knapsack_cqm()
次のように目的と制約を設定して CQM を作成します。
parse_inputs()
サンプル ファイルからデータを読み取るユーティリティ関数です。
parse_solution()
、ソルバーから返された結果を解析して表示します。
Apache License 2.0 に基づいてリリースされています。 LICENSE ファイルを参照してください。