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

Class for DECOMP algorithm Decomp. More...

#include <DecompAlgoD.h>

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

Public Member Functions

void solveD (DecompCutList *newCuts)
 
void createMasterProblem (DecompVarList &initVars)
 Create the master problem (all algorithms must define this function). More...
 
decompPhase phaseUpdate (const decompPhase phase, const decompStat stat, int &n_newCuts, int &n_newVars, int &n_cutCalls, int &n_priceCalls)
 
decompPhase phaseUpdate (const decompPhase phase, const decompStat stat)
 
void recomposeSolution (const double *solution, double *rsolution)
 Compose solution in x-space from current space. More...
 
 DecompAlgoD (DecompApp *app, double *xhat, int numOrigCols)
 
 ~DecompAlgoD ()
 
- Public Member Functions inherited from DecompAlgo
bool isGapTight ()
 
double getInfinity ()
 Return the value of infinity. More...
 
virtual bool isDone ()
 
std::vector< double * > getDualRays (int maxNumRays)
 
std::vector< double * > getDualRaysCpx (int maxNumRays)
 
std::vector< double * > getDualRaysOsi (int maxNumRays)
 
virtual int generateCuts (double *xhat, DecompCutList &newCuts)
 
virtual void addVarsToPool (DecompVarList &newVars)
 
virtual void addVarsFromPool ()
 
bool isIPFeasible (const double *x, const bool isXSparse=false, const double feasVarTol=1.0e-6, const double feasConTol=1.0e-5, const double intTol=1.0e-5)
 
bool isLPFeasible (const double *x, const bool isXSparse=false, const double feasVarTol=1.0e-6, const double feasConTol=1.0e-5)
 
DecompStatus solveRelaxed (const double *redCostX, const double *origCost, const double alpha, const int n_origCols, const bool isNested, DecompSubModel &subModel, DecompSolverResult *solveResult, std::list< DecompVar * > &vars, double timeLimit)
 
void appendVars (DecompVar *var)
 
void appendVars (DecompVarList &varList)
 
virtual void setSubProbBounds (const double *lbs, const double *ubs)
 
virtual bool chooseBranchSet (std::vector< std::pair< int, double > > &downBranchLb, std::vector< std::pair< int, double > > &downBranchUb, std::vector< std::pair< int, double > > &upBranchLb, std::vector< std::pair< int, double > > &upBranchUb)
 
OsiSolverInterfaceinitSolverInterface ()
 
void startupLog ()
 
void initSetup (int whichModel=1)
 
void tighten (int whichModel)
 
void solve (int whichModel=1)
 
double getTrueLowerBound ()
 
double getTrueUpperBound ()
 
void setTrueLowerBound (const double mostNegReducedCost)
 
void setTrueUpperBound (const double ub)
 
double calcConstant (const int m, const double *u)
 
bool isDualRayInfProof (const double *dualRay, const CoinPackedMatrix *rowMatrix, const double *colLB, const double *colUB, const double *rowRhs, ostream *os=0)
 
void printBasisInfo (OsiSolverInterface *si, ostream *os)
 
void printCurrentProblem (const OsiSolverInterface *si, const string baseName, const int nodeIndex, const int cutPass, const int pricePass, const bool printMps=true, const bool printLp=true)
 
void printCurrentProblem (const OsiSolverInterface *si, const string fileName, const bool printMps=true, const bool printLp=true)
 
void printVars (ostream *os=&cout)
 
void printCuts (ostream *os=&cout)
 
void solveBruteForce ()
 
void createFullMps (const string filename)
 
vector< double * > getDualRays (int maxNumRays)
 
void setApp (DecompApp *app)
 
void setBestUpperBound (const double bestUpperBound)
 
