Dip  0.92.4
Public Member Functions | Public Attributes | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
DecompAlgo Class Referenceabstract

Base class for DECOMP algorithms. More...

#include <DecompAlgo.h>

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

Public Member Functions

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 generateVars (DecompVarList &newVars, double &mostNegReducedCost)
 
virtual int generateCuts (double *xhat, DecompCutList &newCuts)
 
virtual void addVarsToPool (DecompVarList &newVars)
 
virtual void addVarsFromPool ()
 
virtual void addCutsToPool (const double *x, DecompCutList &newCuts, int &m_cutsThisCall)
 
virtual int addCutsFromPool ()
 
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 setMasterBounds (const double *lbs, const double *ubs)
 
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 void createMasterProblem (DecompVarList &initVars)=0
 
virtual decompStat solutionUpdate (const decompPhase phase, const int maxInnerIter, const int maxOuterIter)
 
virtual decompPhase phaseUpdate (const decompPhase phase, const decompStat stat)
 
virtual void setMasterBounds (const double *lbs, const double *ubs)
 
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 void recomposeSolution (const double *solution, double *rsolution)
 
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)
 
virtual void addCutsToPool (const double *x, DecompCutList &newCuts, int &n_newCuts)
 
virtual int addCutsFromPool ()
 
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 void createMasterProblem (DecompVarList &initVars)=0
 
virtual DecompStat solutionUpdate (const DecompPhase phase, const int maxInnerIter, const int maxOuterIter)
 
virtual DecompPhase phaseUpdate (const DecompPhase phase, const DecompStat stat)
 
virtual void setMasterBounds (const double *lbs, const double *ubs)
 
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 void recomposeSolution (const double *solution, double *rsolution)
 
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)
 
virtual void addCutsToPool (const double *x, DecompCutList &newCuts, int &n_newCuts)
 
virtual int addCutsFromPool ()
 
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 ()
 
Pure virtual functions.
virtual void createMasterProblem (DecompVarList &initVars)
 Create the master problem (all algorithms must define this function). More...
 
void loadSIFromModel (OsiSolverInterface *si, bool doInt=false)
 Create the master problem (all algorithms must define this function). More...
 
virtual void recomposeSolution (const double *solution, double *rsolution)
 Compose solution in x-space from current space. More...
 
Virtual functions.
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 void phaseUpdate (DecompPhase &phase, DecompStatus &status)
 Update of the phase for process loop. More...
 
virtual void phaseInit (DecompPhase &phase)
 Run the initial phase for processing node. More...
 
virtual void phaseDone ()
 Run the done phase for processing node. More...
 
virtual bool updateObjBound (const double mostNegRC=-DecompBigNum)
 Calculate the current LB and update best/history. More...
 
virtual void solveMasterAsMIP ()
 The main DECOMP process loop for a node. More...
 
virtual int adjustColumnsEffCnt ()
 The main DECOMP process loop for a node. More...
 
virtual int compressColumns ()
 The main DECOMP process loop for a node. More...
 
Helper functions.
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...
 
Set/get methods.
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...
 
virtual const double * getMasterDualSolution () const
 Get current dual solution for master problem. More...
 
virtual void adjustMasterDualSolution ()
 Adjust the current dual solution for master problem. 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...
 
virtual void setObjBound (const double thisBound, const double thisBoundUB)
 Set the current continuous bounds and update best/history. More...
 
virtual void setObjBoundIP (const double thisBound)
 Set the current integer bound and update best/history. 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...
 
Constructors and destructor.
 DecompAlgo (const DecompAlgoType algo, DecompApp *app, UtilParameters &utilParam, bool doSetup=true)
 Default constructors. More...
 
virtual ~DecompAlgo ()
 Destructor. More...
 

Public Attributes

DecompConstraintSetm_modelCore
 
DecompConstraintSetm_modelRelax
 

Protected Attributes

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
 
Data.
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...
 

Private Member Functions

 DecompAlgo (const DecompAlgo &)
 
DecompAlgooperator= (const DecompAlgo &)
 
 DecompAlgo (const DecompAlgo &)
 
DecompAlgooperator= (const DecompAlgo &)
 

Private Attributes

decompAlgoType m_algo
 

Static Private Attributes

static const char * m_classTag
 
static const char * versionTag
 

Detailed Description

Base class for DECOMP algorithms.

Definition at line 62 of file DecompAlgo.h.

Constructor & Destructor Documentation

DecompAlgo::DecompAlgo ( const DecompAlgoType  algo,
DecompApp app,
UtilParameters utilParam,
bool  doSetup = true 
)
inline
virtual DecompAlgo::~DecompAlgo ( )
inlinevirtual
DecompAlgo::DecompAlgo ( const DecompAlgo )
private
DecompAlgo::DecompAlgo ( const decompAlgoType  algo,
DecompApp app 
)
inline

Definition at line 326 of file DecompAlgo.h.

virtual DecompAlgo::~DecompAlgo ( )
inlinevirtual
DecompAlgo::DecompAlgo ( const DecompAlgo )
private
DecompAlgo::DecompAlgo ( const DecompAlgoType  algo,
DecompApp app 
)
inline

Definition at line 314 of file DecompAlgo.old.h.

virtual DecompAlgo::~DecompAlgo ( )
inlinevirtual

Member Function Documentation

virtual void DecompAlgo::createMasterProblem ( DecompVarList initVars)
virtual

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

Reimplemented in DecompAlgoPC, DecompAlgoD, DecompAlgoRC, DecompAlgoC, DecompAlgoRC, DecompAlgoD, DecompAlgoPC, and DecompAlgoC.

Referenced by DecompAlgoPC::createMasterProblem().

void DecompAlgo::loadSIFromModel ( OsiSolverInterface si,
bool  doInt = false 
)

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

virtual void DecompAlgo::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 in DecompAlgoRC, DecompAlgoC, DecompAlgoPC, DecompAlgoD, and DecompAlgoC.

virtual DecompStatus DecompAlgo::processNode ( const AlpsDecompTreeNode node,
const double  globalLB,
const double  globalUB 
)
virtual

The main DECOMP process loop for a node.

Referenced by DecompAlgoD::solveD().

const AlpsDecompTreeNode* DecompAlgo::getCurrentNode ( ) const
inline

Provide the current node the algorithm is solving.

Definition at line 316 of file DecompAlgo.h.

References m_curNode.

virtual void DecompAlgo::postProcessNode ( DecompStatus  decompStatus)
inlinevirtual

Do some information sending after the current node has been processed.

Does nothing by default.

