背包問題是一個眾所周知的最佳化問題。例如,在包裝貨櫃時就會遇到這種情況。運輸貨櫃具有可容納的重量。給定要運輸的一系列物品,其中每個物品都有一個價值和重量,問題是選擇要包裝在運輸貨櫃中的最佳物品。此最佳化問題可以定義為具有限制條件的目標:
此範例透過將背包問題重新表述為約束二次模型 (CQM) 並提交給 Leap 混合 CQM 求解器來解決此類背包問題。
若要執行預設演示,請輸入命令:
python knapsack.py
若要查看可用選項,請輸入指令:
python knapsack.py --help
命令列參數可讓您選擇多個資料集之一(在/data
資料夾下)並設定貨運能力。資料檔案被制定為多行項目,每個項目定義為一對重量和值。
knapsack.py
中的程式碼包括三個主要函數:
build_knapsack_cqm()
透過設定目標和限制來建立 CQM,如下所示:
parse_inputs()
是一個實用函數,用於從範例檔案中讀取資料。
parse_solution()
解析並顯示求解器傳回的結果。
根據 Apache 許可證 2.0 發布。請參閱許可證文件。