# CglTwomir Class Reference

Twostep MIR Cut Generator Class. More...

`#include <CglTwomir.hpp>`

Inheritance diagram for CglTwomir:
[legend]
Collaboration diagram for CglTwomir:
[legend]

List of all members.

## Public Member Functions
Generate Cuts
virtual void | generateCuts (const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo())
| Generate Two step MIR cuts either from the tableau rows or from the formulation rows.
virtual bool | needsOptimalBasis () const
| Return true if needs optimal basis to do cuts (will return true).
Change criterion on which scalings to use (default = 1,1,1,1)
void | setMirScale (int tmin, int tmax)
| Set.
void | setTwomirScale (int qmin, int qmax)
| Set.
void | setAMax (int a)
| Set.
void | setMaxElements (int n)
| Set.
void | setMaxElementsRoot (int n)
| Set.
void | setCutTypes (bool mir, bool twomir, bool tab, bool form)
| Set.
void | setFormulationRows (int n)
| Set.
int | getTmin () const
| Get.
int | getTmax () const
| Set.
int | getQmin () const
| Set.
int | getQmax () const
| Set.
int | getAmax () const
| Set.
int | getMaxElements () const
| Set.
int | getMaxElementsRoot () const
| Set.
int | getIfMir () const
| Set.
int | getIfTwomir () const
| Set.
int | getIfTableau () const
| Set.
int | getIfFormulation () const
| Set.
Change criterion on which variables to look at. All ones
more than "away" away from integrality will be investigated (default 0.05)
void | setAway (double value)
| Set away.
double | getAway () const
| Get away.
void | setAwayAtRoot (double value)
| Set away at root.
double | getAwayAtRoot () const
| Get away at root.
virtual int | maximumLengthOfCutInTree () const
| Return maximum length of cut in tree.
Change way TwoMir works
void | passInOriginalSolver (OsiSolverInterface *solver)
| Pass in a copy of original solver (clone it).
OsiSolverInterface * | originalSolver () const
| Returns original solver.
void | setTwomirType (int type)
| Set type - 0 normal, 1 add original matrix one, 2 replace.
int | twomirType () const
| Return type.
Constructors and destructors
| CglTwomir ()
| Default constructor.
| CglTwomir (const CglTwomir &)
| Copy constructor.
virtual CglCutGenerator * | clone () const
| Clone.
CglTwomir & | operator= (const CglTwomir &rhs)
| Assignment operator.
virtual | ~CglTwomir ()
| Destructor.
virtual std::string | generateCpp (FILE *fp)
| Create C++ lines to get to current state.
virtual void | refreshSolver (OsiSolverInterface *solver)
| This can be used to refresh any inforamtion.
## Public Attributes
std::string | probname_
| Problem name.
## Private Attributes
Private member data
CoinThreadRandom | randomNumberGenerator_
| Threadsafe random number generator.
OsiSolverInterface * | originalSolver_
| Original solver.
double | away_
| Only investigate if more than this away from integrality.
double | awayAtRoot_
| Only investigate if more than this away from integrality (at root).
int | twomirType_
| Type - 0 normal, 1 add original matrix one, 2 replace.
bool | do_mir_
| Threadsafe random number generator.
bool | do_2mir_
| Threadsafe random number generator.
bool | do_tab_
| Threadsafe random number generator.
bool | do_form_
| Threadsafe random number generator.
int | t_min_
| Threadsafe random number generator.
int | t_max_
| t_min - first value of t to use for tMIR inequalities
int | q_min_
| t_max - last value of t to use for tMIR inequalities
int | q_max_
| q_min - first value of t to use for 2-Step tMIR inequalities
int | a_max_
| q_max - last value of t to use for 2-Step tMIR inequalities
int | max_elements_
| a_max - maximum value of bhat/alpha
int | max_elements_root_
| Maximum number of elements in cut.
int | form_nrows_
| Maximum number of elements in cut at root.
## Friends
void | CglTwomirUnitTest (const OsiSolverInterface *siP, const std::string mpdDir)
| A function that tests the methods in the CglTwomir class.

## Detailed Description

Twostep MIR Cut Generator Class.

Definition at line 91 of file CglTwomir.hpp.

## Constructor & Destructor Documentation

CglTwomir::CglTwomir | ( |  | ) |

Default constructor.