Reimplemented in DippyAlgoRC, DippyAlgoPC, and DippyAlgoC.

Definition at line 325 of file DecompAlgo.h.

virtual void DecompAlgo::postProcessBranch ( DecompStatus  decompStatus)
inlinevirtual

Do some information sending after the current node has been branched.

Does nothing by default.

Reimplemented in DippyAlgoRC, DippyAlgoPC, and DippyAlgoC.

Definition at line 332 of file DecompAlgo.h.

virtual int DecompAlgo::generateInitVars ( DecompVarList initVars)
virtual

Generate initial variables for master problem (PC/DC/RC).

  • in CPM, this does nothing

Reimplemented in DecompAlgoC, and DecompAlgoC.

virtual DecompStatus DecompAlgo::solutionUpdate ( const DecompPhase  phase,
const bool  resolve = true,
const int  maxInnerIter = COIN_INT_MAX,
const int  maxOuterIter = COIN_INT_MAX 
)
virtual

Update of the solution vectors (primal and/or dual).

virtual void DecompAlgo::phaseUpdate ( DecompPhase phase,
DecompStatus status 
)
virtual

Update of the phase for process loop.

Reimplemented in DecompAlgoC, and DecompAlgoD.

virtual void DecompAlgo::phaseInit ( DecompPhase phase)
inlinevirtual

Run the initial phase for processing node.

Reimplemented in DecompAlgoPC, and DecompAlgoC.

Definition at line 359 of file DecompAlgo.h.

References getNodeIndex(), and PHASE_PRICE1.

virtual void DecompAlgo::phaseDone ( )
inlinevirtual

Run the done phase for processing node.

Reimplemented in DecompAlgoPC, DecompAlgoRC, DecompAlgoC, and DecompAlgoD.

Definition at line 368 of file DecompAlgo.h.

virtual bool DecompAlgo::updateObjBound ( const double  mostNegRC = -DecompBigNum)
virtual

Calculate the current LB and update best/history.

Reimplemented in DecompAlgoRC, and DecompAlgoC.

virtual void DecompAlgo::solveMasterAsMIP ( )
inlinevirtual

The main DECOMP process loop for a node.

Reimplemented in DecompAlgoPC.

Definition at line 376 of file DecompAlgo.h.

virtual int DecompAlgo::adjustColumnsEffCnt ( )
inlinevirtual

The main DECOMP process loop for a node.

Reimplemented in DecompAlgoPC.

Definition at line 378 of file DecompAlgo.h.

References DecompStatOk.

virtual int DecompAlgo::compressColumns ( )
inlinevirtual

The main DECOMP process loop for a node.

Reimplemented in DecompAlgoPC.

Definition at line 381 of file DecompAlgo.h.

References DecompStatOk.

bool DecompAlgo::isGapTight ( )
inline
double DecompAlgo::getInfinity ( )
inline

Return the value of infinity.

Definition at line 408 of file DecompAlgo.h.

References m_infinity.

virtual bool DecompAlgo::isDone ( )
inlinevirtual

Reimplemented in DecompAlgoRC, and DecompAlgoRC.

Definition at line 416 of file DecompAlgo.h.

References DecompNodeStats::cutsThisCall, m_nodeStats, and DecompNodeStats::varsThisCall.

std::vector<double*> DecompAlgo::getDualRays ( int  maxNumRays)
std::vector<double*> DecompAlgo::getDualRaysCpx ( int  maxNumRays)
std::vector<double*> DecompAlgo::getDualRaysOsi ( int  maxNumRays)
virtual int DecompAlgo::generateVars ( DecompVarList newVars,
double &  mostNegReducedCost 
)
virtual

Reimplemented in DecompAlgoRC, and DecompAlgoPC.

Referenced by DecompAlgoPC::generateVars().

virtual int DecompAlgo::generateCuts ( double *  xhat,
DecompCutList newCuts 
)
virtual
virtual void DecompAlgo::addVarsToPool ( DecompVarList newVars)
virtual
virtual void DecompAlgo::addVarsFromPool ( )
virtual
virtual void DecompAlgo::addCutsToPool ( const double *  x,
DecompCutList newCuts,
int &  m_cutsThisCall 
)
virtual

Reimplemented in DecompAlgoPC, and DecompAlgoPC.

virtual int DecompAlgo::addCutsFromPool ( )
virtual
bool DecompAlgo::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 DecompAlgo::isLPFeasible ( const double *  x,
const bool  isXSparse = false,
const double  feasVarTol = 1.0e-6,
const double  feasConTol = 1.0e-5 
)
DecompStatus DecompAlgo::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 DecompAlgo::appendVars ( DecompVar var)
inline

Definition at line 466 of file DecompAlgo.h.

References m_vars.

void DecompAlgo::appendVars ( DecompVarList varList)
inline

Definition at line 469 of file DecompAlgo.h.

References m_vars.

virtual void DecompAlgo::setMasterBounds ( const double *  lbs,
const double *  ubs 
)
virtual

Reimplemented in DecompAlgoC, and DecompAlgoPC.

virtual void DecompAlgo::setSubProbBounds ( const double *  lbs,
const double *  ubs 
)
virtual

Reimplemented in DecompAlgoC.

virtual bool DecompAlgo::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 
)
virtual

Reimplemented in DippyAlgoRC, DippyAlgoPC, and DippyAlgoC.

void DecompAlgo::initSetup ( )

Initial setup of algorithm structures and solver interfaces.

Referenced by DecompAlgo(), and DecompAlgoC::DecompAlgoC().

void DecompAlgo::getModelsFromApp ( )

Initial setup of algorithm structures and solver interfaces.

void DecompAlgo::createOsiSubProblem ( DecompSubModel subModel)

Initial setup of algorithm structures and solver interfaces.

OsiSolverInterface* DecompAlgo::getOsiLpSolverInterface ( )

Initial setup of algorithm structures and solver interfaces.

OsiSolverInterface* DecompAlgo::getOsiIpSolverInterface ( )

Initial setup of algorithm structures and solver interfaces.

void DecompAlgo::coreMatrixAppendColBounds ( )

Calculate gap: |(ub-lb)|/|lb|.

void DecompAlgo::checkMasterDualObj ( )

Initial setup of algorithm structures and solver interfaces.

bool DecompAlgo::checkPointFeasible ( const DecompConstraintSet modelCore,
const double *  x 
)

Initial setup of algorithm structures and solver interfaces.

bool DecompAlgo::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.

bool DecompAlgo::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.

void DecompAlgo::printBasisInfo ( OsiSolverInterface si,
std::ostream *  os 
)

