Couenne  0.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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
CouenneOrbitBranchingObj(OsiSolverInterface *solver, const OsiObject *originalObject, JnlstPtr jnlst, CouenneCutGenerator *c, CouenneProblem *p, expression *var, int way, CouNumber brpoint, bool doFBBT, bool doConvCuts)
Constructor.
virtual OsiBranchingObject * clone() const
cloning method
Class for MINLP problems with symbolic information.
double CouNumber
main number type in Couenne
bool simulate_
are we currently in strong branching?
Expression base class.
bool doConvCuts_
shall we add convexification cuts at branching?
virtual double branch(OsiSolverInterface *solver=NULL)
Execute the actions required to branch, as specified by the current state of the branching object...
virtual bool boundBranch() const
does this branching object only change variable bounds?
"Spatial" branching object.