Как сделать "для всех" в сумме обозначений в Юлии /JuMP

Я пытаюсь добавить ограничения для задачи линейной оптимизации в Юлии, используя JuMP. Я использую sum{} Однако у меня возникли проблемы с некоторыми ограничениями. Кто-нибудь знает, как написать "для всех" в JuMP (вверх ногами А)? Вот код, который у меня есть:

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", однако я продолжаю получать ошибки. Есть ли другой способ сделать это?

1 ответ

Решение

В математической записи вы суммируете iи так для каждого j, В Julia/JuMP вы можете думать о "∀" как о for цикл ("для всех"), и "Σ" как 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
Другие вопросы по тегам