Initial setup of algorithm structures and solver interfaces.

void DecompAlgo::printCurrentProblemDual ( OsiSolverInterface si,
const std::string  baseName,
const int  nodeIndex,
const int  cutPass,
const int  pricePass 
)

Initial setup of algorithm structures and solver interfaces.

void DecompAlgo::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.

void DecompAlgo::printCurrentProblem ( const OsiSolverInterface si,
const std::string  fileName,
const bool  printMps = true,
const bool  printLp = true 
)

Initial setup of algorithm structures and solver interfaces.

void DecompAlgo::printVars ( std::ostream *  os)

Initial setup of algorithm structures and solver interfaces.

void DecompAlgo::printCuts ( std::ostream *  os)

Initial setup of algorithm structures and solver interfaces.

void DecompAlgo::checkDuals ( )

Initial setup of algorithm structures and solver interfaces.

void DecompAlgo::checkReducedCost ( const double *  u,
const double *  u_adjusted 
)

Initial setup of algorithm structures and solver interfaces.

void DecompAlgo::createFullMps ( const std::string  fileName)

Initial setup of algorithm structures and solver interfaces.

virtual DecompSolverResult* DecompAlgo::solveDirect ( const DecompSolution startSol = NULL)
inlinevirtual

Initial setup of algorithm structures and solver interfaces.

Reimplemented in DecompAlgoC.

Definition at line 585 of file DecompAlgo.h.

void DecompAlgo::masterMatrixAddMOCols ( CoinPackedMatrix masterM,
double *  colLB,
double *  colUB,
double *  objCoeff,
std::vector< std::string > &  colNames 
)

Initial setup of algorithm structures and solver interfaces.

void DecompAlgo::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.

virtual void DecompAlgo::masterMatrixAddArtCols ( CoinPackedMatrix masterM,
double *  colLB,
double *  colUB,
double *  objCoeff,
std::vector< std::string > &  colNames,
int  startRow,
int  endRow,
DecompRowType  rowType 
)
virtual

Initial setup of algorithm structures and solver interfaces.

void DecompAlgo::masterPhaseItoII ( )

Initial setup of algorithm structures and solver interfaces.

void DecompAlgo::masterPhaseIItoI ( )

Initial setup of algorithm structures and solver interfaces.

bool DecompAlgo::isMasterColMasterOnly ( const int  index) const
inline

Initial setup of algorithm structures and solver interfaces.

Definition at line 618 of file DecompAlgo.h.

References DecompCol_MasterOnly, and m_masterColType.

bool DecompAlgo::isMasterColStructural ( const int  index) const
inline

Initial setup of algorithm structures and solver interfaces.

Definition at line 621 of file DecompAlgo.h.

References DecompCol_Structural, DecompCol_Structural_NoDelete, and m_masterColType.

bool DecompAlgo::isMasterColArtificial ( const int  index) const
inline
void DecompAlgo::breakOutPartial ( const double *  xHat,
DecompVarList newVars,
const double  intTol = 1.0e-5 
)

Initial setup of algorithm structures and solver interfaces.

void DecompAlgo::generateVarsAdjustDuals ( const double *  uOld,
double *  uNew 
)

Create an adjusted dual vector with the duals from the convexity constraints removed.

void DecompAlgo::generateVarsCalcRedCost ( const double *  u,
double *  redCostX 
)

Calculated reduced cost vector (over vars in compact space) for a given dual vector.

const double* DecompAlgo::getColLBNode ( ) const
inline

Get a ptr to the current solution (in x-space).

Definition at line 667 of file DecompAlgo.h.

References m_colLBNode.

const double* DecompAlgo::getColUBNode ( ) const
inline

Get a ptr to the current solution (in x-space).

Definition at line 670 of file DecompAlgo.h.

References m_colUBNode.

DecompStats& DecompAlgo::getStats ( )
inline

Get a ptr to the current solution (in x-space).

Definition at line 677 of file DecompAlgo.h.

References m_stats.

const double* DecompAlgo::getOrigObjective ( ) const
inline

Get a ptr to the current solution (in x-space).

Definition at line 681 of file DecompAlgo.h.

References m_app, and DecompApp::m_objective.

const DecompSubModel& DecompAlgo::getModelCore ( ) const
inline

Get a ptr to the current solution (in x-space).

Definition at line 684 of file DecompAlgo.h.

References m_modelCore.

Referenced by AlpsDecompModel::getColNames(), AlpsDecompModel::getNumCoreCols(), AlpsDecompModel::getNumCoreRows(), AlpsDecompModel::getRowNames(), and AlpsDecompSolution::print().

const int DecompAlgo::getAlgo ( ) const
inline

Get a ptr to the current solution (in x-space).

Definition at line 688 of file DecompAlgo.h.

References m_algo.

const DecompParam& DecompAlgo::getParam ( ) const
inline

Get a ptr to the current solution (in x-space).

Definition at line 692 of file DecompAlgo.h.

References m_param.

DecompParam& DecompAlgo::getMutableParam ( )
inline

Get a ptr to the current solution (in x-space).

Definition at line 696 of file DecompAlgo.h.

References m_param.

OsiSolverInterface* DecompAlgo::getMasterOSI ( )
inline

Get a ptr to the current solution (in x-space).

Definition at line 700 of file DecompAlgo.h.

References m_masterSI.

DecompSubModel& DecompAlgo::getModelRelax ( const int  blockId)
inline

Get a ptr to the current solution (in x-space).

Definition at line 704 of file DecompAlgo.h.

References m_modelRelax.

const double* DecompAlgo::getXhat ( ) const
inline

Get a ptr to the current solution (in x-space).

Definition at line 715 of file DecompAlgo.h.

References m_xhat.

void DecompAlgo::setCutoffUB ( const double  thisBound)
inline

Get a ptr to the current solution (in x-space).

Definition at line 719 of file DecompAlgo.h.

References m_cutoffUB, and setObjBoundIP().

const DecompSolution* DecompAlgo::getXhatIPBest ( ) const
inline

Get a ptr to the current solution (in x-space).

Definition at line 725 of file DecompAlgo.h.

References m_xhatIPBest.

Referenced by AlpsDecompModel::getBestSolution().

const std::vector<DecompSolution*>& DecompAlgo::getXhatIPFeas ( ) const
inline

Get a ptr to the current solution (in x-space).

Definition at line 729 of file DecompAlgo.h.

References m_xhatIPFeas.

const double DecompAlgo::getCutoffUB ( ) const
inline

Get a ptr to the current solution (in x-space).

