Loading...
Searching...
No Matches
CglTwomir Class Reference

Twostep MIR Cut Generator Class. More...

`#include <CglTwomir.hpp>`

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

## 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)
void | setAMax (int a)
void | setMaxElements (int n)
void | setMaxElementsRoot (int n)
void | setCutTypes (bool mir, bool twomir, bool tab, bool form)
void | setFormulationRows (int n)
int | getTmin () const
| Get.
int | getTmax () const
int | getQmin () const
int | getQmax () const
int | getAmax () const
int | getMaxElements () const
int | getMaxElementsRoot () const
int | getIfMir () const
int | getIfTwomir () const
int | getIfTableau () const
int | getIfFormulation () const
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 Member Functions inherited from CglCutGenerator
| CglCutGenerator ()
| Default constructor.
| CglCutGenerator (const CglCutGenerator &)
| Copy constructor.
CglCutGenerator & | operator= (const CglCutGenerator &rhs)
| Assignment operator.
virtual | ~CglCutGenerator ()
| Destructor.
int | getAggressiveness () const
| Get Aggressiveness - 0 = neutral, 100 is normal root node.
void | setAggressiveness (int value)
| Set Aggressiveness - 0 = neutral, 100 is normal root node.
void | setGlobalCuts (bool trueOrFalse)
| Set whether can do global cuts.
bool | canDoGlobalCuts () const
| Say whether can do global cuts.
virtual bool | mayGenerateRowCutsInTree () const
| Returns true if may generate Row cuts in tree (rather than root node).

## Public Attributes

std::string | probname_
| Problem name.
int | aggressive_
| Aggressiveness - 0 = neutral, 100 is normal root node.
bool | canDoGlobalCuts_
| True if can do global cuts i.e. no general integers.

## 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_
bool | do_2mir_
bool | do_tab_
bool | do_form_
int | t_min_
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() [1/2]

CglTwomir::CglTwomir | ( |  | ) |

Default constructor.

## CglTwomir() [2/2]

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

Copy constructor.

## ~CglTwomir()

virtual CglTwomir::~CglTwomir | ( |  | ) |

virtual

Destructor.

## Member Function Documentation

## generateCuts()

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.

## needsOptimalBasis()

virtual bool CglTwomir::needsOptimalBasis | ( |  | ) | const

virtual

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

Reimplemented from CglCutGenerator.

## setMirScale()

void CglTwomir::setMirScale | ( | int | tmin,
|  | int | tmax )

inline

Set.

Definition at line 115 of file CglTwomir.hpp.

## setTwomirScale()

void CglTwomir::setTwomirScale | ( | int | qmin,
|  | int | qmax )

inline

Definition at line 116 of file CglTwomir.hpp.

## setAMax()

void CglTwomir::setAMax | ( | int | a | ) |

inline

Definition at line 117 of file CglTwomir.hpp.

## setMaxElements()

void CglTwomir::setMaxElements | ( | int | n | ) |

inline

Definition at line 118 of file CglTwomir.hpp.

## setMaxElementsRoot()

void CglTwomir::setMaxElementsRoot | ( | int | n | ) |

inline

Definition at line 119 of file CglTwomir.hpp.

## setCutTypes()

void CglTwomir::setCutTypes | ( | bool | mir,
|  | bool | twomir,
|  | bool | tab,
|  | bool | form )

inline

Definition at line 120 of file CglTwomir.hpp.

## setFormulationRows()

void CglTwomir::setFormulationRows | ( | int | n | ) |

inline

Definition at line 122 of file CglTwomir.hpp.

## getTmin()

int CglTwomir::getTmin | ( |  | ) | const

inline

Get.

Definition at line 125 of file CglTwomir.hpp.

## getTmax()

int CglTwomir::getTmax | ( |  | ) | const

inline

Definition at line 126 of file CglTwomir.hpp.

## getQmin()

int CglTwomir::getQmin | ( |  | ) | const

inline

Definition at line 127 of file CglTwomir.hpp.

## getQmax()

int CglTwomir::getQmax | ( |  | ) | const

inline

Definition at line 128 of file CglTwomir.hpp.

## getAmax()

int CglTwomir::getAmax | ( |  | ) | const

inline

Definition at line 129 of file CglTwomir.hpp.

## getMaxElements()

