3

我有一个用 C++ 编写的很长的程序,我正在用ILOG Cplex12.5 Solver它来解决它。如何获得约束的总数?有它的功能吗?

4

2 回答 2

3

IloModel一旦你在一个IloCplex对象中提取了模型IloCplex::getNrows

于 2013-04-19T13:11:10.460 回答
2

有一个类 IloModel::Iterator 类可让您访问 IloModel 对象中的 IloExtractable 对象。IloExtractable 有一个 asConstraint 方法,如果可提取对象不是约束,该方法将返回一个空句柄。任何 ILOG 音乐会句柄的 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;
}
于 2013-04-18T22:32:39.757 回答