15#ifndef DECOMP_MODEL_INCLUDED
16#define DECOMP_MODEL_INCLUDED
79 std::string modelName,
118 m_colIndices =
new int[numCols];
130 assert(m_colIndices);
136 std::map<int, int>::const_iterator mcit;
138 for (mcit = origToSparse.begin();
139 mcit != origToSparse.end(); mcit++) {
141 objCoeff[mcit->first]);
145 m_colIndices + m_numCols, objCoeff);
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,
278 delete [] m_colIndices;
#define UtilExceptionMemory(methodN, classN)
void UtilIotaN(int *first, const int size, const int init)
const bool isSparse() const
std::vector< int > activeColumns
const std::map< int, int > & getMapOrigToSparse() const
void setModel(DecompConstraintSet *model)
DecompModel(DecompConstraintSet *model, std::string modelName, int blockId, UtilParameters &utilParam)
DecompConstraintSet * getModel() const
DecompConstraintSet * m_model
const int getBlockId() const
const std::string & getModelName() const
DecompModel & operator=(const DecompModel &rhs)
void setModelName(const std::string modelName)
DecompModel(const DecompModel &appModel)
DecompModel(UtilParameters &utilParam)
UtilParameters * m_utilParam
void setBlockId(const int blockId)
Storage of solver result.
DecompSubModel(const DecompModel &appModel)
OsiSolverInterface * getOsi() const
void solveAsMIPCbc(DecompSolverResult *result, DecompParam ¶m, bool doExact, bool doCutoff, bool isRoot, double cutoff, double timeLimit)
DecompSubModel(UtilParameters &utilParam)
DecompSubModel(DecompConstraintSet *model, std::string modelName, int blockId, UtilParameters &utilParam)
void solveAsMIPSym(DecompSolverResult *result, DecompParam ¶m, bool doExact, bool doCutoff, bool isRoot, double cutoff, double timeLimit)
DecompSubModel & operator=(const DecompModel &rhs)
void solveAsMIPCpx(DecompSolverResult *result, DecompParam ¶m, bool doExact, bool doCutoff, bool isRoot, double cutoff, double timeLimit)
void setCounter(const int num)
void setActiveColBounds(const double *colLB, const double *colUB)
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 solveAsMIPGrb(DecompSolverResult *result, DecompParam ¶m, bool doExact, bool doCutoff, bool isRoot, double cutoff, double timeLimit)
void setOsi(OsiSolverInterface *osi)
void solveAsMIP(DecompSolverResult *result, DecompParam ¶m, bool doExact, bool doCutoff, bool isRoot, double cutoff, double timeLimit)
void setOsiObjCoeff(const double *objCoeff)
virtual void setColBounds(int elementIndex, double lower, double upper)
virtual void setColLower(int elementIndex, double elementValue)=0
virtual void setObjCoeffSet(const int *indexFirst, const int *indexLast, const double *coeffList)
virtual void setColUpper(int elementIndex, double elementValue)=0
virtual int getNumCols() const=0
virtual void setObjCoeff(int elementIndex, double elementValue)=0