DecompAlgoC.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef DecompAlgoC_h_
00019 #define DecompAlgoC_h_
00020
00021
00027
00028
00029
00030 #include "Decomp.h"
00031 #include "DecompAlgo.h"
00032
00033
00034 class DecompAlgoC : public DecompAlgo {
00035 private:
00036
00037
00042
00046 std::string m_classTag;
00051
00056
00060 void createMasterProblem(DecompVarList& initVars);
00061
00067 void recomposeSolution(const double* solution,
00068 double* rsolution);
00069
00074
00079
00080
00085 bool updateObjBound(const double mostNegRC = -DecompBigNum);
00086
00087 void phaseInit(DecompPhase& phase) {
00088 if (getNodeIndex() == 0) {
00089 phase = PHASE_CUT;
00090 }
00091 }
00092 void phaseDone();
00093
00097 void phaseUpdate(DecompPhase& phase,
00098 DecompStatus& status);
00103 int generateInitVars(DecompVarList& initVars) {
00104 return 0;
00105 }
00106
00107 void setMasterBounds(const double* lbs,
00108 const double* ubs);
00109 void setSubProbBounds(const double* lbs,
00110 const double* ubs) {};
00111
00112 public:
00113 virtual DecompSolverResult*
00114 solveDirect(const DecompSolution* startSol = NULL);
00115
00116
00122
00127
00128 private:
00132 DecompAlgoC(const DecompAlgoC&);
00133 DecompAlgoC& operator=(const DecompAlgoC&);
00134
00135 public:
00139 DecompAlgoC(DecompApp* app,
00140 UtilParameters* utilParam):
00141 DecompAlgo(CUT, app, utilParam),
00142 m_classTag("D-ALGOC") {
00143 std::string paramSection = DecompAlgoStr[CUT];
00144 initSetup(utilParam, paramSection);
00145 }
00146
00147 DecompAlgoC(DecompApp* app,
00148 UtilParameters* utilParam,
00149 std::string& paramSection):
00150 DecompAlgo(CUT, app, utilParam),
00151 m_classTag("D-ALGOC") {
00152 initSetup(utilParam, paramSection);
00153 }
00154
00155
00159 ~DecompAlgoC() {}
00163 };
00164
00165 #endif