【发布时间】:2019-04-10 12:44:35
【问题描述】:
我在 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)
这给出了索引不是类型 ::Int64 的错误,因为索引超过了维度 3。
这很好用:
@variable(model, y[Set1, Set2] >= 0)
为了限制维度,我尝试将变量设为二维,如下所示:
@variable(model, x[Set1, [Set2, Set2, Set3, Set4]] >= 0)
但是,这给出了索引重复(Set2)的错误。
是否有适当的解决方法或语法更正?
【问题讨论】:
标签: optimization syntax julia julia-jump