Definition at line 733 of file DecompAlgo.h.

References m_cutoffUB.

DecompStats& DecompAlgo::getDecompStats ( )
inline

Get a ptr to the current solution (in x-space).

Definition at line 737 of file DecompAlgo.h.

References m_stats.

const DecompParam& DecompAlgo::getDecompParam ( ) const
inline

Get a ptr to the current solution (in x-space).

Definition at line 741 of file DecompAlgo.h.

References m_param.

const DecompApp* DecompAlgo::getDecompApp ( ) const
inline

Get a ptr to the current solution (in x-space).

Definition at line 745 of file DecompAlgo.h.

References m_app.

DecompApp* DecompAlgo::getDecompAppMutable ( )
inline

Get a ptr to the current solution (in x-space).

Definition at line 748 of file DecompAlgo.h.

References m_app.

const int DecompAlgo::getNodeIndex ( ) const
inline

Get a ptr to the current solution (in x-space).

Definition at line 752 of file DecompAlgo.h.

References m_nodeStats, and DecompNodeStats::nodeIndex.

Referenced by DecompAlgoC::phaseInit(), phaseInit(), and setObjBound().

const int DecompAlgo::getCutCallsTotal ( ) const
inline

Get a ptr to the current solution (in x-space).

Definition at line 756 of file DecompAlgo.h.

References DecompNodeStats::cutCallsTotal, and m_nodeStats.

const int DecompAlgo::getPriceCallsTotal ( ) const
inline

Get a ptr to the current solution (in x-space).

Definition at line 760 of file DecompAlgo.h.

References m_nodeStats, and DecompNodeStats::priceCallsTotal.

const double* DecompAlgo::getMasterPrimalSolution ( ) const
inline

Get current primal solution for master problem.

Definition at line 767 of file DecompAlgo.h.

References m_primSolution.

Referenced by getMasterObjValue().

const double* DecompAlgo::getMasterColReducedCost ( ) const
inline

Get a ptr to the current solution (in x-space).

Definition at line 771 of file DecompAlgo.h.

References m_reducedCost.

virtual const double* DecompAlgo::getMasterDualSolution ( ) const
inlinevirtual

Get current dual solution for master problem.

Reimplemented in DecompAlgoPC.

Definition at line 777 of file DecompAlgo.h.

References m_dualSolution.

virtual void DecompAlgo::adjustMasterDualSolution ( )
inlinevirtual

Adjust the current dual solution for master problem.

Reimplemented in DecompAlgoPC.

Definition at line 784 of file DecompAlgo.h.

double DecompAlgo::getMasterObjValue ( ) const
inline

Get a ptr to the current solution (in x-space).

Definition at line 787 of file DecompAlgo.h.

References getMasterPrimalSolution(), OsiSolverInterface::getObjCoefficients(), m_infinity, m_masterSI, and m_primSolution.

const int DecompAlgo::getStopCriteria ( ) const
inline

Get a ptr to the current solution (in x-space).

Definition at line 805 of file DecompAlgo.h.

References m_stopCriteria.

const double DecompAlgo::getGlobalGap ( ) const
inline

Get the current global (integrality) gap.

Definition at line 812 of file DecompAlgo.h.

References m_globalLB, m_globalUB, m_infinity, and UtilCalculateGap().

const double DecompAlgo::getNodeIPGap ( ) const
inline

Get the current node (integrality) gap.

Definition at line 819 of file DecompAlgo.h.

References getObjBestBoundLB(), getObjBestBoundUB(), m_infinity, and UtilCalculateGap().

const double DecompAlgo::getNodeLPGap ( ) const
inline

Get the current node (continuous) gap.

Definition at line 826 of file DecompAlgo.h.

References getObjBestBoundLB(), m_infinity, m_nodeStats, DecompNodeStats::objHistoryBound, DecompObjBound::thisBoundUB, and UtilCalculateGap().

const double DecompAlgo::getObjBestBoundLB ( ) const
inline

Get the current best LB.

Definition at line 842 of file DecompAlgo.h.

References m_nodeStats, and DecompNodeStats::objBest.

Referenced by getNodeIPGap(), and getNodeLPGap().

const void DecompAlgo::setStrongBranchIter ( bool  isStrongBranch = true)
inline

Set the object to be in strong branching mode.

Definition at line 849 of file DecompAlgo.h.

References m_isStrongBranch.

const double DecompAlgo::getObjBestBoundUB ( ) const
inline

Get the current best UB.

Definition at line 856 of file DecompAlgo.h.

References m_nodeStats, and DecompNodeStats::objBest.

Referenced by getNodeIPGap().

const double DecompAlgo::getMasterRowType ( int  row) const
inline

Get a specific row type.

Definition at line 863 of file DecompAlgo.h.

References m_masterRowType.

virtual void DecompAlgo::setObjBound ( const double  thisBound,
const double  thisBoundUB 
)
inlinevirtual
virtual void DecompAlgo::setObjBoundIP ( const double  thisBound)
inlinevirtual
bool DecompAlgo::isTailoffLB ( const int  changeLen = 10,
const double  changePerLimit = 0.1 
)

Get a ptr to the current solution (in x-space).

int DecompAlgo::getNumRowType ( DecompRowType  rowType)
inline

Get a ptr to the current solution (in x-space).

Definition at line 942 of file DecompAlgo.h.

References m_masterRowType.

void DecompAlgo::checkBlocksColumns ( )

Get a ptr to the current solution (in x-space).

DecompAlgo& DecompAlgo::operator= ( const DecompAlgo )
private
OsiSolverInterface* DecompAlgo::initSolverInterface ( )
void DecompAlgo::startupLog ( )
void DecompAlgo::initSetup ( int  whichModel = 1)
void DecompAlgo::tighten ( int  whichModel)
void DecompAlgo::solve ( int  whichModel = 1)

Referenced by DecompAlgoD::solveD().

double DecompAlgo::getTrueLowerBound ( )
inline

Definition at line 134 of file DecompAlgo.h.

References m_tlb.

double DecompAlgo::getTrueUpperBound ( )
inline

Definition at line 137 of file DecompAlgo.h.

References m_tub.

void DecompAlgo::setTrueLowerBound ( const double  mostNegReducedCost)
void DecompAlgo::setTrueUpperBound ( const double  ub)
inline

Definition at line 143 of file DecompAlgo.h.

References m_tub.

