|
Dip
0.92.4
|
Class for DECOMP algorithm Price and Cut. More...
#include <DecompAlgoPC.h>


Public Member Functions | |
| virtual void | setMasterBounds (const double *lbs, const double *ubs) |
| virtual void | createMasterProblem (DecompVarList &initVars) |
| Create the master problem (all algorithms must define this function). More... | |
| void | createMasterStabilization () |
| void | addCutsToPool (const double *x, DecompCutList &newCuts, int &n_newCuts) |
| int | addCutsFromPool () |
| void | recomposeSolution (const double *solution, double *rsolution) |
| Compose solution in x-space from current space. More... | |
| DecompAlgoPC (DecompApp *app) | |
| ~DecompAlgoPC () | |
Constructors and destructor. | |
| std::vector< double > & | getDualBest () |
| Default constructors. More... | |
| std::vector< double > & | getDualRMP () |
| Default constructors. More... | |
| DecompAlgoPC (DecompApp *app, UtilParameters &utilParam, bool doSetup=true, const DecompAlgoType algo=PRICE_AND_CUT) | |
| Default constructors. More... | |
| ~DecompAlgoPC () | |
| Destructor. More... | |
Public Member Functions inherited from DecompAlgo | |
| bool | isGapTight () |
| double | getInfinity () |
| Return the value of infinity. More... | |
| virtual bool | isDone () |
| std::vector< double * > | getDualRays (int maxNumRays) |
| std::vector< double * > | getDualRaysCpx (int maxNumRays) |
| std::vector< double * > | getDualRaysOsi (int maxNumRays) |
| virtual int | generateCuts (double *xhat, DecompCutList &newCuts) |
| virtual void | addVarsToPool (DecompVarList &newVars) |
| virtual void | addVarsFromPool () |
| bool | isIPFeasible (const double *x, const bool isXSparse=false, const double feasVarTol=1.0e-6, const double feasConTol=1.0e-5, const double intTol=1.0e-5) |
| bool | isLPFeasible (const double *x, const bool isXSparse=false, const double feasVarTol=1.0e-6, const double feasConTol=1.0e-5) |
| DecompStatus | solveRelaxed (const double *redCostX, const double *origCost, const double alpha, const int n_origCols, const bool isNested, DecompSubModel &subModel, DecompSolverResult *solveResult, std::list< DecompVar * > &vars, double timeLimit) |
| void | appendVars (DecompVar *var) |
| void | appendVars (DecompVarList &varList) |
| virtual void | setSubProbBounds (const double *lbs, const double *ubs) |
| virtual bool | chooseBranchSet (std::vector< std::pair< int, double > > &downBranchLb, std::vector< std::pair< int, double > > &downBranchUb, std::vector< std::pair< int, double > > &upBranchLb, std::vector< std::pair< int, double > > &upBranchUb) |
| OsiSolverInterface * | initSolverInterface () |
| void | startupLog () |
| void | initSetup (int whichModel=1) |
| void | tighten (int whichModel) |
| void | solve (int whichModel=1) |
| double | getTrueLowerBound () |
| double | getTrueUpperBound () |
| void | setTrueLowerBound (const double mostNegReducedCost) |
| void | setTrueUpperBound (const double ub) |
| double | calcConstant (const int m, const double *u) |
| bool | isDualRayInfProof (const double *dualRay, const CoinPackedMatrix *rowMatrix, const double *colLB, const double *colUB, const double *rowRhs, ostream *os=0) |
| void | printBasisInfo (OsiSolverInterface *si, ostream *os) |
| void | printCurrentProblem (const OsiSolverInterface *si, const string baseName, const int nodeIndex, const int cutPass, const int pricePass, const bool printMps=true, const bool printLp=true) |
| void | printCurrentProblem (const OsiSolverInterface *si, const string fileName, const bool printMps=true, const bool printLp=true) |
| void | printVars (ostream *os=&cout) |
| void | printCuts (ostream *os=&cout) |
| void | solveBruteForce () |
| void | createFullMps (const string filename) |
| vector< double * > | getDualRays (int maxNumRays) |
| void | setApp (DecompApp *app) |
| void | setBestUpperBound (const double bestUpperBound) |
| decompStat | solveRelaxed (const int whichModel, const double *redCostX, const double *origCost, const double alpha, const int n_origCols, const bool checkRC, const bool checkDup, OsiSolverInterface *m_subprobSI, list< DecompVar * > &vars) |
| virtual decompStat | solutionUpdate (const decompPhase phase, const int maxInnerIter, const int maxOuterIter) |
| virtual decompPhase | phaseUpdate (const decompPhase phase, const decompStat stat) |
| OsiSolverInterface * | getMasterSolverInterface () |
| virtual const double * | getRowPrice () const |
| const double * | getX () |
| DecompApp * | getApp () |
| const DecompSolution * | getXhatIPBest () |
| virtual const double * | getRightHandSide () const |
| virtual const char * | getRowSense () const |
| int | heuristics (const double *xhat, vector< DecompSolution * > &xhatIPFeas) |
| virtual int | generateVars (const decompStat stat, DecompVarList &newVars, double &mostNegReducedCost) |
| virtual int | generateCuts (DecompCutList &newCuts) |
| virtual int | generateInitVars (DecompVarList &initVars) |
| virtual bool | isDone () |
| void | addVarsToPool (DecompVarList &newVars) |
| void | addVarsFromPool () |
| bool | isIPFeasible (const double *x, const double feasTol=1.0e-4, const double intTol=1.0e-4) |
| bool | isLPFeasible (const double *x, const double feasTol=1.0e-4) |
| int | chooseBranchVar (int &branchedOnIndex, double &branchedOnValue) |
| virtual int | branch (int branchedOnIndex, double branchedOnValue) |
| decompStat | processNode (const int nodeIndex=0) |
| void | appendVars (DecompVar *var) |
| void | appendVars (DecompVarList &varList) |
| DecompAlgo (const decompAlgoType algo, DecompApp *app) | |
| virtual | ~DecompAlgo () |
| OsiSolverInterface * | initSolverInterface () |
| void | startupLog () |
| void | initSetup (int whichModel=1) |
| void | tighten (int whichModel) |
| double | getTrueLowerBound () |
| double | getTrueUpperBound () |
| void | setTrueLowerBound (const double mostNegReducedCost) |
| void | setTrueUpperBound (const double ub) |
| double | calcConstant (const int m, const double *u) |
| bool | isDualRayInfProof (const double *dualRay, const CoinPackedMatrix *rowMatrix, const double *colLB, const double *colUB, const double *rowRhs, ostream *os=0) |
| void | printBasisInfo (OsiSolverInterface *si, ostream *os) |
| void | printCurrentProblem (const OsiSolverInterface *si, const string baseName, const int nodeIndex, const int cutPass, const int pricePass, const bool printMps=true, const bool printLp=true) |
| void | printCurrentProblem (const OsiSolverInterface *si, const string fileName, const bool printMps=true, const bool printLp=true) |
| void | printVars (ostream *os=&cout) |
| void | printCuts (ostream *os=&cout) |
| void | solveBruteForce () |
| void | createFullMps (const string filename) |
| vector< double * > | getDualRays (int maxNumRays) |
| void | setApp (DecompApp *app) |
| void | setBestUpperBound (const double bestUpperBound) |
| DecompStat | solveRelaxed (const int whichModel, const double *redCostX, const double *origCost, const double alpha, const int n_origCols, const bool checkRC, const bool checkDup, OsiSolverInterface *m_subprobSI, list< DecompVar * > &vars) |
| virtual DecompStat | solutionUpdate (const DecompPhase phase, const int maxInnerIter, const int maxOuterIter) |
| virtual DecompPhase | phaseUpdate (const DecompPhase phase, const DecompStat stat) |
| OsiSolverInterface * | getMasterSolverInterface () |
| virtual const double * | getRowPrice () const |
| const double * | getX () |
| DecompApp * | getApp () |
| const DecompSolution * | getXhatIPBest () |
| virtual const double * | getRightHandSide () const |
| virtual const char * | getRowSense () const |
| int | heuristics (const double *xhat, vector< DecompSolution * > &xhatIPFeas) |
| virtual int | generateVars (const DecompStat stat, DecompVarList &newVars, double &mostNegReducedCost) |
| virtual int | generateCuts (DecompCutList &newCuts) |
| virtual int | generateInitVars (DecompVarList &initVars) |
| virtual bool | isDone () |
| void | addVarsToPool (DecompVarList &newVars) |
| void | addVarsFromPool () |
| bool | isIPFeasible (const double *x, const double feasTol=1.0e-4, const double intTol=1.0e-4) |
| bool | isLPFeasible (const double *x, const double feasTol=1.0e-4) |
| int | chooseBranchVar (int &branchedOnIndex, double &branchedOnValue) |
| virtual int | branch (int branchedOnIndex, double branchedOnValue) |
| DecompStat | processNode (const int nodeIndex=0, const double globalLB=-DecompInf, const double globalUB=DecompInf) |
| void | appendVars (DecompVar *var) |
| void | appendVars (DecompVarList &varList) |
| DecompAlgo (const DecompAlgoType algo, DecompApp *app) | |
| virtual | ~DecompAlgo () |
| void | loadSIFromModel (OsiSolverInterface *si, bool doInt=false) |
| Create the master problem (all algorithms must define this function). More... | |
| virtual DecompStatus | processNode (const AlpsDecompTreeNode *node, const double globalLB, const double globalUB) |
| The main DECOMP process loop for a node. More... | |
| const AlpsDecompTreeNode * | getCurrentNode () 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 bool | updateObjBound (const double mostNegRC=-DecompBigNum) |
| Calculate the current LB and update best/history. More... | |
| void | initSetup () |
| Initial setup of algorithm structures and solver interfaces. More... | |
| void | getModelsFromApp () |
| Initial setup of algorithm structures and solver interfaces. More... | |
| void | createOsiSubProblem (DecompSubModel &subModel) |
| Initial setup of algorithm structures and solver interfaces. More... | |
| OsiSolverInterface * | getOsiLpSolverInterface () |
| Initial setup of algorithm structures and solver interfaces. More... | |
| OsiSolverInterface * | getOsiIpSolverInterface () |
| 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 DecompSolverResult * | solveDirect (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... | |
| DecompStats & | getStats () |
| 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 DecompSubModel & | getModelCore () 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 DecompParam & | getParam () const |
| Get a ptr to the current solution (in x-space). More... | |
| DecompParam & | getMutableParam () |
| Get a ptr to the current solution (in x-space). More... | |
| OsiSolverInterface * | getMasterOSI () |
| Get a ptr to the current solution (in x-space). More... | |
| DecompSubModel & | getModelRelax (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 DecompSolution * | getXhatIPBest () 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... | |
| DecompStats & | getDecompStats () |
| Get a ptr to the current solution (in x-space). More... | |
| const DecompParam & | getDecompParam () const |
| Get a ptr to the current solution (in x-space). More... | |
| const DecompApp * | getDecompApp () const |
| Get a ptr to the current solution (in x-space). More... | |
| DecompApp * | getDecompAppMutable () |
| Get a ptr to the current solution (in x-space). More... | |
| const int | getNodeIndex () const |
| Get a ptr to the current solution (in x-space). More... | |
| const int | getCutCallsTotal () const |
| Get a ptr to the current solution (in x-space). More... | |
| const int | getPriceCallsTotal () const |
| Get a ptr to the current solution (in x-space). More... | |
| const double * | getMasterPrimalSolution () const |
| Get current primal solution for master problem. More... | |
| const double * | getMasterColReducedCost () const |
| Get a ptr to the current solution (in x-space). More... | |
| double | getMasterObjValue () const |
| Get a ptr to the current solution (in x-space). More... | |
| const int | getStopCriteria () const |
| Get a ptr to the current solution (in x-space). More... | |
| const double | getGlobalGap () const |
| Get the current global (integrality) gap. More... | |
| const double | getNodeIPGap () const |
| Get the current node (integrality) gap. More... | |
| const double | getNodeLPGap () const |
| Get the current node (continuous) gap. More... | |
| const double | getObjBestBoundLB () const |
| Get the current best LB. More... | |
| const void | setStrongBranchIter (bool isStrongBranch=true) |
| Set the object to be in strong branching mode. More... | |
| const double | getObjBestBoundUB () const |
| Get the current best UB. More... | |
| const double | getMasterRowType (int row) const |
| Get a specific row type. More... | |
| bool | isTailoffLB (const int changeLen=10, const double changePerLimit=0.1) |
| Get a ptr to the current solution (in x-space). More... | |
| int | getNumRowType (DecompRowType rowType) |
| Get a ptr to the current solution (in x-space). More... | |
| void | checkBlocksColumns () |
| Get a ptr to the current solution (in x-space). More... | |
| DecompAlgo (const DecompAlgoType algo, DecompApp *app, UtilParameters &utilParam, bool doSetup=true) | |
| Default constructors. More... | |
| virtual | ~DecompAlgo () |
| Destructor. More... | |
Private Member Functions | |
| DecompAlgoPC (const DecompAlgoPC &) | |
| DecompAlgoPC & | operator= (const DecompAlgoPC &) |
Derived from pure virtual functions of DecompAlgo. | |
| virtual void | createMasterProblem (DecompVarList &initVars) |
| Create the master problem (all algorithms must define this function). More... | |
| virtual int | generateVars (DecompVarList &newVars, double &mostNegReducedCost) |
| Create the master problem (all algorithms must define this function). More... | |
| virtual void | phaseInit (DecompPhase &phase) |
| Create the master problem (all algorithms must define this function). 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... | |
| virtual void | setObjBound (const double thisBound, const double thisBoundUB) |
| Create the master problem (all algorithms must define this function). More... | |
| virtual void | setObjBoundIP (const double thisBound) |
| Set the current integer bound and update best/history. More... | |
Derived from virtual functions of DecompAlgo | |
| void | addCutsToPool (const double *x, DecompCutList &newCuts, int &n_newCuts) |
| void | phaseDone () |
| Run the done phase for processing node. More... | |
| int | addCutsFromPool () |
| void | solveMasterAsMIP () |
| The main DECOMP process loop for a node. More... | |
| void | solveMasterAsMIPSym (DecompSolverResult *result) |
| void | solveMasterAsMIPCbc (DecompSolverResult *result) |
| void | solveMasterAsMIPCpx (DecompSolverResult *result) |
| void | solveMasterAsMIPGrb (DecompSolverResult *result) |
| int | adjustColumnsEffCnt () |
| The main DECOMP process loop for a node. More... | |
| int | compressColumns () |
| The main DECOMP process loop for a node. More... | |
Private Attributes | |
Data. | |
| std::string | m_classTag |
| Store the name of the class (for logging/debugging) - "who am I?". More... | |
| std::vector< double > | m_dual |
| Dual vector. More... | |
| std::vector< double > | m_dualRM |
| Dual vector from restricted master. More... | |
| std::vector< double > | m_dualST |
| Dual vector stabilized. More... | |
Static Private Attributes | |
| static const char * | classTag |
Additional Inherited Members | |
Public Attributes inherited from DecompAlgo | |
| DecompConstraintSet * | m_modelCore |
| DecompConstraintSet * | m_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... | |
| UtilParameters * | m_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... | |
| DecompApp * | m_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... | |
| DecompAlgoCGL * | m_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... | |
| OsiSolverInterface * | m_masterSI |
| Solver interface(s) for subproblems (P'). More... | |
| OsiClpSolverInterface * | m_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... | |
| OsiSolverInterface * | m_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, DecompSubModel > | m_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... | |
| DecompSolution * | m_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< DecompRowType > | m_masterRowType |
| Store the name of the class (for logging/debugging) - "who am I?". More... | |
| std::vector< DecompColType > | m_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 AlpsDecompTreeNode * | m_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... | |
Class for DECOMP algorithm Price and Cut.
Definition at line 31 of file DecompAlgoPC.h.
|
inline |
Default constructors.
Definition at line 197 of file DecompAlgoPC.h.
References DecompParam::CutCglGomory, and DecompAlgo::m_param.
|
inline |
Destructor.
Definition at line 213 of file DecompAlgoPC.h.
|
private |
|
inline |
Definition at line 63 of file DecompAlgoPC.h.
|
inline |
Definition at line 65 of file DecompAlgoPC.h.
|
inlineprivatevirtual |
Create the master problem (all algorithms must define this function).
Reimplemented from DecompAlgo.
Reimplemented in DecompAlgoD, and DecompAlgoD.
Definition at line 82 of file DecompAlgoPC.h.
References DecompAlgo::createMasterProblem().
|
inlineprivatevirtual |
Create the master problem (all algorithms must define this function).
Reimplemented from DecompAlgo.
Definition at line 85 of file DecompAlgoPC.h.
References DecompAlgo::generateVars().
|
privatevirtual |
Create the master problem (all algorithms must define this function).
Reimplemented from DecompAlgo.
|
inlineprivatevirtual |
Get current dual solution for master problem.
When using dual stabilization, this comes from the stabilized dual vector (m_dualST). Otherwise, it comes from m_dualSolution (which comes directly from the LP solver).
Reimplemented from DecompAlgo.
Definition at line 99 of file DecompAlgoPC.h.
References DecompParam::DualStab, DecompAlgo::m_dualSolution, m_dualST, and DecompAlgo::m_param.
|
privatevirtual |
Adjust the current dual solution for master problem.
When using dual stabilization, this adjusts based on Wengtes smoothing.
Reimplemented from DecompAlgo.
|
inlineprivatevirtual |
Create the master problem (all algorithms must define this function).
Reimplemented from DecompAlgo.
Definition at line 122 of file DecompAlgoPC.h.
References DecompEpsilon, DecompParam::DualStab, DecompParam::LogDebugLevel, m_classTag, m_dual, m_dualST, DecompAlgo::m_nodeStats, DecompAlgo::m_osLog, DecompAlgo::m_param, DecompNodeStats::objBest, DecompAlgo::setObjBound(), UtilPrintFuncBegin(), and UtilPrintFuncEnd().
|
inlineprivatevirtual |
Set the current integer bound and update best/history.
Reimplemented from DecompAlgo.
Reimplemented in DecompAlgoD.
Definition at line 143 of file DecompAlgoPC.h.
References DecompAlgo::setObjBoundIP().
|
privatevirtual |
Reimplemented from DecompAlgo.
|
privatevirtual |
Run the done phase for processing node.
Reimplemented from DecompAlgo.
|
privatevirtual |
Reimplemented from DecompAlgo.
|
privatevirtual |
The main DECOMP process loop for a node.
Reimplemented from DecompAlgo.
|
private |
|
private |
|
private |
|
private |
|
privatevirtual |
The main DECOMP process loop for a node.
Reimplemented from DecompAlgo.
|
privatevirtual |
The main DECOMP process loop for a node.
Reimplemented from DecompAlgo.
|
inline |
|
inline |
|
private |
|
virtual |
Reimplemented from DecompAlgo.
|
virtual |
Create the master problem (all algorithms must define this function).
Reimplemented from DecompAlgo.
Reimplemented in DecompAlgoD, and DecompAlgoD.
| void DecompAlgoPC::createMasterStabilization | ( | ) |
|
virtual |
Reimplemented from DecompAlgo.
|
virtual |
Reimplemented from DecompAlgo.
|
virtual |
Compose solution in x-space from current space.
Reimplemented from DecompAlgo.
|
private |
Store the name of the class (for logging/debugging) - "who am I?".
Definition at line 44 of file DecompAlgoPC.h.
Referenced by setObjBound().
|
private |
Dual vector.
The stabilized dual (copied from m_dualST) when the bound has improved. This dual vector is the one used in reduced-cost calculations when using a stabilized dual method (m_param.DualStab > 0).
Definition at line 53 of file DecompAlgoPC.h.
Referenced by getDualBest(), and setObjBound().
|
private |
Dual vector from restricted master.
A copy of the dual vector from the restricted master.
Definition at line 60 of file DecompAlgoPC.h.
Referenced by getDualRMP().
|
private |
Dual vector stabilized.
The stabilized dual from dual stabilization method.
Definition at line 67 of file DecompAlgoPC.h.
Referenced by getMasterDualSolution(), and setObjBound().
|
staticprivate |
Definition at line 28 of file DecompAlgoPC.h.
1.8.5