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は渡されません。 このモデルの形式で何か不足していますか?Juliaで分離アルゴリズムを呼び出す
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)) ]")
d [i、j] sは定数です。したがって、モデルは線形です。 – ccc
なぜ 'd'は変数であると宣言されていますか?あなたはあなたの質問の変数としてdの役割を記述しました。「すべての変数z [i、j]とd [i、j]に対する答えはゼロです。 – pkofod