Dip  0.92.4
Private Attributes | List of all members
MILP_DecompApp Class Reference

#include <MILP_DecompApp.h>

Inheritance diagram for MILP_DecompApp:
Inheritance graph
[legend]
Collaboration diagram for MILP_DecompApp:
Collaboration graph
[legend]

Public Member Functions

Constructor and Destructor
 MILP_DecompApp (UtilParameters &utilParam)
 
virtual ~MILP_DecompApp ()
 
 MILP_DecompApp (UtilParameters &utilParam)
 
virtual ~MILP_DecompApp ()
 
- Public Member Functions inherited from DecompApp
virtual void initializeApp ()
 Initialize applications. More...
 
void createModels ()
 Create model parts. More...
 
DecompConstraintSetcreateModelPart (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 CoinPackedMatrixgetMatrix ()
 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...
 
DecompAlgogetDecompAlgo () 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 generateInitVars (DecompVarList &initVars)
 Initialize the dual vector for PhaseII of PC. 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 solveRelaxed (const int whichBlock, const double *redCostX, const double target, DecompVarList &varList)
 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 Member Functions

Helper functions (private).
void initializeApp (UtilParameters &utilParam)
 Initialize application. More...
 
void createModels ()
 Create model part. More...
 
void initializeApp (UtilParameters &utilParam)
 Initialize application. More...
 
void createModels ()
 Create model part. More...
 

Private Attributes

const string m_classTag
 Class id tag (for log / debugging). More...
 
CoinMpsIO m_mpsIO
 MPS object for reading MILP instances. More...
 
MILP_Param m_appParam
 Application specific parameters. More...
 
double * m_objective
 The model objective coefficients (original space). More...
 
DecompConstraintSet m_modelRandCore
 The model constraint systems used for different algos. More...
 
DecompConstraintSet m_modelRandRelax
 

Additional Inherited Members

- Public Attributes inherited from DecompApp
int NumBlocks
 Number of Blocks defalut value 0 set by BlockNumInput parameter. More...
 
DecompParam m_param
 Parameters. More...
 
UtilParametersm_utilParam
 
const double * m_objective
 Model data: objective function. More...
 
DecompModel m_modelCore
 Model data: the core model (A'') More...
 
std::map< int, DecompModelm_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...
 
DecompAlgom_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 CoinPackedMatrixm_matrix
 Original constraint matrix for the instance. More...
 
DecompConstraintSetm_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
 
- Protected Attributes inherited from DecompApp
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
 

Detailed Description

A DecompApp to illustrate a basic usage of Decomp.

See Also
DecompApp

Definition at line 33 of file MILP_DecompApp.h.

Constructor & Destructor Documentation

MILP_DecompApp::MILP_DecompApp ( UtilParameters utilParam)
inline

Definition at line 62 of file MILP_DecompApp.h.

References DecompApp::initializeApp().

virtual MILP_DecompApp::~MILP_DecompApp ( )
inlinevirtual

Definition at line 70 of file MILP_DecompApp.h.

References m_objective, and UTIL_DELARR.

MILP_DecompApp::MILP_DecompApp ( UtilParameters utilParam)
inline

Definition at line 62 of file MILP_DecompApp.h.

References DecompApp::initializeApp().

virtual MILP_DecompApp::~MILP_DecompApp ( )
inlinevirtual

Definition at line 70 of file MILP_DecompApp.h.

References m_objective, and UTIL_DELARR.

Member Function Documentation

void MILP_DecompApp::initializeApp ( UtilParameters utilParam)
private

Initialize application.

void MILP_DecompApp::createModels ( )
private

Create model part.

void MILP_DecompApp::initializeApp ( UtilParameters utilParam)
private

Initialize application.

void MILP_DecompApp::createModels ( )
private

Create model part.

Member Data Documentation

const string MILP_DecompApp::m_classTag
private

Class id tag (for log / debugging).

Definition at line 36 of file MILP_DecompApp.h.

CoinMpsIO MILP_DecompApp::m_mpsIO
private

MPS object for reading MILP instances.

Definition at line 39 of file MILP_DecompApp.h.

MILP_Param MILP_DecompApp::m_appParam
private

Application specific parameters.

Definition at line 42 of file MILP_DecompApp.h.

double * MILP_DecompApp::m_objective
private

The model objective coefficients (original space).

Definition at line 45 of file MILP_DecompApp.h.

Referenced by ~MILP_DecompApp().

DecompConstraintSet MILP_DecompApp::m_modelRandCore
private

The model constraint systems used for different algos.

Definition at line 48 of file MILP_DecompApp.h.

DecompConstraintSet MILP_DecompApp::m_modelRandRelax
private

Definition at line 49 of file MILP_DecompApp.h.


The documentation for this class was generated from the following files: