# OsiCut Class Reference

`#include <OsiCut.hpp>`

Inheritance diagram for OsiCut:
[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 (nonzero true).
void | setGloballyValid ()
| Set globallyValid (nonzero true).
void | setNotGloballyValid ()
| Set globallyValid (nonzero true).
bool | globallyValid () const
| Get globallyValid.
void | setGloballyValidAsInteger (int trueFalse)
| Set globallyValid as integer (nonzero true).
int | globallyValidAsInteger () 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.
OsiCut & | operator= (const OsiCut &rhs)
| Assignment operator.
virtual | ~OsiCut ()
| Destructor.
## Private Attributes
Private member data
double | effectiveness_
| Effectiveness.
int | globallyValid_
| If cut has global validity i.e. can be used anywhere in tree.

## Detailed Description

Definition at line 36 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 209 of file OsiCut.hpp.

double OsiCut::effectiveness | ( |  | ) | const`[inline]`

Get effectiveness.

Definition at line 210 of file OsiCut.hpp.

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

Set globallyValid (nonzero true).

Definition at line 52 of file OsiCut.hpp.

void OsiCut::setGloballyValid | ( |  | ) | `[inline]`

Set globallyValid (nonzero true).

Definition at line 54 of file OsiCut.hpp.

void OsiCut::setNotGloballyValid | ( |  | ) | `[inline]`

Set globallyValid (nonzero true).

Definition at line 56 of file OsiCut.hpp.

bool OsiCut::globallyValid | ( |  | ) | const`[inline]`

Get globallyValid.

Definition at line 59 of file OsiCut.hpp.

void OsiCut::setGloballyValidAsInteger | ( | int | trueFalse | ) | `[inline]`

Set globallyValid as integer (nonzero true).

Definition at line 62 of file OsiCut.hpp.

int OsiCut::globallyValidAsInteger | ( |  | ) | const`[inline]`

Get globallyValid.

Definition at line 65 of file OsiCut.hpp.

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

Print cuts in collection.

Reimplemented in OsiColCut, and OsiRowCut.

Definition at line 72 of file OsiCut.hpp.

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

equal. 2 cuts are equal if there effectiveness are equal

Reimplemented in OsiColCut, and OsiRowCut.

Definition at line 226 of file OsiCut.hpp.

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

not equal

Reimplemented in OsiColCut, and OsiRowCut.

Definition at line 231 of file OsiCut.hpp.

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

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

Definition at line 236 of file OsiCut.hpp.

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

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

Definition at line 241 of file OsiCut.hpp.

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.

Reimplemented in OsiColCut, OsiRowCut, and OsiRowCut2.

## Member Data Documentation

double OsiCut::effectiveness_`[private]`

Effectiveness.

Definition at line 193 of file OsiCut.hpp.

int OsiCut::globallyValid_`[private]`

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

Definition at line 195 of file OsiCut.hpp.

The documentation for this class was generated from the following file:

- /home/coin/svn-release/Alps-1.4.6/Osi/src/Osi/OsiCut.hpp