double DecompAlgo::calcConstant ( const int  m,
const double *  u 
)
bool DecompAlgo::isDualRayInfProof ( const double *  dualRay,
const CoinPackedMatrix rowMatrix,
const double *  colLB,
const double *  colUB,
const double *  rowRhs,
ostream *  os = 0 
)
void DecompAlgo::printBasisInfo ( OsiSolverInterface si,
ostream *  os 
)
void DecompAlgo::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 DecompAlgo::printCurrentProblem ( const OsiSolverInterface si,
const string  fileName,
const bool  printMps = true,
const bool  printLp = true 
)
void DecompAlgo::printVars ( ostream *  os = &cout)
void DecompAlgo::printCuts ( ostream *  os = &cout)
void DecompAlgo::solveBruteForce ( )
void DecompAlgo::createFullMps ( const string  filename)
vector<double*> DecompAlgo::getDualRays ( int  maxNumRays)
void DecompAlgo::setApp ( DecompApp app)
inline

Definition at line 177 of file DecompAlgo.h.

References m_app.

void DecompAlgo::setBestUpperBound ( const double  bestUpperBound)
inline

Definition at line 182 of file DecompAlgo.h.

References m_bestUpperBound.

decompStat DecompAlgo::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 void DecompAlgo::createMasterProblem ( DecompVarList initVars)
pure virtual
virtual decompStat DecompAlgo::solutionUpdate ( const decompPhase  phase,
const int  maxInnerIter,
const int  maxOuterIter 
)
virtual

Reimplemented in DecompAlgoRC.

virtual decompPhase DecompAlgo::phaseUpdate ( const decompPhase  phase,
const decompStat  stat 
)
virtual

Reimplemented in DecompAlgoD, and DecompAlgoC.

virtual void DecompAlgo::setMasterBounds ( const double *  lbs,
const double *  ubs 
)
virtual

Reimplemented in DecompAlgoC, and DecompAlgoPC.

OsiSolverInterface* DecompAlgo::getMasterSolverInterface ( )
inline

Definition at line 226 of file DecompAlgo.h.

References m_masterSI.

virtual const double* DecompAlgo::getRowPrice ( ) const
inlinevirtual

Reimplemented in DecompAlgoRC.

Definition at line 230 of file DecompAlgo.h.

References OsiSolverInterface::getRowPrice(), and m_masterSI.

const double* DecompAlgo::getX ( )
inline

Definition at line 234 of file DecompAlgo.h.

References m_xhat.

DecompApp* DecompAlgo::getApp ( )
inline

Definition at line 238 of file DecompAlgo.h.

References m_app.

const DecompSolution* DecompAlgo::getXhatIPBest ( )
inline

Definition at line 242 of file DecompAlgo.h.

References m_xhatIPBest.

virtual const double* DecompAlgo::getRightHandSide ( ) const
inlinevirtual

Definition at line 247 of file DecompAlgo.h.

References m_modelCore.

virtual const char* DecompAlgo::getRowSense ( ) const
inlinevirtual

Definition at line 251 of file DecompAlgo.h.

References m_modelCore.

int DecompAlgo::heuristics ( const double *  xhat,
vector< DecompSolution * > &  xhatIPFeas 
)
virtual int DecompAlgo::generateVars ( const decompStat  stat,
DecompVarList newVars,
double &  mostNegReducedCost 
)
virtual

Reimplemented in DecompAlgoRC, and DecompAlgoC.

virtual int DecompAlgo::generateCuts ( DecompCutList newCuts)
virtual
virtual void DecompAlgo::recomposeSolution ( const double *  solution,
double *  rsolution 
)
inlinevirtual

Reimplemented in DecompAlgoRC, DecompAlgoC, DecompAlgoPC, DecompAlgoD, and DecompAlgoC.

Definition at line 267 of file DecompAlgo.h.

virtual int DecompAlgo::generateInitVars ( DecompVarList initVars)
virtual

Reimplemented in DecompAlgoC, and DecompAlgoC.

virtual bool DecompAlgo::isDone ( )
inlinevirtual

Reimplemented in DecompAlgoRC, and DecompAlgoRC.

Definition at line 273 of file DecompAlgo.h.

void DecompAlgo::addVarsToPool ( DecompVarList newVars)
void DecompAlgo::addVarsFromPool ( )
bool DecompAlgo::isIPFeasible ( const double *  x,
const double  feasTol = 1.0e-4,
const double  intTol = 1.0e-4 
)
bool DecompAlgo::isLPFeasible ( const double *  x,
const double  feasTol = 1.0e-4 
)
virtual void DecompAlgo::addCutsToPool ( const double *  x,
DecompCutList newCuts,
int &  n_newCuts 
)
virtual

Reimplemented in DecompAlgoPC, and DecompAlgoPC.

virtual int DecompAlgo::addCutsFromPool ( )
virtual
int DecompAlgo::chooseBranchVar ( int &  branchedOnIndex,
double &  branchedOnValue 
)
virtual int DecompAlgo::branch ( int  branchedOnIndex,
double  branchedOnValue 
)
virtual

Reimplemented in DecompAlgoC.

decompStat DecompAlgo::processNode ( const int  nodeIndex = 0)
void DecompAlgo::appendVars ( DecompVar var)
inline

Definition at line 307 of file DecompAlgo.h.

References m_vars.

void DecompAlgo::appendVars ( DecompVarList varList)
inline

Definition at line 310 of file DecompAlgo.h.

References m_vars.

DecompAlgo& DecompAlgo::operator= ( const DecompAlgo )
private
OsiSolverInterface* DecompAlgo::initSolverInterface ( )
void DecompAlgo::startupLog ( )
void DecompAlgo::initSetup ( int  whichModel = 1)
void DecompAlgo::tighten ( int  whichModel)
double DecompAlgo::getTrueLowerBound ( )
inline

Definition at line 124 of file DecompAlgo.old.h.

References m_tlb.

double DecompAlgo::getTrueUpperBound ( )
inline

Definition at line 127 of file DecompAlgo.old.h.

References m_tub.

void DecompAlgo::setTrueLowerBound ( const double  mostNegReducedCost)
void DecompAlgo::setTrueUpperBound ( const double  ub)
inline

Definition at line 133 of file DecompAlgo.old.h.

References m_tub.

