Couenne  0.5.7
CouenneVarObject.hpp
Go to the documentation of this file.
1 /* $Id: CouenneVarObject.hpp 522 2011-03-07 21:13:46Z pbelotti $
2  *
3  * Name: CouenneVarObject.hpp
4  * Authors: Pietro Belotti, Carnegie Mellon University
5  * Purpose: Object for branching on variables
6  *
7  * (C) Carnegie-Mellon University, 2008-11.
8  * This file is licensed under the Eclipse Public License (EPL)
9  */
10 
11 #ifndef COUENNEVAROBJECT_HPP
12 #define COUENNEVAROBJECT_HPP
13 
14 #include "CouenneObject.hpp"
15 
16 namespace Couenne {
17 
18 class CouenneProblem;
19 
20 
23 
24 public:
25 
28  CouenneProblem *p,
29  exprVar *ref,
30  Bonmin::BabSetupBase *base,
31  JnlstPtr jnlst,
32  int varSelection); //< either OSI_SIMPLE or OSI_STRONG
33 
36  CouenneObject (src),
38 
41 
43  virtual CouenneObject *clone () const
44  {return new CouenneVarObject (*this);}
45 
51  virtual double infeasibility (const OsiBranchingInformation *info, int &way) const;
52 
55  virtual double checkInfeasibility (const OsiBranchingInformation * info) const;
56 
60  const OsiBranchingInformation*, int) const;
61 
63  virtual double feasibleRegion (OsiSolverInterface *, const OsiBranchingInformation *) const;
64 
66  virtual bool isCuttable () const;
67 
68 protected:
69 
74 
77  int& bestWay,
78  const CouenneObject *&criticalObject) const;
79 };
80 
81 }
82 
83 #endif
CouenneVarObject(CouenneCutGenerator *c, CouenneProblem *p, exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst, int varSelection)
Constructor with information for branching point selection strategy.
variable-type operator
virtual double feasibleRegion(OsiSolverInterface *, const OsiBranchingInformation *) const
fix nonlinear coordinates of current integer-nonlinear feasible solution
CouNumber computeBranchingPoint(const OsiBranchingInformation *info, int &bestWay, const CouenneObject *&criticalObject) const
Method computing the branching point.
Cut Generator for linear convexifications.
double CouNumber
main number type in Couenne
Class for MINLP problems with symbolic information.
virtual bool isCuttable() const
are we on the bad or good side of the expression?
virtual double checkInfeasibility(const OsiBranchingInformation *info) const
compute infeasibility of this variable, |w - f(x)|, where w is the auxiliary variable defined as w = ...
OsiObject for auxiliary variables $w=f(x)$.
virtual OsiBranchingObject * createBranch(OsiSolverInterface *, const OsiBranchingInformation *, int) const
create CouenneBranchingObject or CouenneThreeWayBranchObj based on this object
OsiObject for variables in a MINLP.
virtual CouenneObject * clone() const
Cloning method.
int varSelection_
branching scheme used.
CouenneVarObject(const CouenneVarObject &src)
Copy constructor.
double infeasibility() const
general include file for different compilers