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

#include <DecompAlgoRC.h>

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

Public Member Functions

bool isDone ()
 
const double * getRowPrice ()
 
void setInitObjUB (const double objUB)
 
void createMasterProblem (DecompVarList &initVars)
 Create the master problem (all algorithms must define this function). More...
 
decompStat solutionUpdate (const decompPhase phase, const int maxInnerIter, const int maxOuterIter)
 
int addCutsFromPool ()
 
int generateVars (const decompStat stat, DecompVarList &newVars, double &mostNegReducedCost)
 
bool isDone ()
 
const double * getRowPrice () const
 
 DecompAlgoRC (DecompApp *app)
 
 ~DecompAlgoRC ()
 
- Public Member Functions inherited from DecompAlgo
bool isGapTight ()
 
double getInfinity ()
 Return the value of infinity. More...
 
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 ()
 
virtual void addCutsToPool (const double *x, DecompCutList &newCuts, int &m_cutsThisCall)
 
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 decompPhase phaseUpdate (const decompPhase phase, const decompStat stat)
 
virtual void setMasterBounds (const double *lbs, const double *ubs)
 
OsiSolverInterfacegetMasterSolverInterface ()
 
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 generateCuts (DecompCutList &newCuts)
 
virtual int generateInitVars (DecompVarList &initVars)
 
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)
 
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 DecompPhase phaseUpdate (const DecompPhase phase, const DecompStat stat)
 
virtual void setMasterBounds (const double *lbs, const double *ubs)
 
OsiSolverInterfacegetMasterSolverInterface ()
 
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)
 
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)
 
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 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 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...
 
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...
 
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...
 
 DecompAlgo (const DecompAlgoType algo, DecompApp *app, UtilParameters &utilParam, bool doSetup=true)
 Default constructors. More...
 
virtual ~DecompAlgo ()
 Destructor. More...
 

Private Member Functions

 DecompAlgoRC (const DecompAlgoRC &)
 
DecompAlgoRCoperator= (const DecompAlgoRC &)
 
Derived from pure virtual functions of DecompAlgo.
void createMasterProblem (DecompVarList &initVars)
 Create the master problem (all algorithms must define this function). More...
 
void recomposeSolution (const double *solution, double *rsolution)
 Compose solution in x-space from current space. More...
 
Derived from virtual functions of DecompAlgo
DecompStatus solutionUpdate (const DecompPhase phase, const int maxInnerIter, const int maxOuterIter)
 Run the initial phase for processing node. More...
 
int addCutsFromPool ()
 Run the initial phase for processing node. More...
 
int generateVars (DecompVarList &newVars, double &mostNegReducedCost)
 Run the initial phase for processing node. More...
 
bool updateObjBound (const double mostNegRC=-DecompBigNum)
 Run the initial phase for processing node. More...
 
DecompPhase phaseInit ()
 Run the initial phase for processing node. More...
 
void phaseDone ()
 Run the done phase for processing node. More...
 

Private Attributes

vector< double > m_u
 
DecompVarm_shatVar
 
Data.
const std::string m_classTag
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
std::vector< double > m_u
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
double * m_rc
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
double m_UB
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
double m_LB
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
int m_cntSameLB
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
int m_iter
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
double m_step
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
bool m_zeroSub
 Store the name of the class (for logging/debugging) - "who am I?". More...
 
DecompVar m_shatVar
 Store the name of the class (for logging/debugging) - "who am I?". More...
 

Static Private Attributes

static const char * m_classTag
 

Constructors and destructor.

 DecompAlgoRC (const DecompAlgoRC &)
 Disable copy constructors. More...
 
DecompAlgoRCoperator= (const DecompAlgoRC &)
 Disable copy constructors. More...
 
 DecompAlgoRC (DecompApp *app, UtilParameters &utilParam)
 Default constructors. More...
 
 ~DecompAlgoRC ()
 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

Todo:
Next: DecompAlgoVC - use Vol? or write from scratch?

Definition at line 24 of file DecompAlgoRC.h.

Constructor & Destructor Documentation

DecompAlgoRC::DecompAlgoRC ( const DecompAlgoRC )
private

Disable copy constructors.

DecompAlgoRC::DecompAlgoRC ( DecompApp app,
UtilParameters utilParam 
)
inline

Default constructors.

Definition at line 127 of file DecompAlgoRC.h.

DecompAlgoRC::~DecompAlgoRC ( )
inline

Destructor.

Definition at line 146 of file DecompAlgoRC.h.

References m_rc, and UTIL_DELARR.

DecompAlgoRC::DecompAlgoRC ( const DecompAlgoRC )
private
DecompAlgoRC::DecompAlgoRC ( DecompApp app)
inline

Definition at line 72 of file DecompAlgoRC.h.