double DecompAlgo::calcConstant ( const int  m,
const double *  u 
)
bool DecompAlgo::isDualRayInfProof ( const double *  dualRay,
const CoinPackedMatrix rowMatrix,
const double *  colLB,
const double *  colUB,
const double *  rowRhs,
ostream *  os = 0 
)
void DecompAlgo::printBasisInfo ( OsiSolverInterface si,
ostream *  os 
)
void DecompAlgo::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 DecompAlgo::printCurrentProblem ( const OsiSolverInterface si,
const string  fileName,
const bool  printMps = true,
const bool  printLp = true 
)
void DecompAlgo::printVars ( ostream *  os = &cout)
void DecompAlgo::printCuts ( ostream *  os = &cout)
void DecompAlgo::solveBruteForce ( )
void DecompAlgo::createFullMps ( const string  filename)
vector<double*> DecompAlgo::getDualRays ( int  maxNumRays)
void DecompAlgo::setApp ( DecompApp app)
inline

Definition at line 167 of file DecompAlgo.old.h.

References m_app.

void DecompAlgo::setBestUpperBound ( const double  bestUpperBound)
inline

Definition at line 172 of file DecompAlgo.old.h.

References m_bestUpperBound.

DecompStat DecompAlgo::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 void DecompAlgo::createMasterProblem ( DecompVarList initVars)
pure virtual
virtual DecompStat DecompAlgo::solutionUpdate ( const DecompPhase  phase,
const int  maxInnerIter,
const int  maxOuterIter 
)
virtual

Reimplemented in DecompAlgoRC.

virtual DecompPhase DecompAlgo::phaseUpdate ( const DecompPhase  phase,
const DecompStat  stat 
)
virtual
virtual void DecompAlgo::setMasterBounds ( const double *  lbs,
const double *  ubs 
)
virtual

Reimplemented in DecompAlgoC, and DecompAlgoPC.

OsiSolverInterface* DecompAlgo::getMasterSolverInterface ( )
inline

Definition at line 216 of file DecompAlgo.old.h.

References m_masterSI.

virtual const double* DecompAlgo::getRowPrice ( ) const
inlinevirtual

Reimplemented in DecompAlgoRC.

Definition at line 220 of file DecompAlgo.old.h.

References OsiSolverInterface::getRowPrice(), and m_masterSI.

const double* DecompAlgo::getX ( )
inline

Definition at line 224 of file DecompAlgo.old.h.

References m_xhat.

DecompApp* DecompAlgo::getApp ( )
inline

Definition at line 228 of file DecompAlgo.old.h.

References m_app.

const DecompSolution* DecompAlgo::getXhatIPBest ( )
inline

Definition at line 232 of file DecompAlgo.old.h.

References m_xhatIPBest.

virtual const double* DecompAlgo::getRightHandSide ( ) const
inlinevirtual

Definition at line 237 of file DecompAlgo.old.h.

References m_modelCore.

virtual const char* DecompAlgo::getRowSense ( ) const
inlinevirtual

Definition at line 241 of file DecompAlgo.old.h.

References m_modelCore.

int DecompAlgo::heuristics ( const double *  xhat,
vector< DecompSolution * > &  xhatIPFeas 
)
virtual int DecompAlgo::generateVars ( const DecompStat  stat,
DecompVarList newVars,
double &  mostNegReducedCost 
)
virtual
virtual int DecompAlgo::generateCuts ( DecompCutList newCuts)
virtual
virtual void DecompAlgo::recomposeSolution ( const double *  solution,
double *  rsolution 
)
inlinevirtual

Reimplemented in DecompAlgoRC, DecompAlgoC, DecompAlgoPC, DecompAlgoD, and DecompAlgoC.

Definition at line 257 of file DecompAlgo.old.h.

virtual int DecompAlgo::generateInitVars ( DecompVarList initVars)
virtual

Reimplemented in DecompAlgoC, and DecompAlgoC.

virtual bool DecompAlgo::isDone ( )
inlinevirtual

Reimplemented in DecompAlgoRC, and DecompAlgoRC.

Definition at line 263 of file DecompAlgo.old.h.

void DecompAlgo::addVarsToPool ( DecompVarList newVars)
void DecompAlgo::addVarsFromPool ( )
bool DecompAlgo::isIPFeasible ( const double *  x,
const double  feasTol = 1.0e-4,
const double  intTol = 1.0e-4 
)
bool DecompAlgo::isLPFeasible ( const double *  x,
const double  feasTol = 1.0e-4 
)
virtual void DecompAlgo::addCutsToPool ( const double *  x,
DecompCutList newCuts,
int &  n_newCuts 
)
virtual

Reimplemented in DecompAlgoPC, and DecompAlgoPC.

virtual int DecompAlgo::addCutsFromPool ( )
virtual
int DecompAlgo::chooseBranchVar ( int &  branchedOnIndex,
double &  branchedOnValue 
)
virtual int DecompAlgo::branch ( int  branchedOnIndex,
double  branchedOnValue 
)
virtual

Reimplemented in DecompAlgoC.

DecompStat DecompAlgo::processNode ( const int  nodeIndex = 0,
const double  globalLB = -DecompInf,
const double  globalUB = DecompInf 
)
void DecompAlgo::appendVars ( DecompVar var)
inline

Definition at line 297 of file DecompAlgo.old.h.

References m_vars.

void DecompAlgo::appendVars ( DecompVarList varList)
inline

Definition at line 300 of file DecompAlgo.old.h.

References m_vars.

Member Data Documentation

static const char * DecompAlgo::m_classTag
protected

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

Definition at line 75 of file DecompAlgo.h.

Referenced by setObjBound(), and setObjBoundIP().

DecompParam DecompAlgo::m_param
protected
UtilParameters* DecompAlgo::m_utilParam
protected

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

Definition at line 81 of file DecompAlgo.h.

DecompAlgoType DecompAlgo::m_algo
protected

Type of algorithm for this instance.

Definition at line 86 of file DecompAlgo.h.

Referenced by getAlgo().

DecompStatus DecompAlgo::m_status
protected

The current algorithm status.

Definition at line 91 of file DecompAlgo.h.

double DecompAlgo::m_infinity
protected
DecompPhase DecompAlgo::m_phase
protected

The current algorithm phase.

Definition at line 101 of file DecompAlgo.h.

Referenced by setObjBound().

DecompPhase DecompAlgo::m_phaseLast
protected

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

Definition at line 102 of file DecompAlgo.h.

DecompPhase DecompAlgo::m_phaseForce
protected

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

Definition at line 103 of file DecompAlgo.h.

DecompApp * DecompAlgo::m_app
protected

Pointer to current active DECOMP application.

Definition at line 108 of file DecompAlgo.h.

Referenced by DecompAlgo(), getApp(), getDecompApp(), getDecompAppMutable(), getOrigObjective(), setApp(), DecompAlgoD::setObjBoundIP(), setObjBoundIP(), and DecompAlgoD::solveD().

