Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
Bonmin::CutStrengthener Class Reference

Class for strengthening OA cuts, and generating additional ones. More...

#include <BonCutStrengthener.hpp>

Inheritance diagram for Bonmin::CutStrengthener:
Inheritance graph
[legend]
Collaboration diagram for Bonmin::CutStrengthener:
Collaboration graph
[legend]

Classes

class  StrengtheningTNLP
 Class implementing the TNLP for strengthening one cut. More...
 

Public Member Functions

bool ComputeCuts (OsiCuts &cs, TMINLP *tminlp, TMINLP2TNLP *problem, const int gindex, CoinPackedVector &cut, double &cut_lb, double &cut_ub, const double g_val, const double g_lb, const double g_ub, int n, const double *x, double infty)
 Method for generating and strenghtening all desired cuts. More...
 
Constructor/Destructor
 CutStrengthener (Ipopt::SmartPtr< TNLPSolver > tnlp_solver, Ipopt::SmartPtr< Ipopt::OptionsList > options)
 Constructor. More...
 
virtual ~CutStrengthener ()
 Destructor. More...
 

Private Member Functions

bool StrengthenCut (Ipopt::SmartPtr< TMINLP > tminlp, int constr_index, const CoinPackedVector &row, int n, const double *x, const double *x_l, const double *x_u, double &lb, double &ub)
 Method for strengthening one cut. More...
 
bool HandleOneCut (bool is_tight, TMINLP *tminlp, TMINLP2TNLP *problem, const double *minlp_lb, const double *minlp_ub, const int gindex, CoinPackedVector &cut, double &cut_lb, double &cut_ub, int n, const double *x, double infty)
 Method for generating one type of cut (strengthened or disjunctive) More...
 
Default Compiler Generated Methods

(Hidden to avoid implicit creation/calling).

These methods are not implemented and we do not want the compiler to implement them for us, so we declare them private and do not define them. This ensures that they will not be implicitly created/called.

 CutStrengthener ()
 Default Constructor. More...
 
 CutStrengthener (const CutStrengthener &)
 Copy Constructor. More...
 
void operator= (const CutStrengthener &)
 Overloaded Equals Operator. More...
 

Private Attributes

Ipopt::SmartPtr< TNLPSolvertnlp_solver_
 Object for solving the TNLPs. More...
 
int cut_strengthening_type_
 Type of OA cut strengthener. More...
 
int disjunctive_cut_type_
 What kind of disjuntion should be done. More...
 
int oa_log_level_
 verbosity level for OA-related output More...
 

Detailed Description

Class for strengthening OA cuts, and generating additional ones.

Definition at line 32 of file BonCutStrengthener.hpp.

Constructor & Destructor Documentation

Bonmin::CutStrengthener::CutStrengthener ( Ipopt::SmartPtr< TNLPSolver tnlp_solver,
Ipopt::SmartPtr< Ipopt::OptionsList >  options 
)

Constructor.

It is given a TNLP solver to solve the internal NLPs.

Bonmin::CutStrengthener::~CutStrengthener ( )
virtual

Destructor.

Definition at line 35 of file BonCutStrengthener.cpp.

Bonmin::CutStrengthener::CutStrengthener ( )
private

Default Constructor.

Bonmin::CutStrengthener::CutStrengthener ( const CutStrengthener )
private

Copy Constructor.

Member Function Documentation

bool Bonmin::CutStrengthener::ComputeCuts ( OsiCuts &  cs,
TMINLP tminlp,
TMINLP2TNLP problem,
const int  gindex,
CoinPackedVector &  cut,
double &  cut_lb,
double &  cut_ub,
const double  g_val,
const double  g_lb,
const double  g_ub,
int  n,
const double *  x,
double  infty 
)

Method for generating and strenghtening all desired cuts.

Definition at line 137 of file BonCutStrengthener.cpp.

void Bonmin::CutStrengthener::operator= ( const CutStrengthener )
private

Overloaded Equals Operator.

bool Bonmin::CutStrengthener::StrengthenCut ( Ipopt::SmartPtr< TMINLP tminlp,
int  constr_index,
const CoinPackedVector &  row,
int  n,
const double *  x,
const double *  x_l,
const double *  x_u,
double &  lb,
double &  ub 
)
private

Method for strengthening one cut.

Parameters
tminlpcurrent TMINLP
constr_indexIpopt::Index number of the constraint to be strengthened, -1 means objective function
rowCut to be strengthened
nIpopt::Number of variables
xsolution from node
x_lLower bounds for x in which should be valid.
x_uUpper bounds for x in which should be valid.

Definition at line 222 of file BonCutStrengthener.cpp.

bool Bonmin::CutStrengthener::HandleOneCut ( bool  is_tight,
TMINLP tminlp,
TMINLP2TNLP problem,
const double *  minlp_lb,
const double *  minlp_ub,
const int  gindex,
CoinPackedVector &  cut,
double &  cut_lb,
double &  cut_ub,
int  n,
const double *  x,
double  infty 
)
private

Method for generating one type of cut (strengthened or disjunctive)

Definition at line 39 of file BonCutStrengthener.cpp.

Member Data Documentation

Ipopt::SmartPtr<TNLPSolver> Bonmin::CutStrengthener::tnlp_solver_
private

Object for solving the TNLPs.

Definition at line 233 of file BonCutStrengthener.hpp.

int Bonmin::CutStrengthener::cut_strengthening_type_
private

Type of OA cut strengthener.

Definition at line 236 of file BonCutStrengthener.hpp.

int Bonmin::CutStrengthener::disjunctive_cut_type_
private

What kind of disjuntion should be done.

Definition at line 238 of file BonCutStrengthener.hpp.

int Bonmin::CutStrengthener::oa_log_level_
private

verbosity level for OA-related output

Definition at line 240 of file BonCutStrengthener.hpp.


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