Dip
0.92.4
|
#include <SmallIP_DecompApp.h>
Public Member Functions | |
Helper functions (public). | |
void | createModels () |
virtual int | generateInitVars (DecompVarList &initVars) |
Initialize the dual vector for PhaseII of PC. More... | |
SmallIP_DecompApp (UtilParameters &utilParam) | |
virtual | ~SmallIP_DecompApp () |
void | createModels () |
virtual int | generateInitVars (DecompVarList &initVars) |
Initialize the dual vector for PhaseII of PC. More... | |
virtual DecompSolverStatus | solveRelaxed (const int whichBlock, const double *redCostX, const double convexDual, DecompVarList &varList) |
Initialize the dual vector for PhaseII of PC. More... | |
SmallIP_DecompApp (UtilParameters &utilParam) | |
virtual | ~SmallIP_DecompApp () |
![]() | |
virtual void | initializeApp () |
Initialize applications. More... | |
void | createModels () |
Create model parts. More... | |
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. More... | |
void | readProblem () |
Read Problem. More... | |
void | singlyBorderStructureDetection () |
Automatically detect singly bordered structure. More... | |
void | findActiveColumns (const std::vector< int > &rowsPart, std::set< int > &activeColsSet) |
Find the active columns for some block. More... | |
const std::string | getInstanceName () |
Get Intance name. More... | |
const CoinPackedMatrix * | getMatrix () |
Get constraint matrix for analysis. More... | |
void | setInfinity () |
Set the value of infinity. More... | |
DecompApp (UtilParameters &utilParam) | |
Constructor for base DecompApp class. More... | |
virtual | ~DecompApp () |
Destructor. More... | |
void | startupLog () |
Initialize the DecompApp data. More... | |
int | createModel () |
virtual void | APPcreateModel (double *&objCoeff, map< int, DecompConstraintSet * > &modelCore, map< int, DecompConstraintSet * > &modelRelax)=0 |
virtual bool | APPisUserFeasible (const double *x, const int n_cols, const double tolZero) |
virtual int | APPheuristics (const double *xhat, vector< DecompSolution * > &xhatIPFeas) |
virtual int | generateInitVars (DecompVarList &initVars, int whichModel) |
virtual int | generateCuts (const double *x, const DecompConstraintSet &modelCore, const DecompConstraintSet &modelRelax, DecompCutList &newCuts) |
virtual decompStat | APPsolveRelaxed (const int whichModel, const double *redCostX, const double *origCost, const double alpha, const int n_origCols, const bool checkRC, const bool checkDup, OsiSolverInterface *m_subprobSI, list< DecompVar * > &vars) |
virtual void | printOriginalColumn (const int index, ostream *os=&cout) const |
virtual void | printOriginalSolution (const int n_cols, const double *solution, ostream *os=&cout) const |
DecompApp (UtilParameters &utilParam) | |
virtual | ~DecompApp () |
void | preprocess () |
Preprocess (standard ): on the TODO list. More... | |
void | startupLog () |
Print startup message to log. More... | |
int | createModel () |
Preprocess (standard ): on the TODO list. More... | |
const double | getBestKnownLB () const |
Preprocess (standard ): on the TODO list. More... | |
const double | getBestKnownUB () const |
Preprocess (standard ): on the TODO list. More... | |
void | setBestKnownLB (const double bestKnownLB) |
Preprocess (standard ): on the TODO list. More... | |
void | setBestKnownUB (const double bestKnownUB) |
Preprocess (standard ): on the TODO list. More... | |
void | setModelObjective (const double *objective, const int length) |
Set the model objective function. More... | |
void | setModelCore (DecompConstraintSet *model, const std::string modelName) |
Set the model core constraint matrix. More... | |
void | setModelRelax (DecompConstraintSet *model, const std::string modelName="", const int blockId=0) |
Set the model relaxed constraint matrix (for a particular block). More... | |
void | setModelRelaxNest (DecompConstraintSet *model, const std::string modelName, const int blockId=0) |
Set the model relaxed (nested) constraint matrix (for a particular block). More... | |
DecompAlgo * | getDecompAlgo () const |
Get a pointer to the base algorithm class. More... | |
virtual void | initDualVector (std::vector< double > &dualVector) |
Initialize the dual vector for PhaseII of PC. More... | |
virtual bool | APPisUserFeasible (const double *x, const int numCols, const double tolZero) |
Method to determine if the solution (x) is feasible to the original model. More... | |
virtual int | APPheuristics (const double *xhat, const double *origCost, std::vector< DecompSolution * > &xhatIPFeas) |
Initialize the dual vector for PhaseII of PC. More... | |
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). More... | |
virtual int | generateCuts (const double *x, DecompCutList &newCuts) |
Initialize the dual vector for PhaseII of PC. More... | |
virtual void | solveRelaxedWhich (std::vector< int > &blocksToSolve, std::map< int, std::vector< double > > &userDualsByBlock) |
Initialize the dual vector for PhaseII of PC. More... | |
virtual DecompSolverStatus | solveRelaxedNest (const int whichBlock, const double *redCostX, const double target, DecompVarList &varList) |
Initialize the dual vector for PhaseII of PC. More... | |
virtual void | printOriginalColumn (const int index, std::ostream *os=&std::cout) const |
Initialize the dual vector for PhaseII of PC. More... | |
virtual void | printOriginalSolution (const int n_cols, const std::vector< std::string > &colNames, const double *solution, std::ostream *os=&std::cout) const |
Initialize the dual vector for PhaseII of PC. More... | |
Private Attributes | |
const string | m_classTag |
Class id tag (for log / debugging). More... | |
double * | m_objective |
The model objective coefficients (original space). More... | |
DecompConstraintSet | m_modelPart1 |
The various model constraint systems used for different algos. More... | |
DecompConstraintSet | m_modelPart2 |
OsiIpSolverInterface | m_osi |
OSI object to use with solveRelaxed. More... | |
Additional Inherited Members | |
![]() | |
int | NumBlocks |
Number of Blocks defalut value 0 set by BlockNumInput parameter. More... | |
DecompParam | m_param |
Parameters. More... | |
UtilParameters * | m_utilParam |
const double * | m_objective |
Model data: objective function. More... | |
DecompModel | m_modelCore |
Model data: the core model (A'') More... | |
std::map< int, DecompModel > | m_modelRelax |
Model data: the relaxed model(s) (A') More... | |
std::map< int, std::vector < DecompModel > > | m_modelRelaxNest |
Model data: the relaxed (nested) model(s) (A') More... | |
DecompAlgo * | m_decompAlgo |
Pointer to the base algorithmic object. More... | |
CoinMpsIO | m_mpsIO |
MPS object for reading instances. More... | |
CoinLpIO | m_lpIO |
LP object for reading instances. More... | |
const CoinPackedMatrix * | m_matrix |
Original constraint matrix for the instance. More... | |
DecompConstraintSet * | m_modelC |
The model constraint systems used for different algos. More... | |
std::map< int, DecompConstraintSet * > | m_modelR |
std::map< int, std::vector< int > > | m_blocks |
Definition of blocks (by rows) More... | |
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, More... | |
double | m_infinity |
The value of infinity. More... | |
DecompModel | m_model |
map< int, DecompConstraintSet * > | m_modelCore |
map< int, DecompConstraintSet * > | m_modelRelax |
![]() | |
std::ostream * | m_osLog |
Log file. More... | |
double | m_bestKnownLB |
The best known LB/UB for this application (if known, for debugging). More... | |
double | m_bestKnownUB |
ostream * | m_osLog |
A DecompApp to illustrate a basic usage of Decomp.
Definition at line 33 of file SmallIP_DecompApp.h.
|
inline |
Definition at line 56 of file SmallIP_DecompApp.h.
|
inlinevirtual |
Definition at line 64 of file SmallIP_DecompApp.h.
References UTIL_DELARR.
|
inline |
Definition at line 61 of file SmallIP_DecompApp2.h.
References createModels().
|
inlinevirtual |
Definition at line 69 of file SmallIP_DecompApp2.h.
References m_objective, and UTIL_DELARR.
void SmallIP_DecompApp::createModels | ( | ) |
Referenced by SmallIP_DecompApp().
|
virtual |
Initialize the dual vector for PhaseII of PC.
The user is passed a reference to the internal data and can manipulate it directly.
This is only called when dual stabilization is used, i.e., when m_param.DualStab > 0, at the first iteration of PhaseII of PC. The vector is immediately smoothed with the initial restricted master duals. By default, the restricted mater is used as the initial dual and, therefore, no smoothing occurs in the first iteration.
Reimplemented from DecompApp.
void SmallIP_DecompApp::createModels | ( | ) |
|
virtual |
Initialize the dual vector for PhaseII of PC.
The user is passed a reference to the internal data and can manipulate it directly.
This is only called when dual stabilization is used, i.e., when m_param.DualStab > 0, at the first iteration of PhaseII of PC. The vector is immediately smoothed with the initial restricted master duals. By default, the restricted mater is used as the initial dual and, therefore, no smoothing occurs in the first iteration.
Reimplemented from DecompApp.
|
virtual |
Initialize the dual vector for PhaseII of PC.
The user is passed a reference to the internal data and can manipulate it directly.
This is only called when dual stabilization is used, i.e., when m_param.DualStab > 0, at the first iteration of PhaseII of PC. The vector is immediately smoothed with the initial restricted master duals. By default, the restricted mater is used as the initial dual and, therefore, no smoothing occurs in the first iteration.
Reimplemented from DecompApp.
|
private |
Class id tag (for log / debugging).
Definition at line 36 of file SmallIP_DecompApp.h.
|
private |
The model objective coefficients (original space).
Definition at line 39 of file SmallIP_DecompApp.h.
Referenced by ~SmallIP_DecompApp().
|
private |
The various model constraint systems used for different algos.
Definition at line 42 of file SmallIP_DecompApp.h.
|
private |
Definition at line 43 of file SmallIP_DecompApp.h.
|
private |
OSI object to use with solveRelaxed.
Definition at line 44 of file SmallIP_DecompApp2.h.