DecompStats DecompAlgo::m_stats
protected

Storage of statistics for run and node.

Definition at line 113 of file DecompAlgo.h.

Referenced by getDecompStats(), and getStats().

DecompNodeStats DecompAlgo::m_nodeStats
protected
DecompMemPool DecompAlgo::m_memPool
protected

Memory pool used to reduce the number of allocations needed.

Definition at line 119 of file DecompAlgo.h.

ostream * DecompAlgo::m_osLog
protected

Stream for log file (default to stdout).

Definition at line 124 of file DecompAlgo.h.

Referenced by DecompAlgo(), DecompAlgoPC::setObjBound(), setObjBound(), DecompAlgoD::setObjBoundIP(), and setObjBoundIP().

DecompAlgoCGL* DecompAlgo::m_cgl
protected

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

Definition at line 126 of file DecompAlgo.h.

Referenced by ~DecompAlgo().

std::vector<double> DecompAlgo::m_origColLB
protected

Pointer (and label) to current active model core/relax.

Definition at line 133 of file DecompAlgo.h.

std::vector<double> DecompAlgo::m_origColUB
protected

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

Definition at line 134 of file DecompAlgo.h.

OsiSolverInterface * DecompAlgo::m_masterSI
protected

Solver interface(s) for subproblems (P').

Solver interface(s) for master problem (Q''). CPM: holds model core (and optionally relaxed) in original space PC : holds model core in reformulated space

Definition at line 147 of file DecompAlgo.h.

Referenced by getMasterObjValue(), getMasterOSI(), getMasterSolverInterface(), getRowPrice(), and ~DecompAlgo().

OsiClpSolverInterface* DecompAlgo::m_cutgenSI
protected

Solver interface(s) for entire problem (Q'').

CPM: not used (use m_masterSI) PC : holds model core (and optionally relaxed) in original space - used for CGL cuts

Definition at line 155 of file DecompAlgo.h.

Referenced by ~DecompAlgo().

int DecompAlgo::m_cutgenObjCutInd
protected

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

Definition at line 156 of file DecompAlgo.h.

OsiSolverInterface* DecompAlgo::m_auxSI
protected

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

Definition at line 157 of file DecompAlgo.h.

Referenced by ~DecompAlgo().

const double* DecompAlgo::m_objective
protected

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

Definition at line 160 of file DecompAlgo.h.

DecompConstraintSet * DecompAlgo::m_modelCore
protected

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

Definition at line 161 of file DecompAlgo.h.

Referenced by getModelCore(), BcpsDecompModel::getNumCols(), BcpsDecompModel::getNumRows(), getRightHandSide(), and getRowSense().

DecompConstraintSet * DecompAlgo::m_modelRelax
protected

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

Definition at line 162 of file DecompAlgo.h.

Referenced by getModelRelax().

std::map<int, std::vector<DecompSubModel> > DecompAlgo::m_modelRelaxNest
protected

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

Definition at line 163 of file DecompAlgo.h.

DecompVarList DecompAlgo::m_vars
protected

Containers for variables (current and pool).

Definition at line 169 of file DecompAlgo.h.

Referenced by appendVars(), and ~DecompAlgo().

DecompVarPool DecompAlgo::m_varpool
protected

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

Definition at line 170 of file DecompAlgo.h.

DecompCutList DecompAlgo::m_cuts
protected

Containers for cuts (current and pool).

Definition at line 175 of file DecompAlgo.h.

Referenced by ~DecompAlgo().

DecompCutPool DecompAlgo::m_cutpool
protected

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

Definition at line 176 of file DecompAlgo.h.

double * DecompAlgo::m_xhat
protected

Storage for current solution (in x-space).

Definition at line 181 of file DecompAlgo.h.

Referenced by getX(), getXhat(), and ~DecompAlgo().

double DecompAlgo::m_cutoffUB
protected

User-defined cutoff (global UB) for B&B fathoming and LR.

This does not imply a feasible IP solution, just a bound.

Definition at line 187 of file DecompAlgo.h.

Referenced by getCutoffUB(), and setCutoffUB().

vector< DecompSolution * > DecompAlgo::m_xhatIPFeas
protected

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

Definition at line 189 of file DecompAlgo.h.

Referenced by getXhatIPFeas(), and ~DecompAlgo().

DecompSolution * DecompAlgo::m_xhatIPBest
protected

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

Definition at line 190 of file DecompAlgo.h.

Referenced by getXhatIPBest().

std::vector<double> DecompAlgo::m_primSolution
protected

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

Definition at line 194 of file DecompAlgo.h.

Referenced by getMasterObjValue(), and getMasterPrimalSolution().

std::vector<double> DecompAlgo::m_dualSolution
protected

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

Definition at line 195 of file DecompAlgo.h.

Referenced by DecompAlgoPC::getMasterDualSolution(), and getMasterDualSolution().

std::vector<double> DecompAlgo::m_reducedCost
protected

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

Definition at line 196 of file DecompAlgo.h.

Referenced by getMasterColReducedCost().

int DecompAlgo::m_numCols
protected

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

Definition at line 197 of file DecompAlgo.h.

bool DecompAlgo::m_isColGenExact
protected

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

Definition at line 199 of file DecompAlgo.h.

int DecompAlgo::m_numConvexCon
protected

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

Definition at line 201 of file DecompAlgo.h.

int DecompAlgo::m_rrLastBlock
protected

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

Definition at line 204 of file DecompAlgo.h.

int DecompAlgo::m_rrIterSinceAll
protected

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

Definition at line 205 of file DecompAlgo.h.

int DecompAlgo::m_nArtCols
protected

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

Definition at line 208 of file DecompAlgo.h.

int DecompAlgo::m_nRowsOrig
protected

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

Definition at line 211 of file DecompAlgo.h.

int DecompAlgo::m_nRowsBranch
protected

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

Definition at line 212 of file DecompAlgo.h.

int DecompAlgo::m_nRowsConvex
protected

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

Definition at line 213 of file DecompAlgo.h.

int DecompAlgo::m_nRowsCuts
protected

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

Definition at line 214 of file DecompAlgo.h.

std::vector<DecompRowType> DecompAlgo::m_masterRowType
protected

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

Definition at line 215 of file DecompAlgo.h.

Referenced by getMasterRowType(), and getNumRowType().

std::vector<DecompColType> DecompAlgo::m_masterColType
protected

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

Definition at line 216 of file DecompAlgo.h.

Referenced by isMasterColArtificial(), isMasterColMasterOnly(), and isMasterColStructural().

std::vector<int> DecompAlgo::m_masterArtCols
protected

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

Definition at line 217 of file DecompAlgo.h.

double* DecompAlgo::m_colLBNode
protected

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

Definition at line 220 of file DecompAlgo.h.

Referenced by getColLBNode(), and ~DecompAlgo().

double* DecompAlgo::m_colUBNode
protected

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

Definition at line 221 of file DecompAlgo.h.

Referenced by getColUBNode(), and ~DecompAlgo().

int DecompAlgo::m_compressColsLastPrice
protected

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

Definition at line 223 of file DecompAlgo.h.

int DecompAlgo::m_compressColsLastNumCols
protected

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

Definition at line 224 of file DecompAlgo.h.

double DecompAlgo::m_relGap
protected

Current node gap (bestUB-bestLB)/bestLB.

Definition at line 229 of file DecompAlgo.h.

Referenced by isGapTight().

DecompAlgoStop DecompAlgo::m_stopCriteria
protected

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

Definition at line 231 of file DecompAlgo.h.

Referenced by getStopCriteria().

int DecompAlgo::m_colIndexUnique
protected

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

Definition at line 232 of file DecompAlgo.h.

double DecompAlgo::m_masterObjLast
protected

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

Definition at line 233 of file DecompAlgo.h.

bool DecompAlgo::m_objNoChange
protected

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

Definition at line 234 of file DecompAlgo.h.

double DecompAlgo::m_stabEpsilon
protected

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

Definition at line 237 of file DecompAlgo.h.

bool DecompAlgo::m_useInitLpDuals
protected

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

Definition at line 238 of file DecompAlgo.h.

std::map<int, int> DecompAlgo::m_artColIndToRowInd
protected

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

Definition at line 239 of file DecompAlgo.h.

double DecompAlgo::m_globalLB
protected

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

Definition at line 241 of file DecompAlgo.h.

Referenced by getGlobalGap(), and setObjBound().

double DecompAlgo::m_globalUB
protected

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

Definition at line 242 of file DecompAlgo.h.

Referenced by getGlobalGap().

std::vector<double> DecompAlgo::m_phaseIObj
protected

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

Definition at line 244 of file DecompAlgo.h.

int DecompAlgo::m_function
protected

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

Definition at line 246 of file DecompAlgo.h.

bool DecompAlgo::m_firstPhase2Call
protected

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

Definition at line 247 of file DecompAlgo.h.

bool DecompAlgo::m_isStrongBranch
protected

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

Definition at line 248 of file DecompAlgo.h.

Referenced by setStrongBranchIter().

const AlpsDecompTreeNode* DecompAlgo::m_curNode
protected

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

Definition at line 250 of file DecompAlgo.h.

Referenced by getCurrentNode().

std:: vector<int> DecompAlgo::m_masterOnlyCols
protected

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

Definition at line 252 of file DecompAlgo.h.

std::map<int, int> DecompAlgo::m_masterOnlyColsMap
protected

Map from original index to master index for master-only vars.

Definition at line 256 of file DecompAlgo.h.

DecompBranchingImplementation DecompAlgo::m_branchingImplementation
protected

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

Definition at line 261 of file DecompAlgo.h.

Referenced by DecompAlgo().

const char* DecompAlgo::m_classTag
staticprivate

Definition at line 46 of file DecompAlgo.h.

static const char * DecompAlgo::versionTag
staticprivate

Definition at line 47 of file DecompAlgo.h.

decompAlgoType DecompAlgo::m_algo
private

Definition at line 48 of file DecompAlgo.h.

DecompMemPool DecompAlgo::m_auxMemPool
protected

Definition at line 51 of file DecompAlgo.h.

int DecompAlgo::m_nodeIndex
protected

Definition at line 54 of file DecompAlgo.h.

int DecompAlgo::m_whichModel
protected

Definition at line 55 of file DecompAlgo.h.

int DecompAlgo::m_whichCoreModel
protected

Definition at line 56 of file DecompAlgo.h.

int DecompAlgo::m_priceCallsRound
protected

Definition at line 57 of file DecompAlgo.h.

int DecompAlgo::m_priceCallsTotal
protected

Definition at line 58 of file DecompAlgo.h.

int DecompAlgo::m_cutCallsRound
protected

Definition at line 59 of file DecompAlgo.h.

int DecompAlgo::m_cutCallsTotal
protected

Definition at line 60 of file DecompAlgo.h.

int DecompAlgo::m_varsThisRound
protected

Definition at line 61 of file DecompAlgo.h.

int DecompAlgo::m_cutsThisRound
protected

Definition at line 62 of file DecompAlgo.h.

int DecompAlgo::m_varsThisCall
protected

Definition at line 63 of file DecompAlgo.h.

int DecompAlgo::m_cutsThisCall
protected

Definition at line 64 of file DecompAlgo.h.

int DecompAlgo::m_isTightenAlgo
protected

Definition at line 66 of file DecompAlgo.h.

ostream* DecompAlgo::m_osLog
protected

Definition at line 68 of file DecompAlgo.h.

map< int, OsiSolverInterface * > DecompAlgo::m_subprobSI
protected

Definition at line 73 of file DecompAlgo.h.

Referenced by ~DecompAlgo().

DecompVarList DecompAlgo::m_initVars
protected

Definition at line 90 of file DecompAlgo.h.

double DecompAlgo::m_tlb
protected

Definition at line 95 of file DecompAlgo.h.

Referenced by getTrueLowerBound().

double DecompAlgo::m_tub
protected

Definition at line 96 of file DecompAlgo.h.

Referenced by getTrueUpperBound(), and setTrueUpperBound().

double DecompAlgo::m_bestUpperBound
protected

Definition at line 97 of file DecompAlgo.h.

Referenced by setBestUpperBound().

vector<DecompSolution*> DecompAlgo::m_xhatIPFeas
protected

Definition at line 103 of file DecompAlgo.h.

int DecompAlgo::m_numOrigCols
protected

Definition at line 106 of file DecompAlgo.h.

vector< vector< double > > DecompAlgo::m_optPoint
protected

Definition at line 108 of file DecompAlgo.h.

double * DecompAlgo::m_piEstimate
protected

Definition at line 111 of file DecompAlgo.h.

vector< bool > DecompAlgo::isStab
protected

Definition at line 112 of file DecompAlgo.h.

DecompConstraintSet* DecompAlgo::m_modelCore

Definition at line 116 of file DecompAlgo.h.

DecompConstraintSet* DecompAlgo::m_modelRelax

Definition at line 117 of file DecompAlgo.h.


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