0-1 背包是一个经典的组合优化问题,其中的思想非常重要。今天我们以一个简单的例子,先来体会 0-1 背包问题。
有一个最大承重量为w的背包,第i件物品的价值为a1[i],第i件物品的重量为a2[i],将物品装入背包,求解背包内最大的价值总和可以为多少?
例子:
a1 = [100, 70, 50, 10], a2 = [10, 4, 6, 12], w = 12, 背包内的最大价值总和为 120,分别装入重量为4和6的物品,能获得最大价值为 120
补全下面代码,返回求解的最大价值:
转换成线性规划问题
from pulp import LpProblem, LpVariable, LpConstraint, LpConstraintLE, LpConstraintGE, LpMaximize, LpBinary, LpStatus
# Create a new model
m = LpProblem(name="MIP Model", sense=LpMaximize)
# Create variables
a = LpVariable(cat=LpBinary, name="a")
b = LpVariable(cat=LpBinary, name="b")
c = LpVariable(cat=LpBinary, name="c")
d = LpVariable(cat