我有一个IloCplex
对象,我想用Cplex Java api获取IloObjective
的系数。
使用此代码,我得到了IloObjective
和IloNumExpr
,但是我无法访问系数。
IloCplex cplex = new IloCplex();
cplex.importModel("model.lp");
IloObjective obj = cplex.getObjective();
IloNumExpr expr = obj.getExpr();
如何获取IloObjective
或IloNumExpr
的系数?
答案 0 :(得分:1)
由于您的model.lp
文件包含线性模型,因此expr
应该是IloLinearNumExpr
的实例,并且您应该能够使用linearIterator
方法对其进行迭代:
if (expr instanceof IloLinearNumExpr) {
IloLinearNumExpr lexpr = (IloLinearNumExpr) expr;
IloLinearNumExprIterator it = lexpr.linearIterator();
while (it.hasNext()) {
IloNumVar var = it.nextNumVar();
double coeff = it.getValue();
System.out.println(var + " " + coeff);
}
}