BonEcpCuts.hpp
Go to the documentation of this file.
1 // (C) Copyright International Business Machines (IBM) 2006, 2007
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // Authors :
6 // P. Bonami, International Business Machines
7 //
8 // Date : 12/20/2006
9 
10 #ifndef BonECPCuts_HPP
11 #define BonECPCuts_HPP
12 
13 #include "BonOaDecBase.hpp"
14 #include "CglCutGenerator.hpp"
15 namespace Bonmin
16 {
18  {
19  public:
21 
23  EcpCuts(const EcpCuts & copy):
24  OaDecompositionBase(copy),
25  objValue_(copy.objValue_),
26  numRounds_(copy.numRounds_),
29  beta_(copy.beta_)
30  {}
31 
33  CglCutGenerator * clone() const
34  {
35  return new EcpCuts(*this);
36  }
37 
39  virtual ~EcpCuts()
40  {}
42  virtual void generateCuts(const OsiSolverInterface &si, OsiCuts & cs,
43  const CglTreeInfo info = CglTreeInfo()) const;
44  double doEcpRounds(OsiSolverInterface &si,
45  bool leaveSiUnchanged,
46  double* violation = NULL);
47 
48  void setNumRounds(int value)
49  {
50  numRounds_ = value;
51  }
52 
53  void setPropabilityFactor(double value)
54  {
55  beta_ = value;
56  }
57 
58  void setAbsViolationTolerance(double value)
59  {
60  abs_violation_tol_ = value;
61  }
62  void setRelViolationTolerance(double value)
63  {
64  rel_violation_tol_ = value;
65  }
66 
69 
70  protected:
72  virtual double performOa(OsiCuts & cs, solverManip &lpManip,
73  BabInfo * babInfo, double &cutoff, const CglTreeInfo &info) const
74  {
75  throw -1;
76  }
78  virtual bool doLocalSearch(BabInfo * babInfo) const
79  {
80  return 0;
81  }
82  private:
84  mutable double objValue_;
86  mutable double violation_;
94  double beta_;
95  };
96 } /* end namespace Bonmin.*/
97 #endif
double violation_
Record NLP infeasibility at final point of Ecp.
Definition: BonEcpCuts.hpp:86
Small class to manipulatee various things in an OsiSolverInterface and restore them.
void fint fint fint real fint real real real real real real real real real fint real fint fint fint real fint fint fint fint * info
virtual ~EcpCuts()
Destructor.
Definition: BonEcpCuts.hpp:39
double abs_violation_tol_
absolute tolerance for NLP constraint violation to stop ECP rounds
Definition: BonEcpCuts.hpp:90
void setNumRounds(int value)
Definition: BonEcpCuts.hpp:48
EcpCuts(const EcpCuts &copy)
Copy constructor.
Definition: BonEcpCuts.hpp:23
virtual void generateCuts(const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo()) const
Standard cut generation methods.
Definition: BonEcpCuts.cpp:46
static void registerOptions(Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
Register ecp cuts options.
Definition: BonEcpCuts.cpp:146
virtual bool doLocalSearch(BabInfo *babInfo) const
virutal method to decide if local search is performed
Definition: BonEcpCuts.hpp:78
double objValue_
Record obj value at final point of Ecp.
Definition: BonEcpCuts.hpp:84
A class to have all elements necessary to setup a branch-and-bound.
EcpCuts(BabSetupBase &b)
Definition: BonEcpCuts.cpp:18
double rel_violation_tol_
relative tolerance for NLP constraint violation to stop ECP rounds
Definition: BonEcpCuts.hpp:92
double doEcpRounds(OsiSolverInterface &si, bool leaveSiUnchanged, double *violation=NULL)
Definition: BonEcpCuts.cpp:29
void setPropabilityFactor(double value)
Definition: BonEcpCuts.hpp:53
int numRounds_
maximum number of iterations of generation.
Definition: BonEcpCuts.hpp:88
void setRelViolationTolerance(double value)
Definition: BonEcpCuts.hpp:62
virtual double performOa(OsiCuts &cs, solverManip &lpManip, BabInfo *babInfo, double &cutoff, const CglTreeInfo &info) const
virtual method which performs the OA algorithm by modifying lp and nlp.
Definition: BonEcpCuts.hpp:72
double beta_
Factor for probability for skipping cuts.
Definition: BonEcpCuts.hpp:94
void setAbsViolationTolerance(double value)
Definition: BonEcpCuts.hpp:58
CglCutGenerator * clone() const
clone
Definition: BonEcpCuts.hpp:33
Base class for OA algorithms.
return b
Definition: OSdtoa.cpp:1719
Bonmin class for passing info between components of branch-and-cuts.
Definition: BonBabInfos.hpp:19