Julia 可以使用VariableRef作为索引吗
我正在使用Julia的跳跃解算器,试图找到一条最佳路径 我的问题是,目标函数是一个矩阵的元素之和,它的指数是优化问题中的变量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
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)
如果您可以编辑您的问题,使其仅包含特定于问题的行,以便其他人可以使用,那将是一件好事。如果您可以编辑您的问题,使其仅包含特定于问题的行,以便其他人可以使用,那将是一件好事。