我有一个混合整数编程问题。目标函数是 a 向量中最大变量值的最小化。变量 is 的上限为 5。问题是这样的:
m = Model(solver = GLPKSolverMIP())
@objective(m, Min, max(x[i] for i=1:12))
@variable(m, 0 <= x[i] <= 5, Int)
@constraint(m, sum(x[i] for i=1:12) == 12)
status = solve(m)
max 变量不是 julia JuMP 语法的一部分。所以我将问题修改为
t=1
while t<=5 && (status == :NotSolved || status == :Infeasible)
m = Model(solver = GLPKSolverMIP())
i = 1:12
@objective(m, Min, max(x[i] for i=1:12))
@variable(m, 0 <= x[i] <= t, Int)
@constraint(m, sum(x[i] for i=1:12) == 12)
status = solve(m)
t += 1
end
该解决方案通过迭代解决问题来完成这项工作,该问题从 1 处的变量上限开始,然后增加 1 直到解决方案可行。这真的是最好的方法吗?