Couenne 0.5.8
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"
18
19namespace 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
38public:
39
43 JnlstPtr jnlst,
46 expression *var,
47 int way,
48 CouNumber brpoint,
49 bool doFBBT,
50 bool doConvCuts);
51
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
76protected:
77
78};
79
80}
81
82#endif
bool simulate_
are we currently in strong branching?
bool doConvCuts_
shall we add convexification cuts at branching?
Cut Generator for linear convexifications.
virtual bool boundBranch() const
does this branching object only change variable bounds?
void setSimulate(bool s)
set simulate_ field below
virtual double branch(OsiSolverInterface *solver=NULL)
Execute the actions required to branch, as specified by the current state of the branching object,...
CouenneOrbitBranchingObj(OsiSolverInterface *solver, const OsiObject *originalObject, JnlstPtr jnlst, CouenneCutGenerator *c, CouenneProblem *p, expression *var, int way, CouNumber brpoint, bool doFBBT, bool doConvCuts)
Constructor.
CouenneOrbitBranchingObj(const CouenneOrbitBranchingObj &src)
Copy constructor.
virtual OsiBranchingObject * clone() const
cloning method
Class for MINLP problems with symbolic information.
Expression base class.
const OsiObject * originalObject() const
general include file for different compilers
double CouNumber
main number type in Couenne