Couenne::CouenneComplObject Class Reference

OsiObject for complementarity constraints $ x_1 x_2 \ge,\le,= 0 $. More...

#include <CouenneComplObject.hpp>

Inheritance diagram for Couenne::CouenneComplObject:

Inheritance graph
[legend]
Collaboration diagram for Couenne::CouenneComplObject:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 CouenneComplObject (CouenneCutGenerator *c, CouenneProblem *p, exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst, int sign)
 Constructor with information for branching point selection strategy.
 CouenneComplObject (exprVar *ref, Bonmin::BabSetupBase *base, JnlstPtr jnlst, int sign)
 Constructor with lesser information, used for infeasibility only.
 ~CouenneComplObject ()
 Destructor.
 CouenneComplObject (const CouenneComplObject &src)
 Copy constructor.
virtual CouenneObjectclone () const
 Cloning method.
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 = f(x)
virtual double checkInfeasibility (const OsiBranchingInformation *info) const
 compute infeasibility of this variable, |w - f(x)|, where w is the auxiliary variable defined as w = f(x)
virtual OsiBranchingObject * createBranch (OsiSolverInterface *, const OsiBranchingInformation *, int way) const
 create CouenneBranchingObject or CouenneThreeWayBranchObj based on this object

Private Attributes

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 (classical)

Detailed Description

OsiObject for complementarity constraints $ x_1 x_2 \ge,\le,= 0 $.

Associated with two variables $ x_1$ and $x_2$, branches with either $x_1=0$ or $x_2=0$

Definition at line 22 of file CouenneComplObject.hpp.


Constructor & Destructor Documentation

CouenneComplObject::CouenneComplObject ( CouenneCutGenerator c,
CouenneProblem p,
exprVar ref,
Bonmin::BabSetupBase base,
JnlstPtr  jnlst,
int  sign 
)

Constructor with information for branching point selection strategy.

Definition at line 18 of file CouenneComplObject.cpp.

References Couenne::J_BRANCHING().

Referenced by clone().

CouenneComplObject::CouenneComplObject ( exprVar ref,
Bonmin::BabSetupBase base,
JnlstPtr  jnlst,
int  sign 
)

Constructor with lesser information, used for infeasibility only.

Definition at line 30 of file CouenneComplObject.cpp.

Couenne::CouenneComplObject::~CouenneComplObject (  )  [inline]

Destructor.

Definition at line 37 of file CouenneComplObject.hpp.

CouenneComplObject::CouenneComplObject ( const CouenneComplObject src  ) 

Copy constructor.

Definition at line 37 of file CouenneComplObject.cpp.


Member Function Documentation

virtual CouenneObject* Couenne::CouenneComplObject::clone (  )  const [inline, virtual]

Cloning method.

Reimplemented from Couenne::CouenneObject.

Definition at line 43 of file CouenneComplObject.hpp.

References CouenneComplObject().

double CouenneComplObject::infeasibility ( const OsiBranchingInformation *  info,
int &  way 
) const [virtual]

compute infeasibility of this variable, |w - f(x)| (where w is the auxiliary variable defined as w = f(x)

Reimplemented from Couenne::CouenneObject.

Definition at line 44 of file CouenneComplObject.cpp.

References Couenne::CouenneObject::reference_, and sign_.

double CouenneComplObject::checkInfeasibility ( const OsiBranchingInformation *  info  )  const [virtual]

compute infeasibility of this variable, |w - f(x)|, where w is the auxiliary variable defined as w = f(x)

Reimplemented from Couenne::CouenneObject.

Definition at line 95 of file CouenneComplObject.cpp.

References Couenne::CouenneObject::reference_, and sign_.

OsiBranchingObject * CouenneComplObject::createBranch ( OsiSolverInterface *  ,
const OsiBranchingInformation *  ,
int  way 
) const [virtual]

create CouenneBranchingObject or CouenneThreeWayBranchObj based on this object

Reimplemented from Couenne::CouenneObject.

Definition at line 117 of file CouenneComplObject.cpp.

References Couenne::CouenneObject::cutGen_, Couenne::CouenneObject::doConvCuts_, Couenne::CouenneObject::doFBBT_, Couenne::CouenneObject::jnlst_, Couenne::CouenneObject::problem_, Couenne::CouenneObject::reference_, and sign_.


Member Data Documentation

int Couenne::CouenneComplObject::sign_ [private]

-1 if object is for xi * xj <= 0 +1 if object is for xi * xj <= 0 0 if object is for xi * xj = 0 (classical)

Definition at line 64 of file CouenneComplObject.hpp.

Referenced by checkInfeasibility(), createBranch(), and infeasibility().


The documentation for this class was generated from the following files:
Generated on Thu Sep 22 03:14:46 2011 by  doxygen 1.4.7