繁体   English   中英

在 JuMP 中我们如何使用 VariableRef 来映射值?

[英]In JuMP How can we use VariableRef for mapping values?

我正在尝试使用 Gurobi Pkg 解决 Julia Jump 中的优化问题。 我创建了 2 个矩阵(A 和 B),应该使用第三个矩阵(矩阵 C)进行映射。

@variable(model, lb_C[i,j] <= C[i=1:m, j=1:n] <= ub_C[i,j], integer=true)
@variable(model, lb_X[i,j] <= A[i=1:m, j=1:n] <=  lb_X[i,j])
@variable(model, lb_X[i,j] <= B[i=1:m, j=1:n] <=  lb_X[i,j])

@constraint(model,[i in 1:m,j in 1:n],A[i,C[i,j]]==B[i,j],if C[i,j]!=0 end)

但我收到错误:

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

谁能知道我该如何解决这个问题? 谢谢。

您不能像这样直接索引变量。

您需要将您的问题表述为混合整数线性程序。

这种事情的一种技术是“指标约束”

# Add the constraint x == y if z == 1
model = Model()
@variable(model, x)
@variable(model, y)
@variable(model, z, Bin)
@constraint(model, z => {x == y})

Mosek 建模食谱有一些很好的建模技巧:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM