CouenneOrbitBranchingObj.hpp
Go to the documentation of this file.
1 /* $Id: CouenneOrbitBranchingObj.hpp 560 2011-04-17 10:01:15Z stefan $
2  *
3  * Name: CouenneOrbitBranchingObj.hpp
4  * Authors: Jim Ostrowski, University of Waterloo
5  * Pietro Belotti, Lehigh University
6  * Purpose: Branching object for auxiliary variables
7  *
8  * This file is licensed under the Eclipse Public License (EPL)
9  */
10 
11 #ifndef COUENNEORBITBRANCHINGOBJ_HPP
12 #define COUENNEORBITBRANCHINGOBJ_HPP
13 
14 #include "CouenneExprAux.hpp"
15 #include "CouenneJournalist.hpp"
16 #include "OsiBranchingObject.hpp"
18 
19 namespace Couenne {
20 
21 //class CouenneCutGenerator;
22 //class CouenneProblem;
23 
24 //#define COUENNE_CROP 1
25 //#define COUENNE_LCROP (1e2*COUENNE_CROP)
26 
27 //#define COUENNE_LARGE_INTERVAL 1e4
28 //#define COUENNE_NEAR_BOUND 1e-2
29 
30 
37 
38 public:
39 
41  CouenneOrbitBranchingObj (OsiSolverInterface *solver,
42  const OsiObject *originalObject,
43  JnlstPtr jnlst,
45  CouenneProblem *p,
46  expression *var,
47  int way,
48  CouNumber brpoint,
49  bool doFBBT,
50  bool doConvCuts);
51 
54  CouenneBranchingObject (src) {}
55 
56 
58  virtual OsiBranchingObject * clone () const
59  {return new CouenneOrbitBranchingObj (*this);}
60 
66  virtual double branch (OsiSolverInterface * solver = NULL);
67 
69  virtual bool boundBranch () const
70  {return !doConvCuts_;} // iff it does not add convexification cuts
71 
73  void setSimulate (bool s)
74  {simulate_ = s;}
75 
76 protected:
77 
78 };
79 
80 }
81 
82 #endif
Cut Generator for linear convexifications.
CouenneOrbitBranchingObj(const CouenneOrbitBranchingObj &src)
Copy constructor.
"Spatial" branching object.
void setSimulate(bool s)
set simulate_ field below
virtual OsiBranchingObject * clone() const
cloning method
Class for MINLP problems with symbolic information.
void fint fint fint fint fint fint fint fint fint fint real real real real real real real real * s
virtual double branch(OsiSolverInterface *solver=NULL)
Execute the actions required to branch, as specified by the current state of the branching object...
double CouNumber
main number type in Couenne
bool simulate_
are we currently in strong branching?
CouenneOrbitBranchingObj(OsiSolverInterface *solver, const OsiObject *originalObject, JnlstPtr jnlst, CouenneCutGenerator *c, CouenneProblem *p, expression *var, int way, CouNumber brpoint, bool doFBBT, bool doConvCuts)
Constructor.
Expression base class.
bool doConvCuts_
shall we add convexification cuts at branching?
virtual bool boundBranch() const
does this branching object only change variable bounds?
real c
"Spatial" branching object.