【问题标题】:How to do "for all" in sum notation in Julia/JuMP如何在 Julia/JuMP 中用总和符号“为所有人”做
【发布时间】:2015-11-03 20:17:58
【问题描述】:

我正在尝试使用 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

我想要得到的是:

我正在尝试使用 for 循环来代替“for all i from 1 to 5”,但是我不断收到错误。还有其他方法吗?

【问题讨论】:

    标签: julia julia-jump


    【解决方案1】:

    在数学符号中,您对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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多