首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我必须使用哪个cplex函数来编写这个变量?

我必须使用哪个cplex函数来编写这个变量?
EN

Stack Overflow用户
提问于 2019-05-12 23:31:31
回答 1查看 113关注 0票数 0

我有一个拨号乘车问题写在Java (cplex)。现在我正试着写一首轻松的歌。在这个问题中,有一个二元变量xijk,如果汽车k从i到j,则为1,否则为0。如果我想知道每条弧线上的总流量,我必须这样写: xij = sum k∈K xijk。如何使用cplex正确编写代码?

代码语言:javascript
复制
enter code here IloIntVar[][][] x = new IloIntVar[P][P][];
                       for (int i = 0; i < P; i++) {
                           for (int j = 0; j < P; j++) {
                               x[i][j] = cplex.boolVarArray(V);
                               for (int k = 0; k < V; k++) {
                                   x[i][j][k].setName("x." + i + "." + j + "." + k);
                               }
                           }
                       }
EN

回答 1

Stack Overflow用户

发布于 2019-05-13 01:13:38

如何做到这一点取决于你是想在另一个约束中使用总和,还是只想在结果中获得这个总和。

如果您想在另一个约束中使用总和,则使用cplex.sum(x[i][j])。它的计算结果是一个表达式,它是x[i][j]中所有变量的和。

如果你想在一个解决方案中计算这个和的值(在调用cplex.solve()之后),那么像这样做一个循环:

代码语言:javascript
复制
double sum = 0.0;
for (double d : cplex.getValues(x[i][j])) sum += d;

我不明白你为什么在你的问题中提到“放松”。但是,如果您想创建一个模型的松弛,那么您可能需要查看IloCplex.conversion()的参考文档。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56100743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档