4

JuMP を使用して Julia の線形最適化問題に制約を追加しようとしています。関数を使用していsum{}ますが、いくつかの制約に問題があります。JuMP (逆さまの A) で「for all」と書く方法を知っている人はいますか? これが私がこれまでに持っているコードです:

using JuMP
m = Model()
c= [3 5 2 ; 4 3 5 ; 4 5 3 ; 5 4 3 ; 3 5 4]
@variable(m, x[i=1:5,j=1:3] >= 0)
@objective(m,Min,sum{c[i,j]*x[i,j],i=1:5,j=1:3})
for i=1:5
    @constraint(m, sum{x[i,j],i,j=1:3} <= 480)
end

私が取得しようとしているのはこれです: ここに画像の説明を入力

「1から5までのすべてのi」の代わりにforループを使用しようとしていますが、エラーが発生し続けます。これを行う別の方法はありますか?

4

1 に答える 1

4

数学表記では、 を合計しi、 ごとに合計しますj。Julia/JuMP では、"∀" はforループ ("for all") であり、"Σ" はsum{ }:

using JuMP
m = Model()
c= [3 5 2;
    4 3 5;
    4 5 3;
    5 4 3;
    3 5 4]
# x_ij >= 0  ∀ i = 1,...,5, j = 1,...,3
@variable(m, x[i=1:5,j=1:3] >= 0)
@objective(m,Min,sum{c[i,j]*x[i,j],i=1:5,j=1:3})
# ∀j = 1,...,3
for j in 1:3
    @constraint(m, sum{x[i,j],i=1:5} <= 480)
end
于 2015-08-11T15:39:52.163 に答える