Couenne  0.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
Couenne::CouenneAggrProbing Class Reference

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

#include <CouenneAggrProbing.hpp>

Inheritance diagram for Couenne::CouenneAggrProbing:

Public Member Functions

 CouenneAggrProbing (CouenneSetup *couenne, const Ipopt::SmartPtr< Ipopt::OptionsList > options)
 Constructor. More...
 
 CouenneAggrProbing (const CouenneAggrProbing &rhs)
 Copy constructor. More...
 
 ~CouenneAggrProbing ()
 Destructor. More...
 
CouenneAggrProbingclone () const
 Clone method (necessary for the abstract CglCutGenerator class) More...
 
void generateCuts (const OsiSolverInterface &solver, OsiCuts &cuts, const CglTreeInfo=CglTreeInfo()) const
 The main CglCutGenerator; not implemented yet. More...
 
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. More...
 
double probeVariable2 (int index, bool lower)
 Alternative probing algorithm. More...
 
void setMaxTime (double value)
 Set/get maximum time to probe one variable. More...
 
double getMaxTime () const
 
void setMaxFailedSteps (int value)
 Set/get maximum number of failed steps. More...
 
int getMaxFailedSteps () const
 
void setMaxNodes (int value)
 Set/get maximum number of nodes to probe one variable. More...
 
int getMaxNodes () const
 
void setRestoreCutoff (bool value)
 Set/get restoreCutoff parameter (should we restore the initial cutoff value after each probing run?) More...
 
bool getRestoreCutoff () const
 

Static Public Member Functions

static void registerOptions (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
 Add list of options to be read from file. More...
 

Protected Attributes

CouenneSetupcouenne_
 Pointer to the CouenneProblem representation. More...
 
int numCols_
 Number of columns (want to have this handy) More...
 
double maxTime_
 Maximum time to probe one variable. More...
 
int maxFailedSteps_
 Maximum number of failed iterations. More...
 
int maxNodes_
 Maximum number of nodes in probing. More...
 
bool restoreCutoff_
 Restore initial cutoff (value and solution)? More...
 
double initCutoff_
 Initial cutoff. More...
 

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: