java - CPLEX 得到目标函数的系数

标签 java cplex

我有一个 IloCplex 对象,我想使用 Cplex Java API 获取 IloObjective 的系数。

通过此代码,我获得了 IloObjectiveIloNumExpr,但无法访问系数。

IloCplex cplex = new IloCplex();
cplex.importModel("model.lp");
IloObjective obj = cplex.getObjective();
IloNumExpr expr = obj.getExpr();

如何获取 IloObjectiveIloNumExpr 的系数?

最佳答案

由于您的 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);
    }
}

关于java - CPLEX 得到目标函数的系数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56325965/

相关文章:

c++ - CPLEX如何以相同的成本得到所有不同的最优解

java - java 上的背包问题 - 输出始终为目标函数

java - Cordova 无法为 2097152KB 对象堆保留足够的空间

java - 什么决定了 Class.getMethods() 的返回顺序?

python - 参数不一致 CPLEX 错误 Python API

python - 使用 Pulp 进行 LP 优化。使用 IF 设置约束

optimization - 使用 CPLEX 检查新变量降低的成本

java - 如何在Spring App中显示目录?

java - 如何以编程方式在 Java 中将 doc、docx 文件转换为 pdf

java - 制作android游戏: can not acces my SharedPreferences in class which extends SurfaceView implements SurfaceHolder.回调