如何在 JuMP 中将新变量添加到已经存在的变量集(基于 SparseAxisArray)?
How to add a new variable to an already existing set of variables (based on a SparseAxisArray) in JuMP?
我目前正在使用 JuMP 模型,我在其中定义了以下示例变量:
using JuMP
N = 3
outN = [[4,5],[1,3],[5,7]]
m = Model()
@variable(m, x[i=1:N,j in outN[i]] >=0)
在某些时候,我想添加,例如,一个变量x[1,7]
。我怎样才能有效地做到这一点?同样,之后如何删除它?除了将其固定为 0 之外,还有其他选择吗?
提前致谢
你最好只使用字典:
using JuMP
N = 3
outN = [[4,5],[1,3],[5,7]]
model = Model()
x = Dict(
(i, j) => @variable(model, lower_bound = 0, base_name = "x[$i, $j]")
for i in 1:N for j in outN[i]
)
x[1, 7] = @variable(model, lower_bound = 0)
delete(model, x[1, 4])
delete!(x, (1, 4))
JuMP 不会限制您仅使用内置变量容器:https://jump.dev/JuMP.jl/stable/variables/#User-defined-containers-1
我目前正在使用 JuMP 模型,我在其中定义了以下示例变量:
using JuMP
N = 3
outN = [[4,5],[1,3],[5,7]]
m = Model()
@variable(m, x[i=1:N,j in outN[i]] >=0)
在某些时候,我想添加,例如,一个变量x[1,7]
。我怎样才能有效地做到这一点?同样,之后如何删除它?除了将其固定为 0 之外,还有其他选择吗?
提前致谢
你最好只使用字典:
using JuMP
N = 3
outN = [[4,5],[1,3],[5,7]]
model = Model()
x = Dict(
(i, j) => @variable(model, lower_bound = 0, base_name = "x[$i, $j]")
for i in 1:N for j in outN[i]
)
x[1, 7] = @variable(model, lower_bound = 0)
delete(model, x[1, 4])
delete!(x, (1, 4))
JuMP 不会限制您仅使用内置变量容器:https://jump.dev/JuMP.jl/stable/variables/#User-defined-containers-1