如何从Cplex获取约束数 我有一个长程序,我用C++编写的,我用代码> ILOG CPLI122.5求解器< /C>来解决它。 如何获取约束的总数?它有函数吗?

如何从Cplex获取约束数 我有一个长程序,我用C++编写的,我用代码> ILOG CPLI122.5求解器< /C>来解决它。 如何获取约束的总数?它有函数吗?,c++,modeling,linear-programming,cplex,C++,Modeling,Linear Programming,Cplex,有一个类IloModel::Iterator类,允许您访问IloModel对象中的IloExtractable对象。IloExtractable有一个方法asConstraint,如果extractable不是约束,它将返回一个空句柄。任何ILOG concert句柄的getImpl()方法将返回0。因此,您可以遍历所有可提取的对象,并计算使用asConstraint函数但不返回空句柄的对象 #include <ilconcert/ilomodel.h> unsigned getN

有一个类IloModel::Iterator类,允许您访问IloModel对象中的IloExtractable对象。IloExtractable有一个方法asConstraint,如果extractable不是约束,它将返回一个空句柄。任何ILOG concert句柄的getImpl()方法将返回0。因此,您可以遍历所有可提取的对象,并计算使用asConstraint函数但不返回空句柄的对象

#include <ilconcert/ilomodel.h>

unsigned getNumConstraints(IloModel m)
{
  unsigned count = 0;
  IloModel::Iterator iter(m);
  while (iter.ok()) {
    if ((*iter).asConstraint().getImpl()) {
      ++count;
    }
    ++iter;
  }
  return count;
}
#包括
未签名的getNumConstraints(ILOM模型)
{
无符号计数=0;
迭代器iter(m);
while(iter.ok()){
if((*iter.asConstraint().getImpl()){
++计数;
}
++iter;
}
返回计数;
}

一旦您在
IloCplex
对象中提取了模型(
IloModel
)(您应该在程序中的某个时候这样做来求解模型),您就可以调用
IloCplex::getNrows
来获取问题的总行数(约束)