|
virtual void | initializeApp () |
| Initialize applications.
|
|
void | createModels () |
| Create model parts.
|
|
DecompConstraintSet * | createModelPart (const int nRowsPart, const int *rowsPart) |
|
void | createModelPart (DecompConstraintSet *model, const int nRowsPart, const int *rowsPart) |
|
void | createModelPartSparse (DecompConstraintSet *model, const int nRowsPart, const int *rowsPart) |
|
void | readInitSolutionFile (DecompVarList &initVars) |
|
void | readBlockFile () |
| Read block file.
|
|
void | readProblem () |
| Read Problem.
|
|
void | singlyBorderStructureDetection () |
| Automatically detect singly bordered structure.
|
|
void | findActiveColumns (const std::vector< int > &rowsPart, std::set< int > &activeColsSet) |
| Find the active columns for some block.
|
|
const std::string | getInstanceName () |
| Get Intance name.
|
|
const CoinPackedMatrix * | getMatrix () |
| Get constraint matrix for analysis.
|
|
void | setInfinity () |
| Set the value of infinity.
|
|
| DecompApp (UtilParameters &utilParam) |
| Constructor for base DecompApp class.
|
|
virtual | ~DecompApp () |
| Destructor.
|
|
void | preprocess () |
| Preprocess (standard ): on the TODO list.
|
|
void | startupLog () |
| Print startup message to log.
|
|
int | createModel () |
|
const double | getBestKnownLB () const |
|
const double | getBestKnownUB () const |
|
void | setBestKnownLB (const double bestKnownLB) |
|
void | setBestKnownUB (const double bestKnownUB) |
|
void | setModelObjective (const double *objective, const int length) |
| Set the model objective function.
|
|
void | setModelCore (DecompConstraintSet *model, const std::string modelName) |
| Set the model core constraint matrix.
|
|
void | setModelRelax (DecompConstraintSet *model, const std::string modelName="", const int blockId=0) |
| Set the model relaxed constraint matrix (for a particular block).
|
|
void | setModelRelaxNest (DecompConstraintSet *model, const std::string modelName, const int blockId=0) |
| Set the model relaxed (nested) constraint matrix (for a particular block).
|
|
DecompAlgo * | getDecompAlgo () const |
| Get a pointer to the base algorithm class.
|
|
virtual void | initDualVector (std::vector< double > &dualVector) |
| Initialize the dual vector for PhaseII of PC.
|
|
virtual const double * | getDualForGenerateVars (const double *dual) |
| This function allows the user to return their own dual vector to be used in the generation of new variables (in the reduced-cost calculation).
|
|
virtual void | solveRelaxedWhich (std::vector< int > &blocksToSolve, std::map< int, std::vector< double > > &userDualsByBlock) |
|
virtual DecompSolverStatus | solveRelaxedNest (const int whichBlock, const double *redCostX, const double target, DecompVarList &varList) |
|
virtual void | printOriginalColumn (const int index, std::ostream *os=&std::cout) const |
|
virtual void | printOriginalSolution (const int n_cols, const std::vector< std::string > &colNames, const double *solution, std::ostream *os=&std::cout) const |
|
int | NumBlocks |
| Number of Blocks defalut value 0 set by BlockNumInput parameter.
|
|
DecompParam | m_param |
| Parameters.
|
|
UtilParameters * | m_utilParam |
|
const double * | m_objective |
| Model data: objective function.
|
|
DecompModel | m_modelCore |
| Model data: the core model (A'')
|
|
std::map< int, DecompModel > | m_modelRelax |
| Model data: the relaxed model(s) (A')
|
|
std::map< int, std::vector< DecompModel > > | m_modelRelaxNest |
| Model data: the relaxed (nested) model(s) (A')
|
|
DecompAlgo * | m_decompAlgo |
| Pointer to the base algorithmic object.
|
|
CoinMpsIO | m_mpsIO |
| MPS object for reading instances.
|
|
CoinLpIO | m_lpIO |
| LP object for reading instances.
|
|
const CoinPackedMatrix * | m_matrix |
| Original constraint matrix for the instance.
|
|
DecompConstraintSet * | m_modelC |
| The model constraint systems used for different algos.
|
|
std::map< int, DecompConstraintSet * > | m_modelR |
|
std::map< int, std::vector< int > > | m_blocks |
| Definition of blocks (by rows)
|
|
int | m_threadIndex |
| serves as an index to track different DecompApp object during Concurrent process, where when m_threadIndex is 0, problem is solved by cutting plance from standalone solver, when it is greater than 0, it is solved by branch-and-price,
|
|
double | m_infinity |
| The value of infinity.
|
|
std::ostream * | m_osLog |
| Log file.
|
|
double | m_bestKnownLB |
| The best known LB/UB for this application (if known, for debugging).
|
|
double | m_bestKnownUB |
|
A DecompApp that links Python to DIP.
- See also
- DecompApp
Definition at line 25 of file DippyDecompApp.h.
bool DippyDecompApp::APPisUserFeasible |
( |
const double * | x, |
|
|
const int | numCols, |
|
|
const double | tolZero ) |
|
virtual |
Method to determine if the solution (x) is feasible to the original model.
For explicitly defined model components, like the model core constraints (A''), the feasibility of the solution is automatically checked against the constraints. In the case when the relaxed problem constraints (A') are explicitly defined - these are also checked automatically.
However, for some applications, a valid feasible constraint system cannot be explicitly defined (even for the core set of constraints). For example, think of the case of TSP, where A'' is defined as the subtour elimination constraints. These constraints are implicitly defined by deriving the method DecompApp::generateCuts. Therefore, the framework cannot automatically tell if a solution is feasible by checking against the constraint system. In this case, the user must provide this method.
- Parameters
-
[in] | x | The solution point to check. |
[in] | numCols | The number of variables. |
[in] | tolZero | The integrality tolerance (currently ignored). |
- Returns
- True, if x is feasible; otherwise, false.
Reimplemented from DecompApp.