CglTwomir::CglTwomir | ( | const CglTwomir & |  | ) |

Copy constructor.

virtual CglTwomir::~CglTwomir | ( |  | ) | `[virtual]`

Destructor.

## Member Function Documentation

virtual void CglTwomir::generateCuts | ( | const OsiSolverInterface & | si,
|  | OsiCuts & | cs,
|  | const CglTreeInfo | info = `CglTreeInfo()` |
| ) |  |  | `[virtual]`

Generate Two step MIR cuts either from the tableau rows or from the formulation rows.

Implements CglCutGenerator.

virtual bool CglTwomir::needsOptimalBasis | ( |  | ) | const`[virtual]`

Return true if needs optimal basis to do cuts (will return true).

Reimplemented from CglCutGenerator.

void CglTwomir::setMirScale | ( | int | tmin,
|  | int | tmax |
| ) |  |  | `[inline]`

Set.

Definition at line 115 of file CglTwomir.hpp.

void CglTwomir::setTwomirScale | ( | int | qmin,
|  | int | qmax |
| ) |  |  | `[inline]`

Set.

Definition at line 116 of file CglTwomir.hpp.

void CglTwomir::setAMax | ( | int | a | ) | `[inline]`

Set.

Definition at line 117 of file CglTwomir.hpp.

void CglTwomir::setMaxElements | ( | int | n | ) | `[inline]`

Set.

Definition at line 118 of file CglTwomir.hpp.

void CglTwomir::setMaxElementsRoot | ( | int | n | ) | `[inline]`

Set.

Definition at line 119 of file CglTwomir.hpp.

void CglTwomir::setCutTypes | ( | bool | mir,
|  | bool | twomir,
|  | bool | tab,
|  | bool | form |
| ) |  |  | `[inline]`

Set.

Definition at line 120 of file CglTwomir.hpp.

void CglTwomir::setFormulationRows | ( | int | n | ) | `[inline]`

Set.

Definition at line 122 of file CglTwomir.hpp.

int CglTwomir::getTmin | ( |  | ) | const`[inline]`

Get.

Definition at line 125 of file CglTwomir.hpp.

int CglTwomir::getTmax | ( |  | ) | const`[inline]`

Set.

Definition at line 126 of file CglTwomir.hpp.

int CglTwomir::getQmin | ( |  | ) | const`[inline]`

Set.

Definition at line 127 of file CglTwomir.hpp.

int CglTwomir::getQmax | ( |  | ) | const`[inline]`

Set.

Definition at line 128 of file CglTwomir.hpp.

int CglTwomir::getAmax | ( |  | ) | const`[inline]`

Set.

Definition at line 129 of file CglTwomir.hpp.

int CglTwomir::getMaxElements | ( |  | ) | const`[inline]`

Set.

Definition at line 130 of file CglTwomir.hpp.

int CglTwomir::getMaxElementsRoot | ( |  | ) | const`[inline]`

Set.

Definition at line 131 of file CglTwomir.hpp.

int CglTwomir::getIfMir | ( |  | ) | const`[inline]`

Set.

Definition at line 132 of file CglTwomir.hpp.

int CglTwomir::getIfTwomir | ( |  | ) | const`[inline]`

Set.

Definition at line 133 of file CglTwomir.hpp.

int CglTwomir::getIfTableau | ( |  | ) | const`[inline]`

Set.

Definition at line 134 of file CglTwomir.hpp.

int CglTwomir::getIfFormulation | ( |  | ) | const`[inline]`

Set.

Definition at line 135 of file CglTwomir.hpp.

void CglTwomir::setAway | ( | double | value | ) |

Set away.

double CglTwomir::getAway | ( |  | ) | const

Get away.

void CglTwomir::setAwayAtRoot | ( | double | value | ) |

Set away at root.

double CglTwomir::getAwayAtRoot | ( |  | ) | const

Get away at root.

virtual int CglTwomir::maximumLengthOfCutInTree | ( |  | ) | const`[inline, virtual]`

Return maximum length of cut in tree.

Reimplemented from CglCutGenerator.

Definition at line 151 of file CglTwomir.hpp.

void CglTwomir::passInOriginalSolver | ( | OsiSolverInterface * | solver | ) |

Pass in a copy of original solver (clone it).

OsiSolverInterface* CglTwomir::originalSolver | ( |  | ) | const`[inline]`

