Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Julia 可以使用VariableRef作为索引吗_Julia_Julia Jump - Fatal编程技术网

Julia 可以使用VariableRef作为索引吗

Julia 可以使用VariableRef作为索引吗,julia,julia-jump,Julia,Julia Jump,我正在使用Julia的跳跃解算器,试图找到一条最佳路径 我的问题是,目标函数是一个矩阵的元素之和,它的指数是优化问题中的变量 nb_dem, nb_prod, nb_mag, nb_noeuds, S, Q, R = read_data_24(inputfilepath, inputfilename) @variable(model, produits[1:nb_mag,1:nb_prod,1:nb_dem] >= 0, Int) @variable(model, chemins[1:nb

我正在使用Julia的跳跃解算器,试图找到一条最佳路径

我的问题是,目标函数是一个矩阵的元素之和,它的指数是优化问题中的变量

nb_dem, nb_prod, nb_mag, nb_noeuds, S, Q, R = read_data_24(inputfilepath, inputfilename)
@variable(model, produits[1:nb_mag,1:nb_prod,1:nb_dem] >= 0, Int)
@variable(model, chemins[1:nb_noeuds+1, 1:nb_mag], Int)
@variable(model, binaires[1:nb_mag,1:nb_dem], Bin)

# define objective function
@objective(model, Min, sum(sum(R[chemins[k,i],chemins[k+1,i]] for k in 1:nb_noeuds) for i in 1:nb_mag))
我添加了一些约束,但当我尝试运行时,会收到一条错误消息,告诉我不能使用VariablesRef作为索引

ArgumentError: invalid index: chemins[1,1] of type VariableRef

是否有办法将变量SREF转换为可用索引?

您需要创建一个二进制向量来表示索引,然后再乘以它,例如:

x = [2,5,7]
@variable(m, x_indices[1:length(x)])
@variable(m, y)
@constraint(m, y >= sum(x .* x_indices))
@constraint(m, sum(x_indices) == 1)

您需要创建一个二进制向量来表示索引,然后再乘以它,例如:

x = [2,5,7]
@variable(m, x_indices[1:length(x)])
@variable(m, y)
@constraint(m, y >= sum(x .* x_indices))
@constraint(m, sum(x_indices) == 1)

如果您可以编辑您的问题,使其仅包含特定于问题的行,以便其他人可以使用,那将是一件好事。如果您可以编辑您的问题,使其仅包含特定于问题的行,以便其他人可以使用,那将是一件好事。