DecompAlgoPC Class Reference

Class for DECOMP algorithm Price and Cut. More...

#include <DecompAlgoPC.h>

Inheritance diagram for DecompAlgoPC:
Inheritance graph
[legend]
Collaboration diagram for DecompAlgoPC:
Collaboration graph
[legend]

List of all members.

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 &paramSection, bool doSetup=true)
 Default constructors.
 ~DecompAlgoPC ()
 Destructor.

Private Member Functions

 DecompAlgoPC (const DecompAlgoPC &)
DecompAlgoPCoperator= (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

Detailed Description

Class for DECOMP algorithm Price and Cut.

Definition at line 32 of file DecompAlgoPC.h.


Constructor & Destructor Documentation

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.


Member Function Documentation

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]

Default constructors.

Definition at line 187 of file DecompAlgoPC.h.

References m_dual.

std::vector<double>& DecompAlgoPC::getDualRMP (  )  [inline]

Default constructors.

Definition at line 190 of file DecompAlgoPC.h.

References m_dualRM.

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.

  • PC: this recomposes x from lambda
  • C : this just copies over LP solution

Reimplemented from DecompAlgo.

Reimplemented in DecompAlgoD.


Member Data Documentation

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.


The documentation for this class was generated from the following files:

Generated on 3 Jun 2015 for Dip-All by  doxygen 1.6.1