# CouenneAggrProbing.hpp

Go to the documentation of this file.

    00001 /* $Id: CouenneAggrProbing.hpp 945 2013-04-06 20:25:21Z stefan $
    00002  *
    00003  * Name:    CouenneAggrProbing.hpp
    00004  * Author:  Giacomo Nannicini
    00005  * Purpose: A bound tightener based on aggressive probing
    00006  *
    00007  * (C) Giacomo Nannicini, 2010.
    00008  * This file is licensed under the Eclipse Public License (EPL)
    00009  */
    00010
    00011 #ifndef COUENNEAGGRPROBING_HPP
    00012 #define COUENNEAGGRPROBING_HPP
    00013
    00014 #include "BonRegisteredOptions.hpp"
    00015
    00016 #include "BonOaDecBase.hpp"
    00017 #include "CglConfig.h"
    00018 #include "CglCutGenerator.hpp"
    00019 #include "OsiColCut.hpp"
    00020 #include "OsiSolverInterface.hpp"
    00021 #include "CouenneProblem.hpp"
    00022 #include "BonCouenneSetup.hpp"
    00023
    00024 namespace Couenne {
    00025
    00036
    00037   class CouenneAggrProbing: public CglCutGenerator {
    00038
    00039   public:
    00040
    00042     CouenneAggrProbing(CouenneSetup* couenne,
    00043                        const Ipopt::SmartPtr<Ipopt::OptionsList> options);
    00044
    00046     CouenneAggrProbing(const CouenneAggrProbing& rhs);
    00047
    00049     ~CouenneAggrProbing();
    00050
    00052     CouenneAggrProbing *clone () const
    00053     {return new CouenneAggrProbing (*this);}
    00054
    00056     void generateCuts(const OsiSolverInterface & solver,
    00057                       OsiCuts& cuts,
    00058                       const CglTreeInfo = CglTreeInfo ())
    00059 #if CGL_VERSION_MAJOR == 0 && CGL_VERSION_MINOR <= 57
    00060     const
    00061 #endif
    00062     { }
    00063
    00069     double probeVariable(int index, bool probeLower);
    00070
    00073     double probeVariable2(int index, bool lower);
    00074
    00076     static void registerOptions(Ipopt::SmartPtr <Bonmin::RegisteredOptions> roptions);
    00077
    00079     void setMaxTime(double value);
    00080     double getMaxTime() const;
    00081
    00083     void setMaxFailedSteps(int value);
    00084     int getMaxFailedSteps() const;
    00085
    00087     void setMaxNodes(int value);
    00088     int getMaxNodes() const;
    00089
    00092     void setRestoreCutoff(bool value);
    00093     bool getRestoreCutoff() const;
    00094
    00095   protected:
    00096
    00098     CouenneSetup* couenne_;
    00099
    00101     int numCols_;
    00102
    00104     double maxTime_;
    00105
    00107     int maxFailedSteps_;
    00108
    00110     int maxNodes_;
    00111
    00113     bool restoreCutoff_;
    00114
    00116     double initCutoff_;
    00117
    00118   };
    00119 }
    00120
    00121 #endif

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines