怎么做"为所有"在朱莉娅/ JuMP的总和表示法中

时间:2015-08-11 14:30:27

标签: julia julia-jump

我正在尝试使用JuMP在Julia中为线性优化问题添加约束。我正在使用sum{}函数,但是我遇到了一些限制问题。有谁知道怎么写#34;对所有人来说#34;在JuMP(颠倒的A)?这是我到目前为止的代码:

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

我想要得到的是: enter image description here

我正在尝试使用for循环代替&#34;对于所有i从1到5&#34;但是我不断收到错误。还有另一种方法吗?

1 个答案:

答案 0 :(得分: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