2

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))

この変換を手伝ってくれませんか?

4

2 に答える 2

2

問題は、2 番目@variable(m, 0 <= x <= 1, Bin)が実際にはモデル内に新しい変数を作成することですが、Julia では同じ名前です。

変数を連続変数からバイナリ変数に変更するには、次のようにします。

setcategory(x, :Bin)

solve を再度呼び出す前に、変数の範囲とクラスを変更します。

于 2015-01-04T08:20:30.623 に答える