Dip  0.92.4
Public Member Functions | Private Attributes | List of all members
GAP_DecompApp Class Reference

#include <GAP_DecompApp.h>

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

Public Member Functions

DecompSolverStatus solveRelaxed (const int whichBlock, const double *redCostX, const double target, list< DecompVar * > &vars)
 Solve the relaxed problem. More...
 
void printOriginalColumn (const int index, ostream *os=&cout) const
 Print an original column (format for this app). More...
 
void printOriginalColumn (const int index, ostream *os=&cout) const
 Print an original column (format for this app). More...
 
Helper functions (public).
void initializeApp ()
 Guts of constructor. More...
 
const int getOffsetI (const int i) const
 TODO comment. More...
 
const int getIndexIJ (const int i, const int j) const
 Guts of constructor. More...
 
pair< int, int > getIndexInv (const int index) const
 Guts of constructor. More...
 
int createModels ()
 TODO comment. More...
 
int createModelPartAP (DecompConstraintSet *model)
 Guts of constructor. More...
 
const GAP_InstancegetInstance () const
 Guts of constructor. More...
 
const GAP_DecompParamgetParam () const
 Guts of constructor. More...
 
const double * getObjective () const
 Guts of constructor. More...
 
DecompConstraintSetgetModel (string modelName) const
 Guts of constructor. More...
 
void initializeApp (UtilParameters &utilParam)
 Guts of constructor. More...
 
const int getOffsetI (const int i) const
 Helper methods for indexing. More...
 
const int getIndexIJ (const int i, const int j) const
 Guts of constructor. More...
 
pair< int, int > getIndexInv (const int index) const
 Guts of constructor. More...
 
int createModels ()
 Creation of the various model constraint systems. More...
 
int createModelPartAP (DecompConstraintSet *model)
 Guts of constructor. More...
 
int createModelPartKP (DecompConstraintSet *model)
 Guts of constructor. More...
 
int createModelPartKP (DecompConstraintSet *model, int whichKnap)
 Guts of constructor. More...
 
int createModelPartKP (DecompConstraintSet *model, vector< int > &whichKnaps)
 Guts of constructor. More...
 
const GAP_InstancegetInstance () const
 Some access methods to private data. More...
 
const GAP_DecompParamgetParam () const
 Guts of constructor. More...
 
const double * getObjective () const
 Guts of constructor. More...
 
Constructor and Destructor
 GAP_DecompApp (UtilParameters &utilParam)
 Default constructor. More...
 
virtual ~GAP_DecompApp ()
 Default constructor. More...
 
 GAP_DecompApp (UtilParameters &utilParam)
 Default constructor. More...
 
virtual ~GAP_DecompApp ()
 Default constructor. More...
 
- Public Member Functions inherited from DecompApp
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 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 Attributes

const string m_classTag
 Class id tag (for log / debugging). More...
 
GAP_Instance m_instance
 GAP problem instance data. More...
 
GAP_DecompParam m_appParam
 Application specific parameters. More...
 
vector< GAP_KnapPisinger * > m_knap
 GAP_Knapsack object for each knapsack row. More...
 
double * m_objective
 The model objective coefficients (original space). More...
 
map< string,
DecompConstraintSet * > 
m_models
 The various model constraint systems used for different algorithms, keyed by a unique string (model name). More...
 
vector< DecompConstraintSet * > m_models
 Store pointers to the various model constraint systems, so their memory can be deleted. 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 for solving the Generalized Assignment Problem (GAP).

See Also
DecompApp

Definition at line 38 of file GAP_DecompApp.h.

Constructor & Destructor Documentation

GAP_DecompApp::GAP_DecompApp ( UtilParameters utilParam)
inline

Default constructor.

Takes an instance of UtilParameters

Definition at line 125 of file GAP_DecompApp.h.

References GAP_DecompParam::dumpSettings(), GAP_DecompParam::getSettings(), initializeApp(), GAP_DecompParam::LogLevel, and m_appParam.

virtual GAP_DecompApp::~GAP_DecompApp ( )
inlinevirtual

Default constructor.

Takes an instance of UtilParameters

Definition at line 139 of file GAP_DecompApp.h.

References m_knap, m_models, UtilDeleteMapPtr(), and UtilDeleteVectorPtr().

GAP_DecompApp::GAP_DecompApp ( UtilParameters utilParam)
inline

Default constructor.

Takes an instance of UtilParameters

Definition at line 117 of file GAP_DecompApp3.h.

References initializeApp().

virtual GAP_DecompApp::~GAP_DecompApp ( )
inlinevirtual

Default constructor.

Takes an instance of UtilParameters

Definition at line 124 of file GAP_DecompApp3.h.

References m_models, m_objective, UTIL_DELARR, and UtilDeleteVectorPtr().

Member Function Documentation

DecompSolverStatus GAP_DecompApp::solveRelaxed ( const int  whichBlock,
const double *  redCostX,
const double  target,
list< DecompVar * > &  vars 
)

Solve the relaxed problem.

void GAP_DecompApp::printOriginalColumn ( const int  index,
ostream *  os = &cout 
) const
virtual

Print an original column (format for this app).

Reimplemented from DecompApp.

void GAP_DecompApp::initializeApp ( )
virtual