int CglTwomir::getMaxElements | ( |  | ) | const

inline

Definition at line 130 of file CglTwomir.hpp.

## getMaxElementsRoot()

int CglTwomir::getMaxElementsRoot | ( |  | ) | const

inline

Definition at line 131 of file CglTwomir.hpp.

## getIfMir()

int CglTwomir::getIfMir | ( |  | ) | const

inline

Definition at line 132 of file CglTwomir.hpp.

## getIfTwomir()

int CglTwomir::getIfTwomir | ( |  | ) | const

inline

Definition at line 133 of file CglTwomir.hpp.

## getIfTableau()

int CglTwomir::getIfTableau | ( |  | ) | const

inline

Definition at line 134 of file CglTwomir.hpp.

## getIfFormulation()

int CglTwomir::getIfFormulation | ( |  | ) | const

inline

Definition at line 135 of file CglTwomir.hpp.

## setAway()

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

Set away.

## getAway()

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

Get away.

## setAwayAtRoot()

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

Set away at root.

## getAwayAtRoot()

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

Get away at root.

## maximumLengthOfCutInTree()

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.

## passInOriginalSolver()

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

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

## originalSolver()

OsiSolverInterface * CglTwomir::originalSolver | ( |  | ) | const

inline

Returns original solver.

Definition at line 160 of file CglTwomir.hpp.

## setTwomirType()

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.

## twomirType()

int CglTwomir::twomirType | ( |  | ) | const

inline

Return type.

Definition at line 166 of file CglTwomir.hpp.

## clone()

virtual CglCutGenerator * CglTwomir::clone | ( |  | ) | const

virtual

Clone.

Implements CglCutGenerator.

## operator=()

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

Assignment operator.

## generateCpp()

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

virtual

Create C++ lines to get to current state.

Reimplemented from CglCutGenerator.

## refreshSolver()

virtual void CglTwomir::refreshSolver | ( | OsiSolverInterface * | solver | ) |

virtual

This can be used to refresh any inforamtion.

Reimplemented from CglCutGenerator.

## Friends And Related Symbol Documentation

## CglTwomirUnitTest

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

## probname_

std::string CglTwomir::probname_

Problem name.

Definition at line 100 of file CglTwomir.hpp.

## randomNumberGenerator_

CoinThreadRandom CglTwomir::randomNumberGenerator_

private

Threadsafe random number generator.

Definition at line 197 of file CglTwomir.hpp.

## originalSolver_

OsiSolverInterface* CglTwomir::originalSolver_

private

Original solver.

Definition at line 199 of file CglTwomir.hpp.

## away_

double CglTwomir::away_

private

Only investigate if more than this away from integrality.

Definition at line 201 of file CglTwomir.hpp.

## awayAtRoot_

double CglTwomir::awayAtRoot_

private

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

Definition at line 203 of file CglTwomir.hpp.

## twomirType_

int CglTwomir::twomirType_

private

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

Definition at line 205 of file CglTwomir.hpp.

## do_mir_

bool CglTwomir::do_mir_

private

Definition at line 206 of file CglTwomir.hpp.

## do_2mir_

bool CglTwomir::do_2mir_

private

Definition at line 207 of file CglTwomir.hpp.

## do_tab_

bool CglTwomir::do_tab_

private

Definition at line 208 of file CglTwomir.hpp.

## do_form_

bool CglTwomir::do_form_

private

Definition at line 209 of file CglTwomir.hpp.

## t_min_

int CglTwomir::t_min_

private

Definition at line 211 of file CglTwomir.hpp.

## t_max_

int CglTwomir::t_max_

private

t_min - first value of t to use for tMIR inequalities

Definition at line 212 of file CglTwomir.hpp.

## q_min_

int CglTwomir::q_min_

private

t_max - last value of t to use for tMIR inequalities

Definition at line 213 of file CglTwomir.hpp.

## q_max_

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.

## a_max_

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.

## max_elements_

int CglTwomir::max_elements_

private

a_max - maximum value of bhat/alpha

Definition at line 216 of file CglTwomir.hpp.

## max_elements_root_

int CglTwomir::max_elements_root_

private

Maximum number of elements in cut.

Definition at line 217 of file CglTwomir.hpp.

## form_nrows_

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:

- Cgl/src/CglTwomir/CglTwomir.hpp