正在展开冲刺页面
正在展开冲刺页面
用枚举理解整数规划的决策含义,规模大时再换求解器。
价值、重量、容量。
最优价值与选中物品。
选址/是否开设的小规模对照。
完整可运行代码
# 0-1 背包暴力示例
values, weights, cap = [6, 5, 8, 9, 6], [2, 3, 4, 5, 3], 9
best = (0, [])
n = len(values)
for mask in range(1 << n):
w = sum(weights[i] for i in range(n) if mask >> i & 1)
v = sum(values[i] for i in range(n) if mask >> i & 1)
if w <= cap and v > best[0]:
best = (v, [i for i in range(n) if mask >> i & 1])
print(best)