Примеры, включенные в CPLEX, показывают, как это сделать. Например, этот фрагмент взят из ilolpex4.cpp
:
IloNumArray vals(env);
cplex.getValues(vals, var);
Примеры можно найти в <COSDIR>/cplex/examples/src/cpp
, где <COSDIR>
- это место, в котором вы установили ILOG CPLEX Optimization Studio. Описание примеров можно найти здесь .
РЕДАКТИРОВАТЬ:
В вашем фрагменте кода вы не инициализировали down
и up
.
Следующая модификация примера ilolpex2.cpp
отлично работает на моем компьютере x86-64 Linux:
cplex.extract(model);
if ( !cplex.solve() ) {
env.error() << "Failed to optimize LP" << endl;
throw(-1);
}
else {
IloNumArray down(env);
IloNumArray up(env);
IloInt64 itmax = cplex.getParam(IloCplex::Param::Simplex::Limits::Iterations);
cplex.getStrongBranch(down, up, var, itmax);
for (int i = 0; i < var.getSize(); ++i) {
env.out() << var[i].getName()
<< "(" << down[i] << ", " << up[i]
<< ")" << endl;
}
}
Документация для базовой функции CPXstrongbranch
: здесь .