Bonmin
1.7
|
00001 // Copyright (C) 2006, 2007 International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 // 00004 // 00005 #error "BonCurvBranchingSolver not supported anymore" 00006 #ifndef BonCurvBranchingSolver_H 00007 #define BonCurvBranchingSolver_H 00008 00009 #include "BonStrongBranchingSolver.hpp" 00010 #include "BonCurvatureEstimator.hpp" 00011 00012 namespace Bonmin 00013 { 00014 00018 class CurvBranchingSolver : public StrongBranchingSolver 00019 { 00020 00021 public: 00022 00024 CurvBranchingSolver (OsiTMINLPInterface * solver); 00025 00027 CurvBranchingSolver (const CurvBranchingSolver &); 00028 00030 CurvBranchingSolver & operator= (const CurvBranchingSolver& rhs); 00031 00033 virtual ~CurvBranchingSolver (); 00034 00037 virtual void markHotStart(OsiTMINLPInterface* tminlp_interface); 00038 00040 virtual TNLPSolver::ReturnStatus solveFromHotStart(OsiTMINLPInterface* tminlp_interface); 00041 00043 virtual void unmarkHotStart(OsiTMINLPInterface* tminlp_interface); 00044 00045 private: 00047 CurvBranchingSolver (); 00048 00049 SmartPtr<CurvatureEstimator> cur_estimator_; 00050 00053 bool new_bounds_; 00054 bool new_x_; 00055 bool new_mults_; 00056 double* orig_d_; 00057 double* projected_d_; 00058 Number* x_l_orig_; 00059 Number* x_u_orig_; 00060 Number* g_l_orig_; 00061 Number* g_u_orig_; 00063 00066 int numCols_; 00067 int numRows_; 00068 const double* solution_; 00069 const double* duals_; 00070 double obj_value_; 00072 00073 }; 00074 00075 } 00076 00077 #endif