DecompAlgoRC::~DecompAlgoRC ( )
inline

Definition at line 85 of file DecompAlgoRC.h.

References m_rc, and UTIL_DELARR.

Member Function Documentation

void DecompAlgoRC::createMasterProblem ( DecompVarList initVars)
privatevirtual

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

Reimplemented from DecompAlgo.

void DecompAlgoRC::recomposeSolution ( const double *  solution,
double *  rsolution 
)
privatevirtual

Compose solution in x-space from current space.

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

Reimplemented from DecompAlgo.

DecompStatus DecompAlgoRC::solutionUpdate ( const DecompPhase  phase,
const int  maxInnerIter,
const int  maxOuterIter 
)
privatevirtual

Run the initial phase for processing node.

Reimplemented from DecompAlgo.

int DecompAlgoRC::addCutsFromPool ( )
privatevirtual

Run the initial phase for processing node.

Reimplemented from DecompAlgo.

int DecompAlgoRC::generateVars ( DecompVarList newVars,
double &  mostNegReducedCost 
)
privatevirtual

Run the initial phase for processing node.

Reimplemented from DecompAlgo.

bool DecompAlgoRC::updateObjBound ( const double  mostNegRC = -DecompBigNum)
privatevirtual

Run the initial phase for processing node.

Reimplemented from DecompAlgo.

DecompPhase DecompAlgoRC::phaseInit ( )
private

Run the initial phase for processing node.

void DecompAlgoRC::phaseDone ( )
privatevirtual

Run the done phase for processing node.

Reimplemented from DecompAlgo.

DecompAlgoRC& DecompAlgoRC::operator= ( const DecompAlgoRC )
private

Disable copy constructors.

bool DecompAlgoRC::isDone ( )
virtual

Reimplemented from DecompAlgo.

const double* DecompAlgoRC::getRowPrice ( )
inline

Definition at line 160 of file DecompAlgoRC.h.

References m_u.

void DecompAlgoRC::setInitObjUB ( const double  objUB)
inline

Definition at line 165 of file DecompAlgoRC.h.

References m_UB.

DecompAlgoRC& DecompAlgoRC::operator= ( const DecompAlgoRC )
private
void DecompAlgoRC::createMasterProblem ( DecompVarList initVars)
virtual

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

Reimplemented from DecompAlgo.

decompStat DecompAlgoRC::solutionUpdate ( const decompPhase  phase,
const int  maxInnerIter,
const int  maxOuterIter 
)
virtual

Reimplemented from DecompAlgo.

int DecompAlgoRC::addCutsFromPool ( )
virtual

Reimplemented from DecompAlgo.

int DecompAlgoRC::generateVars ( const decompStat  stat,
DecompVarList newVars,
double &  mostNegReducedCost 
)
virtual

Reimplemented from DecompAlgo.

bool DecompAlgoRC::isDone ( )
virtual

Reimplemented from DecompAlgo.

const double* DecompAlgoRC::getRowPrice ( ) const
inlinevirtual

Reimplemented from DecompAlgo.

Definition at line 67 of file DecompAlgoRC.h.

References m_u.

Member Data Documentation

const std::string DecompAlgoRC::m_classTag
private

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

Definition at line 36 of file DecompAlgoRC.h.

std::vector<double> DecompAlgoRC::m_u
private

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

Definition at line 39 of file DecompAlgoRC.h.

Referenced by getRowPrice().

double * DecompAlgoRC::m_rc
private

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

Definition at line 40 of file DecompAlgoRC.h.

Referenced by ~DecompAlgoRC().

double DecompAlgoRC::m_UB
private

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

Definition at line 42 of file DecompAlgoRC.h.

Referenced by setInitObjUB().

double DecompAlgoRC::m_LB
private

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

Definition at line 43 of file DecompAlgoRC.h.

int DecompAlgoRC::m_cntSameLB
private

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

Definition at line 45 of file DecompAlgoRC.h.

int DecompAlgoRC::m_iter
private

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

Definition at line 46 of file DecompAlgoRC.h.

double DecompAlgoRC::m_step
private

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

Definition at line 47 of file DecompAlgoRC.h.

bool DecompAlgoRC::m_zeroSub
private

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

Definition at line 48 of file DecompAlgoRC.h.

DecompVar DecompAlgoRC::m_shatVar
private

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

Definition at line 50 of file DecompAlgoRC.h.

const char* DecompAlgoRC::m_classTag
staticprivate

Definition at line 35 of file DecompAlgoRC.h.

vector<double> DecompAlgoRC::m_u
private

Definition at line 38 of file DecompAlgoRC.h.

DecompVar* DecompAlgoRC::m_shatVar
private

Definition at line 48 of file DecompAlgoRC.h.


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