Guts of constructor.

Reimplemented from DecompApp.

Referenced by GAP_DecompApp().

const int GAP_DecompApp::getOffsetI ( const int  i) const
inline

TODO comment.

Definition at line 79 of file GAP_DecompApp.h.

References GAP_Instance::getNTasks(), and m_instance.

const int GAP_DecompApp::getIndexIJ ( const int  i,
const int  j 
) const
inline

Guts of constructor.

Definition at line 82 of file GAP_DecompApp.h.

References GAP_Instance::getNTasks(), and m_instance.

pair<int, int> GAP_DecompApp::getIndexInv ( const int  index) const
inline

Guts of constructor.

Definition at line 87 of file GAP_DecompApp.h.

References GAP_Instance::getNTasks(), and m_instance.

int GAP_DecompApp::createModels ( )

TODO comment.

int GAP_DecompApp::createModelPartAP ( DecompConstraintSet model)

Guts of constructor.

const GAP_Instance& GAP_DecompApp::getInstance ( ) const
inline

Guts of constructor.

Definition at line 97 of file GAP_DecompApp.h.

References m_instance.

const GAP_DecompParam& GAP_DecompApp::getParam ( ) const
inline

Guts of constructor.

Definition at line 100 of file GAP_DecompApp.h.

References m_appParam.

const double* GAP_DecompApp::getObjective ( ) const
inline

Guts of constructor.

Definition at line 103 of file GAP_DecompApp.h.

References m_objective.

DecompConstraintSet* GAP_DecompApp::getModel ( string  modelName) const
inline

Guts of constructor.

Definition at line 106 of file GAP_DecompApp.h.

References m_models.

void GAP_DecompApp::printOriginalColumn ( const int  index,
ostream *  os = &cout 
) const
virtual

Print an original column (format for this app).

Reimplemented from DecompApp.

void GAP_DecompApp::initializeApp ( UtilParameters utilParam)

Guts of constructor.

const int GAP_DecompApp::getOffsetI ( const int  i) const
inline

Helper methods for indexing.

Definition at line 79 of file GAP_DecompApp3.h.

References GAP_Instance::getNTasks(), and m_instance.

const int GAP_DecompApp::getIndexIJ ( const int  i,
const int  j 
) const
inline

Guts of constructor.

Definition at line 82 of file GAP_DecompApp3.h.

References GAP_Instance::getNTasks(), and m_instance.

pair<int, int> GAP_DecompApp::getIndexInv ( const int  index) const
inline

Guts of constructor.

Definition at line 87 of file GAP_DecompApp3.h.

References GAP_Instance::getNTasks(), and m_instance.

int GAP_DecompApp::createModels ( )

Creation of the various model constraint systems.

int GAP_DecompApp::createModelPartAP ( DecompConstraintSet model)

Guts of constructor.

int GAP_DecompApp::createModelPartKP ( DecompConstraintSet model)

Guts of constructor.

int GAP_DecompApp::createModelPartKP ( DecompConstraintSet model,
int  whichKnap 
)

Guts of constructor.

int GAP_DecompApp::createModelPartKP ( DecompConstraintSet model,
vector< int > &  whichKnaps 
)

Guts of constructor.

const GAP_Instance& GAP_DecompApp::getInstance ( ) const
inline

Some access methods to private data.

Definition at line 103 of file GAP_DecompApp3.h.

References m_instance.

const GAP_DecompParam& GAP_DecompApp::getParam ( ) const
inline

Guts of constructor.

Definition at line 106 of file GAP_DecompApp3.h.

References m_appParam.

const double* GAP_DecompApp::getObjective ( ) const
inline

Guts of constructor.

Definition at line 109 of file GAP_DecompApp3.h.

References m_objective.

Member Data Documentation

const string GAP_DecompApp::m_classTag
private

Class id tag (for log / debugging).

Definition at line 41 of file GAP_DecompApp.h.

GAP_Instance GAP_DecompApp::m_instance
private

GAP problem instance data.

Definition at line 44 of file GAP_DecompApp.h.

Referenced by getIndexIJ(), getIndexInv(), getInstance(), and getOffsetI().

GAP_DecompParam GAP_DecompApp::m_appParam
private

Application specific parameters.

Definition at line 47 of file GAP_DecompApp.h.

Referenced by GAP_DecompApp(), and getParam().

vector<GAP_KnapPisinger*> GAP_DecompApp::m_knap
private

GAP_Knapsack object for each knapsack row.

Definition at line 50 of file GAP_DecompApp.h.

Referenced by ~GAP_DecompApp().

double * GAP_DecompApp::m_objective
private

The model objective coefficients (original space).

Definition at line 53 of file GAP_DecompApp.h.

Referenced by getObjective(), and ~GAP_DecompApp().

map<string, DecompConstraintSet*> GAP_DecompApp::m_models
private

The various model constraint systems used for different algorithms, keyed by a unique string (model name).

Definition at line 57 of file GAP_DecompApp.h.

Referenced by getModel(), and ~GAP_DecompApp().

vector<DecompConstraintSet*> GAP_DecompApp::m_models
private

Store pointers to the various model constraint systems, so their memory can be deleted.

Definition at line 63 of file GAP_DecompApp3.h.


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