Я определяю многомерные переменные в JuMP, однако для простоты работы я требую, чтобы индексы были строками.Некоторые из индексов могут не отличаться.Как настроить многомерные переменные в JuMP с учетом повторяющихся элементов?
Я уже пытался определить переменные как переменные строк.Однако, как только число индексов или размерность переменной превысит 3, ошибка говорит о том, что индекс должен иметь тип :: Int64.
Set1 = Set{String}(["One", "Two", "Three"])
Set2 = Set{String}(["This", "That", "Where", "There"])
Set3 = Set{String}([1,2,3,4,5])
Set4 = Set{String}(["Where", "There"])
@variable(model, x[Set1, Set2, Set2, Set3, Set4] >= 0)
Это дает ошибку, что индекс не имеетtype :: Int64, поскольку индексы превышают размерность 3.
Это прекрасно работает:
@variable(model, y[Set1, Set2] >= 0)
Чтобы ограничить размерность, я попытался сделать переменную двухмерной, как показано ниже:
@variable(model, x[Set1, [Set2, Set2, Set3, Set4]] >= 0)
Однако, это дало ошибку, что индекс повторяется (Set2).
Есть ли правильный обходной путь или синтаксическая коррекция?