我有一個在IBM ILOG CPLEX Optimization Studio中建模的線性問題,它返回正確的解決方案,即客觀值。 爲了仿真目的,我使用ILOG模型的模型文件和我都從Java調用數據文件:如何從java訪問ilog決策變量?
IloOplFactory.setDebugMode(false);
IloOplFactory oplF = new IloOplFactory();
IloOplErrorHandler errHandler = oplF.createOplErrorHandler(System.out);
IloOplModelSource modelSource = oplF.createOplModelSource("CDA_Welfare_Examination_sparse2.mod");
IloCplex cplex = oplF.createCplex();
IloOplSettings settings = oplF.createOplSettings(errHandler);
IloOplModelDefinition def=oplF.createOplModelDefinition(modelSource,settings);
IloOplModel opl=oplF.createOplModel(def,cplex);
String inDataFile = path;
IloOplDataSource dataSource=oplF.createOplDataSource(inDataFile);
opl.addDataSource(dataSource);
opl.generate();
opl.convertAllIntVars(); // converts integer bounds into LP compatible format
if (cplex.solve()){
}
else{
System.out.println("Solution could not be achieved, probably insufficient memory or some other weird problem.");
}
現在,我想從Java訪問實際的決策變量匹配[可匹配。
在ILOG CPLEX優化工作室我用下面的nomenclatura:
tuple bidAsk{
int b;
int a;
}
{bidAsk} Matchable = ...;
dvar float match[Matchable];
在Java中我以下列方式訪問目標值(正常工作):
double sol = new Double(opl.getSolutionGetter().getObjValue());
現在,怎麼辦我訪問決策變量「匹配」?到目前爲止,我已經開始
IloOplElement dVarMatch = opl.getElement("match");
但我似乎無法得到任何進一步的。非常感謝幫助!非常感謝!