2013-04-18 4 views
3

저는 C++로 작성한 긴 프로그램을 가지고 있으며이를 해결하기 위해 ILOG Cplex12.5 Solver을 사용하고 있습니다. 제약 조건의 수를 어떻게 계산합니까? 그것을위한 기능이 있습니까?Cplex에서 제약 번호를 얻는 방법

답변

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; 
} 
2

당신이 IloCplex 객체 모델 (IloModel)를 추출하면 행 (제약)의 총 수를 얻을 수 IloCplex::getNrows를 호출 할 수 있습니다 (당신은 모델을 해결하기 위해 프로그램에서 어떤 점에서 그렇게한다) 문제의