Couenne  0.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
CouenneComplObject.hpp
Go to the documentation of this file.
1 /* $Id: CouenneComplObject.hpp 615 2011-06-08 20:36:24Z pbelotti $
2  *
3  * Name: CouenneComplObject.hpp
4  * Authors: Pietro Belotti, Lehigh University
5  * Purpose: Branching object for complementarity constraints
6  *
7  * (C) Carnegie-Mellon University, 2008-10.
8  * This file is licensed under the Eclipse Public License (EPL)
9  */
10 
11 #ifndef COUENNECOMPLOBJECT_HPP
12 #define COUENNECOMPLOBJECT_HPP
13 
14 #include "CouenneObject.hpp"
15 
16 namespace Couenne {
17 
21 
23 
24 public:
25 
28  CouenneProblem *p,
29  exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst,
30  int sign);
31 
33  CouenneComplObject (exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst,
34  int sign);
35 
38 
41 
43  virtual CouenneObject * clone () const
44  {return new CouenneComplObject (*this);}
45 
48  virtual double infeasibility (const OsiBranchingInformation *info, int &way) const;
49 
52  virtual double checkInfeasibility (const OsiBranchingInformation * info) const;
53 
56  virtual OsiBranchingObject *createBranch (OsiSolverInterface*,
57  const OsiBranchingInformation*,
58  int way) const;
59 private:
60 
64  int sign_;
65 
66 };
67 
68 }
69 
70 #endif
Cut Generator for linear convexifications.
OsiObject for auxiliary variables $w=f(x)$.
OsiObject for complementarity constraints .
CouenneComplObject(CouenneCutGenerator *c, CouenneProblem *p, exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst, int sign)
Constructor with information for branching point selection strategy.
Class for MINLP problems with symbolic information.
virtual double infeasibility(const OsiBranchingInformation *info, int &way) const
compute infeasibility of this variable, |w - f(x)| (where w is the auxiliary variable defined as w = ...
virtual OsiBranchingObject * createBranch(OsiSolverInterface *, const OsiBranchingInformation *, int way) const
create CouenneBranchingObject or CouenneThreeWayBranchObj based on this object
virtual CouenneObject * clone() const
Cloning method.
variable-type operator
virtual double checkInfeasibility(const OsiBranchingInformation *info) const
compute infeasibility of this variable, |w - f(x)|, where w is the auxiliary variable defined as w = ...
int sign_
-1 if object is for xi * xj <= 0 +1 if object is for xi * xj <= 0 0 if object is for xi * xj = 0 (cla...