在Julia中调用分离算法

时间:2017-06-16 04:39:34

标签: optimization julia julia-jump

我试图使用Julia-JuMP来解决模型问题。以下是我创建的模型的概述。在此,z[i,j]是二进制变量,d[i,j]z[i,j]=1的成本。 我的约束创建了无数个约束,因此我需要使用分离算法来解决它。 首先,我在没有任何约束的情况下解决模型,因此所有变量z[i,j]d[i,j]的答案都为零。 然后,我包括分离算法(在if条件内给出)。即使我包括if z_value == 0,z_values也没有传递给它。 我错过了这个型号的格式吗?

m = Model(solver=GurobiSolver())

@variable(m, z[N,N], Bin)
@variable(m, d[N,N]>=0)

@objective(m, Min, sum{ d[i,j]*z[i,j], i in N, j in N} )

z_value = getvalue(z)
d_value = getvalue(d)

if z_value == 0
    statement
elseif z_value == 1 
  statement
end

@constraint(m, sum{z[i,j], i in N, j in N}>=2)

solve(m)

println("Final solution: [ $(getvalue(z)), $(getvalue(d)) ]")

1 个答案:

答案 0 :(得分:2)

您将z乘以d,两者都是变量,因此您的模型是非线性的,

成本d [i,j]是否恒定或实际上是问题的变量? 如果是这样,您需要使用非线性求解器