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 
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 
00039     const double * bestSolution() const
00040     {
00041       return bestSolution_;
00042     }
00044     double bestObj() const
00045     {
00046       return bestObj_;
00047     }
00048 
00050     MipStatuses mipStatus() const
00051     {
00052       return mipStatus_;
00053     }
00055     double bestBound();
00057     int numNodes() const
00058     {
00059       return numNodes_;
00060     }
00062     int iterationCount()
00063     {
00064       return mipIterationCount_;
00065     }
00067     double continuousRelaxation()
00068     {
00069       return continuousRelaxation_;
00070     }
00071 
00074     virtual void replaceIntegers(OsiObject ** objects, int numberObjects)
00075     {}
00077     const CbcModel&  model() const
00078     {
00079       return model_;
00080     }
00081 
00084     CbcModel&  model()
00085     {
00086       return model_;
00087     }
00089     void setUsingCouenne(bool v)
00090     {
00091       usingCouenne_ = v;
00092     }
00093 
00095     bool getUsingCouenne()
00096     {
00097       return usingCouenne_;
00098     }
00099   protected:
00101     double * bestSolution_;
00102 
00104     MipStatuses mipStatus_;
00106     double bestObj_;
00108     double bestBound_;
00110     double continuousRelaxation_;
00112     int numNodes_;
00114     int mipIterationCount_;
00116     CbcModel model_;
00118     CoinMessageHandler * modelHandler_;
00122     OsiObject** objects_;
00124     int nObjects_;
00125 
00127     bool usingCouenne_;
00128   };
00129 }
00130 #endif

Generated on Thu Jun 26 03:27:49 2008 for Bonmin by  doxygen 1.4.7