/home/coin/SVN-release/OS-1.1.1/Bonmin/src/CbcBonmin/BonCbc.hpp

Go to the documentation of this file.
00001 // (C) Copyright International Business Machines Corporation 2007
00002 // All Rights Reserved.
00003 // This code is published under the Common Public License.
00004 //
00005 // Authors :
00006 // Pierre Bonami, International Business Machines Corporation
00007 //
00008 // Date : 04/19/2007
00009 
00010 #ifndef BonCbc_H
00011 #define BonCbc_H
00012 
00013 //#include "BonBabSetupBase.hpp"
00014 #include "CbcModel.hpp"
00015 
00016 namespace Bonmin
00017 {
00018   class BabSetupBase;
00019   class Bab
00020   {
00021   public:
00023     enum MipStatuses {FeasibleOptimal ,
00024         ProvenInfeasible ,
00025         Feasible ,
00026         NoSolutionKnown};
00028     Bab();
00030     virtual ~Bab();
00032     virtual void branchAndBound(BabSetupBase & s);
00033 
00035     virtual void operator()(BabSetupBase & s);
00036 
00038     virtual void operator()(BabSetupBase * s){
00039        operator()(*s);}
00040 
00043     const double * bestSolution() const
00044     {
00045       return bestSolution_;
00046     }
00048     double bestObj() const
00049     {
00050       return bestObj_;
00051     }
00052 
00054     MipStatuses mipStatus() const
00055     {
00056       return mipStatus_;
00057     }
00059     double bestBound();
00061     int numNodes() const
00062     {
00063       return numNodes_;
00064     }
00066     int iterationCount()
00067     {
00068       return mipIterationCount_;
00069     }
00071     double continuousRelaxation()
00072     {
00073       return continuousRelaxation_;
00074     }
00075 
00078     virtual void replaceIntegers(OsiObject ** objects, int numberObjects)
00079     {}
00081     const CbcModel&  model() const
00082     {
00083       return model_;
00084     }
00085 
00088     CbcModel&  model()
00089     {
00090       return model_;
00091     }
00093     void setUsingCouenne(bool v)
00094     {
00095       usingCouenne_ = v;
00096     }
00097 
00099     bool getUsingCouenne()
00100     {
00101       return usingCouenne_;
00102     }
00103   protected:
00105     double * bestSolution_;
00106 
00108     MipStatuses mipStatus_;
00110     double bestObj_;
00112     double bestBound_;
00114     double continuousRelaxation_;
00116     int numNodes_;
00118     int mipIterationCount_;
00120     CbcModel model_;
00122     CoinMessageHandler * modelHandler_;
00126     OsiObject** objects_;
00128     int nObjects_;
00129 
00131     bool usingCouenne_;
00132   };
00133 }
00134 #endif

Generated on Tue Sep 30 03:01:23 2008 by  doxygen 1.4.7