5

Julia は初めてで、 JuMPで最適化問題を定義しようとしています。ループx1,x2,x3....を使用して定義しようとしている変数 ( ) がたくさんあります。forコードが欲しい:

@variable(m, x1>=0)
@variable(m, x2>=0) ... 

ただし、ループを使用したかったforので、すべての変数を手動で定義する必要はありませんでした。
これが私がこれまでに持っているものです:

m = Model()
for i = 1:2
    @variable(m,string('x',i)>=0)
end 

その部分が正しくないことはわかってstring('x',i)いますが、ジュリアを使用してこれを行う方法がわかりません。

4

3 に答える 3

5

を使用して、変数にインデックスを追加できます@variable。以下はすべて、JuMP で有効です。

m = Model()
@variable(m, x[1:2] >= 0)
@variable(m, boringvariable[1:9,1:9,1:9])
@variable(m, 0 <= pixel_intensity[1:255,1:255] <= 1)
@variable(m, bit_pattern[0:8:63], Bin)
N = 5, M = 10
@variable(m, trucks_dispatched[i=1:N,j=1:M] >= 0, Int)
items = [:sock,:sandal,:boot]
max_stock = [:sock => 10, :sandal => 13, :boot => 5]
@variable(m, 0 <= stock_levels[item=items] <= max_stock[item])
于 2015-08-04T15:19:05.483 に答える
5

x変数の配列が必要なようです。

JuMP docsから、定義で配列構文を使用して配列を作成できます。

@variable(m, x[1:2] >= 0)
@variable(m, y[1:M,1:N] >= 0)
于 2015-08-04T14:53:45.563 に答える