/home/coin/SVN-release/OS-2.0.0/Bonmin/src/Algorithms/Branching/BonLpBranchingSolver.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2006, 2007 International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 #ifndef BonLpBranchingSolver_H
00004 #define BonLpBranchingSolver_H
00005 
00006 #include "BonStrongBranchingSolver.hpp"
00007 #include "BonEcpCuts.hpp"
00008 
00009 namespace Bonmin
00010 {
00011 
00015   class LpBranchingSolver : public StrongBranchingSolver
00016   {
00017 
00018   public:
00019 
00021     LpBranchingSolver (OsiTMINLPInterface * solver);
00022 
00024     LpBranchingSolver (const LpBranchingSolver &);
00025 
00027     LpBranchingSolver & operator= (const LpBranchingSolver& rhs);
00028 
00030     virtual ~LpBranchingSolver ();
00031 
00034     virtual void markHotStart(OsiTMINLPInterface* tminlp_interface);
00035 
00037     virtual TNLPSolver::ReturnStatus solveFromHotStart(OsiTMINLPInterface* tminlp_interface);
00038 
00040     virtual void unmarkHotStart(OsiTMINLPInterface* tminlp_interface);
00041 
00042     void setMaxCuttingPlaneIter(int num)
00043     {
00044       maxCuttingPlaneIterations_ = num;
00045     }
00046 
00047     static void registerOptions(Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions);
00048 
00049   private:
00051     LpBranchingSolver ();
00052 
00054     OsiSolverInterface* lin_;
00055 
00057     CoinWarmStart* warm_;
00058 
00060     EcpCuts* ecp_;
00061 
00063     int maxCuttingPlaneIterations_;
00064 
00066     double abs_ecp_tol_;
00067 
00069     double rel_ecp_tol_;
00070 
00071 
00072    enum WarmStartMethod {
00073      Basis=0 ,
00074      Clone 
00075    };
00077    WarmStartMethod warm_start_mode_;
00078   };
00079 
00080 }
00081 #endif

Generated on Mon Aug 3 03:02:17 2009 by  doxygen 1.4.7