# Couenne::CouenneAggrProbing Class Reference

Cut Generator for aggressive BT; i.e., an aggressive probing. More...

`#include <CouenneAggrProbing.hpp>`

List of all members.

## Public Member Functions
| CouenneAggrProbing (CouenneSetup *couenne, const Ipopt::SmartPtr< Ipopt::OptionsList > options)
| Constructor.
| CouenneAggrProbing (const CouenneAggrProbing &rhs)
| Copy constructor.
| ~CouenneAggrProbing ()
| Destructor.
CouenneAggrProbing * | clone () const
| Clone method (necessary for the abstract CglCutGenerator class).
void | generateCuts (const OsiSolverInterface &solver, OsiCuts &cuts, const CglTreeInfo=CglTreeInfo()) const
| The main CglCutGenerator; not implemented yet.
double | probeVariable (int index, bool probeLower)
| Probe one variable (try to tigthen the lower or the upper bound, depending on the value of the second argument), so that we can generate the corresponding column cut.
double | probeVariable2 (int index, bool lower)
| Alternative probing algorithm.
void | setMaxTime (double value)
| Set/get maximum time to probe one variable.
double | getMaxTime () const
void | setMaxFailedSteps (int value)
| Set/get maximum number of failed steps.
int | getMaxFailedSteps () const
void | setMaxNodes (int value)
| Set/get maximum number of nodes to probe one variable.
int | getMaxNodes () const
void | setRestoreCutoff (bool value)
| Set/get restoreCutoff parameter (should we restore the initial cutoff value after each probing run?).
bool | getRestoreCutoff () const
## Static Public Member Functions
static void | registerOptions (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
| Add list of options to be read from file.
## Protected Attributes
CouenneSetup * | couenne_
| Pointer to the CouenneProblem representation.
int | numCols_
| Number of columns (want to have this handy).
double | maxTime_
| Maximum time to probe one variable.
int | maxFailedSteps_
| Maximum number of failed iterations.
int | maxNodes_
| Maximum number of nodes in probing.
bool | restoreCutoff_
| Restore initial cutoff (value and solution)?
double | initCutoff_
| Initial cutoff.

## Detailed Description

Cut Generator for aggressive BT; i.e., an aggressive probing.

This probing strategy is very expensive and was initially developed to be run in parallel; hence, the user can choose to probe just a particular variable, without adding this cut generator to the list of cut generators normally employed by Couenne. However, it can also be used in the standard way; in that case, it chooses automatically the variables to probe (in a very naive way, for the moment). TODO: Implement some way to automatically choose the variables TODO: Implement the generateCuts method, for use in Branch-and-Bound

Definition at line 37 of file CouenneAggrProbing.hpp.

## Constructor & Destructor Documentation

Couenne::CouenneAggrProbing::CouenneAggrProbing | ( | CouenneSetup * | couenne,
|  | const Ipopt::SmartPtr< Ipopt::OptionsList > | options |
| ) |  |  |

Constructor.

Referenced by clone().

Couenne::CouenneAggrProbing::CouenneAggrProbing | ( | const CouenneAggrProbing & | rhs | ) |

Copy constructor.

Couenne::CouenneAggrProbing::~CouenneAggrProbing | ( |  | ) |

Destructor.

## Member Function Documentation

CouenneAggrProbing* Couenne::CouenneAggrProbing::clone | ( |  | ) | const`[inline]`

Clone method (necessary for the abstract CglCutGenerator class).

Definition at line 52 of file CouenneAggrProbing.hpp.

References CouenneAggrProbing().

void Couenne::CouenneAggrProbing::generateCuts | ( | const OsiSolverInterface & | solver,
|  | OsiCuts & | cuts,
|  | const | CglTreeInfo = `CglTreeInfo ()` |
| ) |  |  | const`[inline]`

The main CglCutGenerator; not implemented yet.

Definition at line 56 of file CouenneAggrProbing.hpp.

double Couenne::CouenneAggrProbing::probeVariable | ( | int | index,
|  | bool | probeLower |
| ) |  |  |

Probe one variable (try to tigthen the lower or the upper bound, depending on the value of the second argument), so that we can generate the corresponding column cut.

This runs the main algorithm. It returns the new bound (equal to the initial one if we could not tigthen)

double Couenne::CouenneAggrProbing::probeVariable2 | ( | int | index,
|  | bool | lower |
| ) |  |  |

Alternative probing algorithm.

This one does not work yet! Do not use, will probably segfault.

static void Couenne::CouenneAggrProbing::registerOptions | ( | Ipopt::SmartPtr< Bonmin::RegisteredOptions > | roptions | ) | `[static]`

Add list of options to be read from file.

void Couenne::CouenneAggrProbing::setMaxTime | ( | double | value | ) |

Set/get maximum time to probe one variable.

double Couenne::CouenneAggrProbing::getMaxTime | ( |  | ) | const

void Couenne::CouenneAggrProbing::setMaxFailedSteps | ( | int | value | ) |

Set/get maximum number of failed steps.

int Couenne::CouenneAggrProbing::getMaxFailedSteps | ( |  | ) | const

void Couenne::CouenneAggrProbing::setMaxNodes | ( | int | value | ) |

Set/get maximum number of nodes to probe one variable.

int Couenne::CouenneAggrProbing::getMaxNodes | ( |  | ) | const

void Couenne::CouenneAggrProbing::setRestoreCutoff | ( | bool | value | ) |

Set/get restoreCutoff parameter (should we restore the initial cutoff value after each probing run?).

bool Couenne::CouenneAggrProbing::getRestoreCutoff | ( |  | ) | const

## Member Data Documentation

CouenneSetup* Couenne::CouenneAggrProbing::couenne_`[protected]`

Pointer to the CouenneProblem representation.

Definition at line 98 of file CouenneAggrProbing.hpp.

int Couenne::CouenneAggrProbing::numCols_`[protected]`

Number of columns (want to have this handy).

Definition at line 101 of file CouenneAggrProbing.hpp.

double Couenne::CouenneAggrProbing::maxTime_`[protected]`

Maximum time to probe one variable.

Definition at line 104 of file CouenneAggrProbing.hpp.

int Couenne::CouenneAggrProbing::maxFailedSteps_`[protected]`

Maximum number of failed iterations.

Definition at line 107 of file CouenneAggrProbing.hpp.

int Couenne::CouenneAggrProbing::maxNodes_`[protected]`

Maximum number of nodes in probing.

Definition at line 110 of file CouenneAggrProbing.hpp.

bool Couenne::CouenneAggrProbing::restoreCutoff_`[protected]`

Restore initial cutoff (value and solution)?

Definition at line 113 of file CouenneAggrProbing.hpp.

double Couenne::CouenneAggrProbing::initCutoff_`[protected]`

Initial cutoff.

Definition at line 116 of file CouenneAggrProbing.hpp.

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

- CouenneAggrProbing.hpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines