当我定义线性规划变量时,我必须考虑
index_i = 1:3 index_j = J = [1:2, 1:5, 1:3]
我想定义一个用 i 和 j 索引的变量 x,如果 i 是 1, {1,2,3,4,,则 i 是 {1,2,3},j 位于 {1,2} 中, 5} 如果 i 是 2,则 {1,2,3} 如果 i 是 3。
我尝试了几种语法,但没有一个成功地交付了它。有什么建议吗?
我想知道为什么这不起作用
@variable(m, e[i for i in I, j for j in J[i]])
我期待这样的结果
e[1,1]
e[1,2]
e[1,3]
e[2,1]
e[2,2]
e[2,3]
e[2,4]
e[2,5]
e[3,1]
e[3,2]
e[3,3]
最佳答案
假设I=1:3
和J=[1:2, 1:5, 1:3]
你可以这样做:
julia> @variable(m, e[i in I, j in J[i]])
JuMP.Containers.SparseAxisArray{VariableRef, 2, Tuple{Int64, Int64}} with 10 entries:
[1, 1] = e[1,1]
[1, 2] = e[1,2]
[2, 1] = e[2,1]
[2, 2] = e[2,2]
[2, 3] = e[2,3]
[2, 4] = e[2,4]
[2, 5] = e[2,5]
[3, 1] = e[3,1]
[3, 2] = e[3,2]
[3, 3] = e[3,3]
关于multidimensional-array - Julia 跳跃 : define a multidimensional variable when a dimension depends on other dimension,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74907504/