BonCouenneSetup.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/18/2007
00009 #ifndef BonCouenneSetup_H
00010 #define BonCouenneSetup_H
00011 #include "BonBabSetupBase.hpp"
00012 #include "CbcFeasibilityBase.hpp"
00013 
00014 struct ASL;
00015 
00016 class CouenneCutGenerator;
00017 
00018 
00019 namespace Bonmin{
00020   
00021   class SmartAsl : public Ipopt::ReferencedObject{
00022 public:
00023     ASL * asl;
00024     SmartAsl():
00025       Ipopt::ReferencedObject(),
00026       asl(NULL)
00027     {}
00028     virtual ~SmartAsl();
00029   };
00030   
00031   class CouenneSetup : public BabSetupBase{
00032 public:
00034     CouenneSetup():
00035     BabSetupBase(),
00036     aslfg_(NULL),
00037     CouennePtr_ (NULL),
00038     displayStats_ (false) {}
00039 
00041     CouenneSetup(const CouenneSetup& other):
00042       BabSetupBase(other),
00043       aslfg_(NULL),
00044       displayStats_ (other.displayStats_) {}
00045     
00047     virtual BabSetupBase * clone() const{
00048       return new CouenneSetup(*this);
00049     }
00050     
00052     virtual ~CouenneSetup();
00053 
00055     void InitializeCouenne(char **& argv);
00056 
00058     virtual void registerOptions();
00060     static void registerAllOptions(Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions);
00061     
00063     virtual void readOptionsFile(){
00064       if (readOptions_) return;
00065       BabSetupBase::readOptionsFile("couenne.opt");
00066     }
00067 
00069     CouenneCutGenerator *couennePtr () const
00070     {return CouennePtr_;}
00071 
00073     bool displayStats () 
00074     {return displayStats_;}
00075 
00077     void addMilpCutGenerators ();
00078 
00080     void setDoubleParameter (const DoubleParameter &p, double val)
00081     {doubleParam_ [p] = val;}
00082 
00083 private:
00084       SmartPtr<SmartAsl> aslfg_;
00085 
00090     CouenneCutGenerator *CouennePtr_;
00091 
00093     bool displayStats_;
00094   };
00095 }
00096 
00097 #endif

Generated on Thu Jun 26 03:01:44 2008 for Bonmin by  doxygen 1.4.7