#include <OSDecompSolver.h>


Public Member Functions | |
| virtual OSInstance * | getInitialRestrictedMaster ()=0 |
| virtual void | getCutsTheta (const double *thetaVar, const int numThetaVar, int &numNewRows, int *&numNonz, int **&colIdx, double **&values, double *&rowLB, double *&rowUB)=0 |
| RETURN VALUES: More... | |
| virtual void | getCutsMultiCommod (const double *thetaVar, const int numThetaVar, int &numNewRows, int *&numNonz, int **&colIdx, double **&values, double *&rowLB, double *&rowUB)=0 |
| This is the routine that generates the multi-item cuts. More... | |
| virtual void | getColumns (const double *yA, const int numARows, const double *yB, const int numBRows, int &numNewColumns, int *&numNonz, double *&cost, int **&rowIdx, double **&values, double &lowerBound)=0 |
| RETURN VALUES: More... | |
| virtual void | getBranchingCut (const double *thetaVar, const int numThetaVar, const std::map< int, int > &varConMap, int &varIdx, int &numNonz, int *&indexes, double *&values)=0 |
| Dense Version. More... | |
| virtual void | getBranchingCut (const int *thetaIdx, const double *theta, const int numThetaVar, const std::map< int, int > &varConMap, int &varIdx, int &numNonz, int *&indexes, double *&values)=0 |
| Sparse Version. More... | |
| virtual void | pauHana (std::vector< int > &m_zOptIndexes, std::vector< double > &m_zRootLPx_vals, int numNodes, int numColsGen, std::string message)=0 |
| virtual void | resetMaster (std::map< int, int > &inVars, OsiSolverInterface *si)=0 |
| INPUT: More... | |
| virtual void | initializeDataStructures ()=0 |
| allocate memory and initialize arrays More... | |
| OSDecompSolver () | |
| Default Constructor. More... | |
| OSDecompSolver (OSOption *osoption) | |
| Constructor with OSOption Arg. More... | |
| virtual | ~OSDecompSolver ()=0 |
| Default destructor. More... | |
Public Attributes | |
| OSInstance * | m_osinstanceMaster |
| int | m_multiCommodCutLimit |
| int | m_numMultCuts |
| OSDecompParam | m_osDecompParam |
| share the parameters with the decomposition solver More... | |
| double | m_bestIPValue |
| double | m_bestLPValue |
| double | m_rootLPValue |
| int * | m_thetaPnt |
| int * | m_thetaIndex |
| int | m_numThetaVar |
| int | m_numThetaNonz |
| int * | m_pntBmatrix |
| int * | m_BmatrixIdx |
| double * | m_BmatrixVal |
| std::set< std::pair< int, double > > | intVarSet |
| intVarSet holds and std::pair where the first element is the index of an integer variable and the second is the variable upper bound More... | |
| int | m_numHubs |
| m_numHubs is the number of hubs/routes More... | |
| int | m_numNodes |
| m_numNodes is the number of nodes (both pickup and hub) in the model More... | |
| int * | m_pntAmatrix |
| int * | m_Amatrix |
| int | m_numBmatrixCon |
| m_numBmatrixCon is the number of constraints in B - 1, we have the -1 because: m_pntBmatrix[ k] points to the start of constraint k and m_pntBmatrix[ m_numBmatrixCon ] is equal to m_numBmatrixNonz More... | |
| int | m_numBmatrixNonz |
| int | m_maxBmatrixNonz |
| m_maxBmatrixNonz is the maximum number of nonzero elements in the B matrix constraints More... | |
| int | m_maxBmatrixCon |
| m_maxBmatrixCon is the maximum number of B matrix constraints it is the number of tour breaking constraints plus variable branch constraints More... | |
| int | m_maxMasterColumns |
| m_maxMasterColumns is the maximumn number of columns we allow in the master More... | |
| int | m_maxMasterRows |
| m_maxMasterColumns is the maximumn number of rows we allow in the master, in this application it is equal to m_maxBmatrixCon plus m_numNodes – we therefore do not need to read this from an option file as we might for other problems More... | |
| std::string * | m_variableNames |
| OSOption * | m_osoption |
Definition at line 40 of file OSDecompSolver.h.
| OSDecompSolver::OSDecompSolver | ( | ) |
Default Constructor.
Definition at line 16 of file OSDecompSolver.cpp.
|
pure virtual |
Default destructor.
Definition at line 19 of file OSDecompSolver.cpp.
|
pure virtual |
Implemented in OSBearcatSolverXij, and OSBearcatSolverXkij.
|
pure virtual |
RETURN VALUES:
| int | numNewRows – number of new rows generated |
| int* | numNonz – number of nonzeros in each row |
| int** | colIdx – vectors column indexes of new rows |
| double** | values – vectors of matrix coefficient values of new rows |
| double* | rowLB – vector of row lower bounds |
| double* | rowUB – vector of row upper bounds |
INPUT:
| double* | thetaVar – the vector of primal master values |
| int | numThetaVar – size of master primal vector |
Implemented in OSBearcatSolverXij, and OSBearcatSolverXkij.
|
pure virtual |
This is the routine that generates the multi-item cuts.
RETURN VALUES: int numNewRows – number of new rows generated int* numNonz – number of nonzeros in each row int** colIdx – vectors column indexes of new rows double** values – vectors of matrix coefficient values of new rows double* rowLB – vector of row lower bounds double* rowUB – vector of row upper bounds
INPUT: double* thetaVar – the vector of primal master values int numThetaVar – size of master primal vector
Implemented in OSBearcatSolverXkij, and OSBearcatSolverXij.
|
pure virtual |
RETURN VALUES:
| iny | numNewColumns – number of new columns generated |
| int* | numNonz – number of nonzeros in each column |
| double* | cost – the objective function coefficient on each new column |
| double** | rowIdx – vectors row indexes of new columns |
| double** | values – vectors of matrix coefficient values of new columns lowerBound – the lowerBound |
INPUT:
| double* | yA – the vector of dual values on the coupling constraints |
| int | numARows – size of the yA dual vector * yB – the vector of dual values on the tour breaking constaints |
| int | numBRows – size of the yA dual vector |
Implemented in OSBearcatSolverXij, and OSBearcatSolverXkij.
|
pure virtual |
Dense Version.
RETURN VALUES:
| varIdx | – the variable number x_{ij} for branching |
| numNonz | – number of theta indexes in the cut |
| indexes | – the indexes of the theta variables |
| values | – the number of times the theta indexed in indexes appears in the cut note – set numNonz to zero if the generated cut variable already appears in varConMap |
INPUT: double* thetaVar – the vector of primal master values int numThetaVar – size of master primal vector varConMap – the map of variables in x_{ij} space to a consraint number
Implemented in OSBearcatSolverXij, and OSBearcatSolverXkij.
|
pure virtual |
Sparse Version.
RETURN VALUES:
| varIdx | – the variable number x_{ij} for branching Nonz – number of theta indexes in the cut |
| indexes | – the indexes of the theta variables |
| values | – the number of times the theta indexed in indexes appears in the cut note – set numNonz to zero if the generated cut variable already appears in varConMap |
INPUT:
| double* | theta – the vector of primal master values |
| int | numThetaVar – size of master primal vector – the map of variables in x_{ij} space to a consraint number |
Implemented in OSBearcatSolverXij, and OSBearcatSolverXkij.
|
pure virtual |
Implemented in OSBearcatSolverXij.
|
pure virtual |
INPUT:
| dstd::map<int,int> | &inVars – the mapping of variables, the first index is the variable number before resetting, the second index is the variable number after the reset |
| OsiSolverInterface | *si – the solver interface that corresponds to the master this is what gets rebuilt |
Implemented in OSBearcatSolverXij, and OSBearcatSolverXkij.
|
pure virtual |
allocate memory and initialize arrays
Implemented in OSBearcatSolverXij, and OSBearcatSolverXkij.
| OSInstance* OSDecompSolver::m_osinstanceMaster |
Definition at line 44 of file OSDecompSolver.h.
| int OSDecompSolver::m_multiCommodCutLimit |
Definition at line 46 of file OSDecompSolver.h.
| int OSDecompSolver::m_numMultCuts |
Definition at line 47 of file OSDecompSolver.h.
| OSDecompParam OSDecompSolver::m_osDecompParam |
share the parameters with the decomposition solver
Definition at line 53 of file OSDecompSolver.h.
| double OSDecompSolver::m_bestIPValue |
Definition at line 55 of file OSDecompSolver.h.
| double OSDecompSolver::m_bestLPValue |
Definition at line 56 of file OSDecompSolver.h.
| double OSDecompSolver::m_rootLPValue |
Definition at line 57 of file OSDecompSolver.h.
| int* OSDecompSolver::m_thetaPnt |
Definition at line 62 of file OSDecompSolver.h.
| int* OSDecompSolver::m_thetaIndex |
Definition at line 63 of file OSDecompSolver.h.
| int OSDecompSolver::m_numThetaVar |
Definition at line 64 of file OSDecompSolver.h.
| int OSDecompSolver::m_numThetaNonz |
Definition at line 65 of file OSDecompSolver.h.
| int* OSDecompSolver::m_pntBmatrix |
Definition at line 73 of file OSDecompSolver.h.
| int* OSDecompSolver::m_BmatrixIdx |
Definition at line 75 of file OSDecompSolver.h.
| double* OSDecompSolver::m_BmatrixVal |
Definition at line 77 of file OSDecompSolver.h.
| std::set<std::pair<int, double> > OSDecompSolver::intVarSet |
intVarSet holds and std::pair where the first element is the index of an integer variable and the second is the variable upper bound
Definition at line 84 of file OSDecompSolver.h.
| int OSDecompSolver::m_numHubs |
m_numHubs is the number of hubs/routes
Definition at line 87 of file OSDecompSolver.h.
| int OSDecompSolver::m_numNodes |
m_numNodes is the number of nodes (both pickup and hub) in the model
Definition at line 92 of file OSDecompSolver.h.
| int* OSDecompSolver::m_pntAmatrix |
Definition at line 100 of file OSDecompSolver.h.
| int* OSDecompSolver::m_Amatrix |
Definition at line 102 of file OSDecompSolver.h.
| int OSDecompSolver::m_numBmatrixCon |
m_numBmatrixCon is the number of constraints in B - 1, we have the -1 because: m_pntBmatrix[ k] points to the start of constraint k and m_pntBmatrix[ m_numBmatrixCon ] is equal to m_numBmatrixNonz
Definition at line 112 of file OSDecompSolver.h.
| int OSDecompSolver::m_numBmatrixNonz |
Definition at line 113 of file OSDecompSolver.h.
| int OSDecompSolver::m_maxBmatrixNonz |
m_maxBmatrixNonz is the maximum number of nonzero elements in the B matrix constraints
Definition at line 119 of file OSDecompSolver.h.
| int OSDecompSolver::m_maxBmatrixCon |
m_maxBmatrixCon is the maximum number of B matrix constraints it is the number of tour breaking constraints plus variable branch constraints
Definition at line 128 of file OSDecompSolver.h.
| int OSDecompSolver::m_maxMasterColumns |
m_maxMasterColumns is the maximumn number of columns we allow in the master
Definition at line 134 of file OSDecompSolver.h.
| int OSDecompSolver::m_maxMasterRows |
m_maxMasterColumns is the maximumn number of rows we allow in the master, in this application it is equal to m_maxBmatrixCon plus m_numNodes – we therefore do not need to read this from an option file as we might for other problems
Definition at line 143 of file OSDecompSolver.h.
| std::string* OSDecompSolver::m_variableNames |
Definition at line 148 of file OSDecompSolver.h.
| OSOption* OSDecompSolver::m_osoption |
Definition at line 151 of file OSDecompSolver.h.
1.8.5