17 #ifndef DecompAlgoPC_h_
18 #define DecompAlgoPC_h_
87 double& mostNegReducedCost) {
126 const double thisBoundUB) {
200 bool doSetup =
true) :
220 std::string& paramSection,
221 bool doSetup =
true) :
std::list< DecompCut * > DecompCutList
virtual int generateVarsFea(DecompVarList &newVars, double &mostNegReducedCost)
Create the master problem (all algorithms must define this function).
virtual void createMasterProblem(DecompVarList &initVars)
Create the master problem (all algorithms must define this function).
virtual void adjustMasterDualSolution()
Adjust the current dual solution for master problem.
virtual int generateVarsFea(DecompVarList &newVars, double &mostNegReducedCost)
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
DIP is distributed under the Eclipse Public License as part of the //.
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.
const std::string DecompAlgoStr[5]
void initSetup(UtilParameters *utilParam, std::string §ionParam)
Initial setup of algorithm structures and solver interfaces.
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).
DecompAlgoPC(DecompApp *app, UtilParameters *utilParam, bool doSetup=true)
Default constructors.
DecompAlgoPC(DecompApp *app, UtilParameters *utilParam, std::string ¶mSection, bool doSetup=true)
Default constructors.
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.
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.
Base class for DECOMP algorithms.
std::string m_classTag
Store the name of the class (for logging/debugging) - "who am I?".
void solutionUpdateAsIP()
The main DECOMP process loop for a node.
std::ostream * m_osLog
Stream for log file (default to stdout).
std::list< DecompVar * > DecompVarList
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.