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). | |
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. | |
DecompAlgoPC (DecompApp *app) | |
~DecompAlgoPC () | |
Constructors and destructor. | |
std::vector< double > & | getDualBest () |
Default constructors. | |
std::vector< double > & | getDualRMP () |
Default constructors. | |
DecompAlgoPC (DecompApp *app, UtilParameters *utilParam, bool doSetup=true) | |
Default constructors. | |
DecompAlgoPC (DecompApp *app, UtilParameters *utilParam, std::string ¶mSection, bool doSetup=true) | |
Default constructors. | |
~DecompAlgoPC () | |
Destructor. | |
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). | |
virtual int | generateVarsFea (DecompVarList &newVars, double &mostNegReducedCost) |
Create the master problem (all algorithms must define this function). | |
virtual void | phaseInit (DecompPhase &phase) |
Create the master problem (all algorithms must define this function). | |
virtual const double * | getMasterDualSolution () const |
Get current dual solution for master problem. | |
virtual void | adjustMasterDualSolution () |
Adjust the current dual solution for master problem. | |
virtual void | setObjBound (const double thisBound, const double thisBoundUB) |
Create the master problem (all algorithms must define this function). | |
virtual void | setObjBoundIP (const double thisBound) |
Set the current integer bound and update best/history. | |
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. | |
int | addCutsFromPool () |
void | solutionUpdateAsIP () |
The main DECOMP process loop for a node. | |
int | adjustColumnsEffCnt () |
The main DECOMP process loop for a node. | |
int | compressColumns () |
The main DECOMP process loop for a node. | |
Private Attributes | |
Data. | |
std::string | m_classTag |
Store the name of the class (for logging/debugging) - "who am I?". | |
std::vector< double > | m_dual |
Dual vector. | |
std::vector< double > | m_dualRM |
Dual vector from restricted master. | |
std::vector< double > | m_dualST |
Dual vector stabilized. | |
Static Private Attributes | |
static const char * | classTag |
Class for DECOMP algorithm Price and Cut.
Definition at line 32 of file DecompAlgoPC.h.
DecompAlgoPC::DecompAlgoPC | ( | DecompApp * | app, | |
UtilParameters * | utilParam, | |||
bool | doSetup = true | |||
) | [inline] |
Default constructors.
Definition at line 198 of file DecompAlgoPC.h.
References DecompParam::CutCglGomory, DecompAlgoStr, DecompAlgo::initSetup(), DecompAlgo::m_param, and PRICE_AND_CUT.
DecompAlgoPC::DecompAlgoPC | ( | DecompApp * | app, | |
UtilParameters * | utilParam, | |||
std::string & | paramSection, | |||
bool | doSetup = true | |||
) | [inline] |
Default constructors.
Definition at line 218 of file DecompAlgoPC.h.
References DecompParam::CutCglGomory, DecompAlgo::initSetup(), and DecompAlgo::m_param.
DecompAlgoPC::~DecompAlgoPC | ( | ) | [inline] |
Destructor.
Definition at line 243 of file DecompAlgoPC.h.
DecompAlgoPC::DecompAlgoPC | ( | const DecompAlgoPC & | ) | [private] |
DecompAlgoPC::DecompAlgoPC | ( | DecompApp * | app | ) | [inline] |
Definition at line 63 of file DecompAlgoPC.h.
DecompAlgoPC::~DecompAlgoPC | ( | ) | [inline] |
Definition at line 65 of file DecompAlgoPC.h.
virtual void DecompAlgoPC::createMasterProblem | ( | DecompVarList & | initVars | ) | [inline, private, virtual] |
Create the master problem (all algorithms must define this function).
Reimplemented from DecompAlgo.
Reimplemented in DecompAlgoD, and DecompAlgoD.
Definition at line 83 of file DecompAlgoPC.h.
virtual int DecompAlgoPC::generateVarsFea | ( | DecompVarList & | newVars, | |
double & | mostNegReducedCost | |||
) | [inline, private, virtual] |
Create the master problem (all algorithms must define this function).
Reimplemented from DecompAlgo.
Definition at line 86 of file DecompAlgoPC.h.
virtual void DecompAlgoPC::phaseInit | ( | DecompPhase & | phase | ) | [private, virtual] |
Create the master problem (all algorithms must define this function).
Reimplemented from DecompAlgo.
virtual const double* DecompAlgoPC::getMasterDualSolution | ( | ) | const [inline, private, virtual] |
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 102 of file DecompAlgoPC.h.
References DecompParam::DualStab, DecompAlgo::m_dualSolution, m_dualST, and DecompAlgo::m_param.
virtual void DecompAlgoPC::adjustMasterDualSolution | ( | ) | [private, virtual] |
Adjust the current dual solution for master problem.
When using dual stabilization, this adjusts based on Wengtes smoothing.
Reimplemented from DecompAlgo.
virtual void DecompAlgoPC::setObjBound | ( | const double | thisBound, | |
const double | thisBoundUB | |||
) | [inline, private, virtual] |
Create the master problem (all algorithms must define this function).
Reimplemented from DecompAlgo.
Definition at line 125 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, UtilPrintFuncBegin(), and UtilPrintFuncEnd().
virtual void DecompAlgoPC::setObjBoundIP | ( | const double | thisBound | ) | [inline, private, virtual] |
Set the current integer bound and update best/history.
Reimplemented from DecompAlgo.
Reimplemented in DecompAlgoD.
Definition at line 146 of file DecompAlgoPC.h.
void DecompAlgoPC::addCutsToPool | ( | const double * | x, | |
DecompCutList & | newCuts, | |||
int & | n_newCuts | |||
) | [private, virtual] |
Reimplemented from DecompAlgo.
void DecompAlgoPC::phaseDone | ( | ) | [private, virtual] |
Run the done phase for processing node.
Reimplemented from DecompAlgo.
Reimplemented in DecompAlgoD.
int DecompAlgoPC::addCutsFromPool | ( | ) | [private, virtual] |
Reimplemented from DecompAlgo.
void DecompAlgoPC::solutionUpdateAsIP | ( | ) | [private, virtual] |
The main DECOMP process loop for a node.
Reimplemented from DecompAlgo.
int DecompAlgoPC::adjustColumnsEffCnt | ( | ) | [private, virtual] |
The main DECOMP process loop for a node.
Reimplemented from DecompAlgo.
int DecompAlgoPC::compressColumns | ( | ) | [private, virtual] |
The main DECOMP process loop for a node.
Reimplemented from DecompAlgo.
std::vector<double>& DecompAlgoPC::getDualBest | ( | ) | [inline] |
std::vector<double>& DecompAlgoPC::getDualRMP | ( | ) | [inline] |
DecompAlgoPC& DecompAlgoPC::operator= | ( | const DecompAlgoPC & | ) | [private] |
Reimplemented from DecompAlgo.
Reimplemented in DecompAlgoD, and DecompAlgoD.
virtual void DecompAlgoPC::setMasterBounds | ( | const double * | lbs, | |
const double * | ubs | |||
) | [virtual] |
Reimplemented from DecompAlgo.
virtual void DecompAlgoPC::createMasterProblem | ( | DecompVarList & | initVars | ) | [virtual] |
Create the master problem (all algorithms must define this function).
Reimplemented from DecompAlgo.
Reimplemented in DecompAlgoD, and DecompAlgoD.
void DecompAlgoPC::createMasterStabilization | ( | ) |
void DecompAlgoPC::addCutsToPool | ( | const double * | x, | |
DecompCutList & | newCuts, | |||
int & | n_newCuts | |||
) | [virtual] |
Reimplemented from DecompAlgo.
int DecompAlgoPC::addCutsFromPool | ( | ) | [virtual] |
Reimplemented from DecompAlgo.
void DecompAlgoPC::recomposeSolution | ( | const double * | solution, | |
double * | rsolution | |||
) | [virtual] |
Compose solution in x-space from current space.
Reimplemented from DecompAlgo.
Reimplemented in DecompAlgoD.
std::string DecompAlgoPC::m_classTag [private] |
Store the name of the class (for logging/debugging) - "who am I?".
Reimplemented from DecompAlgo.
Reimplemented in DecompAlgoD.
Definition at line 45 of file DecompAlgoPC.h.
Referenced by setObjBound().
std::vector<double> DecompAlgoPC::m_dual [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 54 of file DecompAlgoPC.h.
Referenced by getDualBest(), and setObjBound().
std::vector<double> DecompAlgoPC::m_dualRM [private] |
Dual vector from restricted master.
A copy of the dual vector from the restricted master.
Definition at line 61 of file DecompAlgoPC.h.
Referenced by getDualRMP().
std::vector<double> DecompAlgoPC::m_dualST [private] |
Dual vector stabilized.
The stabilized dual from dual stabilization method.
Definition at line 68 of file DecompAlgoPC.h.
Referenced by getMasterDualSolution(), and setObjBound().
const char* DecompAlgoPC::classTag [static, private] |
Reimplemented in DecompAlgoD.
Definition at line 28 of file DecompAlgoPC.h.