multidimensional-array - Julia 跳跃 : define a multidimensional variable when a dimension depends on other dimension

标签 multidimensional-array julia julia-jump

当我定义线性规划变量时,我必须考虑

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:3J=[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/

相关文章:

loops - 非并行 for 循环/多行推导式的缩减器

loops - 循环 JuMP 约束中的变量子集

javascript - Firefox 的 toSource() 函数的任何替代方案

c++ - 2 C++中的维数组指针操作

PHP 迭代多维数组 - 每 x 秒查询一次 Web 服务

julia - 如何传递 JuMP 支持的 SymPy 表达式

C 大型二维数组创建

plot - 如何在 Julia 中制作交互式 plotly

python - 非线性方程组 Julia

optimization - Julia JuMP - 目标函数中的 `max` 错误 : No method matching isless