Cplex получить коэффициенты целевой функции - PullRequest
0 голосов
/ 27 мая 2019

У меня есть объект IloCplex, и я хочу получить коэффициенты IloObjective с API Cplex Java.

С этим кодом я получаю IloObjective и IloNumExpr, но я могуне получить доступ к коэффициентам.

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

Как получить коэффициенты IloObjective или IloNumExpr?

1 Ответ

1 голос
/ 27 мая 2019

Поскольку ваш файл 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);
    }
}

...