16 #ifndef DecompAlgoPC_h_
17 #define DecompAlgoPC_h_
86 double& mostNegReducedCost) {
123 const double thisBoundUB) {
std::list< DecompCut * > DecompCutList
virtual void createMasterProblem(DecompVarList &initVars)
Create the master problem (all algorithms must define this function).
void solveMasterAsMIP()
The main DECOMP process loop for a node.
void solveMasterAsMIPCbc(DecompSolverResult *result)
virtual void adjustMasterDualSolution()
Adjust the current dual solution for master problem.
std::vector< double > & getDualBest()
Default constructors.
int adjustColumnsEffCnt()
The main DECOMP process loop for a node.
virtual const double * getMasterDualSolution() const
Get current dual solution for master problem.
DecompParam m_param
Parameters.
virtual void phaseInit(DecompPhase &phase)
Create the master problem (all algorithms must define this function).
std::vector< double > & getDualRMP()
Default constructors.
void addCutsToPool(const double *x, DecompCutList &newCuts, int &n_newCuts)
std::vector< double > m_dual
Dual vector.
~DecompAlgoPC()
Destructor.
int LogDebugLevel
0: print nothing 1: print the node objective history
std::vector< double > m_dualST
Dual vector stabilized.
virtual int generateVars(DecompVarList &newVars, double &mostNegReducedCost)
DecompAlgoPC(DecompApp *app, UtilParameters &utilParam, bool doSetup=true, const DecompAlgoType algo=PRICE_AND_CUT)
Default constructors.
bool DualStab
0: print nothing 1: print the node objective history
virtual void setObjBound(const double thisBound, const double thisBoundUB)
Create the master problem (all algorithms must define this function).
virtual int generateVars(DecompVarList &newVars, double &mostNegReducedCost)
Create the master problem (all algorithms must define this function).
void solveMasterAsMIPSym(DecompSolverResult *result)
const double DecompEpsilon
std::pair< double, double > objBest
The global lower (.first) and upper (.second) bound.
virtual void setObjBoundIP(const double thisBound)
Set the current integer bound and update best/history.
int compressColumns()
The main DECOMP process loop for a node.
void solveMasterAsMIPCpx(DecompSolverResult *result)
std::vector< double > m_dualSolution
Store the name of the class (for logging/debugging) - "who am I?".
Class for DECOMP algorithm Price and Cut.
virtual void createMasterProblem(DecompVarList &initVars)
Create the master problem (all algorithms must define this function).
DecompNodeStats m_nodeStats
Store the name of the class (for logging/debugging) - "who am I?".
int CutCglGomory
0: print nothing 1: print the node objective history
void UtilPrintFuncBegin(std::ostream *os, const std::string &classTag, const std::string &funcName, const int logLevel, const int logLimit)
void phaseDone()
Run the done phase for processing node.
void UtilPrintFuncEnd(std::ostream *os, const std::string &classTag, const std::string &funcName, const int logLevel, const int logLimit)
virtual void setObjBound(const double thisBound, const double thisBoundUB)
Set the current continuous bounds and update best/history.
Storage of solver result.
Base class for DECOMP algorithms.
std::string m_classTag
Store the name of the class (for logging/debugging) - "who am I?".
std::ostream * m_osLog
Stream for log file (default to stdout).
std::list< DecompVar * > DecompVarList
void solveMasterAsMIPGrb(DecompSolverResult *result)
virtual void setObjBoundIP(const double thisBound)
Set the current integer bound and update best/history.
The main application class.
std::vector< double > m_dualRM
Dual vector from restricted master.