Originally posted by: SystemAdmin
[xplorr said:]
I have implemented a Column Generation model and managed to run a few iterations with it in OPL IDE 6.3.
Then, the IDE report an internal error: "not enough memory".
I checked every object which is instantiated with "new" in the loop, and made sure "end()" is properly
called like follows.
...
{ //inside the loop of resolving the master problem
...
{ //inside the loop for solving multiple subproblems
subOpl = new IloOplModel(subDef,subCplex);
subOpl.addDataSource(subData1);
subData = new IloOplDataElements();
subData.mu=masterOpl.mu;
...
subOpl.addDataSource(subData);
subOpl.generate();
if ( subCplex.solve() &&
subCplex.getObjValue() <= -RC_EPS) {<br /> insert = true;
masterData.patterns.add(k,subOpl.R.solutionValue);
}
subData.end();
subOpl.end();
} //end the loop for solving multiple subproblems
if(!insert){
writeln("No new good pattern, stop.");
break;
}
masterOpl.end()
masterOpl = new IloOplModel(masterDef,masterCplex);
masterOpl.addDataSource(masterData);
masterOpl.generate();
} //end the loop of resolving the master problem
But this didn't solve the problem.
I guessed it's just the problem size and the overhead of running OPL IDE 6.3,
So I turned to oplrun. However, using the same set of model and data files, oplrun can not even finish
one full round. It bailed out while trying to re-extract master problem after a few columns have been
added:
masterOpl.generate();
The error information is simply:
### UNEXPECTED ERROR ...
I monitored memory usage of oplrun with windows task manager. Its memory footage never exceed 100 MB.
Will really appreciate any hint on what may lead to the different behaviors of OPL IDE and oplrun.exe
#DecisionOptimization#OPLusingCPLEXOptimizer