Couenne 0.5.8
Loading...
Searching...
No Matches
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
16namespace Couenne {
17
18class CouenneProblem;
19
20
23
24public:
25
29 exprVar *ref,
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
64
66 virtual bool isCuttable () const;
67
68protected:
69
74
77 int& bestWay,
78 const CouenneObject *&criticalObject) const;
79};
80
81}
82
83#endif
Cut Generator for linear convexifications.
OsiObject for auxiliary variables $w=f(x)$.
Class for MINLP problems with symbolic information.
OsiObject for variables in a MINLP.
virtual double infeasibility(const OsiBranchingInformation *info, int &way) const
compute infeasibility of this variable x as the sum/min/max of all infeasibilities of auxiliaries w w...
virtual double checkInfeasibility(const OsiBranchingInformation *info) const
compute infeasibility of this variable, |w - f(x)|, where w is the auxiliary variable defined as w = ...
virtual CouenneObject * clone() const
Cloning method.
CouNumber computeBranchingPoint(const OsiBranchingInformation *info, int &bestWay, const CouenneObject *&criticalObject) const
Method computing the branching point.
virtual bool isCuttable() const
are we on the bad or good side of the expression?
int varSelection_
branching scheme used.
CouenneVarObject(const CouenneVarObject &src)
Copy constructor.
CouenneVarObject(CouenneCutGenerator *c, CouenneProblem *p, exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst, int varSelection)
Constructor with information for branching point selection strategy.
virtual double feasibleRegion(OsiSolverInterface *, const OsiBranchingInformation *) const
fix nonlinear coordinates of current integer-nonlinear feasible solution
virtual OsiBranchingObject * createBranch(OsiSolverInterface *, const OsiBranchingInformation *, int) const
create CouenneBranchingObject or CouenneThreeWayBranchObj based on this object
variable-type operator
general include file for different compilers
double CouNumber
main number type in Couenne