我正在使用IBM CPLEX库来解决Java中的优化问题。由于主存不足以满足应用程序的需求,因此我找到了一个CPLEX属性:“内存重点:让优化器使用磁盘进行存储”。 Memory Emphasis的默认值为0.如何在Java中更改此属性?使用Java中的CPLEX库进行内存优化
for (int i = 0; i < GreenOverlayGlobals.numNodes; i++) {
for (int j = 0; j < GreenOverlayGlobals.numNodes; j++) {
IloLinearNumExpr expr2 = cplex.linearNumExpr();
for (int p = 0; p < GreenOverlayGlobals.numPathPairs; p++) {
cplex.addLe(xPath[i][j][p], xLink[i][j]); //x[i][j][p] <= x[i][j]
expr2.addTerm(1, xPath[i][j][p]);
}
cplex.addLe(xLink[i][j], expr2); //x[i][j] <= sump_x[i][j][p]
}
}
您确定无法做任何事情来减少优化问题的内存要求吗? – raoulcousins
事实上,从堆中分配的内存在我的应用程序中并不多。 CPLEX使用高达12GB的内存,同时寻找最佳解决方案。我不知道CPLEX库的内部逻辑的详细信息。 –