【发布时间】:2017-05-09 04:26:30
【问题描述】:
通常在 Gurobi 的 Java 界面中,我通过向模型添加变量来创建模型,例如:
for (int i = 0; i < n; i++){
for (int j = 0; j < n; j++) {
XobjectiveCoef = distance(i, j);
X[i][j] = model.addVar(0.0, 1.0, XobjectiveCoef, GRB.BINARY, "x" + String.valueOf(i) + "_" + String.valueOf(j));
}
}
完成后,我的模型是 i 和 j 上所有 X 的总和,我可以在任何我想要的约束中使用 X[i][j],如下所示:
for (int j = 0; j < n; j++) {
GRBLinExpr expr = new GRBLinExpr();
for (int i = 0; i < n; i++){
expr.addTerm(1.0, X[i][j]);
}
model.addConstr(expr, GRB.EQUAL, 1.0, "Name_of_constraint");
}
现在我正在寻找的是一种仅在约束中而不是在模型定义中使用决策变量的方法。我检查了addVar 是否可用于GRBLinExpr,但它不是。
谢谢
【问题讨论】:
标签: java optimization gurobi