Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
Bonmin::HeuristicInnerApproximation Class Reference

#include <BonHeuristicInnerApproximation.hpp>

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

Public Member Functions

 HeuristicInnerApproximation (BonminSetup *setup)
 Constructor with setup. More...
 
 HeuristicInnerApproximation (const HeuristicInnerApproximation &copy)
 Copy constructor. More...
 
 ~HeuristicInnerApproximation ()
 Destructor. More...
 
HeuristicInnerApproximationoperator= (const HeuristicInnerApproximation &rhs)
 Assignment operator. More...
 
virtual CbcHeuristic * clone () const
 Clone. More...
 
void Initialize (BonminSetup *setup)
 Initialize method. More...
 
virtual void resetModel (CbcModel *model)
 Resets stuff if model changes. More...
 
virtual int solution (double &solutionValue, double *betterSolution)
 Performs heuristic. More...
 

Static Public Member Functions

static void registerOptions (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
 Register the options common to all local search based heuristics. More...
 

Protected Attributes

BonminSetupsetup_
 Setup to use for local searches (will make copies). More...
 

Private Member Functions

void extractInnerApproximation (OsiTMINLPInterface &nlp, OsiSolverInterface &si, const double *x, bool getObj)
 
bool getMyInnerApproximation (OsiTMINLPInterface &si, OsiCuts &cs, int ind, const double *x, const double *x2)
 Get an inner-approximation constraint obtained by drawing a chord linking the two given points x and x2. More...
 

Private Attributes

int howOften_
 How often to do (code can change) More...
 
SubMipSolvermip_
 A subsolver for MIP. More...
 
int nbAp_
 Number of Approximation points. More...
 

Detailed Description

Definition at line 20 of file BonHeuristicInnerApproximation.hpp.

Constructor & Destructor Documentation

Bonmin::HeuristicInnerApproximation::HeuristicInnerApproximation ( BonminSetup setup)

Constructor with setup.

Definition at line 41 of file BonHeuristicInnerApproximation.cpp.

Bonmin::HeuristicInnerApproximation::HeuristicInnerApproximation ( const HeuristicInnerApproximation copy)

Copy constructor.

Definition at line 47 of file BonHeuristicInnerApproximation.cpp.

Bonmin::HeuristicInnerApproximation::~HeuristicInnerApproximation ( )

Destructor.

Definition at line 90 of file BonHeuristicInnerApproximation.cpp.

Member Function Documentation

HeuristicInnerApproximation & Bonmin::HeuristicInnerApproximation::operator= ( const HeuristicInnerApproximation rhs)

Assignment operator.

Definition at line 57 of file BonHeuristicInnerApproximation.cpp.

virtual CbcHeuristic* Bonmin::HeuristicInnerApproximation::clone ( ) const
inlinevirtual

Clone.

Definition at line 37 of file BonHeuristicInnerApproximation.hpp.

void Bonmin::HeuristicInnerApproximation::Initialize ( BonminSetup setup)

Initialize method.

Definition at line 82 of file BonHeuristicInnerApproximation.cpp.

virtual void Bonmin::HeuristicInnerApproximation::resetModel ( CbcModel *  model)
inlinevirtual

Resets stuff if model changes.

Definition at line 45 of file BonHeuristicInnerApproximation.hpp.

int Bonmin::HeuristicInnerApproximation::solution ( double &  solutionValue,
double *  betterSolution 
)
virtual

Performs heuristic.

Returns a feasible solution to the MINLP The heuristic constructs a MIP based approximating all univariate functions appearing in nonlinear constraints The linear approximation is obtained by adding inner chords linking pairs of points until covering the range of each variable.

Definition at line 98 of file BonHeuristicInnerApproximation.cpp.

void Bonmin::HeuristicInnerApproximation::registerOptions ( Ipopt::SmartPtr< Bonmin::RegisteredOptions roptions)
static

Register the options common to all local search based heuristics.

Definition at line 70 of file BonHeuristicInnerApproximation.cpp.

void Bonmin::HeuristicInnerApproximation::extractInnerApproximation ( OsiTMINLPInterface nlp,
OsiSolverInterface &  si,
const double *  x,
bool  getObj 
)
private

Definition at line 304 of file BonHeuristicInnerApproximation.cpp.

bool Bonmin::HeuristicInnerApproximation::getMyInnerApproximation ( OsiTMINLPInterface si,
OsiCuts &  cs,
int  ind,
const double *  x,
const double *  x2 
)
private

Get an inner-approximation constraint obtained by drawing a chord linking the two given points x and x2.

This only applies to nonlinear constraints featuring univariate functions (f(x) <= y).

Definition at line 237 of file BonHeuristicInnerApproximation.cpp.

Member Data Documentation

BonminSetup* Bonmin::HeuristicInnerApproximation::setup_
protected

Setup to use for local searches (will make copies).

Definition at line 58 of file BonHeuristicInnerApproximation.hpp.

int Bonmin::HeuristicInnerApproximation::howOften_
private

How often to do (code can change)

Definition at line 62 of file BonHeuristicInnerApproximation.hpp.

SubMipSolver* Bonmin::HeuristicInnerApproximation::mip_
private

A subsolver for MIP.

Definition at line 65 of file BonHeuristicInnerApproximation.hpp.

int Bonmin::HeuristicInnerApproximation::nbAp_
private

Number of Approximation points.

Definition at line 68 of file BonHeuristicInnerApproximation.hpp.


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