【发布时间】:2013-08-23 22:32:19
【问题描述】:
我正在使用 IBM CPLEX 库来解决 Java 中的优化问题。由于主内存对应用程序来说不够用,我发现了 CPLEX 的一个属性:“内存强调:让优化器使用磁盘进行存储”。 Memory Emphasis 的默认值为 0。如何在 Java 中更改此属性?
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]
}
}
【问题讨论】:
-
你确定你不能做任何事情来减少你的优化问题的内存需求吗?
-
事实上,从堆分配的内存在我的应用程序中并不多。 CPLEX 在寻找最佳解决方案时使用高达 12GB 的内存。我不知道CPLEX库内部逻辑的细节。
标签: java optimization mathematical-optimization linear-programming cplex