#include <VRP_DecompApp.h>
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. | |
DecompConstraintSet * | m_modelESPPRC |
A DecompApp for solving the Traveling Salesman Problem.
Definition at line 40 of file VRP_DecompApp.h.
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().
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.
[in] | x | The solution point to check. |
[in] | numCols | The number of variables. |
[in] | tolZero | The integrality tolerance (currently ignored). |
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] |
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.
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.
VRP_Param VRP_DecompApp::m_appParam [private] |
Application specific parameters.
Definition at line 46 of file VRP_DecompApp.h.
VRP_Instance VRP_DecompApp::m_vrp [private] |
Storage of TSP instance.
Definition at line 49 of file VRP_DecompApp.h.
VRP_CVRPsep VRP_DecompApp::m_cvrpSep [private] |
Interface class for CVRPSEP methods.
Definition at line 52 of file VRP_DecompApp.h.
VRP_Boost VRP_DecompApp::m_boost [private] |
Interface class for Boost methods.
Definition at line 55 of file VRP_DecompApp.h.
VRP_Concorde VRP_DecompApp::m_concorde [private] |
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().
vector<DecompConstraintSet*> VRP_DecompApp::m_models [private] |
The various model constraint systems used for different algos.
Definition at line 66 of file VRP_DecompApp.h.
Referenced by ~VRP_DecompApp().
DecompConstraintSet* VRP_DecompApp::m_modelESPPRC [private] |
Definition at line 67 of file VRP_DecompApp.h.