我正在使用 Julia/JuMP 来实现算法。在一部分中,我定义了一个具有连续变量的模型并求解线性模型。我做了一些其他计算,在此基础上向模型添加了一些约束,然后我想用整数变量来解决相同的问题。我无法使用convert()
函数,因为它不带变量。
我尝试再次将变量定义为整数,但模型似乎没有考虑它!我在这里提供示例代码:
m = Model()
@defVar(m, 0 <= x <= 5)
@setObjective(m, Max, x)
@addConstraint(m, con, x <= 3.1)
solve(m)
println(getValue(x))
@defVar(m, 0 <= x <= 1, Bin)
solve(m)
println(getValue(x))
您能帮我做这个转换吗?
问题是第二个@variable(m, 0 <= x <= 1, Bin)
实际上在模型中创建了一个新变量,但在 Julia 中具有相同的名称。
要将变量从连续变量更改为二进制变量,您可以执行以下操作
setcategory(x, :Bin)
在再次调用求解之前更改变量边界和类。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)