Couenne  0.5.8
CouenneAggrProbing.hpp
Go to the documentation of this file.
1 /* $Id: CouenneAggrProbing.hpp 945 2013-04-06 20:25:21Z stefan $
2  *
3  * Name: CouenneAggrProbing.hpp
4  * Author: Giacomo Nannicini
5  * Purpose: A bound tightener based on aggressive probing
6  *
7  * (C) Giacomo Nannicini, 2010.
8  * This file is licensed under the Eclipse Public License (EPL)
9  */
10 
11 #ifndef COUENNEAGGRPROBING_HPP
12 #define COUENNEAGGRPROBING_HPP
13 
14 #include "BonRegisteredOptions.hpp"
15 
16 #include "BonOaDecBase.hpp"
17 #include "CglConfig.h"
18 #include "CglCutGenerator.hpp"
19 #include "OsiColCut.hpp"
20 #include "OsiSolverInterface.hpp"
21 #include "CouenneProblem.hpp"
22 #include "BonCouenneSetup.hpp"
23 
24 namespace Couenne {
25 
36 
38 
39  public:
40 
44 
47 
50 
53  {return new CouenneAggrProbing (*this);}
54 
56  void generateCuts(const OsiSolverInterface & solver,
57  OsiCuts& cuts,
58  const CglTreeInfo = CglTreeInfo ())
59 #if CGL_VERSION_MAJOR == 0 && CGL_VERSION_MINOR <= 57
60  const
61 #endif
62  { }
63 
69  double probeVariable(int index, bool probeLower);
70 
73  double probeVariable2(int index, bool lower);
74 
77 
79  void setMaxTime(double value);
80  double getMaxTime() const;
81 
83  void setMaxFailedSteps(int value);
84  int getMaxFailedSteps() const;
85 
87  void setMaxNodes(int value);
88  int getMaxNodes() const;
89 
92  void setRestoreCutoff(bool value);
93  bool getRestoreCutoff() const;
94 
95  protected:
96 
99 
101  int numCols_;
102 
104  double maxTime_;
105 
108 
111 
114 
116  double initCutoff_;
117 
118  };
119 }
120 
121 #endif
Couenne::CouenneAggrProbing::probeVariable
double probeVariable(int index, bool probeLower)
Probe one variable (try to tigthen the lower or the upper bound, depending on the value of the second...
Couenne::CouenneAggrProbing::getMaxFailedSteps
int getMaxFailedSteps() const
Couenne::CouenneAggrProbing::setMaxFailedSteps
void setMaxFailedSteps(int value)
Set/get maximum number of failed steps.
CglTreeInfo
BonCouenneSetup.hpp
Couenne::CouenneAggrProbing::couenne_
CouenneSetup * couenne_
Pointer to the CouenneProblem representation.
Definition: CouenneAggrProbing.hpp:98
Couenne::CouenneAggrProbing::setRestoreCutoff
void setRestoreCutoff(bool value)
Set/get restoreCutoff parameter (should we restore the initial cutoff value after each probing run?...
Couenne::CouenneSetup
Definition: BonCouenneSetup.hpp:43
OsiSolverInterface.hpp
Couenne
general include file for different compilers
Definition: CouenneAggrProbing.hpp:24
Couenne::CouenneAggrProbing::CouenneAggrProbing
CouenneAggrProbing(CouenneSetup *couenne, const Ipopt::SmartPtr< Ipopt::OptionsList > options)
Constructor.
BonRegisteredOptions.hpp
Couenne::CouenneAggrProbing::numCols_
int numCols_
Number of columns (want to have this handy)
Definition: CouenneAggrProbing.hpp:101
Couenne::CouenneAggrProbing::registerOptions
static void registerOptions(Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
Add list of options to be read from file.
Couenne::CouenneAggrProbing::maxFailedSteps_
int maxFailedSteps_
Maximum number of failed iterations.
Definition: CouenneAggrProbing.hpp:107
CglCutGenerator
Ipopt::SmartPtr< Ipopt::OptionsList >
OsiCuts
Couenne::CouenneAggrProbing::setMaxNodes
void setMaxNodes(int value)
Set/get maximum number of nodes to probe one variable.
Couenne::CouenneAggrProbing::clone
CouenneAggrProbing * clone() const
Clone method (necessary for the abstract CglCutGenerator class)
Definition: CouenneAggrProbing.hpp:52
OsiSolverInterface
CouenneProblem.hpp
Couenne::CouenneAggrProbing::maxNodes_
int maxNodes_
Maximum number of nodes in probing.
Definition: CouenneAggrProbing.hpp:110
Couenne::CouenneAggrProbing::generateCuts
void generateCuts(const OsiSolverInterface &solver, OsiCuts &cuts, const CglTreeInfo=CglTreeInfo()) const
The main CglCutGenerator; not implemented yet.
Definition: CouenneAggrProbing.hpp:56
Couenne::CouenneAggrProbing::getRestoreCutoff
bool getRestoreCutoff() const
Couenne::CouenneAggrProbing
Cut Generator for aggressive BT; i.e., an aggressive probing.
Definition: CouenneAggrProbing.hpp:37
Couenne::CouenneAggrProbing::maxTime_
double maxTime_
Maximum time to probe one variable.
Definition: CouenneAggrProbing.hpp:104
CglConfig.h
CglCutGenerator.hpp
Couenne::CouenneAggrProbing::CouenneAggrProbing
CouenneAggrProbing(const CouenneAggrProbing &rhs)
Copy constructor.
Couenne::CouenneAggrProbing::~CouenneAggrProbing
~CouenneAggrProbing()
Destructor.
Couenne::CouenneAggrProbing::restoreCutoff_
bool restoreCutoff_
Restore initial cutoff (value and solution)?
Definition: CouenneAggrProbing.hpp:113
Couenne::CouenneAggrProbing::getMaxTime
double getMaxTime() const
BonOaDecBase.hpp
OsiColCut.hpp
Couenne::CouenneAggrProbing::initCutoff_
double initCutoff_
Initial cutoff.
Definition: CouenneAggrProbing.hpp:116
Couenne::CouenneAggrProbing::getMaxNodes
int getMaxNodes() const
Couenne::CouenneAggrProbing::probeVariable2
double probeVariable2(int index, bool lower)
Alternative probing algorithm.
Couenne::CouenneAggrProbing::setMaxTime
void setMaxTime(double value)
Set/get maximum time to probe one variable.