Returns original solver.

Definition at line 160 of file CglTwomir.hpp.

void CglTwomir::setTwomirType | ( | int | type | ) | `[inline]`

Set type - 0 normal, 1 add original matrix one, 2 replace.

Definition at line 163 of file CglTwomir.hpp.

int CglTwomir::twomirType | ( |  | ) | const`[inline]`

Return type.

Definition at line 166 of file CglTwomir.hpp.

virtual CglCutGenerator* CglTwomir::clone | ( |  | ) | const`[virtual]`

Clone.

Implements CglCutGenerator.

CglTwomir& CglTwomir::operator= | ( | const CglTwomir & | rhs | ) |

Assignment operator.

Reimplemented from CglCutGenerator.

virtual std::string CglTwomir::generateCpp | ( | FILE * | fp | ) | `[virtual]`

Create C++ lines to get to current state.

Reimplemented from CglCutGenerator.

virtual void CglTwomir::refreshSolver | ( | OsiSolverInterface * | solver | ) | `[virtual]`

This can be used to refresh any inforamtion.

Reimplemented from CglCutGenerator.

## Friends And Related Function Documentation

void CglTwomirUnitTest | ( | const OsiSolverInterface * | siP,
|  | const std::string | mpdDir |
| ) |  |  | `[friend]`

A function that tests the methods in the CglTwomir class.

The only reason for it not to be a member method is that this way it doesn't have to be compiled into the library. And that's a gain, because the library should be compiled with optimization on, but this method should be compiled with debugging.

## Member Data Documentation

std::string CglTwomir::probname_

Problem name.

Definition at line 100 of file CglTwomir.hpp.

CoinThreadRandom CglTwomir::randomNumberGenerator_`[private]`

Threadsafe random number generator.

Definition at line 197 of file CglTwomir.hpp.

OsiSolverInterface* CglTwomir::originalSolver_`[private]`

Original solver.

Definition at line 199 of file CglTwomir.hpp.

double CglTwomir::away_`[private]`

Only investigate if more than this away from integrality.

Definition at line 201 of file CglTwomir.hpp.

double CglTwomir::awayAtRoot_`[private]`

Only investigate if more than this away from integrality (at root).

Definition at line 203 of file CglTwomir.hpp.

int CglTwomir::twomirType_`[private]`

Type - 0 normal, 1 add original matrix one, 2 replace.

Definition at line 205 of file CglTwomir.hpp.

bool CglTwomir::do_mir_`[private]`

Threadsafe random number generator.

Definition at line 206 of file CglTwomir.hpp.

bool CglTwomir::do_2mir_`[private]`

Threadsafe random number generator.

Definition at line 207 of file CglTwomir.hpp.

bool CglTwomir::do_tab_`[private]`

Threadsafe random number generator.

Definition at line 208 of file CglTwomir.hpp.

bool CglTwomir::do_form_`[private]`

Threadsafe random number generator.

Definition at line 209 of file CglTwomir.hpp.

int CglTwomir::t_min_`[private]`

Threadsafe random number generator.

Definition at line 211 of file CglTwomir.hpp.

int CglTwomir::t_max_`[private]`

t_min - first value of t to use for tMIR inequalities

Definition at line 212 of file CglTwomir.hpp.

int CglTwomir::q_min_`[private]`

t_max - last value of t to use for tMIR inequalities

Definition at line 213 of file CglTwomir.hpp.

int CglTwomir::q_max_`[private]`

q_min - first value of t to use for 2-Step tMIR inequalities

Definition at line 214 of file CglTwomir.hpp.

int CglTwomir::a_max_`[private]`

q_max - last value of t to use for 2-Step tMIR inequalities

Definition at line 215 of file CglTwomir.hpp.

int CglTwomir::max_elements_`[private]`

a_max - maximum value of bhat/alpha

Definition at line 216 of file CglTwomir.hpp.

int CglTwomir::max_elements_root_`[private]`

Maximum number of elements in cut.

Definition at line 217 of file CglTwomir.hpp.

int CglTwomir::form_nrows_`[private]`

Maximum number of elements in cut at root.

Definition at line 218 of file CglTwomir.hpp.

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

- /home/coin/svn-release/Alps-1.4.8/Cgl/src/CglTwomir/CglTwomir.hpp