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

#include <SmallIP_DecompApp.h>

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

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 ()
 
- 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 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

- 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 SmallIP_DecompApp.h.

Constructor & Destructor Documentation

SmallIP_DecompApp::SmallIP_DecompApp ( UtilParameters utilParam)
inline

Definition at line 56 of file SmallIP_DecompApp.h.

virtual SmallIP_DecompApp::~SmallIP_DecompApp ( )
inlinevirtual

Definition at line 64 of file SmallIP_DecompApp.h.

References UTIL_DELARR.

SmallIP_DecompApp::SmallIP_DecompApp ( UtilParameters utilParam)
inline

Definition at line 61 of file SmallIP_DecompApp2.h.

References createModels().

virtual SmallIP_DecompApp::~SmallIP_DecompApp ( )
inlinevirtual

Definition at line 69 of file SmallIP_DecompApp2.h.

References m_objective, and UTIL_DELARR.

Member Function Documentation

void SmallIP_DecompApp::createModels ( )

Referenced by SmallIP_DecompApp().

virtual int SmallIP_DecompApp::generateInitVars ( DecompVarList initVars)
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 int SmallIP_DecompApp::generateInitVars ( DecompVarList initVars)
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 DecompSolverStatus SmallIP_DecompApp::solveRelaxed ( const int  whichBlock,
const double *  redCostX,
const double  target,
DecompVarList varList 
)
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.

Member Data Documentation

const string SmallIP_DecompApp::m_classTag
private

Class id tag (for log / debugging).

Definition at line 36 of file SmallIP_DecompApp.h.

double * SmallIP_DecompApp::m_objective
private

The model objective coefficients (original space).

Definition at line 39 of file SmallIP_DecompApp.h.

Referenced by ~SmallIP_DecompApp().

DecompConstraintSet SmallIP_DecompApp::m_modelPart1
private

The various model constraint systems used for different algos.

Definition at line 42 of file SmallIP_DecompApp.h.

DecompConstraintSet SmallIP_DecompApp::m_modelPart2
private

Definition at line 43 of file SmallIP_DecompApp.h.

OsiIpSolverInterface SmallIP_DecompApp::m_osi
private

OSI object to use with solveRelaxed.

Definition at line 44 of file SmallIP_DecompApp2.h.


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