|
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 () |
|
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) |
|
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 decompPhase | phaseUpdate (const decompPhase phase, const decompStat stat) |
|
virtual void | setMasterBounds (const double *lbs, const double *ubs) |
|
OsiSolverInterface * | getMasterSolverInterface () |
|
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 | 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 () |
|
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 DecompPhase | phaseUpdate (const DecompPhase phase, const DecompStat stat) |
|
virtual void | setMasterBounds (const double *lbs, const double *ubs) |
|
OsiSolverInterface * | getMasterSolverInterface () |
|
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) |
|
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 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 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...
|
|
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...
|
|
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...
|
|