背包问题是一个众所周知的优化问题。例如,在包装集装箱时就会遇到这种情况。运输集装箱具有可容纳的重量。给定要运输的一系列物品,其中每个物品都有一个价值和重量,问题是选择要包装在运输集装箱中的最佳物品。该优化问题可以定义为带有约束的目标:
本示例通过将背包问题重新表述为约束二次模型 (CQM) 并将其提交给 Leap 混合 CQM 求解器来解决此类背包问题。
要运行默认演示,请输入命令:
python knapsack.py
要查看可用选项,请输入命令:
python knapsack.py --help
命令行参数允许您选择多个数据集之一(在/data
文件夹下)并设置货运能力。数据文件被制定为多行项目,每个项目定义为一对重量和值。
knapsack.py
中的代码包括三个主要函数:
build_knapsack_cqm()
通过设置目标和约束来创建 CQM,如下所示:
parse_inputs()
是一个实用函数,用于从示例文件中读取数据。
parse_solution()
解析并显示求解器返回的结果。
根据 Apache 许可证 2.0 发布。请参阅许可证文件。