【发布时间】:2019-07-30 09:01:03
【问题描述】:
我无法将整个代码放在这里,并且无法用小代码重现问题,但这里是代码的开头:
using JuMP, Cbc, StatsBase
n = 3;
V = 1:(2n+1);
model = Model(with_optimizer(Cbc.Optimizer, seconds=120));
@variable(model, x[V], Bin);
...
@objective(model, Min, total_blah);
JuMP.optimize!(model)
result = termination_status(model)
JuMP.objective_value(model)
xsol = JuMP.value.(x);
我遇到的问题是求解器返回一个解决方案,其中一些 xsol 具有 0.99995 之类的值,我期待二进制,即 0 或 1。
有人可以解释这种行为吗?
【问题讨论】:
-
你能链接到代码吗?
-
也许求解器无法在您设置的 120 秒时间限制内找到可行的解决方案?您可以尝试将
maxSolutions=1或ratioGap设置为足够大的值以使求解器在合理的时间内终止,而不是使用时间限制。 -
求解器具有整数可行性容差。我相信 CBC 为此使用默认值 1e-6。
标签: julia julia-jump