Cbc
trunk
|
00001 // $Id$ 00002 // Copyright (C) 2002, International Business Machines 00003 // Corporation and others. All Rights Reserved. 00004 // This code is licensed under the terms of the Eclipse Public License (EPL). 00005 00006 // Edwin 11/10/2009-- carved out of CbcBranchActual 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