我正在使用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庫的內部邏輯的詳細信息。 –