1

我正在尝试使用 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)) ]")
4

1 回答 1

2

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

成本 d[i,j] 是常数还是问题的变量?如果是这样,您需要使用非线性求解器

于 2017-06-16T06:38:22.693 回答