VRP_DecompApp Class Reference

#include <VRP_DecompApp.h>

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

List of all members.

Public Member Functions

virtual DecompSolverStatus solveRelaxed (const int whichBlock, const double *redCostX, const double convexDual, DecompVarList &varList)
 Solve the relaxed problem.
virtual int generateCuts (const double *x, DecompCutList &newCuts)
 Initialize the dual vector for PhaseII of PC.
virtual bool APPisUserFeasible (const double *x, const int n_cols, const double tolZero)
 Method to determine if the solution (x) is feasible to the original model.
virtual void printOriginalColumn (const int index, ostream *os) const
Helper functions (public).



void initializeApp (UtilParameters &utilParam)
 Initialize applications.
void createModels ()
 Create model parts.
void createModelTwoDegree (DecompConstraintSet *model)
void createModelESPPCC (DecompConstraintSet *model)
const int diGraphIndex (int i, int j, int numVertices)
const pair< int, int > diGraphBothEnds (int index, int numVertices)
Constructor and Destructor



 VRP_DecompApp (UtilParameters &utilParam)
 Default constructor.
virtual ~VRP_DecompApp ()
 Default constructor.

Private Attributes

const string m_classTag
 Class id tag (for log / debugging).
VRP_Param m_appParam
 Application specific parameters.
VRP_Instance m_vrp
 Storage of TSP instance.
VRP_CVRPsep m_cvrpSep
 Interface class for CVRPSEP methods.
VRP_Boost m_boost
 Interface class for Boost methods.
VRP_Concorde m_concorde
 Interface class for Concorde methods.
double * m_objective
 The model objective coefficients (original space).
vector< DecompConstraintSet * > m_models
 The various model constraint systems used for different algos.
DecompConstraintSetm_modelESPPRC

Detailed Description

A DecompApp for solving the Traveling Salesman Problem.

See also:
DecompApp

Definition at line 40 of file VRP_DecompApp.h.


Constructor & Destructor Documentation

VRP_DecompApp::VRP_DecompApp ( UtilParameters utilParam  )  [inline]

Default constructor.

Takes an instance of UtilParameters

Definition at line 117 of file VRP_DecompApp.h.

References initializeApp().

virtual VRP_DecompApp::~VRP_DecompApp (  )  [inline, virtual]

Default constructor.

Takes an instance of UtilParameters

Definition at line 126 of file VRP_DecompApp.h.

References m_models, m_objective, UTIL_DELARR, and UtilDeleteVectorPtr().


Member Function Documentation

virtual DecompSolverStatus VRP_DecompApp::solveRelaxed ( const int  whichBlock,
const double *  redCostX,
const double  convexDual,
DecompVarList varList 
) [virtual]

Solve the relaxed problem.

Reimplemented from DecompApp.

virtual int VRP_DecompApp::generateCuts ( const double *  x,
DecompCutList newCuts 
) [virtual]

Initialize the dual vector for PhaseII of PC.

The user is passed a reference to the internal data and can manipulate it directly.

This is only called when dual stabilization is used, i.e., when m_param.DualStab > 0, at the first iteration of PhaseII of PC. The vector is immediately smoothed with the initial restricted master duals. By default, the restricted mater is used as the initial dual and, therefore, no smoothing occurs in the first iteration.

Reimplemented from DecompApp.

virtual bool VRP_DecompApp::APPisUserFeasible ( const double *  x,
const int  numCols,
const double  tolZero 
) [virtual]

Method to determine if the solution (x) is feasible to the original model.

For explicitly defined model components, like the model core constraints (A''), the feasibility of the solution is automatically checked against the constraints. In the case when the relaxed problem constraints (A') are explicitly defined - these are also checked automatically.

However, for some applications, a valid feasible constraint system cannot be explicitly defined (even for the core set of constraints). For example, think of the case of TSP, where A'' is defined as the subtour elimination constraints. These constraints are implicitly defined by deriving the method DecompApp::generateCuts. Therefore, the framework cannot automatically tell if a solution is feasible by checking against the constraint system. In this case, the user must provide this method.

Parameters:
[in] x The solution point to check.
Returns:
True, if x is feasible; otherwise, false.

Reimplemented from DecompApp.

virtual void VRP_DecompApp::printOriginalColumn ( const int  index,
ostream *  os 
) const [virtual]

Reimplemented from DecompApp.

void VRP_DecompApp::initializeApp ( UtilParameters utilParam  )  [virtual]

Initialize applications.

Reimplemented from DecompApp.

Referenced by VRP_DecompApp().

void VRP_DecompApp::createModels (  ) 

Create model parts.

Reimplemented from DecompApp.

void VRP_DecompApp::createModelTwoDegree ( DecompConstraintSet model  ) 
void VRP_DecompApp::createModelESPPCC ( DecompConstraintSet model  ) 
const int VRP_DecompApp::diGraphIndex ( int  i,
int  j,
int  numVertices 
) [inline]

Definition at line 105 of file VRP_DecompApp.h.

const pair<int,int> VRP_DecompApp::diGraphBothEnds ( int  index,
int  numVertices 
) [inline]

Definition at line 108 of file VRP_DecompApp.h.


Member Data Documentation

const string VRP_DecompApp::m_classTag [private]

Class id tag (for log / debugging).

Reimplemented from DecompApp.

Definition at line 43 of file VRP_DecompApp.h.

Application specific parameters.

Definition at line 46 of file VRP_DecompApp.h.

Storage of TSP instance.

Definition at line 49 of file VRP_DecompApp.h.

Interface class for CVRPSEP methods.

Definition at line 52 of file VRP_DecompApp.h.

Interface class for Boost methods.

Definition at line 55 of file VRP_DecompApp.h.

Interface class for Concorde methods.

Definition at line 59 of file VRP_DecompApp.h.

double* VRP_DecompApp::m_objective [private]

The model objective coefficients (original space).

Reimplemented from DecompApp.

Definition at line 63 of file VRP_DecompApp.h.

Referenced by ~VRP_DecompApp().

The various model constraint systems used for different algos.

Definition at line 66 of file VRP_DecompApp.h.

Referenced by ~VRP_DecompApp().

Definition at line 67 of file VRP_DecompApp.h.


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

Generated on 12 Mar 2015 for Dip-All by  doxygen 1.6.1