15 #ifndef DECOMP_MODEL_INCLUDED
16 #define DECOMP_MODEL_INCLUDED
79 std::string modelName,
136 std::map<int, int>::const_iterator mcit;
138 for (mcit = origToSparse.begin();
139 mcit != origToSparse.end(); mcit++) {
141 objCoeff[mcit->first]);
150 const double* colUB) {
160 std::map<int, int>::const_iterator mcit;
162 for (mcit = origToSparse.begin();
163 mcit != origToSparse.end(); mcit++) {
174 if (activeColumns.size()) {
175 std::vector<int>::iterator vi;
177 for (vi = activeColumns.begin(); vi != activeColumns.end(); vi++) {
236 const bool isXSparse =
false,
237 const int logLevel = 0,
238 const double feasVarTol = 1.0e-5,
239 const double feasConTol = 1.0e-4);
263 std::string modelName,
void solveAsMIPCbc(DecompSolverResult *result, DecompParam ¶m, bool doExact, bool doCutoff, bool isRoot, double cutoff, double timeLimit)
virtual void setColLower(int elementIndex, double elementValue)=0
Set a single column lower bound.
OsiSolverInterface * m_osi
void setModelName(const std::string modelName)
DecompConstraintSet * getModel() const
void solveAsMIPCpx(DecompSolverResult *result, DecompParam ¶m, bool doExact, bool doCutoff, bool isRoot, double cutoff, double timeLimit)
virtual void setObjCoeff(int elementIndex, double elementValue)=0
Set an objective function coefficient.
double * objCoeff
Model data objects (must be defined by users).
virtual void setColBounds(int elementIndex, double lower, double upper)
Set a single column lower and upper bound.
virtual int getNumCols() const =0
Get the number of columns.
std::vector< int > activeColumns
DecompSubModel(DecompConstraintSet *model, std::string modelName, int blockId, UtilParameters &utilParam)
const std::string & getModelName() const
DecompModel(DecompConstraintSet *model, std::string modelName, int blockId, UtilParameters &utilParam)
void setOsiObjCoeff(const double *objCoeff)
const bool isSparse() const
virtual void setColUpper(int elementIndex, double elementValue)=0
Set a single column upper bound.
const int getBlockId() const
void setCounter(const int num)
void UtilIotaN(int *first, const int size, const int init)
virtual void setObjCoeffSet(const int *indexFirst, const int *indexLast, const double *coeffList)
Set a set of objective function coefficients.
DecompModel(const DecompModel &appModel)
void solveAsMIPGrb(DecompSolverResult *result, DecompParam ¶m, bool doExact, bool doCutoff, bool isRoot, double cutoff, double timeLimit)
DecompSubModel(UtilParameters &utilParam)
#define UtilExceptionMemory(methodN, classN)
UtilParameters * m_utilParam
const std::map< int, int > & getMapOrigToSparse() const
DecompModel(UtilParameters &utilParam)
Abstract Base Class for describing an interface to a solver.
void solveAsMIP(DecompSolverResult *result, DecompParam ¶m, bool doExact, bool doCutoff, bool isRoot, double cutoff, double timeLimit)
OsiSolverInterface * getOsi() const
DecompConstraintSet * m_model
void solveAsMIPSym(DecompSolverResult *result, DecompParam ¶m, bool doExact, bool doCutoff, bool isRoot, double cutoff, double timeLimit)
void setActiveColBounds(const double *colLB, const double *colUB)
DecompSubModel(const DecompModel &appModel)
DecompModel & operator=(const DecompModel &rhs)
void setModel(DecompConstraintSet *model)
DecompSubModel & operator=(const DecompModel &rhs)
bool isPointFeasible(const double *x, const bool isXSparse=false, const int logLevel=0, const double feasVarTol=1.0e-5, const double feasConTol=1.0e-4)
void setBlockId(const int blockId)
Storage of solver result.
void setOsi(OsiSolverInterface *osi)