Как я могу изменить код, чтобы он мог решить модель? - PullRequest
1 голос
/ 23 апреля 2020

Юлия не может решить эту проблему, когда я использую a[i, j] = 1. как я могу заставить Джулию решить эту проблему?

using JuMP
using GLPK

u = [1 2 3 ; 1 2 3 ; 1 2 3]

m = Model(GLPK.Optimizer)
    @variable(m, a[1:3,1:3], Bin)
    @objective(m, Max, sum(u[i,j]*a[i,j] for i=1:3, j=1:3))
    @constraint(m, [a[i,j]=1], sum(a[i:j][i:j]) == 1)
    solution = optimize!(m)
    opt_value = value.(a)

1 Ответ

2 голосов
/ 23 апреля 2020

в строке

 @constraint(m, [a[i,j]=1], sum(a[i:j][i:j]) == 1)

1) Вы пытаетесь установить переменную, а не проверять равенство, вместо этого используйте

a[i,j] == 1

2) i и j не определены. Без минимального примера выполнения, я бы сказал, согласно предыдущей строке вашего кода, я бы сказал что-то вроде

sum(<what-to-sum-here> for i=1:3, j=1:3)

или l oop в списке индексов, который вы хотите использовать, если не правильный.

...