/home/coin/SVN-release/OS-2.3.0/ApplicationTemplates/osDip/solvers/OSDipBlockBearcatSolver.h

Go to the documentation of this file.
00001 /* $Id: OSBlockBearcatSolver.h 3038 2009-11-07 11:43:44Z kmartin $ */
00018 #ifndef OSDIPBLOCKBEARCATSOLVER_H
00019 #define OSDIPBLOCKBEARCATSOLVER_H
00020 
00021 // --------------------------------------------------------------------- //
00022 #include "OSDipBlockSolver.h"
00023 #include "OSDataStructures.h"
00024 #include "OSDefaultSolver.h" 
00025 #include "OSrLReader.h"
00026 
00027 #include "OSDipBlockSolverFactory.h"
00028 
00029 // --------------------------------------------------------------------- //
00037 // --------------------------------------------------------------------- //
00038 class OSDipBlockBearcatSolver : public OSDipBlockSolver {
00039 public:
00040         
00041 
00042         OSInstance *m_osinstance;
00043         OSOption *m_osoption;
00044         OSResult *m_osresult;
00045         
00046         //variables for the dynamic programming solution
00047         int m_numberOfVar;
00048         int m_numHubs;
00049         int m_numNodes;
00050         int m_totalDemand;
00051         int m_minDemand;
00052         int* m_demand;
00053         
00054         double** m_u; 
00055         double** m_v;
00056         int** m_px;
00057         int** m_tx;
00058         double** m_g;
00059         
00060         int* m_varIdx;
00061         //end variables for the dynamic programming solution
00062         
00063         std::vector<IndexValuePair*>  m_primalVals;
00064         
00065         
00066         double qrouteCost(const int& k, const int& l, double* c, int* kountVar) ;
00067 
00068         
00080         virtual void solve(double *cost, std::vector<IndexValuePair*> *solIndexValPair, double *optVal) ;
00081         
00082         
00093         virtual void solve(double *cost, std::string *osrl) ;
00094                 
00099         OSDipBlockBearcatSolver();
00100         
00101         
00106         OSDipBlockBearcatSolver( OSInstance *osinstance, OSOption *osoption);
00107         
00112         ~OSDipBlockBearcatSolver();     
00113         
00114         class Factory;
00115         class Factory : public OSDipBlockSolverFactory{
00116                 
00117         public:
00118 
00119                 Factory(){
00120                         
00121                 }
00122                 
00123                 ~Factory(){
00124                         
00125                 }
00126                 
00127                 OSDipBlockSolver* create() {  return new OSDipBlockBearcatSolver(  osinstance, osoption); };
00128                 
00129         };// end class OSDipBlockSolverFactory
00130         
00131         
00132         //
00133 };//end class OSDipBlockBearcatSolver
00134 
00135 
00136 
00137 
00138 #endif

Generated on Fri Nov 19 13:31:03 2010 by  doxygen 1.4.7