00001
00002
00003
00004
00005
00006
00007
00008 #ifndef CbcSubProblem_H
00009 #define CbcSubProblem_H
00010
00011 #ifdef COIN_HAS_CLP
00012 #include "ClpSimplex.hpp"
00013 #include "ClpNode.hpp"
00014
00018 class CoinWarmStartDiff;
00019 class CbcSubProblem {
00020
00021 public:
00022
00024 CbcSubProblem ();
00025
00027 CbcSubProblem (const OsiSolverInterface * solver,
00028 const double * lowerBefore,
00029 const double * upperBefore,
00030 const unsigned char * status,
00031 int depth);
00032
00034 CbcSubProblem ( const CbcSubProblem &);
00035
00037 CbcSubProblem & operator= (const CbcSubProblem& rhs);
00038
00040 virtual ~CbcSubProblem ();
00041
00043 void apply(OsiSolverInterface * model, int what = 3) const;
00044
00045 public:
00047 double objectiveValue_;
00049 double sumInfeasibilities_;
00052 int * variables_;
00054 double * newBounds_;
00056 mutable CoinWarmStartBasis * status_;
00058 int depth_;
00060 int numberChangedBounds_;
00062 int numberInfeasibilities_;
00063 };
00064
00065 #endif //COIN_HAS_CLP
00066 #endif
00067