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.
1.6.1