decompStat solveRelaxed (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 decompStat solutionUpdate (const decompPhase phase, const int maxInnerIter, const int maxOuterIter)
 
OsiSolverInterfacegetMasterSolverInterface ()
 
virtual const double * getRowPrice () const
 
const double * getX ()
 
DecompAppgetApp ()
 
const DecompSolutiongetXhatIPBest ()
 
virtual const double * getRightHandSide () const
 
virtual const char * getRowSense () const
 
int heuristics (const double *xhat, vector< DecompSolution * > &xhatIPFeas)
 
virtual int generateVars (const decompStat stat, DecompVarList &newVars, double &mostNegReducedCost)
 
virtual int generateCuts (DecompCutList &newCuts)
 
virtual int generateInitVars (DecompVarList &initVars)
 
virtual bool isDone ()
 
void addVarsToPool (DecompVarList &newVars)
 
void addVarsFromPool ()
 
bool isIPFeasible (const double *x, const double feasTol=1.0e-4, const double intTol=1.0e-4)
 
bool isLPFeasible (const double *x, const double feasTol=1.0e-4)
 
int chooseBranchVar (int &branchedOnIndex, double &branchedOnValue)
 
virtual int branch (int branchedOnIndex, double branchedOnValue)
 
decompStat processNode (const int nodeIndex=0)
 
void appendVars (DecompVar *var)
 
void appendVars (DecompVarList &varList)
 
 DecompAlgo (const decompAlgoType algo, DecompApp *app)
 
virtual ~DecompAlgo ()
 
OsiSolverInterfaceinitSolverInterface ()
 
void startupLog ()
 
void initSetup (int whichModel=1)
 
void tighten (int whichModel)
 
double getTrueLowerBound ()
 
double getTrueUpperBound ()
 
void setTrueLowerBound (const double mostNegReducedCost)
 
void setTrueUpperBound (const double ub)
 
double calcConstant (const int m, const double *u)
 
bool isDualRayInfProof (const double *dualRay, const CoinPackedMatrix *rowMatrix, const double *colLB, const double *colUB, const double *rowRhs, ostream *os=0)
 
void printBasisInfo (OsiSolverInterface *si, ostream *os)
 
void printCurrentProblem (const OsiSolverInterface *si, const string baseName, const int nodeIndex, const int cutPass, const int pricePass, const bool printMps=true, const bool printLp=true)
 
void printCurrentProblem (const OsiSolverInterface *si, const string fileName, const bool printMps=true, const bool printLp=true)
 
void printVars (ostream *os=&cout)
 
void printCuts (ostream *os=&cout)
 
void solveBruteForce ()
 
void createFullMps (const string filename)
 
vector< double * > getDualRays (int maxNumRays)
 
void setApp (DecompApp *app)
 
void setBestUpperBound (const double bestUpperBound)
 
DecompStat solveRelaxed (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 DecompStat solutionUpdate (const DecompPhase phase, const int maxInnerIter, const int maxOuterIter)
 
virtual DecompPhase phaseUpdate (const DecompPhase phase, const DecompStat stat)
 
OsiSolverInterfacegetMasterSolverInterface ()
 
virtual const double * getRowPrice () const
 
const double * getX ()
 
DecompAppgetApp ()
 
const DecompSolutiongetXhatIPBest ()
 
virtual const double * getRightHandSide () const
 
virtual const char * getRowSense () const
 
int heuristics (const double *xhat, vector< DecompSolution * > &xhatIPFeas)
 
virtual int generateVars (const DecompStat stat, DecompVarList &newVars, double &mostNegReducedCost)
 
virtual int generateCuts (DecompCutList &newCuts)
 
virtual int generateInitVars (DecompVarList &initVars)
 
virtual bool isDone ()
 
void addVarsToPool (DecompVarList &newVars)
 
void addVarsFromPool ()
 
bool isIPFeasible (const double *x, const double feasTol=1.0e-4, const double intTol=1.0e-4)
 
bool isLPFeasible (const double *x, const double feasTol=1.0e-4)
 
int chooseBranchVar (int &branchedOnIndex, double &branchedOnValue)
 
virtual int branch (int branchedOnIndex, double branchedOnValue)
 
DecompStat processNode (const int nodeIndex=0, const double globalLB=-DecompInf, const double globalUB=DecompInf)
 
void appendVars (DecompVar *var)
 
void appendVars (DecompVarList &varList)
 
 DecompAlgo (const DecompAlgoType algo, DecompApp *app)
 
virtual ~DecompAlgo ()
 
void loadSIFromModel (OsiSolverInterface *si, bool doInt=false)
 Create the master problem (all algorithms must define this function). More...
 
virtual DecompStatus processNode (const AlpsDecompTreeNode *node, const double globalLB, const double globalUB)
 The main DECOMP process loop for a node. More...
 
const AlpsDecompTreeNodegetCurrentNode () const
 Provide the current node the algorithm is solving. More...
 
virtual void postProcessNode (DecompStatus decompStatus)
 Do some information sending after the current node has been processed. More...
 
virtual void postProcessBranch (DecompStatus decompStatus)
 Do some information sending after the current node has been branched. More...
 
virtual int generateInitVars (DecompVarList &initVars)
 Generate initial variables for master problem (PC/DC/RC). More...
 
virtual DecompStatus solutionUpdate (const DecompPhase phase, const bool resolve=true, const int maxInnerIter=COIN_INT_MAX, const int maxOuterIter=COIN_INT_MAX)
 Update of the solution vectors (primal and/or dual). More...
 
virtual bool updateObjBound (const double mostNegRC=-DecompBigNum)
 Calculate the current LB and update best/history. More...
 
void initSetup ()
 Initial setup of algorithm structures and solver interfaces. More...
 
void getModelsFromApp ()
 Initial setup of algorithm structures and solver interfaces. More...
 
void createOsiSubProblem (DecompSubModel &subModel)
 Initial setup of algorithm structures and solver interfaces. More...
 
OsiSolverInterfacegetOsiLpSolverInterface ()
 Initial setup of algorithm structures and solver interfaces. More...
 
OsiSolverInterfacegetOsiIpSolverInterface ()
 Initial setup of algorithm structures and solver interfaces. More...
 
void coreMatrixAppendColBounds ()
 Calculate gap: |(ub-lb)|/|lb|. More...
 
void checkMasterDualObj ()
 Initial setup of algorithm structures and solver interfaces. More...
 
bool checkPointFeasible (const DecompConstraintSet *modelCore, const double *x)
 Initial setup of algorithm structures and solver interfaces. More...
 
bool isDualRayInfProof (const double *dualRay, const CoinPackedMatrix *rowMatrix, const double *colLB, const double *colUB, const double *rowRhs, std::ostream *os)
 Initial setup of algorithm structures and solver interfaces. More...
 
bool isDualRayInfProofCpx (const double *dualRay, const CoinPackedMatrix *rowMatrix, const double *colLB, const double *colUB, const double *rowRhs, std::ostream *os)
 Initial setup of algorithm structures and solver interfaces. More...
 
void printBasisInfo (OsiSolverInterface *si, std::ostream *os)
 Initial setup of algorithm structures and solver interfaces. More...
 
void printCurrentProblemDual (OsiSolverInterface *si, const std::string baseName, const int nodeIndex, const int cutPass, const int pricePass)
 Initial setup of algorithm structures and solver interfaces. More...
 
void printCurrentProblem (const OsiSolverInterface *si, const std::string baseName, const int nodeIndex, const int cutPass, const int pricePass, const int blockId=-1, const bool printMps=true, const bool printLp=true)
 Initial setup of algorithm structures and solver interfaces. More...
 
void printCurrentProblem (const OsiSolverInterface *si, const std::string fileName, const bool printMps=true, const bool printLp=true)
 Initial setup of algorithm structures and solver interfaces. More...
 
void printVars (std::ostream *os)
 Initial setup of algorithm structures and solver interfaces. More...
 
void printCuts (std::ostream *os)
 Initial setup of algorithm structures and solver interfaces. More...
 
void checkDuals ()
 Initial setup of algorithm structures and solver interfaces. More...
 
void checkReducedCost (const double *u, const double *u_adjusted)
 Initial setup of algorithm structures and solver interfaces. More...
 
void createFullMps (const std::string fileName)
 Initial setup of algorithm structures and solver interfaces. More...
 
virtual DecompSolverResultsolveDirect (const DecompSolution *startSol=NULL)
 Initial setup of algorithm structures and solver interfaces. More...
 
void masterMatrixAddMOCols (CoinPackedMatrix *masterM, double *colLB, double *colUB, double *objCoeff, std::vector< std::string > &colNames)
 Initial setup of algorithm structures and solver interfaces. More...
 
void masterMatrixAddArtCol (std::vector< CoinBigIndex > &colBeg, std::vector< int > &colInd, std::vector< double > &colVal, char LorG, int rowIndex, int colIndex, DecompColType colType, double &colLB, double &colUB, double &objCoeff)
 Initial setup of algorithm structures and solver interfaces. More...
 
virtual void masterMatrixAddArtCols (CoinPackedMatrix *masterM, double *colLB, double *colUB, double *objCoeff, std::vector< std::string > &colNames, int startRow, int endRow, DecompRowType rowType)
 Initial setup of algorithm structures and solver interfaces. More...
 
void masterPhaseItoII ()
 Initial setup of algorithm structures and solver interfaces. More...
 
void masterPhaseIItoI ()
 Initial setup of algorithm structures and solver interfaces. More...
 
bool isMasterColMasterOnly (const int index) const
 Initial setup of algorithm structures and solver interfaces. More...
 
bool isMasterColStructural (const int index) const
 Initial setup of algorithm structures and solver interfaces. More...
 
bool isMasterColArtificial (const int index) const
 Initial setup of algorithm structures and solver interfaces. More...
 
void breakOutPartial (const double *xHat, DecompVarList &newVars, const double intTol=1.0e-5)
 Initial setup of algorithm structures and solver interfaces. More...
 
void generateVarsAdjustDuals (const double *uOld, double *uNew)
 Create an adjusted dual vector with the duals from the convexity constraints removed. More...
 
void generateVarsCalcRedCost (const double *u, double *redCostX)
 Calculated reduced cost vector (over vars in compact space) for a given dual vector. More...
 
const double * getColLBNode () const
 Get a ptr to the current solution (in x-space). More...
 
const double * getColUBNode () const
 Get a ptr to the current solution (in x-space). More...
 
DecompStatsgetStats ()
 Get a ptr to the current solution (in x-space). More...
 
const double * getOrigObjective () const
 Get a ptr to the current solution (in x-space). More...
 
const DecompSubModelgetModelCore () const
 Get a ptr to the current solution (in x-space). More...
 
const int getAlgo () const
 Get a ptr to the current solution (in x-space). More...
 
const DecompParamgetParam () const
 Get a ptr to the current solution (in x-space). More...
 
DecompParamgetMutableParam ()
 Get a ptr to the current solution (in x-space). More...
 
OsiSolverInterfacegetMasterOSI ()
 Get a ptr to the current solution (in x-space). More...
 
DecompSubModelgetModelRelax (const int blockId)
 Get a ptr to the current solution (in x-space). More...
 
const double * getXhat () const
 Get a ptr to the current solution (in x-space). More...
 
void setCutoffUB (const double thisBound)
 Get a ptr to the current solution (in x-space). More...
 
const DecompSolutiongetXhatIPBest () const
 Get a ptr to the current solution (in x-space). More...
 
const std::vector
< DecompSolution * > & 
getXhatIPFeas () const
 Get a ptr to the current solution (in x-space). More...
 
const double getCutoffUB () const
 Get a ptr to the current solution (in x-space). More...
 
DecompStatsgetDecompStats ()
 Get a ptr to the current solution (in x-space). More...
 
const DecompParamgetDecompParam () const
 Get a ptr to the current solution (in x-space). More...
 
const DecompAppgetDecompApp () const
 Get a ptr to the current solution (in x-space). More...
 
DecompAppgetDecompAppMutable ()
 Get a ptr to the current solution (in x-space). More...
 
const int getNodeIndex () const
 Get a ptr to the current solution (in x-space). More...
 
const int getCutCallsTotal () const
 Get a ptr to the current solution (in x-space). More...
 
const int getPriceCallsTotal () const
 Get a ptr to the current solution (in x-space). More...
 
const double * getMasterPrimalSolution () const
 Get current primal solution for master problem. More...
 
const double * getMasterColReducedCost () const
 Get a ptr to the current solution (in x-space). More...
 
double getMasterObjValue () const
 Get a ptr to the current solution (in x-space). More...
 
const int getStopCriteria () const
 Get a ptr to the current solution (in x-space). More...
 
const double getGlobalGap () const
 Get the current global (integrality) gap. More...
 
const double getNodeIPGap () const
 Get the current node (integrality) gap. More...
 
const double getNodeLPGap () const
 Get the current node (continuous) gap. More...
 
const double getObjBestBoundLB () const
 Get the current best LB. More...
 
const void setStrongBranchIter (bool isStrongBranch=true)
 Set the object to be in strong branching mode. More...
 
const double getObjBestBoundUB () const
 Get the current best UB. More...
 
const double getMasterRowType (int row) const
 Get a specific row type. More...
 
bool isTailoffLB (const int changeLen=10, const double changePerLimit=0.1)
 Get a ptr to the current solution (in x-space). More...
 
int getNumRowType (DecompRowType rowType)
 Get a ptr to the current solution (in x-space). More...
 
void checkBlocksColumns ()
 Get a ptr to the current solution (in x-space). More...
 
 DecompAlgo (const DecompAlgoType algo, DecompApp *app, UtilParameters &utilParam, bool doSetup=true)
 Default constructors. More...
 
virtual ~DecompAlgo ()
 Destructor. More...
 
- Public Member Functions inherited from DecompAlgoPC
virtual void setMasterBounds (const double *lbs, const double *ubs)
 
void createMasterStabilization ()
 
void addCutsToPool (const double *x, DecompCutList &newCuts, int &n_newCuts)
 
int addCutsFromPool ()
 
void recomposeSolution (const double *solution, double *rsolution)
 Compose solution in x-space from current space. More...
 
 DecompAlgoPC (DecompApp *app)
 
 ~DecompAlgoPC ()
 
std::vector< double > & getDualBest ()
 Default constructors. More...
 
std::vector< double > & getDualRMP ()
 Default constructors. More...
 
 DecompAlgoPC (DecompApp *app, UtilParameters &utilParam, bool doSetup=true, const DecompAlgoType algo=PRICE_AND_CUT)
 Default constructors. More...
 
 ~DecompAlgoPC ()
 Destructor. More...
 

Private Member Functions

 DecompAlgoD (const DecompAlgoD &)
 
DecompAlgoDoperator= (const DecompAlgoD &)
 

Private Attributes

Data.
std::string m_classTag
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
double * m_xhatD
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
DecompCutListm_newCuts
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
int m_numOrigCols
 Store the name of the class (for logging/debugging) - "who am I?". More...
 

Static Private Attributes

static const char * classTag
 

Derived from virtual functions of DecompAlgoPC

virtual void createMasterProblem (DecompVarList &initVars)
 Create the master problem (all algorithms must define this function). More...
 
virtual void masterMatrixAddArtCols (CoinPackedMatrix *masterM, double *colLB, double *colUB, double *objCoeff, std::vector< std::string > &colNames, int startRow, int endRow, char origOrBranch)
 Create the master problem (all algorithms must define this function). More...
 
virtual void phaseUpdate (DecompPhase &phase, DecompStatus &status)
 Create the master problem (all algorithms must define this function). More...
 
virtual void phaseDone ()
 Create the master problem (all algorithms must define this function). More...
 
virtual void setObjBoundIP (const double thisBound)
 Set the current integer bound and update best/history. More...
 
void solveD (DecompCutList *newCuts)
 Create the master problem (all algorithms must define this function). More...
 

Constructors and destructor.

 DecompAlgoD (const DecompAlgoD &)
 Disable copy constructors. More...
 
DecompAlgoDoperator= (const DecompAlgoD &)
 Disable copy constructors. More...
 
 DecompAlgoD (DecompApp *app, UtilParameters &utilParam, double *xhat, int numOrigCols)
 Default constructors. More...
 
 ~DecompAlgoD ()
 Destructor. More...
 

Additional Inherited Members

- Public Attributes inherited from DecompAlgo
DecompConstraintSetm_modelCore
 
DecompConstraintSetm_modelRelax
 
- Protected Attributes inherited from DecompAlgo
DecompMemPool m_auxMemPool
 
int m_nodeIndex
 
int m_whichModel
 
int m_whichCoreModel
 
int m_priceCallsRound
 
int m_priceCallsTotal
 
int m_cutCallsRound
 
int m_cutCallsTotal
 
int m_varsThisRound
 
int m_cutsThisRound
 
int m_varsThisCall
 
int m_cutsThisCall
 
int m_isTightenAlgo
 
ostream * m_osLog
 
map< int, OsiSolverInterface * > m_subprobSI
 
DecompVarList m_initVars
 
double m_tlb
 
double m_tub
 
double m_bestUpperBound
 
vector< DecompSolution * > m_xhatIPFeas
 
int m_numOrigCols
 
vector< vector< double > > m_optPoint
 
double * m_piEstimate
 
vector< bool > isStab
 
std::string m_classTag
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
DecompParam m_param
 Parameters. More...
 
UtilParametersm_utilParam
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
DecompAlgoType m_algo
 Type of algorithm for this instance. More...
 
DecompStatus m_status
 The current algorithm status. More...
 
double m_infinity
 The value of "infinity". More...
 
DecompPhase m_phase
 The current algorithm phase. More...
 
DecompPhase m_phaseLast
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
DecompPhase m_phaseForce
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
DecompAppm_app
 Pointer to current active DECOMP application. More...
 
DecompStats m_stats
 Storage of statistics for run and node. More...
 
DecompNodeStats m_nodeStats
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
DecompMemPool m_memPool
 Memory pool used to reduce the number of allocations needed. More...
 
std::ostream * m_osLog
 Stream for log file (default to stdout). More...
 
DecompAlgoCGLm_cgl
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
std::vector< double > m_origColLB
 Pointer (and label) to current active model core/relax. More...
 
std::vector< double > m_origColUB
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
OsiSolverInterfacem_masterSI
 Solver interface(s) for subproblems (P'). More...
 
OsiClpSolverInterfacem_cutgenSI
 Solver interface(s) for entire problem (Q''). More...
 
int m_cutgenObjCutInd
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
OsiSolverInterfacem_auxSI
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
const double * m_objective
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
DecompSubModel m_modelCore
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
std::map< int, DecompSubModelm_modelRelax
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
std::map< int, std::vector
< DecompSubModel > > 
m_modelRelaxNest
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
DecompVarList m_vars
 Containers for variables (current and pool). More...
 
DecompVarPool m_varpool
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
DecompCutList m_cuts
 Containers for cuts (current and pool). More...
 
DecompCutPool m_cutpool
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
double * m_xhat
 Storage for current solution (in x-space). More...
 
double m_cutoffUB
 User-defined cutoff (global UB) for B&B fathoming and LR. More...
 
std::vector< DecompSolution * > m_xhatIPFeas
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
DecompSolutionm_xhatIPBest
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
std::vector< double > m_primSolution
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
std::vector< double > m_dualSolution
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
std::vector< double > m_reducedCost
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
int m_numCols
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
bool m_isColGenExact
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
int m_numConvexCon
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
int m_rrLastBlock
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
int m_rrIterSinceAll
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
int m_nArtCols
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
int m_nRowsOrig
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
int m_nRowsBranch
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
int m_nRowsConvex
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
int m_nRowsCuts
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
std::vector< DecompRowTypem_masterRowType
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
std::vector< DecompColTypem_masterColType
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
std::vector< int > m_masterArtCols
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
double * m_colLBNode
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
double * m_colUBNode
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
int m_compressColsLastPrice
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
int m_compressColsLastNumCols
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
double m_relGap
 Current node gap (bestUB-bestLB)/bestLB. More...
 
DecompAlgoStop m_stopCriteria
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
int m_colIndexUnique
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
double m_masterObjLast
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
bool m_objNoChange
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
double m_stabEpsilon
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
bool m_useInitLpDuals
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
std::map< int, int > m_artColIndToRowInd
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
double m_globalLB
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
double m_globalUB
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
std::vector< double > m_phaseIObj
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
int m_function
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
bool m_firstPhase2Call
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
bool m_isStrongBranch
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
const AlpsDecompTreeNodem_curNode
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
std::vector< int > m_masterOnlyCols
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
std::map< int, int > m_masterOnlyColsMap
 Map from original index to master index for master-only vars. More...
 
DecompBranchingImplementation m_branchingImplementation
 Store the name of the class (for logging/debugging) - "who am I?". More...
 

Detailed Description

Class for DECOMP algorithm Decomp.

Definition at line 36 of file DecompAlgoD.h.

Constructor & Destructor Documentation

DecompAlgoD::DecompAlgoD ( const DecompAlgoD )
private

Disable copy constructors.

DecompAlgoD::DecompAlgoD ( DecompApp app,
UtilParameters utilParam,
double *  xhat,
int  numOrigCols 
)
inline

Default constructors.

Definition at line 142 of file DecompAlgoD.h.

References DecompParam::CutCglGomory, and DecompAlgo::m_param.

DecompAlgoD::~DecompAlgoD ( )
inline

Destructor.

Definition at line 159 of file DecompAlgoD.h.

DecompAlgoD::DecompAlgoD ( const DecompAlgoD )
private
DecompAlgoD::DecompAlgoD ( DecompApp app,
double *  xhat,
int  numOrigCols 
)
inline

Definition at line 65 of file DecompAlgoD.h.

References m_numOrigCols, and m_xhatD.

DecompAlgoD::~DecompAlgoD ( )
inline

Definition at line 75 of file DecompAlgoD.h.

Member Function Documentation

virtual void DecompAlgoD::createMasterProblem ( DecompVarList initVars)
privatevirtual

Create the master problem (all algorithms must define this function).

Reimplemented from DecompAlgo.

virtual void DecompAlgoD::masterMatrixAddArtCols ( CoinPackedMatrix masterM,
double *  colLB,
double *  colUB,
double *  objCoeff,
std::vector< std::string > &  colNames,
int  startRow,
int  endRow,
char  origOrBranch 
)
privatevirtual

Create the master problem (all algorithms must define this function).

virtual void DecompAlgoD::phaseUpdate ( DecompPhase phase,
DecompStatus status 
)
privatevirtual

Create the master problem (all algorithms must define this function).

Reimplemented from DecompAlgo.

virtual void DecompAlgoD::phaseDone ( )
privatevirtual

Create the master problem (all algorithms must define this function).

Reimplemented from DecompAlgo.

virtual void DecompAlgoD::setObjBoundIP ( const double  thisBound)
inlineprivatevirtual
void DecompAlgoD::solveD ( DecompCutList newCuts)
inline
DecompAlgoD& DecompAlgoD::operator= ( const DecompAlgoD )
private

Disable copy constructors.

DecompAlgoD& DecompAlgoD::operator= ( const DecompAlgoD )
private
void DecompAlgoD::solveD ( DecompCutList newCuts)
inline
void DecompAlgoD::createMasterProblem ( DecompVarList initVars)
virtual

Create the master problem (all algorithms must define this function).

Reimplemented from DecompAlgo.

decompPhase DecompAlgoD::phaseUpdate ( const decompPhase  phase,
const decompStat  stat,
int &  n_newCuts,
int &  n_newVars,
int &  n_cutCalls,
int &  n_priceCalls 
)
decompPhase DecompAlgoD::phaseUpdate ( const decompPhase  phase,
const decompStat  stat 
)
virtual

Reimplemented from DecompAlgo.

void DecompAlgoD::recomposeSolution ( const double *  solution,
double *  rsolution 
)
virtual

Compose solution in x-space from current space.

  • PC: this recomposes x from lambda
  • C : this just copies over LP solution

Reimplemented from DecompAlgo.

Member Data Documentation

std::string DecompAlgoD::m_classTag
private

Store the name of the class (for logging/debugging) - "who am I?".

Definition at line 48 of file DecompAlgoD.h.

Referenced by setObjBoundIP().

double * DecompAlgoD::m_xhatD
private

Store the name of the class (for logging/debugging) - "who am I?".

Definition at line 51 of file DecompAlgoD.h.

Referenced by DecompAlgoD().

DecompCutList * DecompAlgoD::m_newCuts
private

Store the name of the class (for logging/debugging) - "who am I?".

Definition at line 53 of file DecompAlgoD.h.

Referenced by solveD().

int DecompAlgoD::m_numOrigCols
private

Store the name of the class (for logging/debugging) - "who am I?".

Definition at line 55 of file DecompAlgoD.h.

Referenced by DecompAlgoD().

const char* DecompAlgoD::classTag
staticprivate

Definition at line 29 of file DecompAlgoD.h.


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