正在打开模型库
正在打开模型库
决策必须是整数或 0-1 时,用整数规划描述“选还是不选”。
很多现实决策不能取 3.7 辆车,必须是整数,于是在线性规划上加整数约束。
出现“建几个、派几辆、开不开”这种离散决策时用。
Python 代码
# 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)