OsiCut Class Reference

Base Class for cut. More...

#include <OsiCut.hpp>

Inheritance diagram for OsiCut:

Inheritance graph
[legend]
List of all members.

Public Member Functions

Effectiveness
void setEffectiveness (double e)
 Set effectiveness.
double effectiveness () const
 Get effectiveness.
GloballyValid
void setGloballyValid (bool trueFalse)
 Set globallyValid.
void setGloballyValid ()
 Set globallyValid.
void setNotGloballyValid ()
 Set globallyValid.
bool globallyValid () const
 Get globallyValid.
Debug stuff
virtual void print () const
 Print cuts in collection.
Comparison operators
virtual bool operator== (const OsiCut &rhs) const
 equal. 2 cuts are equal if there effectiveness are equal
virtual bool operator!= (const OsiCut &rhs) const
 not equal
virtual bool operator< (const OsiCut &rhs) const
 less than. True if this.effectiveness < rhs.effectiveness
virtual bool operator> (const OsiCut &rhs) const
 less than. True if this.effectiveness > rhs.effectiveness
Sanity checks on cut
virtual bool consistent () const =0
 Returns true if the cut is consistent with respect to itself, without considering any data in the model.
virtual bool consistent (const OsiSolverInterface &si) const =0
 Returns true if cut is consistent when considering the solver interface's model.
virtual bool infeasible (const OsiSolverInterface &si) const =0
 Returns true if the cut is infeasible "with respect to itself" and cannot be satisfied.
virtual double violated (const double *solution) const =0
 Returns infeasibility of the cut with respect to solution passed in i.e.

Protected Member Functions

Constructors and destructors
 OsiCut ()
 Default Constructor.
 OsiCut (const OsiCut &)
 Copy constructor.
OsiCutoperator= (const OsiCut &rhs)
 Assignment operator.
virtual ~OsiCut ()
 Destructor.

Private Attributes

Private member data
double effectiveness_
 Effectiveness.
bool globallyValid_
 If cut has global validity i.e. can be used anywhere in tree.

Detailed Description

Base Class for cut.

The Base cut class contains:

Definition at line 23 of file OsiCut.hpp.


Constructor & Destructor Documentation

OsiCut::OsiCut (  )  [protected]

Default Constructor.

OsiCut::OsiCut ( const OsiCut  )  [protected]

Copy constructor.

virtual OsiCut::~OsiCut (  )  [protected, virtual]

Destructor.


Member Function Documentation

void OsiCut::setEffectiveness ( double  e  )  [inline]

Set effectiveness.

Definition at line 190 of file OsiCut.hpp.

References effectiveness_.

double OsiCut::effectiveness (  )  const [inline]

Get effectiveness.

Definition at line 191 of file OsiCut.hpp.

References effectiveness_.

Referenced by OsiCuts::OsiCutCompare::operator()(), operator<(), operator==(), and operator>().

void OsiCut::setGloballyValid ( bool  trueFalse  )  [inline]

Set globallyValid.

Definition at line 39 of file OsiCut.hpp.

References globallyValid_.

void OsiCut::setGloballyValid (  )  [inline]

Set globallyValid.

Definition at line 41 of file OsiCut.hpp.

References globallyValid_.

void OsiCut::setNotGloballyValid (  )  [inline]

Set globallyValid.

Definition at line 43 of file OsiCut.hpp.

References globallyValid_.

bool OsiCut::globallyValid (  )  const [inline]

Get globallyValid.

Definition at line 46 of file OsiCut.hpp.

References globallyValid_.

virtual void OsiCut::print (  )  const [inline, virtual]

Print cuts in collection.

Reimplemented in OsiColCut, and OsiRowCut.

Definition at line 53 of file OsiCut.hpp.

bool OsiCut::operator== ( const OsiCut rhs  )  const [inline, virtual]

equal. 2 cuts are equal if there effectiveness are equal

Definition at line 207 of file OsiCut.hpp.

References effectiveness().

bool OsiCut::operator!= ( const OsiCut rhs  )  const [inline, virtual]

not equal

Definition at line 212 of file OsiCut.hpp.

bool OsiCut::operator< ( const OsiCut rhs  )  const [inline, virtual]

less than. True if this.effectiveness < rhs.effectiveness

Definition at line 217 of file OsiCut.hpp.

References effectiveness().

bool OsiCut::operator> ( const OsiCut rhs  )  const [inline, virtual]

less than. True if this.effectiveness > rhs.effectiveness

Definition at line 222 of file OsiCut.hpp.

References effectiveness().

virtual bool OsiCut::consistent (  )  const [inline, pure virtual]

Returns true if the cut is consistent with respect to itself, without considering any data in the model.

For example, it might check to ensure that a column index is not negative.

Implemented in OsiColCut, and OsiRowCut.

virtual bool OsiCut::consistent ( const OsiSolverInterface si  )  const [inline, pure virtual]

Returns true if cut is consistent when considering the solver interface's model.

For example, it might check to ensure that a column index is not greater than the number of columns in the model. Assumes consistent() is true.

Implemented in OsiColCut, and OsiRowCut.

virtual bool OsiCut::infeasible ( const OsiSolverInterface si  )  const [inline, pure virtual]

Returns true if the cut is infeasible "with respect to itself" and cannot be satisfied.

This method does NOT check whether adding the cut to the solver interface's model will make the -model- infeasble. A cut which returns !infeasible(si) may very well make the model infeasible. (Of course, adding a cut with returns infeasible(si) will make the model infeasible.)

The "with respect to itself" is in quotes becaues in the case where the cut simply replaces existing bounds, it may make sense to test infeasibility with respect to the current bounds held in the solver interface's model. For example, if the cut has a single variable in it, it might check that the maximum of new and existing lower bounds is greater than the minium of the new and existing upper bounds.

Assumes that consistent(si) is true.
Infeasible cuts can be a useful mechanism for a cut generator to inform the solver interface that its detected infeasibility of the problem.

Implemented in OsiColCut, and OsiRowCut.

virtual double OsiCut::violated ( const double *  solution  )  const [pure virtual]

Returns infeasibility of the cut with respect to solution passed in i.e.

is positive if cuts off that solution. solution is getNumCols() long..

Implemented in OsiColCut, and OsiRowCut.

OsiCut& OsiCut::operator= ( const OsiCut rhs  )  [protected]

Assignment operator.


Member Data Documentation

double OsiCut::effectiveness_ [private]

Effectiveness.

Definition at line 174 of file OsiCut.hpp.

Referenced by effectiveness(), and setEffectiveness().

bool OsiCut::globallyValid_ [private]

If cut has global validity i.e. can be used anywhere in tree.

Definition at line 176 of file OsiCut.hpp.

Referenced by globallyValid(), setGloballyValid(), and setNotGloballyValid().


The documentation for this class was generated from the following file:
Generated on Thu May 15 22:00:41 2008 by  doxygen 1.4.7