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

どちらも変数である d を z に掛けているため、モデルは非線形です。

コスト d[i,j] は定数ですか、それとも問題の変数ですか? その場合、非線形ソルバーを使用する必要があります

于 2017-06-16T06:38:22.693 に答える